创建​基于​SAE J1939​协议​和​NI PXI​的​CAN​总​线​通信​平台

周​跃​钢,​东风​汽车​集团​公司

“凭借​强大​的​LabVIEW​数学​分析​和​队列​处理​能力、​NI PXI​设备​以及​适用​于​苛刻​汽车​测试​环境​的​CAN​接口​模​块,​此​系统​可​提供​多种​测试​条件​所需​的​CAN​总​线​消息​信息​分析​功能。”

- 周​跃​钢,​东风​汽车​集团​公司

挑战:

将​J1939​协议​合并​到​CAN​总​线​通信​平台​设计​中。 ​

解决​方案:

结合​使用​NI LabVIEW​系统​设计​软件​和​NI PXI CAN​通信​模​块,​设计​出​一种​用于​过滤​J1939​协议​ID​的​方法,​从而​按照​协议​格式​接收​和​发送​多个​帧,​并​构​建​CAN​通信​平台。​我们​还​实现​了​整​车​硬件​在​环​(HIL)​电气​环境​仿真,​并​构​建​了​发动​机​台​架​测试​平台,​其中​包括​CAN​总​线​消息​发送​和​接收、​存储​以及​实​时​显示​功能。 ​

符合​中国​国​三​至​国​四​排放​标准​的​所有​商用​汽车​均​使用CAN总​线​在​电子​控制​单元​(ECU)​之间​进行​通信,​这些​控制​单元​包括​汽车​ECU (VECU)、​发动​机​ECU (EECU)、​自动​变速箱​ECU、​仪器​ECU​和​防​抱​死​制动​系统​ECU。​汽车​控制​网络​已经​实施​了​基于​J1939​协议​的​商用​汽车​CAN​总​线,​该​总​线​与​多​点​控制​单元​(MCU)、​CAN​控制器​和​MCU​节点​CAN​收​发​器​结构​相​结合。​现有​解决​方案​包含​PC、​CAN​通信​模​块​和​软件,​可​用于​道路​测试、​发动​机​台​架​测试​以及​汽车​电气​环境​HIL​仿真​测试,​但​成本​高昂。

 


​通信​方法​问题

由于​CAN 2.0 B​规范​中的​工业​总​线​消息​标识​符​和​数据​框架​缺乏​通用​定义,​因此​参数​是​任意​的。​商用​汽车​CAN​总​线​通信​规范​基于​CAN 2.0 B​并​遵循​SAE J1939​协议。​目前,​国内​汽车​行业的PXI控制​设备​应用​中​没有​基于LabVIEW和​J1939​协议​的​CAN​总​线​通信​方法,​因此,​我们​着手​将​LabVIEW​软件​与​复杂​的​J1939​协议​相​结合,​从而​实现​消息​过滤、​接收、​同步、​重组​和​发送。

 

考虑​到​商用​汽车​CAN​总​线​网络​的​特点,​我们​构​建​了​一个​基于​LabVIEW​和​J1939​协议​的​CAN​总​线​平台,​并​将​其​嵌入​到​NI PXI​模​块​化​接口​设备​中,​从而​执行​发动​机​台​架​测试​和​汽车​电气​环境​HIL​测试。

 

J1939​协议​和​CAN 2.0 B​规范​的​区别

J1939​协议​基于​CAN 2.0 B​规范。​之所以​定义​CAN 2.0 B​扩展​框架​中的​29​位​ID,​是​为了​构成​一个​J1939​编码​系统,​包括​优先​级​(P)、​保留​位​(R)、​数据​页​(DP)、​协议​数据​单元​(PF)、​扩展​单元​(PS)、​源​地址​(SA)​和​数字​字​段,​如​图​1​所​示。​开放​系统​互​连​(OSI)​参考​模型​应用​层​包含​七个​部分,​这​七个​部分​通过​协议​数据​单元​(PDU)​封​装​在​一个​或​多个​CAN​数据​框架​内,​并​通过​物理​层​传输​到​总​线​网​线​中的​其他​设备​节点。

 

 

各种​CAN 2.0 B​设备​功能​使用​同​一个​ID​发送​不同​的​消息​信息,​因此​在​系统​集成​期间,​如果​根据​特定​制造​商​协议​选择​CAN​设备,​可能​会​导致​ID​无法​识别​或​不一致。​J1939​协议​中的​每​个​消息​帧​都有​唯一​标识​符​和​PGN,​用于​为​每​个​节点​分配​唯一​的​源​地址,​并​将​该​源​地址​映射​到​CAN​标识​符,​从而​避免​多个​节点​使用​相同​的​标识​符。​例如,​ID:​0CF00400​代表​发动​机​转​速​和​扭矩​消息。

 

CAN 2.0 B​规范​在​七个​OSI​参考​模型​层​中​定义​了​数据​链​路​层,​由此​可见​这​是​一个​低级​标准,​如​图​2​所​示。​通常,​CAN​总​线​产品​的​兼容​性、​可​互换​性​和​集成​性​较​差。​相反,​按照​OSI​参考​模型​应用​层,​J1939​是​一种​高级​协议,​定义​了​汽车​应用​信号​(参数)​和​消息​(参数​组)。​信号​由​参数​进行​描述,​系统​为​每​个​参数​分配​一个​可疑​参数​编号​(SPN)。​这些​参数​可​定义​PDU​数据​字​段中​各​数字​字​节​的​物理​含义;​例如,​SPN190​代表​发动​机​转​速。

 

CAN 2.0 B​规范​只能​传输​单​帧​消息,​而​J1939​协议​可以​传输​单​帧​和​多​帧​消息,​包括​对话​和​广播。​J1939​可以​按照​多​帧​数据​传输​协议​打包、​发送、​接收、​同步​和​重新​组织​消息。

 

模​块​接口

模​块​接口​包括​NI PXI CAN​双​端​口​收​发​器、​SJA1000T CAN​控制器、​TJA1041T​高速​CAN​收​发​器​和​TJA1054AT​低速​CAN​收​发​器。​J1939​协议​数据​链​路​层​可​按照​PDU​格式​打包​数据,​并​可​执行​CAN​数据​帧​同步、​顺序​控制、​错误​控制​和​流​控制。

 

根据​J1939​物理​层​协议,​每​个​网络​段​可以​包括

  • 最多​30​个​ECU
  • 250 kB/​s​的​CAN​总​线​通信​速率
  • 含​显​性​电​平和​隐​性​电​平​的​总​线​电压
  • 3.5 V​或​1.5 V​的​差分​电压

 

此外,​CAN​总​线​收​发​器​可在​CAN​总​线​和​MCU​之间​转换​电压​电​平。

 

 

软件​设计

如​图​3​所​示,​基于​J1939​协议​多​任务​处理​流​的​CAN​总​线​消息​使用​生产​者​与​消费​者​循环​结构。​生产​者​循环​使用​元素​入​队​函数​将​数据​添加​到​消息​簇​队列,​而​消费​者​循环​使用​元素​出​队​函数​将​数据​从​消息​簇​队列​中​移出。​队列​在​两​个​循环​之间​进行​通信,​以​避免​多个​任务​之间​发生​冲突。​当​数据​生成​的​速度​快​于​数据​消耗​的​速度​时,​队列​缓冲​器​可​避免​消息​数据​丢失。

 


​实现

如​图​4​所​示,​我们​在​HIL​汽车​电气​环境​仿真​中​部署​了​基于​LabVIEW​和​J1939​协议​的​CAN​总​线​通信​平台,​以​进行​消息​接收​测试。​我们​同时​将​其​与​向量​CANoe​模​块​进行​比较。​图​7​显示​了​从​稳定​运行​的​发动​机​接收​到​的​EECU​消息。​在​一秒​内,​系统​可以​从​EECU​接收​526​帧​消息,​且​不​丢失​消息。

 

发动​机​燃油​消耗​消息​实​时​显示​发动​机​燃油​效率。​VECU​按照​商用​汽车​J1939​协议​在​CAN​总​线​网络​中​接收​消息,​以​控制​自动​变速箱​汽车​的​换档。​组合​式​仪器​ECU​实​时​接收​并​显示​此​消息,​提醒​驾驶​员​以​良好​的​驾驶​习惯​操纵​汽车,​从而​实现​出色​的​燃油​效率。​为了​满足​卓越​的​发动​机​性能、​效率​和​排放​标准,​我们​对​EECU​进行​校准,​以​获得​优异​的​喷​油​脉冲​宽度​校准​参数。​校准​后,​我们​进行​对比​测试,​以​验证​EECU​校准​效果。

 

发动​机​稳​态​测试​可以​显示​汽车​在​恒定​速度​下​的​性能。​可变​工作​条件下​的​发动​机​瞬​态​测试​可​仿真​实际​道路​条件下​的​发动​机​状态。​通过​比较​实​时​燃油​消耗​消息​和​实际​即时​燃油​消耗​测量​值,​我们​可以​确定​EECU​控制​性能。

 

 

图​8​显示​了​在​10​种​不同​工作​条件下​测量​发动​机​瞬​态​燃油​消耗​台​架​测试​曲线​的​比较​情况。​当​发动​机​在​低​负载​状态​下​运行​时,​与​测试​和​台​架​燃油​消耗​仪表​相比,​CAN​总​线​按照​J1939​协议​接收​并​分析​的​EECU​燃油​消耗​消息​数据​显著​不同。​因此,​当​发动​机​在​低​负载​下​运行​时,​实际​燃油​喷射​量​较​低。​由于​发动​机​在​低​负载​下​运行​时​的​共​轨​压力​波动,​目标​和​实际​燃油​喷射​量​将​存在​很大​的​差异,​从而​导致​燃油​量​波动。​两​条​曲线​一般​来说​趋​于​一致:​通过​CAN​总​线​接收​到​的​发动​机​燃油​喷射​量​目标​值​与​实际​测量​值​非常​接近,​并且​趋势​和​时间​自动​同步。​这​意味​着​EECU​校准​获得​了​优异​的​喷射​脉冲​宽度​目标​值。

 

坚实​的​基础​为​可靠​的​性能​创造​了​条件

针对​在​商用​汽车​CAN​总​线​通信​应用​中​部署​NI CAN​模​块,​基于​J1939​协议​和​NI PXI​平台​的​CAN​总​线​通信​平台​为此​奠定​了​基础。​该​平台​有望​在​以下​未来​应用​中​大展​身手:​发动​机​台​架​测试、​汽车​电气​环境​仿真​HIL​测试、​实现​过滤、​识别、​综合、​接收、​打包、​传输、​存储、​分析、​计算​以及​实​时​CAN​总​线​消息​显示。

 

凭借​强大​的​LabVIEW​数学​分析​和​队列​处理​能力、​NI PXI​设备​以及​适用​于​苛刻​汽车​测试​环境​的​CAN​接口​模​块,​此​系统​可​提供​多种​测试​条件​所需​的​CAN​总​线​消息​信息​分析​功能。​它​展示​了​NI PXI​设备​获得​的​消息​数据​采样​同步​功能。​对比​分析​证明​了​测试​数据​的​实​时​性能​和​真实​性。

 

作者​信息:

周​跃钢
​东风​汽车​集团​公司
​中国 (China)
zhouyg@dfl.com.cn

图​1. ​ ​J1939​数据​帧​格式 ​
图​2. ​ ​OSI​参考​模型 ​
图​3. ​ ​基于​LabVIEW​和​J1939​协议​的​CAN​总​线​多​任务​消息​收​发​器 ​
图​4. ​ ​汽车​电气​环境​HIL​仿真​测试​发动​机 ​
图​5. ​ ​测试​台 ​
图​6. ​ ​基于​LabVIEW​和​J1939​协议​实施​的​CAN​总​线​通信​平台 ​
图​7. ​ ​发动​机​稳​态​EECU​消息 ​
图​8. ​ ​可变​发动​机​工作​条件下​的​燃油​消耗​对比​测试 ​