APP下载

基于STM32的车载信息采集与诊断预警系统设计

2018-09-26林虹

数字技术与应用 2018年5期
关键词:CAN总线

摘要:为了提高驾驶安全性,预防交通事故的发生,设计了一种车载信息采集与诊断预警系统。系统以STM32F107VCT6芯片为核心控制单元,采用OBD-II诊断接口和CAN总线控制器实时获取汽车故障码、行车速度等信息,同时设计震动检测电路和超声波测距电路实时检测其他汽车传感器数据,并通过TCP/IP接口将上述数据信息传给远程维修中心。经过实验测试,结果表明系统能够达到预期目标,并且灵活性好,方便进一步扩展。

关键词:车载诊断;STM32;CAN总线;OBD-II

中图分类号:U463 文献标识码:A 文章编号:1007-9416(2018)05-0162-02

随着汽车产销量的逐年增长,汽车安全隐患问题日益突出。传统的定期车辆年检在汽车故障预防方面存在局限性,因此,研发一套方便快捷、经济适用、扩展方便的车载状态检测装置,用于保证车辆驾驶的安全就显得尤为重要。目前,大部分装有电子控制单元的汽车都配备了车载诊断接口(OBD),对其进行辅助电路设计,就能够准确识别车辆故障码和车况信息,是现在比较热门的车载诊断技术[1-4]。本文设计的汽车故障信息采集和诊断预警系统就是采用OBD诊断技术,辅以设计其他传感器电路,以获取各种有效的车辆驾驶信息,并对车辆行驶状态及驾驶员行为特性进行分析从而规范驾驶行为,减少事故发生的可能性。

1 系统方案设计

车载信息采集和诊断预警系统架构如图1所示,由STM32主控制器、CAN总线控制器、OBD-II诊断接口转换电路、车辆传感器电路和电源模块组成,安装在被管理车辆上。系统以STM32集成开发板为核心控制单元,实现对车辆状态信息的实时采集、处理和控制。采用OBD-II诊断接口获取汽车故障码、汽车速度等信息,通过CAN总线将采集的数据传送给主控制器实时分析和显示。同时,系统接口较为丰富,可以通过震动传感器电路和超声波测距电路等获取汽车外部传感器信息。最后,通过TCP/TP接口将上述所有数据信息传输给远程维修中心,维修人员可以实时监控汽车行驶过程中的各项车辆状态数据,给驾驶员以指导,真正实现实时诊断预警,保障行车安全。

2 系统硬件设计

2.1 主控制器

系统采用STM32F107VCT6芯片为核心控制单元,它是ST公司推出的一款基于ARM Cortex-M3内核的32位微处理器。相较于其他主控芯片在接口、主频等性能上具有明显优势,而且ST公司还专门为STM32F系列处理器提供了一个封装好的软件库,这个库函数功能强大、使用简单、可读性强,为程序开发者省去了许多工作。

2.2 OBD-II接口转换模块

系统采用ISO75165协议标准的OBD接口,基于CAN总线实现数据交互。利用OBD接口可以实时检测汽车运行过程中的发动机电控系统以及获取车辆的基础行驶状态信息,但其并不能直接与控制器相连,必须通过一个解码模块,本文利用的是深圳麦卡途科技有限公司开发的MK2000模块,它是一款基于CAN总线的标准 OBD-II数据采集和分析模块,其具有标准的16个引脚线,可以实现数据的采集、分析,并与车载ECU进行通信。

2.3 CAN总线和以太网接口模块

STM32F107VCT6芯片内部搭载有2通道的支持CAN20.B规格的CAN控制器和以太网的MAC层控制器,使得CAN通信模块和以太网通信模块的设计更加方便[5]。只需选用一个CAN收发器即可通过CAN总线实现车辆数据的收发,本文采用SN65HVD230作为CAN总线收发器,选用单芯片快速以太网PHY DM9161AEP和网络隔离变压器HR911105A,连接到STM32F107芯片的MII接口,即可实现远程以太网通信。

2.4 震动检测模块

车辆震动检测电路主要采用801S震动传感器和LM393双电压比较器,工作电压为5V。采用双路信号输出,TTL检测电平输出Dout,直接连接处理器STM32F107的IO口,当有震动时,输出为高电平,无震动时,输出为低电平;模拟信号输出Aout,输出电压范围为0~5V,直接连接处理器STM32F107的AD输入口,采集实时的模拟信号量。其中,震动灵敏度可以通过可变电阻器R3进行调节,以适应于不同车辆的震动状况。

2.5 超声波测距模块

超声波测距采用HC-SR04超声波测距模块,在车辆四周放置若干个传感器。该超声波模块能够通过非接触式距离感测功能测量两物体之间的距离,其范围为3cm-400cm,具有3mm的测距精度,模块包含超声波发射器、接收器与控制器。距离计算公式:距离=(超声波从发射到接收到回波时间*速度(340m/s))/2 。

2.6 电源管理模块

采用DC 12V作为电路板总电源,为了满足不同芯片的供电电压需求,选用一开关电压调节器LM2596T和一低压差电压调节器LM1117-3.3,分别为系统其它模块提供5V和3.3V电压。

3 系统软件设计

软件在RVMSK4.12开发环境下开发,采用C语言、移植μCOS操作系统实现。系统程序设计采用多任务调度,主要包括系统初始化、OBD数据采集、传感器数据采集和远程TCP/IP通信。任务一是系统相应模块的初始化以及创建两个功能任务,任务功能如图2所示;任务二用来获取OBD故障信息并存储,数据协议采用ISO15765标准,发送机状态、车速等信息均封装成该格式报文进行传输;任务三用来建立TCP/IP连接和车辆震动和测距信息的采集,其中,以太网通信功能主要通过移植小型高效的TCP/IP协议栈LwIP来实现。

4 结语

通过对系统在实车环境下进行实验,系统通过OBD-II接口和CAN总线能够准确获取发送机转速、功率、油耗和车速等信息,能够有效采集传感器数据,系统实时性好。在出现故障信息或者传感数据异常时,能够及时发出预警信息,系统功能达到预期目标。试验结果证明系统运行稳定可靠,为下一步研究故障预测、开发监控管理系统奠定了基础。

参考文献

[1]徐辉,李英祥,余乐韬.车载诊断系统OBD II的汽车接口数据处理技术[J].单片机与嵌入式系统应用,2017,(2):28-30.

[2]陈鲤文,邹复民.基于CORTEX-M3的实时车载诊断预警系统的设计[J].电子设计工程,2013,21(2):111-114.

[3]楊凤年,何文德,刘华富.基于STM32的汽车故障信息采集节点设计[J].现代计算机,2014,(9):57-61.

[4]黄晓波,姜振军,熊树生,等.基于GPRS的远程诊断车载终端的设计与实现[J].工业仪表与自动化装置,2016,(1):49-52.

[5]林虹,吴良峰.机动车智能驾考系统中车载网关的设计[J].洛阳师范学院学报,2014,33(11):80-84.

猜你喜欢

CAN总线
基于嵌入式的汽车辅助制动系统研究