一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于CAN总线的报文传播速率的提升方法与流程

2021-12-01 00:55:00 来源:中国专利 TAG:

一种基于can总线的报文传播速率的提升方法
技术领域
1.本发明属于通信技术领域,具体涉及一种基于can总线的报文传播速率的提升方法。


背景技术:

2.自can创立以来,它的最大通信速率就限制在1mbit/s,而在即将到来的应用领域中,出于对纯功能性定时或通信容量的需要,嵌入式多路传输网络必须具有更高的比特率,大约为5~10mbit/s。因此,一切都必须重新思考和重建。can的最大通信速率之所以为1mbit/s,主要是由can所采用的技术理念决定的。尽管在有关can的书籍中很少提及技术理念方面的限制,如线路传播效应、反射系数和支线等,但当设计新协议及其物理层时,若比特率超过1mbit/s,不考虑这些物理参数及其影响是不可能的。
3.can系统中,总线上携带的报文以指定格式发送,且最大长度有限。用于报文传输的帧有5种,分别为数据帧、远程帧、出错帧、超载帧和帧间空间。其中,数据帧将数据由发送器传至接收器;远程帧用以请求发送与这个帧的标识符相同的数据帧;出错帧用于通知总线上的节点有错误发生;超载帧用于在前一帧和后续数据帧(或远程帧)之间提供附加延时;而帧间空间用于将数据帧和远程帧与前面的帧隔开。
4.can的最大比特率1mbps与协议中确认场中的确认位结构有关。应答域由发送方发出的三个(应答间隙及应答界定)隐性位组成,所有接收到正确的crc序列的节点将在发送节点的应答间隙上将发送的这一隐性位改写为显性位。因此,发送节点将一直监视总线信号已确认网络中至少一个节点正确地接收到所发信息。应答界定符是应答域中第三个隐性位,由此可见,应答间隙两边有两个隐性位:crc界定位和应答界定位。ack场的作用是确保发送节点能够正确的发送报文。报文至少被一个节点正确接收ack才是有效的。报文在ack的发送过程如图1所示,首先发送节点在ack发送隐性位。当正确接收到报文的节点时,ack发送显性;未正确接收到报文的节点时,ack发送隐性。最后,发送节点检测应答位是否被显性覆盖,若是则发送成功。为使协议正常运行,信号的传出与传入时间之和一定要允许确认信号落入确认位的持续时间内。can协议的这个特点限制了传播时间,从而对网络节点之间的最大距离产生制约,同时排除了采用某些拓扑结构的可能性,也无法使用涉及传播不对称性的解决方案(如网络分支)。当达到最大通信速率1mbps时,通信距离最低为40米。


技术实现要素:

5.为解决上述问题,本发明提供了一种有效改善can总线传输速率的提升方法,本发明采用了如下技术方案:
6.本发明提供了一种基于can总线的报文传播速率的提升方法,用于提高can总线的最大通信速率,其特征在于,包括以下步骤:步骤s1,将can总线数据帧格式中的确认场确认位从一位隐性位扩展到两位隐性位,将确认信号从显性位传出改写为从发送器的第二个隐性位传出,从而完成can总线的位速率的提升,得到提升位速率后的can总线;步骤s2,对提
升位速率后的can总线进行可实现性进行验证;步骤s3,对提升位速率后的can总线进行仲裁功能验证;步骤s4,对提升位速率后的can总线进行错误鉴定功能验证,从而得到验证后的can总线,该can总线拥有最大通信速率,其中,确认场为can总线中的ack场,确认位为ack间隙,确认信号来自所有接收到匹配crc序列的节点。
7.在本发明提供的一种基于can总线的报文传播速率的提升方法中,还可以具有这样的特征,其中,节点通过本地构造标称位时间来实现位同步,标称位时间为位速率的倒数,标称位时间的固定时间单元为时间份额,该时间份额的长度通过编程方式设置,标称位时间具有同步段、传播段、第一相位缓冲段以及第二相位缓冲段,同步段、传播段、第一相位缓冲段以及第二相位缓冲段对应有不同数量的时间份额。
8.在本发明提供的一种基于can总线的报文传播速率的提升方法中,还可以具有这样的特征,其中,时间份额的总数为大于等于8且小于等于25。
9.在本发明提供的一种基于can总线的报文传播速率的提升方法中,还可以具有这样的特征,其中,步骤s2包括如下子步骤:步骤s2

1,获取晶振频率以及提升后位速率v,计算波特率分频比brp:
[0010][0011]
步骤s2

2,根据波特率分频比brp得到分度值m以及构成本地节点位时间的基本成分t
min
;步骤s2

3,利用分度值m以及基本成分t
min
计算得到最小份额时间tq:
[0012]
tq=m
×
t
min
[0013]
步骤s2

4,根据最小份额时间tq计算can总线通信位时间t:
[0014]
t=n*tq
[0015]
式中,n为可随机设定的整数;步骤s2

5,根据can总线通信位时间t划分同步段、传播段、第一相位缓冲段以及第二相位缓冲段对应的时间份额数量,将该时间份额数量与提升前的时间份额数量进行对比,从而验证可行性。
[0016]
在本发明提供的一种基于can总线的报文传播速率的提升方法中,还可以具有这样的特征,其中,步骤s3具体为:在仲裁场中,所有节点同步发送信号,当节点发送隐性位“1”时,节点e几乎在相同时刻发送显性位“0”,经过t1时间信号“1”与信号“0”相遇发生冲突,经由“线与”规则显性信号“0”改写隐性信号“1”并继续传播,再经由t2时间信号“0”返回到节点a,t1=t2,传播段时间由最长距离的两个节点之间信号传播时间t3确定,t1 t2<t3,即传播段时间t3在只是原有时间的一半即不考虑往返的情况下仍能实现总线仲裁功能。
[0017]
在本发明提供的一种基于can总线的报文传播速率的提升方法中,还可以具有这样的特征,其中,错误鉴定功能为在信息刚发出去时对总线状态进行监测,监测节点发出的信息是否正确,错误鉴定功能的验证为验证位错误鉴定是否可以在提升后的位时间内完成,若完成则can网络原有的错误鉴定功能不受影响。
[0018]
发明作用与效果
[0019]
根据本发明的一种基于can总线的报文传播速率的提升方法,由于将can总线数据帧格式中的确认场确认位从一位隐性位扩展到两位隐性位,将确认信号从显性位传出改写为从发送器的第二个隐性位传出,因此,原来在一位里信号往返传输的过程被分割为两位来完成,即位时间中的传播段时间缩小为原来的一半,相应的一位的位时间缩短,作为位时
间倒数的位速率相应提高,而因为有位同步的存在所有节点同步发送信息,仍能实现原有can总线的位仲裁和错误鉴定功能。且在原有can总线协议基础上,仅通过对帧格式的简单变动,就能实现can总线传输速率的有效改善。除此之外,由于原有位时间段中的速率与位时间份额相对应,若想提速只能考虑相位缓冲段的时间份额的减少,而这会导致分频比对应的整数值的不可控的波动,从而使传播段的时间长度出现错误。本发明则是通过对传播段时间长度的改变,使分频比变化得到有效的控制,从而减少了错误的发生。
附图说明
[0020]
图1为背景技术中原始can总线报文格式:
[0021]
图2为本发明实施例的基于can总线的报文传播速率的提升方法的流程图;
[0022]
图3为本发明实施例的标称位时间中各个时间段示意图;
[0023]
图4为本发明实施例原始ack场发送接收节点的示意图;
[0024]
图5为本发明实施例提速后的can总线报文格式;
[0025]
图6为本发明实施例提速后的ack场发送接收节点的示意图;
[0026]
图7为本发明实施例can网络中各元素的时间贡献示意图;
[0027]
图8为本发明实施例提速后网络仲裁功能示意图;
[0028]
图9为本发明实施例提速后can网络长度与位速率的关系示意图。
具体实施方式
[0029]
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,以下结合实施例及附图对本发明的一种基于can总线的报文传播速率的提升方法作具体阐述。
[0030]
<实施例>
[0031]
图2为本发明实施例的基于can总线的报文传播速率的提升方法的流程图。
[0032]
如图2所示,基于can总线的报文传播速率的提升方法包括如下步骤:
[0033]
步骤s1,将can总线数据帧格式中的确认场确认位从一位隐性位扩展到两位隐性位,将确认信号从显性位传出改写为从发送器的第二个隐性位传出,从而完成can总线的位速率的提升,得到提升位速率后的can总线。
[0034]
其中,确认场为can总线中的ack场,确认位为ack间隙,确认信号来自所有接收到匹配crc序列的节点。
[0035]
节点通过本地构造标称位时间来实现位同步,标称位时间为位速率的倒数。具体地:
[0036]
标称位时间是指发送一位的标称持续时间,用t
bit
表示。就其性质而言,它只是一个理想值,是系统设计人员希望为其网络指定的位时间值。网络中的每个节点必须设计成“名义上”具有t
bit
这个位时间,然而,对于设计人员来说,网络节点所使用的数字物理时钟是由晶振驱动的本地时钟,在容差、温度和时间漂移、以及电源变化敏感性等方面存在差异,无法保证位的瞬时值在任何时刻都是标称值。
[0037]
根据定义,位速率为一理想的发送器在没有重同步的情况下每秒发送的数据位数,用v
bit
表示。通常情况下,标称位时间是位速率的倒数,即
[0038][0039]
图3为本发明实施例的标称位时间中各个时间段示意图。
[0040]
如图3所示,标称位时间具有同步段、传播段、第一相位缓冲段以及第二相位缓冲段。
[0041]
同步段、传播段、第一相位缓冲段以及第二相位缓冲段对应有不同数量的时间份额。
[0042]
时间份额的总数为大于等于8且小于等于25。
[0043]
标称位时间的固定时间单元为时间份额,该时间份额的长度通过编程方式设置。具体地:
[0044]
时间份额是构成位时间的固定时间单元,用tq表示,一般取作t
min
的整数倍。设用于对时间份额的长度进行编程调整的整数分度值为m,can协议中m的可取值范围为1~32,时间份额的长度可由下式表示:
[0045]
tq=m
×
t
min
[0046]
一旦形成了时间份额,就可以按表1定义的时间段值划分位时间。位时间按时间份额进行编程设置。
[0047]
表1不同时间段对应的时间份额的长度
[0048][0049]
步骤s2,对提升位速率后的can总线进行可实现性进行验证。
[0050]
其中,步骤s2包括如下子步骤:
[0051]
步骤s2

1,获取晶振频率以及提升后位速率v,计算波特率分频比brp:
[0052][0053]
步骤s2

2,根据波特率分频比brp得到分度值m以及构成本地节点位时间的基本成分t
min

[0054]
步骤s2

3,利用分度值m以及基本成分t
min
计算得到最小份额时间tq:
[0055]
tq=m
×
t
min
[0056]
步骤s2

4,根据最小份额时间tq计算can总线通信位时间t:
[0057]
t=n*tq
[0058]
式中,n为可随机设定的整数。
[0059]
图4为本发明实施例原始ack场发送接收节点的示意图;图5为本发明实施例提速后的can总线报文格式;图6为本发明实施例提速后的ack场发送接收节点的示意图。
[0060]
步骤s2

5,根据can总线通信位时间t划分同步段、传播段、第一相位缓冲段以及第二相位缓冲段对应的时间份额数量,将该时间份额数量与提升前的时间份额数量进行对比,如图4、5以及6所示,从而验证可行性。
[0061]
比对过程具体为:
[0062]
先获取提升前速度v1以及提速后速度v2的比值:
[0063][0064]
v1是总线提速前的速度,v2是总线提速后的速度,给出m1和m2,分别是v1和v2所得的分度值,分别定义如下
[0065]
tq1=m1*t
min tq2=m2*t
min
[0066]
t1=n1*tq1 t2=n2*tq2
[0067]
当m1=m2时,tq1=tq2,n2=n1*a。
[0068]
当m1≠m2时,tq1≠tq2,时,tq1≠tq2,
[0069]
假设传播段时间t
prop_seg
≤x*tq,x为整数,有有位时间各段定义给出1 x y z=n,其中,1代表同步段的tq的整数值,x代表传播段的tq的整数值,y代表相位缓冲段1的tq整数值,z代表相位缓冲段2的tq的整数值有z y≥3,得到n≥4 x,即
[0070]
考虑到其中是提速后的传播段时间,有
[0071]
上述为设置tq的必要条件,也就是说当可以提速时,设定值n一定要满足上述条件,下面给出实例验证:
[0072]
假设传输速率为1mhz/bps,晶振频率是16mhz。
[0073]
因而m选择1,那么
[0074]
计算得到最小份额时间tq=m
×
t
min
=62.5ns。
[0075]
由于t
prop_seg
总延迟也就是传播段的时间长度,假设为200ns
×
2=400ns。
[0076]
设定can总线的位时间为16tq,也就是t=1000ns。则:同步段:1tq;传播段:7tq;相位缓冲段1:4tq;相位缓冲段2:4tq。
[0077]
提速至2mhz/bps,因而m选择1,tq=62.5ns。
[0078]
总的位时间t=500ns,总时间为8tq,则:同步段:1tq;传播段:4tq;相位缓冲段1:1tq;相位缓冲段2:2tq。
[0079]
图7为本发明实施例can网络中各元素的时间贡献示意图。
[0080]
在步骤s2之前,要想精确地定义指定到位传播段的最小时间,考虑网络中所有元素的时间贡献是必要的,具体贡献如图7所示,给出以下一组公式:
[0081]
t
res
=t
med
t
elec
[0082]
t
med
=l/v
prop
[0083]
t
elec
=t
sd
t
sc
t
tx
t
rx
[0084]
在原始定义中,传播段长度t
prop_seg
满足:
[0085]
min(t
prop_seg
)≥2(t
med
t
sd
t
sc
t
tx
t
rx
t
qual_sign
)
[0086]
在新定义下,传播段长度只需满足:
[0087][0088]
其中,t
res
为花费时间的总和,t
elec
为与网络电子特性相关的时间延迟,沿媒体传输信号所花费的时间t
med
;发送控制器输出信号到其终端所用的时间t
sd
;发送接口生成媒体上的信号端所用的时间t
tx
;接收接口传送信号到其接收控制器所用的时间t
rx
;接收控制器处理传入信号所用的时间t
sc
;t
qual_sign
为信号质量造成的延迟。
[0089]
在原始定义下要使can协议要正确运行,需要确保报文发送方能够在位时间内收到返回数据(例如在仲裁阶段),因此构成can网络标称位时间的“传播段”必须大于或等于传播时间(tres)的两倍,即
[0090]
t
prop_seg
≥2t
res
[0091]
而实际上考虑节点同步发送信号,仲裁阶段在传播段缩短一半的情况下仍然能够实现仲裁。
[0092]
步骤s3,对提升位速率后的can总线进行仲裁功能验证。
[0093]
图8为本发明实施例提速后网络仲裁功能示意图。
[0094]
如图8所示,步骤s3具体为:
[0095]
在仲裁场中,所有节点同步发送信号,当节点发送隐性位“1”时,节点e几乎在相同时刻发送显性位“0”,经过t1时间信号“1”与信号“0”相遇发生冲突,经由“线与”规则显性信号“0”改写隐性信号“1”并继续传播,再经由t2时间信号“0”返回到节点a。
[0096]
其中,t1=t2,传播段时间由最长距离的两个节点之间信号传播时间t3确定,t1 t2<t3,即传播段时间t3在只是原有时间的一半即不考虑往返的情况下仍能实现总线仲裁功能。
[0097]
基于上述条件,构成can网络标称位时间的“传播段”只需大于或等于传播时间:
[0098]
t
prop_seg
≥t
res
[0099]
传播段仅是标称位时间的一部分,若x表示该段占位时间的百分比,可以写为t
prop_seg
=x
·
t
bit
=x/v
bit

[0100]
假设telec的值和媒体的传播速度vprop是已知的,且x是预先设定的,则网络长度与选定位率之间的关系式为
[0101][0102]
设vprop=200000km/s=0.2m/ns(导线和光学媒体),得
[0103][0104]
当telec=100ns,x=0.66=66%时,形成如图9所示的曲线,利用该曲线,能够很快地确定可以从网络中获得的性能,以及网络可以支持的最大长度。位速率与总线最大长度密切相关,位速率越高,对应的总线长度越短。当然,要想更详细地研究网络,必须更精确地计算各种参数。
[0105]
步骤s4,对提升位速率后的can总线进行错误鉴定功能验证,从而得到验证后的can总线,该can总线拥有最大通信速率。
[0106]
其中,错误鉴定功能为在信息刚发出去时对总线状态进行监测,监测节点发出的信息是否正确。
[0107]
错误鉴定功能的验证为验证位错误鉴定是否可以在提升后的位时间内完成,若完成则can网络原有的错误鉴定功能不受影响。
[0108]
实施例作用与效果
[0109]
根据本实施例提供的一种基于can总线的报文传播速率的提升方法,由于将can总线数据帧格式中的确认场确认位从一位隐性位扩展到两位隐性位,将确认信号从显性位传出改写为从发送器的第二个隐性位传出,因此,原来在一位里信号往返传输的过程被分割为两位来完成,即位时间中的传播段时间缩小为原来的一半,相应的一位的位时间缩短,作为位时间倒数的位速率相应提高,而因为有位同步的存在所有节点同步发送信息,仍能实现原有can总线的位仲裁和错误鉴定功能。且在原有can总线协议基础上,仅通过对帧格式的简单变动,就能实现can总线传输速率的有效改善。除此之外,由于原有位时间段中的速率与位时间份额相对应,若想提速只能考虑相位缓冲段的时间份额的减少,而这会导致分频比对应的整数值的不可控的波动,从而使传播段的时间长度出现错误。本发明则是通过对传播段时间长度的改变,使分频比变化得到有效的控制,从而减少了错误的发生。
[0110]
上述实施例仅用于举例说明本发明的具体实施方式,而本发明不限于上述实施例的描述范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献