CAN报文填充位长度仿真研究

2017-09-28 07:56孙博张丽波
电子测试 2017年8期
关键词:数据流校验报文

孙博,张丽波

(1.吉林大学计算机科学与技术学院,吉林长春,130012;2.中国第一汽车股份有限公司技术中心汽车电子部,吉林长春,130011)

CAN报文填充位长度仿真研究

孙博1,张丽波2

(1.吉林大学计算机科学与技术学院,吉林长春,130012;2.中国第一汽车股份有限公司技术中心汽车电子部,吉林长春,130011)

本文建立了CAN网络标准报文和扩展报文的报文填充位长度仿真模型,并通过该模型获得了CAN网络标准报文和扩展报文的填充位长度的分布律和数学期望。经对比分析得知:当报文长度相同时,CAN扩展报文的填充位长度大于CAN标准报文的填充位长度。该研究成果已成功应用于多款车型的CAN网络设计,用于预测各CAN网段的总线负载率,应用结果表明该仿真模型偏差<+/-0.5,仿真准确度较高,有效地提高了CAN网络开发的工作效率。

CAN标准报文;CAN扩展报文;填充位长度

0 引言

整车CAN网络拓扑设计是整车网络设计的第一项工作。在完成整车网段划分后,将分别估算各网段的总线负载率,当总线负载率大于某阈值时,需要重新对网段进行划分以提高网络的可扩展性。如果总线负载率预测不准确,将增大在项目开发后期变更整车网络拓扑的可能性。一旦整车网络拓扑发生变化,以此为基础完成的所有后续工作,如CAN网络通信矩阵、CAN通信协议、各控制器的通信软件、整车网络线束、CAN网络测试策略等,都将发生巨大变化[1]。

CAN网络总线负载率通常是由以下公式计算得到的:CAN网络总线负载率= (每帧CAN报文的位数× 所有网络节点在单位时间内发送的CAN报文数量之和)/(单位时间×总线通信速率)[2]。该计算公式中<每帧CAN报文的位数>为网络设计时的理论值,没有考虑到CAN报文数据流传输时填充位传输所占用的总线负载,使得计算结果与实测结果之间存在較大的偏差。为此,我们进行了CAN报文填充位长度仿真研究,以提高总线负载率预测的准确性。

1 建立CAN报文填充位长度仿真模型

1.1 建立CAN标准报文填充位长度仿真模型

根据SAE J1939-21[3],CAN标准报文由7个位场组成,分别为帧起始(SOF)、仲裁场(arbitration field)、控制场 (control field)、数据场 (data field)、循环冗余校验场(CRC)、应答场(ACK field)和帧结束(EOF)。CAN标准报文的位场组成如图1所示,其中帧起始(SOF)、仲裁场、控制场、数据场和循环冗余校验序列需要按照位填充规则进行传送。

图1 CAN标准报文的位场组成

建立CAN标准报文填充位长度仿真模型按如下6步进行。

(1)根据CAN标准报文的位场定义,建立帧起始、仲裁场、控制场和数据场的数据流,并存储于字符数组变量M1[j]中,其程序主要内容描述如下:

M1[0]=’0’; //SOF=0

M1[1]~M1[11]= random(2); //11位ID为随机数

M1[12]=’0’; //CAN标准报文的RTR=0

M1[13]=’0’; //CAN标准报文的IDE=0M1[14]=’0’; //CAN标准报文的r0=0 M1[15]~M1[18]= DLC; //将报文长度转化为数据流M1[19]~M1[18+len*8]= random(2); //数据场为随机数其中报文长度与数据流的转化关系见表1。

表1 报文长度与数据流的转化关系

(2)计算循环冗余校验序列。

根据ISO 11898-1定义[4], 帧起始、仲裁场、控制场和数据场的数据流右补15个0作为被除数,生成多项式X15+ X14+ X10+ X8+ X7+ X4+ X3+ 1作为除数,二进制多项式除法的余数即为循环冗余校验序列。计算循环冗余校验序列的程序流程图如图2所示。其中M3为二进制多项式除法的被除数和余数所共用 ,P为除数,D为商。

图2 计算循环冗余校验序列的程序流程图

(3)将循环冗余校验序列合并于字符数组变量M1,形成CAN标准报文的需要按照位填充规则进行传送的原始二进制数据流M1。

(4)将M1中的CAN报文数据流按CAN协议规定的填充规则进行填充形成CAN报文填充位流并存储于二维数据M2。

根据ISO 11898定义[4],在按照位填充规则进行传送的原始二进制数据流中,CAN发送器只要检测到发送位流中连续存在5个相同取值的位,就自动在位流里插入一个补码位。当程序检测到M2中存在字符串“00000”或“11111”时,将M2从当前位开始均后移一位,并当前位设置为填充位“1”或“0”。

例如:当报文长度为1字节时,拟传送的CAN报文数据流为0001010000010001000001101001010001000000111101100(共49位),则在采用位填充后的位流为00010100000110001000001110 10010100010000010111101100(共52位),如图3所示,图中矩形框内的位为填充位。

图3 CAN报文位填充示例

(5)用M2的CAN报文填充位流长度减去M1的CAN报文数据流长度求得CAN报文填充位长度LS。

(6)为提高仿真准确性,针对每条报文进行了500次仿真,并根据公式(1)计算500个仿真数据 的数学期望,并以此作为报文填充位长度的仿真结果。

式中:Ei——CAN报文填充位长度的数学期望。

Li——CAN报文填充位长度。

Pi——CAN报文填充位长度=i的报文的分布律。

1.2 建立CAN扩展报文填充位长度仿真模型

根据SAE J1939-21[3],CAN扩展报文的位场组成如图4所示,其中帧起始(SOF)、仲裁场、控制场、数据场和循环冗余校验序列需要按照位填充规则进行传送。

图4 CAN扩展报文的位场组成

建立CAN扩展报文填充位长度仿真模型的方法与建立CAN标准报文填充位长度仿真模型的方法类似。

2 CAN报文填充位长度仿真结果分析

2.1 CAN标准报文填充位长度仿真结果分析

运行CAN标准报文填充位长度仿真模型,得到针对各报文长度的CAN标准报文填充位长度分布律,详见表2,如图5所示。

表2 针对各报文长度的CAN标准报文填充位长度分布律

1 38 29.6 25.4 18 10.6 7.6 3.2 2.6 0.6 2 30.8 31.6 29.6 25.4 19 13.2 8.2 8.2 5.6 3 10.4 16.2 21.8 22.8 23.6 22.2 19 12.2 11.2 4 1.8 5.4 11.8 15.6 22.4 20.2 22.4 21.8 17.6 5 0.8 2.8 8.8 13.2 16.6 20.4 17.6 17.6 6 1.2 3.8 6.2 11.412.416.2 19 7 0.4 0.2 1.6 5.2 8.6 10.6 12.4 8 0.4 0.6 2.4 3.4 6.2 7.4 9 0.4 0.4 1.6 2 5 10 0 0.2 0 2 2.2 11 0.2 0 0.4 0.4 1 12 0 0.2 0.2 13 0.2 0.2 14 0

图5 针对各报文长度的CAN标准报文填充位长度分布律

其中,报文长度=8的CAN标准报文填充位长度分布情况如图6所示。从图6可知:针对报文长度=8的标准报文,填充位长度等于6的概率最大为19,即在500次仿真时有95次的填充位长度等于6。

图6 报文长度=8的CAN标准报文填度位长度统计结果

运行CAN标准报文填充位长度仿真模型,得到针对各报文长度的CAN标准报文填充位的数学期望,详见表3。

表3 CAN标准报文填充位的数学期望

由表3知:CAN标准报文与数据场长度成正比。当数据场长度=0时,CAN标准报文的数学期望为1.38;当数据场长度=8时,CAN标准报文的数学期望为5.47。

2.2 CAN扩展报文填充位长度仿真结果分析

运行CAN扩展报文填充位长度仿真模型,得到针对各报文长度的CAN扩展报文填充位长度分布律,详见表4,如图7所示。

表4 针对各报文长度的CAN扩展报文填充位长度分布律

图7 针对各报文长度的CAN扩展报文填充位长度分布律

其中,报文长度=8的CAN扩展报文填充位长度分布情况如图8所示。从图8可知:针对报文长度=8的扩展报文,填充位长度等于5的概率最大为18.4,即在500次仿真时有92次的填充位长度等于5。

图8 报文长度=8的CAN扩展报文填度位长度统计结果

运行CAN扩展报文填充位长度仿真模型,得到针对各报文长度的CAN扩展报文填充位的数学期望,详见表5。

表5 CAN扩展报文填充位的数学期望

由表5知:CAN扩展报文填充位长度LS与数据场长度成正比。当数据场长度=0时,CAN扩展报文填充位长度LS的数学期望为2.08;当数据场长度=8时,CAN扩展报文填充位长度LS的数学期望为6.21。

CAN标准报文和扩展报文的填充位长度的数学期望对比情况如图9所示。从图9可知:当报文长度相同时,CAN扩展报文的填充位长度大于CAN标准报文的填充位长度。

3 结束语

在CAN网络设计阶段,计算CAN总线负载率时通常没有考虑填充位传输所占用的总线负载,使得计算结果与实测结果之间存在較大的偏差。为降低因CAN网络总线负载率预测不准确导致的网络设计变更风险,以提高开发效率,我们开展了CAN报文填充位长度仿真研究。

本文建立了CAN网络标准报文和扩展报文的报文填充位长度仿真模型,并通过该模型获得了CAN网络标准报文和扩展报文的填充位长度的分布律和数学期望,以预测各CAN报文占用的总线负载率,用作网络设计的依据。该研究成果已成功应用于多款车辆的CAN网络设计,CAN报文填充位长度仿真模型的应用结果见表6,表中实测值为一段时间内测试结果的平均值。从表6可知CAN报文填充位长度仿真模型偏差<+/-0.5(最大为0.34),仿真准确度较高。

图9 CAN标准报文和扩展报文的填充位长度的数学期望对比

表6 CAN报文填充位长度仿真模型的应用结果

[1]论文<基于数理统计的商用车CAN网络总线负载率预测研究>(来自<2016中国汽车工程学会年会论文集>).

[2]专利文献<在控制局域网网络结构中监控整个网络的运行状态的方法>(公开号:CN102111286A;公开日:2011-06-29).

[3]SAE J1939-21 Recommended Practice for a Serial Control and Communications Vehicle Network:Data Link Layer.

[4]ISO 11898-1 Road vehicles— Controller area network(CAN):Data link layer and physical signaling.

Simulation Research on the stuff bit length of CAN message

Sun Bo1,Zhang Libo2
(1.School of computer science and technology Jilin University,ChangChun Jilin,130012; 2.Automotive Electronics Department, China FAW Co.Ltd R&D Center,ChangChun Jilin,130011)

A simulation model of the stuff bit length of the CAN standard message and the extended message has been established in the paper, and the distribution law and mathematical expectation of the CAN message stuff bit length is obtainedbased on the model. The comparative analysis shows that the stuff bit length of the CAN extended message is greater than that of the CAN standard message when the message length is the same. The research results have been successfully applied to a variety of vehicle CAN network design to predict the bus load of each CAN message, and application results show that the simulation model deviation is less than +/-0.5, the simulation accuracy is high, and the work efficiency of CAN network is improved effectively.

CAN standard message; CAN extended message; the stuff bit length.

猜你喜欢
数据流校验报文
基于J1939 协议多包报文的时序研究及应用
CTCS-2级报文数据管理需求分析和实现
汽车维修数据流基础(下)
浅析反驳类报文要点
一种提高TCP与UDP数据流公平性的拥塞控制机制
炉温均匀性校验在铸锻企业的应用
ATS与列车通信报文分析
基于数据流聚类的多目标跟踪算法
大型电动机高阻抗差动保护稳定校验研究
基于加窗插值FFT的PMU校验方法