基于OBD2的车辆远程监控系统

2018-05-31 02:52廖燕辉
时代汽车 2018年4期
关键词:微控制器总线邮箱

廖燕辉

广州华夏职业学院 广东省广州市 510935

1 引言

随着汽车保有量的持续增加,汽车的排放问题受到更加严格的监管。虽然目前国家大力提倡发展新能源汽车,但是由于技术上的限制,有些新能源车依然搭载了汽油机或柴油机。因此,对于车辆的监控是很有必要的,特别是对于车辆的排放状况。

目前国家在大力推进物联网,汽车行业也不例外。本文提出的基于OBD2的车辆远程监控系统,除了能够远程监控车辆的排放情况之外,还能够远程动态显示车辆的运行参数。厂家或者4S店等售后服务部门使用远程监控功能,实现对异地车辆的故障检查;车辆管理部门使用远程功能,对行驶在路上的超标车辆进行管理。

2 确定方案

目前ISO-15765标准协议在轿车中应用广泛[1],因此本文讨论的是使用了ISO-15765标准协议的车辆,系统的总体方案如图1所示。通过车载OBD2接头读取车辆的运行状态信息,车载OBD2接头选用市场上高集成度的微控制器进行设计。车载OBD2接头读取到车辆的运行状态信息后,通过内置的GPRS模块,用无线传输的方式把数据上传到虚拟云主机。近几年国外比较流行的虚拟云主机服务商有谷歌、亚马逊等;国内的虚拟云主机服务商有阿里巴巴、百度和腾讯等。本系统选用较廉价的阿里巴巴虚拟云主机。远程显示设备(手机、PC机、平板电脑等)通过登录网址访问阿里云服务器,查看车辆的运行状况。管理部门可以对超标车辆发出提示信息,4S店可以对异常车辆发出提示,提醒车主及时处理故障、减少事故发生。

图1 系统的总体方案

图2 数据采集系统

3 硬件选择

本系统选用的微控制器是STM32F103ZET6, 它 内 置 了 CAN 总 线控制器bxCAN。该CAN总线控制器支持CAN2.0A 和CAN2.0B[2],并且在硬件上实现了CAN 节点模型中要求的接收过滤、位填充、同步等多种功能,bxCAN的这些优良特性能够有效地减少CPU在收发报文过程中的时间消耗。采集车载行车电脑的诊断数据,还需要一个CAN 总线收发器来匹配微控制器与CAN 总线之间的电平。数据采集系统的结构如图2所示。在数据采集系统中,物理媒介连接层直接影响通信质量,是系统可靠工作的前提条件。因此,本系统采用美国德州仪器公司生产的CAN总线收发器SN65HVD230。

4 程序设计

4.1 系统初始化

bxCAN在硬件上已经实现了大部分的功能,因此数据采集系统的软件设计工作主要是操作bxCAN 的相关寄存器,软件设计必须遵循ISO15765-4标准。数据采集软件系统的工作流程如图3所示。在微控制器上电运行后,首先进行系统初始化,将系统时钟切换成精度较好的外部时钟。

4.2 bxCAN 控制器初始化与数据采集

ISO15765-4标准对测试设备有三个主要规定,分别是:默认支持250k 和500k 两种波特率;遵循ISO15765-4标准规定的初始化流程,如图4所示;能够并行接收多达8 个车载ECU 的响应。通过过操作bxCAN的位时间特性寄存器CAN_BTR 来设置它的波特率,设置好之后,下一步是开始bxCAN接口的初始化,完成之后,系统就可以采集数据。CAN总线的数据接收工作由bxCAN控制器的硬件逻辑完成,一个CAN 帧的标识符ID、数据长度码DLC以及数据等信息分别被保存在称为邮箱的寄存器组中。bxCAN 有2 个用于接收数据的带FIFO 缓冲区的邮箱,每个邮箱可以存放3个报文。先到达的报文读取完并释放掉邮箱后,较晚到达的报文才能访问。只有当未读报文的数量减少到0 时,中断响应标识才会被清除。因此,负责接收数据的中断函数中,有一个重要步骤是将数据存储后释放邮箱。对于测试设备来说,每一次向总线发出数据请求时,不确定有多少个ECU 会作出响应,所以需要设置一个变量来保存响应的数量。在中断函里接收数据时,对每个新的ID 进行标记。通过这种方法实现并行接收多个ECU的分段数据。

图3 软件系统工作流程

图4 bxCAN的标准初始化流

4.3 远程传输数据

微控制器通过CAN 接口将OBD2的数据采集之后,把这些数据上传到远程服务器中才能实现对车辆的远程监控。本系统采取基于GPRS 无线网络的数据远程传输方案,采用SIMCOM 公司的GPRS通信模块SIM900A。这是一款低成本的的通信模块,有多个工作频道,支持HTTP,TCP/IP,以及FTP 等多种网络协议。SIM900A 提供SPI,UART和I2C等常见的对外通信接口,而STM32F103ZET6微控制器拥有多个UART 接口。本系统的微控制器通过UART接口给SIM900A模块发送AT 指令,主要使用 SIM900A 的 HTTP 相关指令,以HTTP 的方式访问远程服务器的Web端口。建立了HTTP 连接后,用GET 方法将数据以表单内容的形式提交到服务器中。每条AT 指令都有对应的响应,如果SIM900A正确地执行了该指令,则会返回一个OK 响应,否则根据具体的错误因素返回相应的错误状态[3]。因此还需要让微控制器能接收SIM900A 的响应,作为后续流程处理的依据。为了让模块能够正常的以HTTP的方式向远程服务器提交数据,首先需要设置它的接入点和一些网络参数。

5 结语

随着物联网技术的发展,汽车在未来将会深度接入网络。本文应用GPRS通信技术,讨论了远程监控运行车辆的实现过程,为汽车接入网络提出了一个思路。

猜你喜欢
微控制器总线邮箱
关于变更投稿邮箱的通知
《电池》杂志投稿邮箱
关于变更投稿邮箱的通知
时间触发通信总线监控技术研究
关于CAN总线的地铁屏蔽门控制思路论述
TASKING针对英飞凌第三代AURIX微控制器推出多核开发环境
电磁导向智能车设计探讨
本刊重要启事
PCI9030及其PCI总线接口电路设计
基于MC9S08QG8低端微控制器的无线控制器设计