微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 汽车电子 > 基于LabVIEW 和J1939 协议的CAN 总线通讯平台开发

基于LabVIEW 和J1939 协议的CAN 总线通讯平台开发

时间:04-16 来源:互联网 点击:
模块接口

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 总线接收的发动机喷油目标值,与实际测量值接近,且变化趋势和时序同步,反映了发动机EECU 标定匹配获得了最佳喷油脉宽的目标值。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top