logo资料库

基于SAE J1939协议的车辆信息采集与诊断模块.pdf

第1页 / 共2页
第2页 / 共2页
资料共2页,全文预览结束
基于基于SAE J1939协议的车辆信息采集与诊断模块 协议的车辆信息采集与诊断模块 本文在CAN总线技术与SAEJ1939协议的基础上,提出了基于Cortex-M3内核微控制器的车辆信息采集与诊断模 块系统设计。详细介绍了SAEJ1939协议的报文及内容格式,以及系统硬件、软件开发过程,并指出了设计中需 要注意的环节。该模块通过对CAN总线及各传感器数据的读取和处理,能够稳定可靠地提供车辆工况数据,并 可集成到车载多媒体系统和虚拟数字仪表等其他车载产品中。 0 引言 当前,汽车电子化程度不断提高,大量采用基于微处理器的电控单元(ECU)对汽车的各个功能模块进行 CAN总线及基于CAN的车辆通信 1 SAE J1939协议介绍 SAE J1939协议是美国汽车工程师协会(SAE)在CAN2.0B协议基础上制定的客车和重型货车网络通信应用层协议,在目前 汽车电子网络中得到广泛应用。该协议采用CAN总线的数据帧封装其数据信息,并明确规定了汽车内部各ECU的名称、地 址、通讯协议、优先级等信息,使用多路复用技术为车辆各传感器、执行器和控制器提供建立在CAN总线基础上的标准化高 速网络连接,在不同的ECU间实现高速数据共享,以期有效减少线束数量并提高车辆电子控制系统的灵活性、可靠性、可维 修性。目前,车辆的ECU产品大都带有遵循SAE J1939协议的CAN总线接口。这为车辆信息的快速采集和故障的在线诊断定 位提供了便利。 1.1 SAE J1939报文格式 SAE J1939在通讯中是负责数据传输的传输协议,其功能分为数据的拆分打包和重组及连接管理两部分。其数据帧是以 PDU(协议数据单元)为单位传送信息,每个PDU相当于CAN协议中的一帧。PDU由29位标识符和O~8个字节的数据所组成, 如表l所示。SAE J1939利用29位标识符(CAN扩展帧)提供一种完整的网络定义。表1中,P位为决定报文优先级的前3位;R是 保留位:DP是数据页位;PF场识别两个PDI格式(PDUl、PDU2):替代远程请求位SRR和标识符扩展位IDE在CAN2.0B中己 详细定义,并未包含在PDU内;PS场由PF值决定其包含一个目标地址(DA)还是包含一个对PDU格式PF的组扩展(GE);SA为 源地址。 1.2 SAE J1939应用层 应用层定义了针对车辆应用的信号(参数)和报文(参数组)。应用层通过参数描述信号,给每个参数分配了一个19位的可疑参 数编号(SP-N);此外还通过参数组描述报文,给每个参数组分配了一个24位的参数组编号(PGN)。SPN用来标识与ECU相关 的故障诊断元素、部件或参数组中参数;PGN用来唯一标识一个特定参数组。除已分配的参数和参数组外,用户还可通过分 配未使用的SPN给自定义参数和定义专有报文对应用层进行补充。 2 模块设计开发 2.1 硬件电路设计 设计的模块由 主控处理器采用ST公司的STM32F103C8T6,它基于ARM公司新一代32位Cortex-M3内核,可提供1.25 DMIPS/MHz的 处理能力,内部带有ADC、I2C、UART、USB等外围接口,特别是其内部带有支持CAN 2.0B协议的CAN控制器,位速率达 lMb/s,具有两个接收FIFO,3级14个可调节的滤波器,可收发ll位标准帧或29位扩展帧。因此可以省去类似设计中必须带有 的CAN协议接口器件SJAl000,大大降低了外围电路的成本。 图2给出了模块CAN总线接口部分的电路。系统采用带隔离及TVS保护的通用CAN
汽车的电磁环境非常复杂,既有内部各模块之间的相互干扰(包括雨刮器、冷却风扇电机、发电机等产生的 2.2 软件设计 系统的软件设计采用Keil RealView MDK-ARM环境编写,通过J-Link调试仿真器与STM32 F103C8T6的JTAG接口连接,实 现在线仿真调试。 ST公司为STM32系列微控制器开发了专门的固件库和接口函数,大大简化了软件开发的过程。系统上电后首先对微控制器 的RCC(重启和时钟控制)模块以及NVIC(嵌套向量中断控制器)模块进行初始化,并使能CAN中断,设置CAN屏蔽码和验收 码。CAN模块的初始化过程是这样的:a.根据CAN节点相关信息初始化一个CAN_InitTypeDef型结构,并调用CAN_Init函数 对CAN接口进行初始化;b.创建CAN_FilterInitTypeDef结构体,调用CAN_FilterInit函数对CAN过滤器进行初始化;c.调用 CAN_ITConfig函数对CAN中断源进行使能设置。系统初始化完成后,等待CAN总线接收中断的产生,并判断总线数据是否满 足屏蔽条件,将29位标识符报文与验收码、屏蔽码值逐位比较,屏蔽码用于定位相关位(0为相关,1为不相关)。仅当标识符中 的相关位与验收码相应位相同时,系统才接收报文;如满足屏蔽条件则从寄存器读取数据并存入缓冲区,并通过CAN Receive 函数读取相应数据,再根据SAE J1939协议判断计算车辆工况及故障代码等信息,处理后通过USB或串行口发送到车载多媒 体设备和虚拟仪表进行显示。例如:接收的数据为0C FEF2 00 xx xx xx 0D 15 xx xx xx (xx为任意数据),若验收码为 Ox00000000,屏蔽码为OxlFFFFFFF,则接收该报文。根据SAE J1939-71协议,此报文为PGN65266,来自发动机ECU;可 以得知第4、5字节为平均油耗,并遵循低位在前高位在后的传输方式,计算出车辆平均油耗=原始数×分辨率+偏移量=5389×1 /5 12+O=10.5km/L。同理可计算其他车辆工况数据。图3为CAN总线数据接收程序流程图。 3 结语 本文介绍了基于CAN总线和SAE J1939协议的车辆信息采集与诊断模块的设计开发过程,利用STM32F103C8T6微控制器 和CAN隔离收发器CTM825lT等器件实现了车辆信息的实时采集,最大限度地利用了器件本身的接口功能并降低了外围电路的 成本。本模块工作稳定、性能可靠,软件各部分功能运行完好,并可与影音娱乐产品和虚拟仪表产品相互结合,有一定的实用 价值。随着汽车电子化程度的不断提高,CAN总线和SALE J1939协议必将得到更为广泛的应用。
分享到:
收藏