CN107919947B - 一种can总线长报文传输的编码方法 - Google Patents
一种can总线长报文传输的编码方法 Download PDFInfo
- Publication number
- CN107919947B CN107919947B CN201711213658.0A CN201711213658A CN107919947B CN 107919947 B CN107919947 B CN 107919947B CN 201711213658 A CN201711213658 A CN 201711213658A CN 107919947 B CN107919947 B CN 107919947B
- Authority
- CN
- China
- Prior art keywords
- frame
- message
- bit
- data
- frame type
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0006—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/4013—Management of data rate on the bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40215—Controller Area Network CAN
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Small-Scale Networks (AREA)
- Computer Security & Cryptography (AREA)
Abstract
本发明公开了一种CAN总线长报文传输的编码方法,包括以下步骤:步骤1、对CAN扩展帧中的29位标识符进行定义,定义规则为每帧信息包含了帧类型、目标地址、源地址、帧序号、报文序号以及要传送的有效数据;步骤2、发送节点按与步骤1一样的定义规则对长报文进行拆分打包,接收节点对每帧报文进行分析;步骤3、报文序号相同的帧,按帧序号0‑n从小到大一帧一帧顺序拼接起来,完成报文的拼接重组。本发明所述的编码方法,不占用数据区空间,8个字节的数据区可以全部用来传输数据。实现了CAN总线长报文数据的高效传输,通讯速率也仅受限于硬件设计,最高可达1Mbps。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种CAN总线长报文传输的编码方法。
背景技术
CAN总线是国际上应用最广泛的现场总线之一,被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。但是CAN总线数据帧长度最多为8个字节,当需要传输的数据多于8个字节时,发送节点需要把数据拆分成多帧发送,接受接收节点需要把接收到的多帧数据按顺序拼接成一个完整的报文。目前主流的CAN总线应用层通讯协议采用的多帧拼接编码支持的最大报文长度不到2000字节,不能满足工控领域一些具有大容量测点模件数据传输的需求,且有效报文传输速率较低。由于CAN总线一对多及广播集中方式传送和接受数据。针对多于8个字节的数据报文,是否能正确拼接报文直接影响到通讯数据的正确性。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种CAN总线长报文传输的编码方法,相比目前的主流CAN总线应用层通信协议,有效提升了报文传输最大长度,可以在不影响传输效率的情况下保证长报文数据传输的正确性及报文传输速率。
为实现上述目的,本发明提供了一种CAN总线长报文传输的编码方法,其特征在于,包括以下步骤:
步骤1、对CAN扩展帧中的29位标识符进行定义,定义规则为每帧信息包含了帧类型、目标地址、源地址、帧序号、报文序号以及要传送的有效数据;
步骤2、发送节点按与步骤1一样的定义规则对长报文进行拆分打包,接收节点对每帧报文进行分析;
步骤3、报文序号相同的帧,按帧序号0-n从小到大一帧一帧顺序拼接起来,完成报文的拼接重组。
进一步地,所述CAN扩展帧中的29位标识符的第1位标识符为帧类型高位。
进一步地,所述CAN扩展帧中的29位标识符的第2到8位标识符为目标地址。
进一步地,所述CAN扩展帧中的29位标识符的第9位标识符为帧类型低位。
进一步地,所述CAN扩展帧中的29位标识符的第10到16位为源地址位。
进一步地,所述CAN扩展帧中的29位标识符的第17到26位为帧序号位。
进一步地,所述CAN扩展帧中的29位标识符的第27到29位为报文序号位。
本发明的有益效果是:
本发明所述的编码方法,不占用数据区空间,8个字节的数据区可以全部用来传输数据。每帧信息的29位标识符包含了包间拼接重组所需要的所有信息,因此也不需要特别的管理连接。最多可传输0x3ff(1023)包数据,即可传输的报文最长为1023*8=8184字节。从而实现了CAN总线长报文数据的高效传输,通讯速率也仅受限于硬件设计,最高可达1Mbps。
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
图1是本发明的流程图。
具体实施方式
CAN基本协议规定了物理层和数据链路层,用户在应用CAN总线时,需要自行设计应用层协议。如SAE J1939,它描述了重型车辆现场总线的一种网络应用,包括CAN网络物理层定义、数据链路层定义、应用层定义、网络层定义、故障诊断和网络管理。
SAE J1939在通讯中其功能分为数据的拆分打包和重组及连接管理两部分。其数据帧是以PDU(协议数据单元)为单位传送信息,每个PDU相当于CAN协议中的一帧。PDU由29位标识符和0~8个字节的数据所组成,如表l所示。SAE J1939利用29位标识符(CAN扩展帧)提供一种完整的网络定义。表1中,P位为决定报文优先级的前3位;R是保留位:DP是数据页位;PF场识别两个PDI格式(PDUl、PDU2):替代远程请求位SRR和标识符扩展位IDE在CAN2.0B中己详细定义,并未包含在PDU内;PS场由PF值决定其包含一个目标地址(DA)还是包含一个对PDU格式PF的组扩展(GE);SA为源地址。应用层定义了针对车辆应用的信号(参数)和报文(参数组)。应用层通过参数描述信号,给每个参数分配了一个19位的可疑参数编号(SP-N);此外还通过参数组描述报文,给每个参数组分配了一个24位的参数组编号(PGN)。SPN用来标识与ECU相关的故障诊断元素、部件或参数组中参数;PGN用来唯一标识一个特定参数组。
SAE J1939协议在数据链路层定义了多包数据传输的方法。在进行长报文数据传输时,规定了每帧信息数据区首字节定义为帧编号,其余7个字节为有效数据,通过帧编号来进行多帧报文的分拆与拼接。
表1SAE J1939帧格式
SAE J1939协议在数据链路层定义了多包数据传输的方法。在进行长报文数据传输时,规定了每帧信息数据区首字节定义为帧编号,其余7个字节为有效数据的帧编号需要占用数据区的1个字节,这样每帧信息所携带的有效数据就比正常CAN帧少了一个字节。按SAE J1939协议长报文编码方法,最多可传输255包数据,即可传输的报文最长仅为255*7=1784字节。
在SAE J1939协议中,为完成长报文数据传输,需要先在节点之间建立连接管理,节点开始通信和结束通信前需要进行“握手”和“分离”,用于管理节点间连接的建立与关闭。这样的通信机制虽然进一步确保了CAN通信的可靠性,但实际却降低了有效报文的传输速率,因此在SAE J1939协议中,实际的长报文通讯速率最大为250Kbps左右,小于CAN总线规定的正常速率(500kbps)。
SAE J1939协议指定了传输类型、报文结构及其分段、流量检查等,对报文内容本身也做了确切的定义,应用程序代码包含了CAN总线非常具体的应用层协议,修改和移植非常不方便,且通讯速率只能达到250kbps,因此有非常大的局限性。
本发明提出的编码方法,完全基于异步通信的机制,使CAN总线应用层通讯不需要特殊的连接管理,能在更高通讯速率下完成CAN总线更长报文的正确传输。如图1所示,在本发明中,CAN总线网通讯是在遵循CAN2.0B协议基础上,每个通讯帧信息包含标识符和应用层数据两部分。为了实现CAN总线长报文的通讯,又不影响通讯速率和数据传输效率,本专利对CAN扩展帧中的29位标识符进行了定义(见表2所示)。每帧信息包含了帧类型、目标地址、源地址、帧序号,报文序号以及要传送的有效数据,这样每帧报文都有了确定的描述,发送节点按此规则对长报文进行拆分打包,接收节点对每帧报文进行分析,报文序号相同的帧,按帧序号0-n从小到大一帧一帧顺序拼接起来,完成报文的拼接重组,从而实现CAN总线的长报文通讯。
表2标识符定义
表3帧类型定义:
例如节点1向节点2第3次发送报文,该报文有4000个字节数据。那么该报文需要拆分成500帧数据连续发送,首帧、中间帧、尾帧的编码如下表4所示。
表4
相比现有的CAN多包传输机制,本发明所述的编码方法,不占用数据区空间,8个字节的数据区可以全部用来传输数据。每帧信息的29位标识符包含了包间拼接重组所需要的所有信息,因此也不需要特别的管理连接。最多可传输0x3ff(1023)包数据,即可传输的报文最长为1023*8=8184字节。从而实现了CAN总线长报文数据的高效传输,通讯速率也仅受限于硬件设计,最高可达1Mbps。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (1)
1.一种CAN总线长报文传输的编码方法,其特征在于,包括以下步骤:
步骤1、对CAN扩展帧中的29位标识符进行定义,定义规则为每帧信息包含了帧类型、目标地址、源地址、帧序号、报文序号以及要传送的有效数据;
步骤2、发送节点按与步骤1一样的定义规则对长报文进行拆分打包,接收节点对每帧报文进行分析;
步骤3、报文序号相同的帧,按帧序号0-n从小到大一帧一帧顺序拼接起来,完成报文的拼接重组;
所述CAN扩展帧中的29位标识符的第1位标识符为帧类型高位;
所述CAN扩展帧中的29位标识符的第2到8位标识符为目标地址;
所述CAN扩展帧中的29位标识符的第9位标识符为帧类型低位;
所述CAN扩展帧中的29位标识符的第10到16位为源地址位;
所述CAN扩展帧中的29位标识符的第17到26位为帧序号位;
所述CAN扩展帧中的29位标识符的第27到29位为报文序号位;
所述帧类型表示为:当帧类型高位、帧类型低位分别为0,0时,表示报文中仅有一帧;当帧类型高位、帧类型低位分别为0,1时,表示报文中的首帧;当帧类型高位、帧类型低位分别为1,0时,表示报文中的中间帧;当帧类型高位、帧类型低位分别为1,1时,表示报文中的尾帧。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711213658.0A CN107919947B (zh) | 2017-11-28 | 2017-11-28 | 一种can总线长报文传输的编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711213658.0A CN107919947B (zh) | 2017-11-28 | 2017-11-28 | 一种can总线长报文传输的编码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107919947A CN107919947A (zh) | 2018-04-17 |
CN107919947B true CN107919947B (zh) | 2020-09-29 |
Family
ID=61897836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711213658.0A Active CN107919947B (zh) | 2017-11-28 | 2017-11-28 | 一种can总线长报文传输的编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107919947B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109379264B (zh) * | 2018-10-16 | 2021-07-06 | 西北铁道电子股份有限公司 | 一种基于can2.0的多板卡通信设备、方法及系统 |
CN110719231B (zh) * | 2019-10-25 | 2023-04-25 | 深圳市鹏巨术信息技术有限公司 | 一种数据处理方法、装置、设备及可读存储介质 |
CN111526127B (zh) * | 2020-03-31 | 2022-04-12 | 潍柴动力股份有限公司 | 变量信息的配置方法及装置 |
CN111464410A (zh) * | 2020-03-31 | 2020-07-28 | 潍柴动力股份有限公司 | 变量信息的配置方法及装置 |
CN112596999A (zh) * | 2020-12-08 | 2021-04-02 | 航天科技控股集团股份有限公司 | 汽车仪表的诊断故障测试方法 |
CN113079074A (zh) * | 2021-03-25 | 2021-07-06 | 成都纵横自动化技术股份有限公司 | 一种基于can总线的协议栈通信方法、装置和存储介质 |
CN113973025A (zh) * | 2021-09-30 | 2022-01-25 | 北京轩宇空间科技有限公司 | 基于can总线的星载计算机通讯可靠性与容错设计方法 |
CN114422289B (zh) * | 2022-01-11 | 2024-03-19 | 国网电力科学研究院有限公司 | 一种电动汽车can报文的传输方法及装置 |
CN115174304B (zh) * | 2022-06-24 | 2023-12-22 | 南京国电南自维美德自动化有限公司 | 一种识别符分段自定义的can总线通信方法 |
CN115174307A (zh) * | 2022-07-07 | 2022-10-11 | 合肥智行通智能科技有限公司 | 一种支持can总线传输多于8字节数据的通讯方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8527374B2 (en) * | 2008-03-21 | 2013-09-03 | Rochester Institute Of Technology | Method and apparatus for data acquisition in an asset health management system |
CN101916089B (zh) * | 2010-07-12 | 2012-08-08 | 金龙联合汽车工业(苏州)有限公司 | 可配置客车车身控制系统及其参数配置方法 |
JP6595885B2 (ja) * | 2015-01-20 | 2019-10-23 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 不正対処方法及び電子制御ユニット |
CN106452667B (zh) * | 2016-08-30 | 2019-06-07 | 中国第一汽车股份有限公司 | 一种商用车can通信传输方法 |
CN106850660B (zh) * | 2017-02-28 | 2020-05-19 | 大连理工大学 | 一种基于SocketCAN的SAE J1939传输协议的设计方法 |
CN107147478B (zh) * | 2017-07-07 | 2020-10-27 | 河南辉煌科技股份有限公司 | 基于can2.0长报文数据标准帧的组织方法 |
-
2017
- 2017-11-28 CN CN201711213658.0A patent/CN107919947B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107919947A (zh) | 2018-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107919947B (zh) | 一种can总线长报文传输的编码方法 | |
US10530606B2 (en) | Method for transmitting data via a serial communication bus, bus interface, and computer program | |
CN107258076B (zh) | 通信网络中的数据传输 | |
KR101673304B1 (ko) | 차량용 이더넷을 위한 avb 스트림 제어 방법 및 장치 | |
WO2020150872A1 (en) | Ethernet and controller area network protocol interconversion for in-vehicle networks | |
CN112929367B (zh) | 一种Profinet网络与工业IPv6骨干网的协议转换方法 | |
JP5716133B2 (ja) | 低エラー率、超高速シリアル通信が可能な産業用コントローラ装置およびその駆動方法 | |
US20060161705A1 (en) | Method for regulating a transmission with short data telegrams | |
CN107026889A (zh) | 网络中的通信节点的操作方法 | |
US10496588B2 (en) | Method for coupling a bus system of an automation system | |
CN112019440A (zh) | 基于标识符复用的can总线组播方法 | |
CN101227334B (zh) | 一种操作管理维护协议数据单元的封装方法和处理方法 | |
CN109688071B (zh) | 一种灵活以太网报文转发方法及装置 | |
CN106713142B (zh) | 在can总线上传输ip报文的方法及利用can总线网络构建的ip局域网 | |
CN110958590A (zh) | 一种基于多协议边缘计算网关的异构设备集成系统 | |
CN113472482B (zh) | 应用于5g网络数据通信的保护采样值数据帧方法及系统 | |
CN111314242B (zh) | 一种支持多通道的包缓存调度仿真验证方法及系统 | |
CN112543142B (zh) | 基于fpga实现rstp环网协议的方法和装置 | |
CN101950485B (zh) | 交通信号灯数字组网设备 | |
CN1293726C (zh) | 在网络链路上实现快速传输桥接数据的方法 | |
CN115174370B (zh) | 一种分布式混合数据确定性传输装置及方法 | |
KR101578065B1 (ko) | Can 패킷을 패키징하는 방법과 이를 이용하는 장치들 | |
CN115460164B (zh) | 一种基于arinc664协议的组包方法 | |
TWI813159B (zh) | 網路裝置連線狀態之偵測系統及其方法 | |
CN111431851B (zh) | 数据包下载方法、装置及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |