基于LabVIEW和J1939协议的CAN总线通讯平台开发
- UID
- 863084
|
基于LabVIEW和J1939协议的CAN总线通讯平台开发
应用领域:商用车CAN 总线通讯
挑战:CAN2.0B 规范的工业总线通讯、报文标识符和数据帧定义没有形成统一的标准,参数定义
随意性很大。商用车CAN 总线通讯标准,遵循建立在CAN2.0B 基础上的SAE J1939 协议。报文标识
符ID,按照SAE 标准制定的车速、发动机转速、扭矩、温度、压力、燃油消耗量等参数的物理定
义,报文数据帧格式对应协议数据单元相应数据内容的封装。面临的挑战是将J1939 协议融会贯通
于CAN 总线通讯平台的设计之中。
应用方案:使用NI LabVIEW 软件开发平台和PXI 模块化仪器系统中的CAN 通讯模块,创建过滤
识别J1939 协议报文标识符ID 及多帧报文按协议格式解析接收和封装发送的设计方法,并据此方
法构建CAN 通讯平台;完成整车电环境半实物仿真、发动机台架试验CAN 总线信息的收发、存贮及
实时计算显示。
使用的产品:
LabVIEW2009 软件平台
PXI-1045 机箱
PXI-8108 嵌入式控制器
PXI-8464/2 CAN 通讯模块
概述:
进入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 模块化接口的测控装置中,用于发动机台架试验、整车电环境半实物仿真测试。
J1939 协议
J1939 协议以CAN2.0B 规范为基础制定,对CAN2.0B 扩展帧29 位标识符ID 定义形成J1939 的编码系统,包括优先级P、预留位R、数据页DP、协议数据单元PF、扩展单元PS、源地址SA 和数据字节Data,如图1 所示。这七部分在开放式系统互联参考模型(OSI)应用层,通过协议数据单元PDU(Protocal Data Unit)被封装成一个或多个CAN 数据帧,通过物理层发送给总线网络其它设备节点。
图1 J1939 数据帧格式
PDU 定义了数据帧中与J1939 协议相关的信息,由标识符ID 和数据场组成。
PDU1 格式报文PF 在0~239 之间,报文为点对点向目标地址发送,PS:报文接收的目标地址,
SA:报文发送的源地址,在目标地址中填入255,为全局地址发送。
PDU2 格式报文PF 在240~255 之间,报文向全局地址发送,PS:参数组扩展值,J1939 协议大部分报文为PDU2 格式。PDU 数据场包含参数组中数据内容,参数组编号PGN(Parameter Group Number)用于唯一标识参数组的号码,由一个或几个参数构成一帧或多帧报文,而参数组是应用层中定义的与某个ECU相关的若干参数(例如发动机水温、燃油温度等)的组合。
J1939 协议与CAN2.0B 标准区别
标识符ID:CAN2.0B 不同功能的报文信息可以使用相同的ID,根据制造商特定的协议使用CAN设备,在集成时会产生ID 不能识别或识别不一致问题。J1939 每帧报文的标识符唯一,且每帧报文都有自己的PGN,为每个节点规定唯一的源地址,并将源地址映射到CAN 标识符中,避免多个节点使用相同的标识符,例如ID:0CF00400 代表发动机转速、扭矩报文。
OSI 模型:CAN2.0 规范定义了七层OSI 参考模型的物理层和数据链路层,是底层标准,如图2所示, CAN 总线产品的兼容性、互换性和可集成性差。J1939 是面向OSI 参考模型应用层的高层协议,在应用层定义了针对车辆应用的信号(参数)和报文(参数组)。通过参数描述信号,并给每个参数分配了一个编号SPN(Suspect Parameter Number),参数定义了PDU 数据场中字节的物理意义,例如SPN190 代表发动机转速。一个PGN 中可能有几个SPN,PGN61444 包含了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 总线之间收发电平的匹配转换。 |
|
|
|
|
|