基于CompactRIO的车辆CAN总线传输策略研究*
2017-08-09彭文家金昊龙
彭文家,宋 萍,杨 诚,金昊龙
(1.北京理工大学仿生机器人与系统教育部重点实验室,北京 100081; 2.中国北方车辆研究所,北京 100072)
基于CompactRIO的车辆CAN总线传输策略研究*
彭文家1,宋 萍1,杨 诚1,金昊龙2
(1.北京理工大学仿生机器人与系统教育部重点实验室,北京 100081; 2.中国北方车辆研究所,北京 100072)
针对装甲车辆动态工况下的多参数测试需求和CAN总线测试网络拓扑结构,提出了一种基于主、从CAN节点间应答模式的实时数据传输策略,开发了基于该传输策略的CAN总线通信协议;研究了协议中的优先级分配、标识符划分和CAN帧数据域定义;编写了LabVIEW上位机界面和仿真程序;基于CompactRIO采集平台搭建了试验验证平台,进行了传输策略的可行性验证;结果表明,在该CAN总线数据传输策略的控制下,测试系统能实现145路信号的实时采集、传输、存储和显示,满足测试需求。
车辆;CAN总线;数据传输策略; CompactRIO; LabVIEW
前言
试验测试是装甲车辆研发过程中必不可少的环节,目前车辆的试验测试主要采用与实车同方案的试件进行试验室台架试验或专项试验,测试结果难以如实反映装甲车辆野外工况下的真实状况。因此,急需开展装甲车辆动态工况下的实时测试技术的研究,为车辆的改进设计和可靠性的提高提供有效的参考数据[1-2]。
CAN总线作为一种串行、多主的数据通信总线,因其抗干扰能力强、易扩展、传输效率高、集成度高的特点,已经广泛应用于车辆测试中[3]。当前,在基于CAN总线的车辆测试技术研究方面已取得了许多成果。文献[4]和文献[5]中针对装甲车辆电气状态监测的缺陷,开发了短帧实时CAN通信协议,实现了对电气系统的实时监测。文献[6]中针对悬架应力测试系统数据传输量大、线路复杂的特点,提出了基于CAN总线的车辆悬架应力测试方案。文献[7]中针对工程车辆机械电气动力设备常发生故障的问题,提出了基于CAN总线的在线监测系统。这些测试方法主要都是针对车辆的部件或分系统进行测试,难以全面反映出实车动态工况下的状态。
因此,本文中针对实车动态工况下整车测试的需求,对整车多信号实时采集背景下的CAN总线传输策略进行了研究,并以美国NI(national instruments)公司的CompactRIO作为采集平台,对传输策略进行了试验验证,实现了对车辆145路信号的实时采集、传输、存储和显示。
1 测试需求分析
本文中研究的装甲车辆测试系统须对总共145路信号进行测试数据的采集,根据车载信号采集节点的实际布设情况,形成了CAN1和CAN2两个采集网络,相应的CAN总线网络拓扑结构如图1所示。其中CAN1采集节点和CAN2采集节点为主机节点位于CompactRIO采集平台:综合信号、动力信号、传动信号和空滤器信号的采集节点为分布于车辆上的4个从机节点,所有采集的数据统一经CompactRIO采集平台汇总并发送至上位机进行实时显示。
图1 CAN总线网络拓扑结构
从图1可知,CAN1采集网络为点对点网络,由CAN1采集节点和综合信号采集节点构成,综合信号调理节点负责106路信号的采集调理,其中有3路50Hz的加速度信号、13路20Hz的压力信号、90路5Hz的温度信号。CAN2采集网络为一对多网络,由CAN2、传动信号、动力信号和空滤器信号的采集节点组成,共负责39路信号的采集。其中,传动信号采集节点负责8路100Hz转矩信号和20路20Hz压力信号的采集;动力信号采集节点负责1路100Hz油门开度信号和2路20Hz速度信号的采集;空滤器信号采集节点负责4路20Hz压力信号和4路5Hz温度信号的采集。
2 测试数据传输策略的制定
整个车载CAN总线采集网络所需采集信号数目多达145路,不仅不同采集节点的信号数目存在差异,而且同一采集节点不同测试信号的采样频率也不一致,此外,测试系统在存储测试数据的基础上,还需满足所有信号采样值的上位机实时显示要求。因此,测试数据的传输策略尤为重要,不仅要保证145路信号能从各个信号采集节点实时传输至主机采集节点,而且还必须保证各个信号采样值在时序逻辑上的正确性。
基于上述分析,提出了一种基于主从节点应答模式的CAN总线数据传输策略,即主机采集节点作为测试数据传输流程的发起者,周期性发送时钟数据包,各从机信号采集节点作为受控者,接收主机节点发送的时钟数据包,并根据所接收时钟数据包中的累积时间值与信号采样周期之间的数值关系上传测试数据包,各变量满足式(1)和式(2)。
t=(n1-1)T,n1∈N+
(1)
(2)
式中:t为时钟数据包中的累积时间值;T为时钟数据包的发送周期;n1为时钟数据包的发送个数;f为信号的采样频率;n2为匹配系数;N+为正整数集合。
式(1)为主机采集节点时钟数据包中累积时间t的计算方法。T定义为整个采集网络中最高采样频率信号的采样周期,本文中最高信号采样频率为100Hz,即T值为10ms,时钟数据包发送个数n1初值为1。由此可知,第一个时钟数据包中t为0,随后以10ms为基数逐次累加。式(2)为从机信号采集节点发送测试数据包的判断关系式,其中信号采样频率f的倒数为该采样频率下信号的采样周期,匹配系数n2初值为1。
将t为0的第一个时钟数据包作为采集开始命令,从机信号采集节点不上传测试数据包。随后,从机信号采集节点每次只上传采样频率满足式(2)的采样值。例如,100Hz信号的采样周期是10ms,其与时钟数据包发送周期10ms是1倍关系,因此信号采集节点每次收到时钟数据包时均要上传包含100Hz信号采样值的测试数据包。同理,20Hz信号的采样周期为50ms,其为时钟数据包发送周期10ms的5倍,因此只有当信号采集节点收到的时钟数据包中t值为50的正整数倍时,才上传包含该信号采样值的测试数据包。其他采样频率信号的发送规律依此类推。
基于上述说明可知,根据本文中提出的CAN总线数据传输策略,各个信号的最新采样值均能由信号采集节点及时上传至主机采集节点,并实现了同一信号采样值的依次上传,既满足了测试系统对测试数据显示的实时性要求,又保证了各个信道采样值的时序逻辑。
3 CAN传输协议的设计
CAN传输协议规定了CAN总线通信过程中数据的交互机制、数据表示形式和数据格式,是CAN节点之间相互沟通、共享和传输数据信息须共同遵守的约定[8]。综合考虑本文中提出的测试数据传输策略的实时性需求和涉及CAN总线采集网络拓扑结构中的节点数目,CAN传输协议采用11位标识符格式。
CAN传输协议报文格式主要包括标识符分配和数据域定义。其中,标识符是数据帧发送和接收过程中CAN仲裁和接收滤波的主要依据,CAN采用非破坏性逐位仲裁技术,在总线处于繁忙状态时,各数据帧根据标识符的仲裁结果获取总线的使用权,进行数据发送。
3.1 传输协议报文标识符分配
标识符的定义直接决定了对应报文的优先级,根据本文中提出的传输策略,按数据包类型、数据包编号和设备号对11位标识符进行了划分,如表1所示。
表1 标识符定义
标识符高二位ID.10-ID.9用于定义数据包类型,在满足CAN总线数据传输策略要求的基础上,结合测试系统的功能需求,共将报文所代表的数据包类型分为4类:时钟数据包、主机指令包、从机信息包和测试数据包。其中,时钟数据包由主机节点发出,处于最高优先级,以广播的形式按给定周期循环发出;主机指令包由主机节点发出,优先级次于时钟数据包,用于向从机发送检测指令;从机信息包由从机节点发出,优先级次于主机指令包,用于从机节点向主机反馈除测试数据外的信息,如节点状态、故障和紧急报警等;测试数据包由从机节点发出,处于最低优先级,主要用于信号采样数据的上传。
标识符的ID.8-ID.3用于定义测试数据包的编号,其余数据包类型的该段标识符定义为全0,6位标识符共可定义64个包编号,每个包编号与该数据包中采样数据所属的信号对应。根据标识符越小优先级越高的CAN仲裁规则,对于同一信号采集节点的测试数据包而言,其存放采样值对应信号的采样频率越高,包编号越小。
标识符的ID.2-ID.0用于定义设备号,用来确定发出数据包的CAN节点。其中主机采集节点的设备号为1(编号001),CAN1采集网络中的综合信号采集节点设备号为2(编号010);CAN2采集网络中的传动信号采集节点设备号为3(编号011),动力信号采集节点设备号为4(编号100),空滤器信号采集节点设备号为5(编号101)。基于上述说明11位标识符的具体分配结果如表2所示。
表2 11位标识符分配表
3.2 传输协议报文数据域定义
根据传输协议标识符定义的数据包类型对数据域DATA0-7的8个字节进行了不同的定义,如表3所示。
表3 数据域定义
时钟数据包数据域的低4个字节DATA0-3定义为有效值,用于存放测试开始计时后的累积时间t。时钟数据包每10ms发送一次,用DATA0-3表示的32位无符号数最大可实现4 294 967 290ms的连续计时,约为50天,能满足进行全天连续测试的需求。
主机指令包和从机信息包数据域的低2个字节DATA0-1定义为有效值,用于存放主机指令代码或从机信息的反馈代码,代码编号可根据实际需要进行增加定义,DATA0-1共16位可以表示65 536个不同的代码,完全可满足代码的扩充需求。
测试数据包的数据域用于存放不同信号的采样值,DATA0-7的8个字节每相邻的两个字节定义为一个信号采集通道并存放该信号的一个采样值,因此一个测试数据包可存放4个信号的采样值。根据传输策略可知,每一个测试数据包只存放采样频率相同的信号采样数据,4个通道的排列顺序与标识符中包编号代表的信号通道顺序一致,对于不满4个通道的测试数据包,统一用无效值0填充。根据上述说明,测试数据包定义如表4所示,表中标识符为十进制数表示,数据域信息栏标注数据包中信号采样频率和信道个数。
表4 测试数据包定义表
4 试验验证
4.1 试验平台搭建
根据实际的车载CAN总线采集网络的拓扑结构,搭建了如图2所示的试验验证平台。其中CompactRIO采集平台上插有NI 9853采集卡,包括两个独立的CAN口分别作为CAN1和CAN2采集网的主机采集节点,PXIe 1062机箱插有2块PXI 8512采集卡,每个采集卡拥有2个独立的CAN口,一共4个CAN口分别模拟4个从机采集节点。
图2 试验验证平台实物图
按照制定的CAN总线通信协议分别编写了主机和从机信号采集节点的LabVIEW程序。其中主机节点程序位于CRIO FPGA,通过while循环结构实现了两个主机CAN口时钟数据包的发送和测试数据包的接收,其程序框图如图3所示。
图3 主机CAN节点的程序框图
4个从机信号采集节点均采用了while-case状态机结构,其根据式(2)中时钟数据包的累积时间值与信号采样频率的匹配结果可切换至不同的数据发送状态,进而发送不同采样频率信号对应的测试数据包,单个从机CAN节点的程序框图见图4。
图4 单个从机CAN节点的程序框图
4.2 分析与验证
4.2.1 策略可行性验证
在所提出的CAN总线传输策略中,从机节点根据时钟数据包中的累积时间数进行测试数据包实时上传,因此在整个数据交互的过程中必然存在一个最小公倍时间,即所有信号采样周期的最小公倍数,在该时间点CAN总线采集网络中的所有采样通道均进行采样,产生的测试数据包个数也达到最大值。因此所提出的CAN总线传输策略的可行性,就取决于主机CAN节点在最小公倍时间后的一个时钟数据包间隔周期内能否接收到全部测试数据包。
根据表4可知,CAN1采集网络共包括1个50Hz测试数据包、3个20Hz测试数据包和24个5Hz测试数据包;CAN2采集网络共包括3个100Hz测试数据包、7个20Hz测试数据包和1个5Hz测试数据包。分析可知,CAN1采集网络的最小公倍时间为200ms,最大测试数据包数量为28;CAN2采集网络的最小公倍时间也为200ms,最大测试数据包数量为11。分析可知,该传输策略的可行性就取决于CAN1采集网络的主机CAN节点能否在一个时钟数据包间隔周期内完成28个测试数据包的接收。
测试数据包采用标准CAN数据帧格式,单个数据帧为108bit,28个测试数据包的理论数据总量为3 024bit。所研究的装甲车辆测试系统采用的CAN总线波特率为500kbps,由前文可知,时钟数据包间隔周期为10ms,计算可得CAN总线10ms内可传输数据总量为5 000bit,大于3 024bit,因此理论上满足
测试数据包的传输需求。
策略可行性试验结果如图5所示,图中列出了28个测试数据包的接收时间戳,计算可得,第28个测试数据包(ID为1 762)的时间戳与第1个测试数据包(ID为1 546)的时间戳之差为6.581ms,小于时钟数据包的发送间隔周期10ms。通过上述分析可知,本文中提出的CAN总线传输策略能够保证主机采集节点在任意时钟数据包的发送间隔周期内,完成对其总线上所有从机信号采集节点发出测试数据包的接收。
图5 策略可行性试验结果
4.2.2 测试数据采集验证
在搭建的试验验证平台上,进行了145路信号的数据采集试验。其中CAN1采集网络与CAN2采集网络中的从机采集节点均以最小公倍时间200ms为周期,循环发送给定的常量测试数据包,用于试验验证测试数据包的定义如表5所示,其中发送顺序号为200ms内的测试数据包发送顺序。
表5 试验验证测试数据包定义
通过上位机界面左侧的信道列表可实现对各信道采集数据波形的选择性查看。试验过程中,随机选择了4个信道,其中CAN1采集网络选择信道1和信道6,实时波形如图6所示;CAN2采集网络选择信道3和信道11,实时波形如图7所示。根据表4和表5可知,CAN1采集网络信道1和信道6的信号采样频率分别为50和20Hz,采样值分别为1 111 311 114和2 324的循环序列;CAN2采集网络信道3和信道11的信号采样频率分别为100和20Hz,采样值分别为11 112 111 121 111 211 112和2 222的循环序列。
图6 CAN1采集网络上位机显示界面
图7 CAN2采集网络上位机显示界面
通过对比可知,所选4个信道在上位机的实际显示波形与信号采样值的理论波形完全一致,能够保证数据的可靠传输。
5 结论
(1) 以整车的多参数测试需求为背景,制定了基于主、从CAN节点应答模式的CAN总线数据传输策略。
(2) 根据所提出的传输策略,开发了CAN总线通信协议,进行了报文标识符的划分和数据域的定义,对各节点报文的优先级进行了分配。
(3) 基于CompactRIO采集平台搭建了试验验证平台,利用LabVIEW编写了主、从机CAN节点的程序和用于实时显示的上位机界面。通过试验验证平台,对制定的CAN总线数据传输策略进行了试验测试,证明策略行之有效,数据传输可靠,能满足车辆CAN总线测试系统对145路信号的实时采集、传输、存储和显示要求。
[1] 毛明,李振平,邓高寿,等.坦克装甲车辆对试验测试技术的需求[J].计算机测量与控制,2016,24(3):8-10.
[2] 毛明,庞宝文.坦克装甲车辆技术发展新动向和发展重点[J].车辆与动力技术,2012(3):51-55.
[3] 黄万友,程勇,纪少波,等.基于CAN总线的纯电动汽车动力总成试验台测控系统的开发[J].汽车工程,2012,34(3):266-271.
[4] 邹勇,宋小庆,王治国,等.基于CAN总线的装甲车辆测控系统[J].装甲兵工程学院学报,2009,23(3):50-54.
[5] 贺方君,谢永成,李光升,等.基于CAN总线的装甲车辆电气系统检测[J].国外电子测量技术,2012,31(6):43-46.
[6] 罗佳,孙运强.CAN总线技术在车辆悬架动态应力测试中的应用[J].自动化仪表,2013,34(11):80-84.
[7] 钱义伟.基于CAN总线的车载数据采集与通信装置的设计与实现[D].长沙:湖南大学,2013.
[8] 韩江洪,刘征宇,崔世辉,等.混合动力汽车CAN网络通信协议的应用研究[J].汽车工程,2011,33(12):1062-1066.
A Study on Vehicle CAN Bus Transmission Strategy Based on CompactRIO
Peng Wenjia1, Song Ping1, Yang Cheng1& Jin Haolong2
1.KeyLaboratoryofBiomimeticRobotsandSystem,BeijingInstituteofTechnology,Beijing100081;2.ChinaNorthVehicleResearchInstitute,Beijing100072
Aiming at the multi-parameter test requirements of armored vehicle under dynamic conditions and the topology structure of CAN bus test network, a real-time data transmission strategy based on response pattern between host and slave nodes is proposed. Based on the strategy, a CAN bus communication protocol is developed, the assignment of priority, the arrangement of identifier and the definition of CAN frame data fields in the protocol are studied, and the upper computer interface and simulation programs are developed with LabVIEW. Based on CompactRIO acquisition platform, a verification platform is constructed to verify the feasibility of the strategy. The results show that with the control of the strategy proposed, the test system can realize the real-time acquisition, transmission, storage and display of 145 signals, well meeting test requirements.
vehicle; CAN bus; data transmission strategy; CompactRIO; LabVIEW
10.19562/j.chinasae.qcgc.2017.07.016
*国防基础科研重大项目(C0920110001)资助。
宋萍,教授,博士生导师,E-mail:sping2002@bit.edu.cn。
原稿收到日期为2016年8月5日。