From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

创建基于SAE J1939协议NI PXICAN线通信平台

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

“凭借强大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设备获得的消息数据采样同步功能。对比分析证明了测试数据的实时性能和真实性。

 

作者信息:

周跃钢
东风汽车集团公司
中国大陆
zhouyg@dfl.com.cn

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