基于STM32的汽车故障信息采集节点设计_第1页
基于STM32的汽车故障信息采集节点设计_第2页
基于STM32的汽车故障信息采集节点设计_第3页
基于STM32的汽车故障信息采集节点设计_第4页
基于STM32的汽车故障信息采集节点设计_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、开发案例文章编号:1007-1423(2014)25-0057-05DOI:10.3969/j.issn.1007-1423.2014.25.016基于 STM32 的汽车故障信息采集节点设计杨凤年,何文德,刘华富(长沙学院计算机科学与技术系, 长沙 410022)摘要:汽车故障检测和诊断技术一直是国内外研究的热点。 为了解决汽车维修行业远程故障检测问题,利用 OBDII、GPRS 和 GPS 等技术设计实现汽车故障信息采集节点。 该节点以 STM32F103 为中心,包含 OBDII 转换模块、GPRS 模块和 GPS 模块,实现汽车故障码、时间、经度、纬度、行车速度等信息的采集、处理和暂存

2、,并通过无线通信将信息发送到汽 车维护管理中心。 实验结果表明,该节点性能较稳定,有较大的实用价值。关键词:GPS; GPRS; STM32; OBDII; 汽车故障码 基金项目:长沙市科技计划项目(No.K1205063-11)0 引言随着国民经济和汽车工业的飞速发展, 汽车的市 场保有量在持续增长,用户对汽车故障诊断、维护保养 等售后服务的要求也愈来愈高, 因此各大汽车制造商 在不断提高汽车安全性、舒适性及娱乐性的同时,也在 不断提高车辆故障的诊断和维修等服务能力。 其中,车 辆故障诊断等售后服务水平将是汽车制造商、 供应商 及销售商为用户提供优质服务的主要着力点之一。目前,凡是安装了电子

3、控制单元(ECU)的乘用汽车 都已装备车载诊断(OBD)系统。 OBD 系统具有识别可能 存在故障区域的功能, 并以故障代码的形式将故障信 息存储在电控单元存储器内1。 若要将该故障代码信息 读出,不仅要配备标准化数据连接口(DIE),还需要加上 其他辅助设备,才能形成套完整实用的“汽车故障诊 断 系 统 ”。 ISO DIS 15031 -3、4,SAE J1962 以 及 GB18352.3-2006 等标准均已对 DIE 的针脚定义、 接口形 式和安装位置做了非常具体的功能性要求。 因此,要研 发有实用价值和经济价值的汽车故障诊断系统, 关键 就是要获取实时故障信息、 保存故障信息并及时

4、处理 故障, 然后利用海量历史信息和有效数据挖掘算法对故障进行趋势预测,以便指导汽车维护保养,为汽车性 能改进提供决策支持,但是目前类似的应用尚未普及。 而汽车故障相关信息的采集和实时上传是其中的一个 重要环节, 因此设计开发出经济适用的汽车故障信息 采集节点是当务之急。本文设计的汽车故障信息采集节点, 可以实现汽 车故障码、地理位置、行车速度等信息的采集、处理和 转发。 若 GPRS 通信正常,则将信息转发到指定的汽车 汽车维护管理中心服务器中保存, 若 GPRS 通信无法 进行, 那么节点内部的非易失存储器还可以存储少量 的汽车故障信息, 以便 GPRS 通信恢复正常后再转发 到汽车运行维

5、护管理中心。 此外,该节点在检测到汽车 有故障发生后, 还可通过节点中内置的扬声器发出报 警声提醒驾驶员注意。 该节点是汽车维护管理系统的 汽车实时故障信息采集终端, 与维护管理中心的汽车 故障诊断软件配合, 为用户提供故障告警和管理汽车 故障诊断服务。1汽车故障信息采集节点的硬件构成和工 作原理汽车故障信息采集节点是汽车维护管理系统的主开发案例要组成部分, 因为汽车维护管理系统由大量的汽车故 障信息采集节点和一个维护管理中心组成。 汽车故障 信息采集节点安装在被维护管理的汽车上, 它是一个 嵌入式系统,以 STM32F103 为核心,此外还包含 OBDII 转换模块、GPS 模块、GPRS

6、模块、非易失存储器和扬声 器模块等。 其硬件构成如图 1 所示。,标准 ITU-T 的 AT 命令集, 可以通过串口对其进行控 制4。 用于将车辆的地理位置、速度以及故障代码等信 息以指定的格式, 通过无线数据通信方式发送到维护 管理中心。GPS 模块: 该模块采用 SiRF Star GPS 芯片组, 一旦处于工作状态, 就会把接收并计算出的导航定位 信 息 , 通 过 串 口 以 4800bps( 数 据 位 为 8bit, 停 止 位 为 1bit, 无 奇 偶 校 验 ) 的 速 率源源不断地发送 , 遵 守,NMEA183 通信协议。 发送的数据由帧头、帧内数据和 帧 尾 组 成 ,

7、 其 中 , 帧 头 有 “$GPGGA”、 “$GPGSA”、 “$GPGSV”、“$GPRMC”等,它们标示了数据帧的类型, 即该帧内数据的组成结构, 每帧均以回车符和换行符 作为帧尾来标示一帧结束。 本文关注的信息,如时间、 经纬度和行驶速度即可从“$GPRMC”帧中获得。EEPROM:AT24C02 是一个 2K 位串行 CMOS EEP-图 1 汽车故障信息采集节点的硬件架构微控制器:本课题采用 ST(意法半导体)公司生产 的 STM32F103ZE 作为核心控制模块。STM32F103ZE 是 基于 Cortex-M3 内核的 32 位高速 ARM 微处理器, 功 耗比较低,工作频

8、率经过 PLL 倍频后最高可以达到 72 MHz。 它 拥 有 512 KB Flash,64KB SRAM, 拥 有 3 个 USART 接口。 STM32F103ZE 作为控制核心,通过 3 个 USART 接 口 分 别 控 制 OBDII 转 换 模 块 、GPS 模 块 和 GPRS 模块,分别进行数据采集、处理和发送2。OBDII 转换模块:即 EST527-mini 模块,是深圳速 锐得科技有限公司生产的一款车规级的 OBDII 协议数 据 解 析 产 品 , 支 持 ISO9141 -2、ISO14230 (KWP)、 ISO15765(CANBUS) 等协议的物理层 , 可通

9、过 OBD-16 标准接口与现有绝大部分汽车的 ECU 进行诊断通信; 支持标准 OBDII 接口,覆盖所有主流汽车协议,可采用 简单易用 AT 命令集与 MCU 进行通信,所有数据都以 数值方式返回, 两条命令即可完成故障码的读取和清 除。 因此,能通过此模块获取汽车故障信息3。GPRS 模 块 :MC55 为 Siemens 公 司 推 出 的 三 频 GSM/GPRS 模块,除具有普通 GSM 模块的通话、短信、 电话簿管理、CSD (电路交换数据) 传输等功能和无线 Modem 的 GPRS 连接功能外,内置完整的 TCP/IP 协议 栈, 不仅支持 Socket 连接下的 TCP/U

10、DP 数据传输,还 支持 HTTP、FTP、SMTP、POP3 等上层应用协议。 它支持ROM,内部含有 256 个 8 位字节,体积小、功耗低,有一 个 16 字节页写缓冲器。 该器件通过 IIC 总线接口进行 操作,有一个专门的写保护功能。 用于保存 GPRS 信号 失效期间所采集的部分汽车故障代码等信息, 而且这 些信息在系统断电后,仍然可有效保存,特别是在汽车 被损坏后,有助于事故原因分析。2 系统软件实现2.1 主程序微控制 器 STM32F103 的 软 件 在 Keil Vision4 开 发环境下开发,采用 C 语言实现。 其主程序由初始化、 信息采集、信息发送、信息存储等模块

11、构成,流程图如 图 2 所示。监控终端的电源打开后,开始进行串口初始化(串 口 0 为 4800bps、 串口 1 为 9600bps, 数据位 均 为 8bit, 停止位均为 1bit,均无奇偶校验)、定时器初始化、启动 定时器、 建立 GPRS 的 TCP 连接等工作。 初始化完成 后,读取汽车故障码,若无故障则经过一定的延时后重 新采集故障信息;若采集到了汽车故障码,并立即通过 扬声器发出警报声,提醒司机注意,然后采集 GPS 相关 信息, 并按 2.5 小节规定的格式存储到指定的内存中。 然后判断 GPRS 通信是否正常,若此时不正常,则将监 测信息存入 EEPROM 中,设置暂存标志

12、,然后返回信 息采集模块,重新开始信息故障信息采集。 若 GPRS 正 常,则将该帧数据发送到维护管理中心服务器,然后检开发案例查暂存标志, 若 EEPROM 中存在尚未发送的故障信 息,则将它们发送出去,清除暂存标志,返回信息采集 模块;否则,直接返回信息采集模块。 øGP³ fi%K® fl !%fl*%fl "#%fl*fl%N$® ¾?T$GPR³?TNN%fl*=l?T图2 主程序流程图2.2 汽车故障信息采集EST527-mini 模块将汽车电控系统的各项传感器 数值转换为 UART 格式的数据进行输出, 还支持

13、标准 的 OBDII 汽车故障诊断功能, 支持 DTC 诊断请求、故 障码输出、故障码清除。故障码读取的步骤如下 : 首先, 在 STM32F103 初 始化阶段,将串口 2 初始化成 115200bps、数据位 8 位、 停 止 位 1 位 、 校 验 位 “ 无 ” 的 工 作 方 式 ; 然 后 , STM32F103 通过串口 2 向 EST527-mini 模块发送清除 故障码的 AT 命令“AT401rn”,待清除完成后,成功向 STM32F103 返回 “$401=OK”字符串,则说明前期的汽 车故障码已经被成功清除;最后,STM32F103 通过串口2 向 EST527 -mi

14、ni 模块发送读取故障码 的 AT 命 令“AT400rn”, 则向 STM32F103 返回的故障信息如下:$400=故障码数量,故障码详情。 其中,如有多个故 障码,故障码详情用竖线分隔,如 P1001|P1002。注意:编程时,AT 指令请求间隔建议大于 300ms。2.3 GPS 信息的采集为了保证 GPS 信息能够被准确地接收和分析处 理 , 代码中定义了字符 数 组 gps_data 作 为 接 收 当 前 GPS 数 据 包 的 缓 冲 区 , 还定义了另一个字符数组 gps_rmc 作为存放最新接收的 GPRMC 包的缓冲区。 首 先,对接收的 GPS 数据查找包的起始标记“$

15、”。 一旦发 现“$”符号,则对刚接收的完整的 GPS 包包头进行分 析,如果是 GPRMC 包而且有效,则将其拷贝到缓冲区 gps_rmc 中以供分析和处理 , 若 GPRMC 包无效, 再使 用数组 gps_data 重新 接 收 新 的 一 组 GPS 信 息 。 数 组 gps_rmc 存放的最近接收的 GPRMC 包。 对于 gps_rmc 中的 GPRMC 封包进行分析,提取出时间、经纬度、速度 等信息,由于帧内各数据段由逗号分开,通过计算所经 历的逗号的个数, 即可知道当前处理的是哪种定位信 息。2.4 无 GPRS 信号区域的信息的处理车辆运行过程中,如果行进入无 GPRS 信

16、号区域, 就无法及时将当前采集的信息通过 Internet 发送到维 护管理中心。 此时,若未检测到任何故障,那么,采集的 信息既不发送也不保存到 AT24C02 中;若检测到有故 障 发 生 , 则将此帧故障信息存入 AT24C02 中 。 而 AT24C02 中最多只能存 3 帧数据, 因为其内部只含有 256 个字节,数据帧的最大程度为 80 个字节,因此若进 入无 GPRS 信号区域时间较长, 那么存储的故障相关 信息只能采用新信息覆盖旧信息的策略。 在 GPRS 信 号恢复正常后,将信息从 AT24C02 中读出并发送至维 护管理中心。 因此,软件实现的主要任务就是 AT24C02

17、的读写操作,该部分代码主要实现了以下函数:void Start_Cond(); /发起始信号 void Stop_Cond(); /发停止信号 void Ack(); /发确认信号void NoAck(); /发无确认信号unsigned char Read8Bit(); /读一个字节数据void Write8Bit(unsigned char input); /写一个字节数据void Read_Flash ( unsigned char xdata *nContent, un-开发案例signed char nAddr, unsigned int nLen )large reentrant;

18、/从 给 定 地址连续读出多个字节数据,存放在指针 nContent 开头往下 之处void Write_Flash ( unsigned char xdata *nContent, un- signed char nAddr, unsigned int nLen)large reentrant;/从 给 定 地 址 连 续 写 入 多 个 字 节 数 据 , 被 写 入 的 数 据 存 放 在 指 针 nContent 开头往下之处2.5 利用 GPRS 模块发送信息GPRS 是在现有 GSM 系统上发展出来的一种新的 承载业务,为 GSM 用户提供分组数据业务,将无线通 信与因特网紧密结合

19、。 本文选用 GPRS 进行数据通信, 而不选用 GSM 短消息,是因为监控终端发送数据量较 少,实时性要求较高,短消息费用相对较高且实时性稍 差,而 GPRS 具有覆盖范围广、数据传输速度快、通信 质量高、 永远在线和按流量计费等优点。 通过将开通 GPRS 功能的 SIM 卡插入 GPRS 模块,监控终端就能够 通过 GPRS 网络连接到 Internet 上。 以 STM32F103ZE 为微控制器, 使用 AT 命令对 GPRS 模块进行控制,就 能实现 Socket 通信。MC55 模块的 TCP 连接步骤4:ATSICS 设置连接平台, 通过设置一些基本参 数选择 Internet

20、 服务类型。ATSISS 设置应用平台,选择 Socket。ATSISO 建立连接,用于打开 Internet session。ATSISW 发送数据。ATSISC 结束一次连接。监控终端获得的环境、 地理信息以如下所示的数 据格式发送, 其中数据项之间用半角英文字母的逗号 隔开,数据项括号内的数字为该项信息包含的字符数, 如长度不足则前面补 0,数据项中信息的每一位均以字 符形式(即 ASCII 码)在 Internet 传送,发送信息的帧格 式(含内容和顺序)如表 1 所示。各数据项规定的格式如下:车辆标示:即车牌信息,如:湘 AHL888。时间:yymmddhhmmss,表示年月日时分秒

21、。经度:xddmm.mmmm,x 表示经度半球 E (东经)或 W(西经),ddmm.mmmm 是(度分)格式(前面的 0 也被 传送)。纬度:xddmm.mmmm,x 表示纬度半球 S (南半球) 或 N(北半球),ddmm.mmmm 是(度分)格式(前面的 0也被传送)。速度:xxx.x,地面上的速度。故障码个数: 即汽车故障码的总数, 取值范围为16。故障码:汽车故障码,可能是一个,也可能是多个。 因为一个故障可能导致多个故障码出现, 也有可能同 时存在多个故障,若故障码个数大于 6,则只取前 6 个 故障码发送或存储。校验:xxxx, 校验和, 即前面所有字 符 的 ASCII 码 值

22、相加的总和。 *0 * 12表 1 信息的帧格式 ë¾ ë 1O1O1n4其中:n 为故障码的个数,取值范围:16。汉字用 2 字节的机内码表示,字符、标点及数字用ASCII 码表示。3结语使用汽车故障信息采集节点, 汽车维护管理中心 可以实现车辆的故障数据远程获取, 维修人员可以远 程分析车辆故障码,并进行相关的诊断和告警,及时通 知车主汽车出现的故障, 并且故障信息中还包含出现 故障时的时间、 车辆所处的地理位置和行驶速度等信 息, 有利于汽车故障分析和救援的有效实施 (如果需 要),同时,驾驶员也能听到汽车故障出现后的告警声, 从而大大提高车辆行驶的安全性。

23、 随着 3G 资费的降低 和应用的日益普及, 以及我国北斗导航系统的广泛应 用, 今后将该节点中 GPRS 模块升级为 3G 模块、GPS 模块升级为北斗导航模块, 以便进一步提高汽车维护 管理中心故障数据获取的实时性和车辆定 位的 精 确 度。 实验结果表明,该节点工作性能较稳定,研发生产 成本较低,有较强的实用性。开发案例参考文献:1交通部 GB 18352.3-2005 轻型汽车污染物排放限值及测量方法(中国、阶段)S 北京:中国环境科学出版社,2005 2彭刚,秦志强 基于 ARM Cortex-M3 的 STM32 系列嵌入式微控制器应用实践M 北京:电子工业出版社,20113深圳速

24、锐得科技有限公司. EST527-mini 车联网 OBD 智能信息模块 Rev.37-12 July 2014EB/OL. upload/file/1405175422.pdf.4SIEMENS.MC55/MC56 AT Command SetDB/OL.datasheet,20035叶小岭,严海东.汽车记录仪数据采集系统的设计J.电子技术应用,2008.34(12):102104作者简介:杨凤年(1966-),女,湖南常德人,高级工程师,硕士,研究方向为嵌入式系统、无线传感器网络 何文德(1964-),男,湖南常德人,高级工程师,硕士,研究方向为嵌入式系统、无线传感器网络 刘华富(1961-),男,湖南岳阳人,教授,硕士,研究方向为嵌入式系统、无线传感器网络收稿日期:2014-08-12修稿日期:2014-08-22Design of Automobile Fault Information Acquisition Node Based on STM32YANG

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论