新闻中心

EEPW首页 > 测试测量 > 设计应用 > 基于SAE J1939协议的车辆信息采集与诊断模块

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

作者:时间:2010-09-25来源:网络收藏

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函数读取相应数据,再根据 判断计算车辆工况及故障代码等信息,处理后通过USB或串行口发送到车载多媒体设备和虚拟仪表进行显示。例如:接收的数据为0C FEF2 00 xx xx xx 0D 15 xx xx xx (xx为任意数据),若验收码为Ox00000000,屏蔽码为OxlFFFFFFF,则接收该报文。根据 -71,此报文为PGN65266,来自发动机ECU;可以得知第4、5字节为平均油耗,并遵循低位在前高位在后的传输方式,计算出车辆平均油耗=原始数×分辨率+偏移量=5389×1/5 12+O=10.5km/L。同理可计算其他车辆工况数据。图3为CAN总线数据接收程序流程图。

本文引用地址:http://www.eepw.com.cn/article/195288.htm

13d.JPG

3 结语
本文介绍了基于CAN总线和 的车辆信息采集与诊断模块的设计开发过程,利用STM32F103C8T6微控制器和CAN隔离收发器CTM825lT等器件实现了车辆信息的实时采集,最大限度地利用了器件本身的接口功能并降低了外围电路的成本。本模块工作稳定、性能可靠,软件各部分功能运行完好,并可与影音娱乐产品和虚拟仪表产品相互结合,有一定的实用价值。随着汽车电子化程度的不断提高,CAN总线和SALE J1939协议必将得到更为广泛的应用。


上一页 1 2 3 下一页

关键词: J1939 SAE 协议 模块

评论


相关推荐

技术专区

关闭