一种提高CAN协议数据帧传输效率方法与流程

文档序号:32785893发布日期:2023-01-03 18:48阅读:49来源:国知局
一种提高CAN协议数据帧传输效率方法与流程
一种提高can协议数据帧传输效率方法
技术领域
1.本发明涉及控制器局域网络技术相关领域,尤其涉及一种提高can协议数据帧传输效率方法。


背景技术:

2.can(controller area network)的全称为控制器局域网络,是iso国际标准化的串行通信协议,具有很高的可靠性,广泛应用于汽车电子、工业自动化、船舶、医疗设备、工业设备等方面;
3.中国专利:cn201810542754.8涉及一种改进的can协议数据帧结构及数据处理方法,将识别符后4位定义为data1,将64位的原数据场定义为data2,所述data1用于存放命令,所述data2,用于存放参数或数据。本发明将有效传输数据扩展至68位,在不改变原数据帧的整体结构的前提下,有效提高了单个数据帧的有效数据传输效率;
4.上述专利和现有专利中的数据帧是发送单元向接收单元传送数据的帧为标准格式,只具有11bit的id,标准格式其数据帧如图1所示,在传输数据为最大的64bit时,传统can数据帧传输效率为仅49%。


技术实现要素:

5.因此,为了解决上述不足,本发明提供一种提高can协议数据帧传输效率方法。
6.为了实现上述目的,本发明采取以下技术方案:一种提高can协议数据帧传输效率方法,步骤如下:
7.s1将can协议数据帧格式设置为标识符有29bit的拓展格式;
8.s2掩码设置为0x1e00;
9.s3上述s2中即只检测标识符最高4bit,剩余的25bit作为数据包处理。
10.优选的,所述标识符划分组包结构为:4bit的目标id、4bit的源id、6bit的包序列号、2bit的帧属性和7bit的帧序列id,剩余6bit是未使用的保留位。
11.优选的,发数据帧步骤如下:
12.s011准备数据,并且发送数据帧;
13.s012程序需要对can拓展标识符进行封包;
14.s013在s012中填入所述组包结构(目标id、源id、包序号、帧属性和帧序列id);
15.s014将数据帧(id区域、数据缓存、数据长度)存入can邮箱;
16.s015最后,调用驱动函数实现发送。
17.优选的,发数据帧步骤如下:
18.s011准备需要发送数据;
19.s012程序需要对can拓展标识符进行封包;
20.s013在s012中填入所述组包结构(目标id、源id、包序号、帧属性和帧序列id);
21.s014将数据帧(id区域、数据缓存、数据长度)存入can邮箱;
22.s015最后,调用驱动函数实现发送数据帧。
23.优选的,收数据帧步骤如下:
24.s021接收数据帧;
25.s022当仲裁段最高4bit符合与接收邮箱一致,则判断为需要接收的邮件;
26.s023接收后,将邮箱的标识符按照扩展id段组包结构解析;
27.s024将组包和数据传入接收缓存;
28.s025最后,完成一个数据帧接收,通知线程接收到can数据。
29.本发明的有益效果:
30.本发明将can协议数据帧格式设置为拓展格式,拓展格式的标识符一共有29bit,将掩码设置为0x1e00,即只检测标识符最高4bit,剩余的25bit作为数据包处理,将标识符进行以下划分:4bit的目标id、4bit的源id、6bit的包序列号、2bit的帧属性、7bit的帧序列id,剩余的6bit是未使用的保留位,在拓展格式下,考虑ifs(帧间隔标志位),当传输数据为最大的64bit时,传统can数据帧传输效率为49%,本发明can数据帧的传输效率为68%,可提升约19%的传输效率。
附图说明
31.图1是本发明数据帧结构示意图;
32.图2是本发明组包结构示意图;
33.图3是本发明数据帧结构对比示意图;
34.图4是本发明发数据帧流程结构示意图;
35.图5是本发明收数据帧流程结构示意图。
具体实施方式
36.为了进一步解释本发明的技术方案,下面通过具体实施例进行详细阐述。
37.请参阅图1、图2和图3,本发明提供一种提高can协议数据帧传输效率方法,将can协议数据帧格式设置为拓展格式,拓展格式数据帧组成及位域如图1所示,拓展格式的标识符一共有29bit,将掩码设置为0x1e00,即只检测标识符最高4bit,剩余的25bit作为数据包处理。
38.将标识符进行以下划分:4bit的目标id、4bit的源id、6bit的包序列号、2bit的帧属性、7bit的帧序列id,剩余的6bit是未使用的保留位,组包结构如图2所示。
39.请参阅图4,本发明提供一种提高can协议数据帧传输效率方法,发数据帧:在发送一个数据帧时,程序需要对can拓展标识符进行封包,分别填入上文所述的目标id、源id、包序号、帧属性、帧序列id,将id区域、数据缓存、数据长度存入can邮箱,调用驱动函数实现发送数据帧。
40.请参阅图5,本发明提供一种提高can协议数据帧传输效率方法,收数据帧:在接收一个数据帧时,只要仲裁段最高4bit符合与接收邮箱一致,则判断为需要接收的邮件,接收邮件后,将邮箱的标识符按照位域进行解析,填入接收数据帧结构,即完成一个数据帧接收。
41.本实施例中在拓展格式下,考虑ifs(帧间隔标志位),本发明与传统can数据帧传
输效率对比如下表所示:
[0042][0043][0044]
当传输数据为最大的64bit时,传统can数据帧传输效率为49%,本发明can数据帧的传输效率为68%,可提升约19%的传输效率。
[0045]
以上所述仅为本发明的优选实例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。


技术特征:
1.一种提高can协议数据帧传输效率方法,其特征在于:实现步骤如下:s1将can协议数据帧格式设置为标识符有29bit的拓展格式;s2掩码设置为0x1e00;s3上述s2中即只检测标识符最高4bit,剩余的25bit作为数据包处理。2.根据权利要求1所述一种提高can协议数据帧传输效率方法,其特征在于:所述标识符划分组包结构为:4bit的目标id、4bit的源id、6bit的包序列号、2bit的帧属性和7bit的帧序列id,剩余6bit是未使用的保留位。3.根据权利要求2所述一种提高can协议数据帧传输效率方法,其特征在于:发数据帧步骤如下:s011准备需要发送数据;s012程序需要对can拓展标识符进行封包;s013在s012中填入所述组包结构(目标id、源id、包序号、帧属性和帧序列id);s014将数据帧(id区域、数据缓存、数据长度)存入can邮箱;s015最后,调用驱动函数实现发送数据帧。4.根据权利要求2所述一种提高can协议数据帧传输效率方法,其特征在于:收数据帧步骤如下:s021接收数据帧;s022当仲裁段最高4bit符合与接收邮箱一致,则判断为需要接收的邮件;s023接收后,将邮箱的标识符按照扩展id段组包结构解析;s024将组包和数据传入接收缓存;s025最后,完成一个数据帧接收,通知线程接收到can数据。

技术总结
本发明公开了一种提高CAN协议数据帧传输效率方法,本发明将CAN协议数据帧格式设置为拓展格式,拓展格式的标识符一共有29bit,将掩码设置为0x1E00,即只检测标识符最高4bit,剩余的25bit作为数据包处理,将标识符进行以下划分:4bit的目标ID、4bit的源ID、6bit的包序列号、2bit的帧属性、7bit的帧序列ID,剩余的6bit是未使用的保留位,在拓展格式下,考虑IFS(帧间隔标志位),当传输数据为最大的64bit时,传统CAN数据帧传输效率为49%,本发明CAN数据帧的传输效率为68%,可提升约19%的传输效率。可提升约19%的传输效率。可提升约19%的传输效率。


技术研发人员:李昊斌 陈建明
受保护的技术使用者:福建北峰通信科技股份有限公司
技术研发日:2022.09.24
技术公布日:2023/1/2
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1