基于LabVIEW和J1939协议的CAN总线通讯平台构建

时间:2022-10-10 05:28:37

基于LabVIEW和J1939协议的CAN总线通讯平台构建

摘要:使用NI LabVIEW软件开发平台和PXI模块化仪器系统中的CAN通讯模块,创建过滤识别J1939协议报文标识符ID及多帧报文按协议格式解析接收和封装发送的设计方法,构建基于J1939协议的CAN总线通讯平台,完成整车电环境半实物仿真、发动机台架试验CAN总线信息的收发解析、存贮及实时显示。

关键词:labview软件;j1939协议can总线;PXI测控装置

中图分类号:TP335 文献标志码:A 文章编号:1005-2550(2011)06-0018-05

Build of CAN Communication Platform Based on LabVIEW and J1939 Protocal

ZHOU Yue-gang

(Dongfeng Commercial Vehicle Technical Center of DFL,Wuhan 430056,China)

Abstract:Using NI LabVIEW software development platform and the CAN communication module in the PXI module instrumentation,design a process for filtering and identificating ID of J1939 protocol and analyzing multi-frame message to receive and packaging to send. Building a communication platform based on the J1939 protocol CAN bus,complete vehicle electrical environment-loop simulation,and engine test bed information on the CAN bus transceiver analysis,and storage and real-time display.

Key words:LabVIEW;J1939 protocol;CAN bus;PXI monitoring devices

进入21世纪以来,商用车CAN总线网络的应用得到了异常迅猛的发展。现今市面上满足国3~国5排放标准的商用车,无一例外的均应用CAN总线网络,进行整车VECU、发动机EECU、自动变速箱ECU、汽车组合仪表ECU、轮胎防抱死制动ECU之间的数据通讯。基于J1939协议的商用车CAN总线,针对单片机微控制器MCU节点的MCU + CAN控制器 + CAN收发器的CAN通讯接口,在车载网络控制系统中得到了大量应用;而对整车道路试验、发动机台架试验、整车电环境半实物仿真测试的上位机节点的PC机或笔记本电脑 + CAN通讯模块,大都使用价格昂贵的Vector CANoe模块。

测试中存在的问题:

(1)PXI测控装置无基于J1939协议的CAN通讯功能,不能满足试验工况对CAN总线报文信息分析的功能需求;

(2)CANoe模块时序不受PXI仪器时钟速率控制,无法与PXI时序的其它测量参数同步触发测量。

基于LabVIEW和J1939协议的CAN总线通讯技术方法实施,在国内汽车行业PXI测控装置的应用属于空白,难点是如何将LabVIEW软件开发平台与复杂的J1939协议有效的结合,实现报文信息的过滤接收、合成重组及封装发送。

面对商用车CAN总线通讯网络的特点,构建基于LabVIEW和J1939协议的CAN总线通讯平台,嵌入在NI PXI模块化接口的测控装置中,用于发动机台架试验、整车电环境半实物仿真测试。

1 J1939协议

J1939协议以CAN2.0B规范为基础制定,对CAN2.0B扩展帧29位标识符ID定义形成J1939的编码系统,包括优先级P、预留位R、数据页DP、协议数据单元PF、扩展单元PS、源地址SA和数据字节Data,如图1所示。这七部分在开放式系统互联参考模型(OSI)应用层[1],通过协议数据单元PDU(Protocal Data Unit)被封装成一个或多个CAN数据帧,通过物理层[2] [3]发送给总线网络其它设备节点。

1.1 PDU格式

PDU定义了数据帧中与J1939协议相关的信息,由标识符ID和数据场组成,见图1。

PDU1格式报文PF在0~239之间,报文为点对点向目标地址发送,PS:报文接收的目标地址,SA:报文发送的源地址,在目标地址中填入255,为全局地址发送。

PDU2格式报文PF在240~255之间,报文向全局地址发送,PS:参数组扩展值,J1939协议大部分报文为PDU2格式。

PDU数据场包含参数组中数据内容,参数组编号PGN(Parameter Group Number)用于唯一标识参数组的号码,由一个或几个参数构成一帧或多帧报文,而参数组是应用层中定义的与某个ECU相关的若干参数(例如发动机水温、燃油温度等)的组合。

1.2 J1939协议与CAN2.0B标准区别

1.2.1 标识符ID

CAN2.0B不同功能的报文信息可以使用相同的ID,根据制造商特定的协议使用CAN设备,在集成时会产生ID不能识别或识别不一致问题。J1939每帧报文的标识符唯一,且每帧报文都有自己的PGN,为每个节点规定唯一的源地址,并将源地址映射到CAN标识符中,避免多个节点使用相同的标识符;例如ID:0CF00400代表发动机转速、扭矩报文。

1.2.2 OSI模型

开放式系统互联参考模型如图2所示,CAN2.0规范定义了七层OSI参考模型的物理层和数据链路层[4],是低层标准,CAN总线产品的兼容性、互换性和可集成性差。J1939是面向OSI参考模型应用层的高层协议,在应用层定义了针对车辆应用的信号(参数)和报文(参数组)。通过参数描述信号,并给每个参数分配了一个编号SPN(Suspect Parameter Number),参数定义了PDU数据场中字节的物理意义,例如SPN190代表发动机转速;状态参数表示具有多态信号的某一种状态,例如发动机巡航控制/扭矩限值/转速限值/怠速设定;测量参数反映接收到的信号值具体大小,例如发动机转速/扭矩/燃油消耗量。一个PGN中可能有几个SPN,PGN61444包含了SPN190发动机转速和SPN513发动机扭矩等参数。

1.2.3 多帧报文

CAN2.0B规范定义只能使用单帧报文传输,J1939协议除单帧报文传输外,还使用对话式、广播式多帧报文传输,并按多帧数据传输协议进行打包封装发送和接收合成重组处理,其中对话式多帧报文发送接收节点需要握手协议,广播式多帧报文面向全局地址发送。

2 CAN总线通讯平台

2.1 模块接口

PXI-8464/2双通道CAN2.0B通讯接口模块,内含SJA1000T CAN控制器和TJA1041T高速CAN收发器及TJA1054AT低速CAN收发器。J1939数据链路层通过PDU格式实现报文的打包封装,通过CAN控制器组织、发送CAN数据帧具有必须的同步、顺序控制、错误控制和流控制,自动产生CRC校验位和ACK应答位插入数据帧中。

J1939物理层协议规定了每个网段最多30个ECU,CAN总线通讯速率250k Bits/s,总线电平显性、隐性,差分电压3.5V/1.5V,差分传输双绞线线缆颜色CAN-H黄色、CAN-L绿色,CAN收发器完成MCU至CAN总线之间收发电平的匹配转换。

2.2 软件设计

基于LabVIEW和J1939协议的CAN总线报文收发多任务处理流程,如图3所示,采用生产者/消费者循环数据结构。生产者循环使用“元素入队列”函数向报文簇队列中添加数据,消费者循环使用“元素出队列”函数从报文簇队列中移出数据。循环间采用队列的方式进行操作,消除多任务处理竞争状态,当生产数据比消费处理数据的速度快时,队列的缓冲作用保证报文数据不丢失。

建立接收报文ID解析过滤的识别方法。确定报文标识符ID的枚举型状态变量识别报文,根据状态变量条件结构过滤报文。

PDU1、PDU2格式单帧报文全部入队列,数据场大于8字节的对话式、广播式多帧报文按J1939协议多帧数据合成重组后入队列,其它无数据场的报文帧舍去,处理完的接收报文簇分解后出队列计算、存贮和显示。

建立发送报文ID解析封装的识别方法。报文解析首先确定帧类型状态变量,其次根据状态变量的条件判断,进行报文格式的封装定义。

数据场小于或等于8字节的PDU1、PDU2单帧发送报文直接入队列,数据场大于8字节的对话式、广播式多帧报文按J1939协议多帧数据处理打包封装簇合成后入队列,处理完的J1939发送报文簇分解后出队列并写入CAN口。

3 应用效果

在整车电环境的半实物仿真报文接收测试试验中,应用图4所示的基于LabVIEW和J1939协议的CAN总线通讯平台,与Vector CANoe模块在同一时间段比对测试,接收的某型号发动机稳态工况EECU报文如图5所示,一秒内接收EECU发出的526帧报文,比对测试接收的报文无丢失现象。

发动机燃油消耗量报文,实时反映了发动机燃油经济性,在商用车J1939协议CAN总线网络中,分别被车辆VECU接收,作为换挡控制策略控制自动变速箱汽车;组合仪表ECU接收并实时显示,提示驾驶员形成良好的驾驶习惯,操纵汽车达到最佳燃油经济性的路况行驶。为使发动机获得最佳的动力性、经济性和兼顾排放达标,需要对发动机电控单元EECU进行标定匹配,获得最佳喷油脉宽的标定参数。标定之后做比对试验,验证EECU的标定效果。

发动机稳态工况试验,能够反映车辆的等速工况;而发动机变工况瞬态试验,能够模拟实际道路循环中发动机状态。通过将实时报文油耗和实际测量瞬态油耗的对比,研究两者之间的对应吻合关系,判断发动机EECU的控制效果。

某型号发动机+工况台架试验瞬态油耗比对测量曲线见图6,从J1939协议CAN总线接收并解析的EECU油耗报文数据,与台架油耗仪实测数据在发动机低负荷时存在差异,即发动机低负荷时实际喷油量较小,设定喷油量与实际喷油量的差异比值较大。这个差异是因为发动机低负荷共轨轨压波动较大,导致喷油量波动变化而客规存在。总体两条曲线吻合相当一致,通过CAN总线接收的发动机喷油目标值,与实际测量值接近,且变化趋势和时序同步,反映了发动机EECU标定匹配获得了最佳喷油脉宽的目标值。

4 总结

基于LabVIEW和J1939协议的NI PXI模块化系统架构的CAN总线通讯平台的开发,建立了PXI CAN模块在商用车CAN总线通讯的应用基础,项目具有推广和商品应用前景。在发动机台架试验、整车电环境半实物仿真分析中,实现对CAN总线报文信息的过滤识别、合成接收、封装发送、解析计算及存贮显示。

应用LabVIEW软件平台强大的数学分析运算及队列处理能力,满足试验工况对CAN总线报文信息解析的功能需求,同时实现对报文数据与NI PXI仪器其它测量参数同步采样,试验数据比对分析处理具有实时性和真实性。

参考文献:

[1] SAE J1939-11[S].物理层.

[2] SAE J1939-13[S].物理层.

[3] SAE J1939-71[S].车辆应用层.

[4] SAE J1939-21[S].数据链路层.

上一篇:基于Simulink的电子节气门控制策略开发 下一篇:发动机进气状态对燃油经济性影响的仿真研究