基于LabVIEW和J1939协议的CAN总线通讯平台开发
SPN190 发动机转速和SPN513 发动机扭矩等参数。多帧报文:CAN2.0B 规范定义只能使用单帧报文传输,J1939 协议除单帧报文传输外,还使用对话式、广播式多帧报文传输,并按多帧数据传输协议进行打包封装发送和接收合成重组处理,其中对话式多帧报文发送接收节点需要握手协议,广播式多帧报文面向全局地址发送。
图2 开放式系统互联参考模型(OSI)
模块接口
PXI-8464/2 双通道CAN2.0B 通讯接口模块,内含SJA1000T CAN 控制器和TJA1041T 高速CAN收发器及TJA1054AT 低速CAN 收发器。J1939 数据链路层通过PDU 格式实现报文的打包封装,通过CAN 控制器发送CAN 数据帧必须具有的同步、顺序控制、错误控制和流控制,自动产生CRC 校验位和ACK 应答位插入数据帧中。J1939 物理层协议规定了每个网段最多30 个ECU,CAN 总线通讯速率250 kBits/s,总线电平显性、隐性,差分电压3.5V/1.5V,差分传输双绞线线缆颜色CAN-H 黄色、CAN-L 绿色,CAN 收发器完成MCU 至CAN 总线之间收发电平的匹配转换。
软件设计
基于J1939 协议的CAN 总线报文收发多任务处理流程,如图3 所示,采用生产者/消费者循环数据结构。生产者循环使用"元素入队列"函数向报文簇队列中添加数据,消费者循环使用"元素出队列"函数从报文簇队列中移出数据。循环间采用队列的方式进行通信,避免多任务处理竞争状态,当生产数据比消费处理数据的速度快时,队列的缓冲作用保证报文数据不丢失。
图3 基于LabVIEW 和J1939 协议的CAN 总线通讯报文收发多任务处理
建立接收报文ID 解析过滤的识别方法。确定报文标识符ID 的枚举型状态变量识别报文,根据状态变量条件结构过滤报文。PDU1、PDU2 格式单帧报文全部入队列,数据场大于8 字节的对话式、广播式多帧报文按J1939协议多帧数据合成重组后入队列,其它无数据场的报文帧舍去,处理完的接收报文簇分解后出队列计算、存贮和显示。广播帧报文接收合成,首先进行TP.CM-BAM 命令帧解析,提取EECU 发送报文的PGN 和帧数,其次对接收的TP.DT-BAM 数据帧组报文删除帧序号,通过替换数组子集对接收报文合成重组,还原PGN 标识的数据长度大于8 字节的广播帧报文。建立发送报文ID 解析封装的识别方法。报文解析首先确定帧类型状态变量,其次根据状态变量的条件判断,进行报文格式的封装定义。数据场小于或等于8 字节的PDU1、PDU2 单帧发送报文直接入队列,数据场大于8 字节的对话式、广播式多帧报文按J1939 协议多帧数据处理打包封装簇合成后入队列,处理完的J1939 发送报文簇分解后出队列并写入CAN 口。广播帧报文发送封装,ID 解析将发送报文的PGN 封装在广播报文命令帧标识符ID-TP.CM 中,报文数组解析进行字节数和帧数计算,创建帧序号加报文子集的8 字节多帧数组,与数据帧标识符ID-TP.DT 打包封装簇合成TP.DT-BAM,TP.CM-BAM 与TP.DT-BAM 组成广播帧格式报文。
应用效果
在整车电环境的半实物仿真报文接收测试试验中,应用图4 所示的基于LabVIEW 和J1939 协议的CAN 总线通讯平台,与Vector CANoe 模块在同一时间段比对测试,接收的某型号发动机稳态工况EECU 报文如图5 所示,一秒内接收EECU 发出的526 帧报文,比对测试接收的报文无丢失现象。发动机燃油消耗量报文,实时反映了发动机燃油经济性,在商用车J1939 协议CAN 总线网络中,分别被车辆VECU 接收,作为换挡控制策略控制自动变速箱汽车;组合仪表ECU 接收并实时显示,提示驾驶员形成良好的驾驶习惯,操纵汽车达到最佳燃油经济性的路况行驶。为使发动机获得最佳的动力性、经济性和兼顾排放达标,需要对发动机电控单元EECU 进行标定匹配,获得最佳喷油脉宽的标定参数。标定之后做比对试验,验证EECU 的标定效果。发动机稳态工况试验,能够反映车辆的等速工况;而发动机变工况瞬态试验,能够模拟实际道路循环中发动机状态。通过将实时报文油耗和实际测量瞬态油耗的对比,研究两者之间的对应吻合关系,判断发动机EECU 的控制效果。
(a)整车电环境的半实物仿真 (b)发动机台架试验
图4 基于LabVIEW 和J1939 协议的CAN 总线通讯平台应用
注:一秒内接收报文 39736 – 39210 = 526
图5 发动机稳态工况EECU 报文
图6 发动机变工况台架试验油耗比对测量
某型号发动机十工况台架试验瞬态油耗比对测量曲线见图6 所示,从J1939 协议CAN 总线接收并解析的EECU 油耗报文数据,与台架油耗仪实测数据在发动机低负荷时存在差异,即发动机低负荷时实际喷油量较小,设定喷油量
- CAN和光纤实现电动汽车动力电池组采集系统(10-20)
- CAN总线镍氢电池管理解决方案(04-23)
- 基于CAN的电源控制系统设计(12-19)
- CAN总线在机车监控系统中的应用(04-04)
- MC微控器在汽车CAN/LIN网关中的应用(04-16)
- CAN通信网在汽车中的应用研究(11-19)