对当前J1939协议的汽车信息采集系统研讨

2016-11-02 18:13周良润
科教导刊·电子版 2016年22期
关键词:应用层报文总线

周良润

摘 要 本文主要在J1939协议的基础上对汽车信息采集系统进行相关的分析及研讨。

关键词 J1939协议 汽车信息采集系统

中图分类号:U279.3 文献标识码:A

1关于J1939协议

1.1 J1939协议的提出及意义

J1939协议是美国汽车工程师协会(SEA)在CAN2.0B协议的基础上制定的客车和重型货车网络通信应用层协议,分为数据链路层、网络层、应用层及网络管理等几部分,其物理层是基于CAN控制器。该协议采用CAN总线的数据帧封装其数据信息,在不同的ECU间实现高速数据共享,从而有效减少线束数量并提高车辆电子控制系统的灵活性、可靠性以及可维修性。

1.2 J1939协议的汽车信息采集系统的优点

(1)使用CAN总线实现显示信息的传送,共享车辆上电控模块的信息,使车内布线简单;(2)传输及显示信息具有较高的可靠性;(3)仪表体积较小;(4)系统扩展能力强;(5)实时性好,且精确度高;(6)显示内容丰富形象。

1.3 J1939协议介绍

1.3.1 J1939协议的报文格式

J1939协议是负责数据传输的传输协议,它的功能主要分为数据的拆分打包和重组、数据传送管理两部分。 J1939协议遵循CAN2.0B的要求,使用扩展帧式(29位ID)定义形成了自身的编码系统,从而实现发送数据帧同步、顺序控制、错误控制和流控制等功能。数据单元PDU(分为PDU1格式和PDU2格式,PDU1格式报文支持点对点会话,而PDU2格式支持大部分报文广播发送)组织了组织信息的框架,包括优先级(P,3)、扩展数据页(EDP,1)、数据页(DP,1)、PDU格式(PF,8)、PDU特定域(PS,8)、源地址(SA,8)以及数据域(DF,8)。在开放式系统互联参考模型(OSI )应用层中,这七个部分被封装成一个或多个CAN数据帧,通过物理层发送到总线网络的其他设备节点。一个CAN帧只有一个PDU,而一个PDU有时候需要多个CAN帧才能完成。

1.3.2 J1939应用层协议

SEAJ1939协议明确规定了汽车内部ECU的地址配置、命名、通讯方式及报文发送等。协议中的应用层协议则对车辆应用的信号(参数)和报文(参数组)有了新的定义。应用层通过参数描述信号,给每个参数分配了一个十九位的SPN码(可疑参数编号);通过参数组描述报文,给每个参数分配了一个二十四位的PGN码(参数组编号)(即EDP、DP、PF、PS)。其中,SPN用于识别与ECU相关的故障诊断元素、部件或参数组中的相关参数;PGN用来唯一标识一个特定的参数组,主要用来识别或标识命令、数据、某些请求及应答等。

2基于当前J1939协议的汽车信息采集系统的探讨

当前J1939协议的汽车信息采集系统主要是利用车辆网络中的CAN总线接口采集车辆的各项信息,经过系统的CAN通信模块解析之后,即可显示汽车的信息数据。

2.1系统硬件电路设计

系统硬件电路的设计由微控制器、CAN总线接口、信号采集处理电路、接口电路等组成,如图1所示。

汽车通过CAN总线获得报文格式,然后根据J1939协议的相关参数标准计算出车辆的发动机转速、节气门开度、水温以及故障代码等信息,接着从相应的传感器以模拟量、开关量、脉冲量等形式获取汽车的燃油量、转动泵压力、制动气压等信息,再经过信号采集处理电路进行分压滤波整形处理后直接送往微控制器进行A/D变换处理。这些信息经过微控制器计算处理后便通过USB和UART接口传送给车载多媒体设备或虚拟数字仪进行显示。

汽车信息采集系统以处理器为核心,实现CAN网络中的J1939协议的应用层协议解析汽车工况信息功能。处理器要完成CAN通讯、RS232通讯、A/D转换、数据存储等功能,同时还要实时处理数据并显示。因此,在设计时选用集成FLEXCAN控制器的处理器,不仅可以简化系统的硬件设计,还能提高产品的性能。

2.2系统软件设计

系统的软件设计采用Keil RealView MDK-ARM环境编写,通过J-Link调试仿真器与STM32 F103C8T6 的JTAG接口连接,从而实现在线仿真调试。汽车信息采集系统通电后,先对微控制器的重启和时钟控制(RCC)模块以及嵌套向量中断控制器(NVIC)模块进行初始化,并使能设置CAN屏蔽码和验收码。CAN模块的初始化过程如下:

(1)根据CAN节点的相关信息初始化一个CAN-InitTypeDef型结构,并通用CAN-Init函数对CAN接口进行初始化;

(2)创建CAN-FilterInitTypeDef结构体,调用CAN-FilterInit函数对CAN过滤器进行初始化;

(3)调用CAN-ITConfig函数对CAN中断源进行使能设置。系统初始化完成之后,待CAN总线接收中断产生,判断总线数据是否满足屏蔽条件。将29位标识符报文与验收码、屏蔽码值逐渐比较,屏蔽码用于定位相关位(0为相关,1为不相关)。只有当标识符中的相关位与验收码相应位同步时,系统才能接收报文。如果满足屏蔽条件,则从寄存器读取相应的数据,并存入缓冲区,然后通过CAN-RECEIVE函数读取相应的数据,再根据J1939协议判断计算车辆工况及故障代码等信息,处理后通过USB或UART发送到车载多媒体设备或虚拟数字仪表进行显示。

3结语

基于J1939协议的汽车采集系统主要通过硬件设计和软件设计两个方面实现对车辆信息的实时采集。当前大多数车辆的ECU产品都遵循SEAJ1939协议的CAN总线接口,为车辆信息的快速采集和故障的在线诊断定位提供了便利。随着电子化技术的发展,基于J1939协议的汽车信息采集系统将会更加广泛的应用于汽车中。

参考文献

[1] 齐凤英.基于SAEJ1939协议的动力传动系统虚拟仪表及数据采集系统[J]. 制造业自动化,2012(04).

[2] 陈光建,何华平,贾金玲.基于虚拟仪器的实时数据采集系统[J].仪表技术与传感器,2011(04).

猜你喜欢
应用层报文总线
基于J1939 协议多包报文的时序研究及应用
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
ATS与列车通信报文分析
新一代双向互动电力线通信技术的应用层协议研究
多通道ARINC429总线检查仪
基于EtherCAT总线的ROV控制系统设计
Current advances in neurotrauma research: diagnosis, neuroprotection, and neurorepair