基于车联网的车载智能监测系统设计与实现

2020-09-04 04:58彭东旭范文兵杨云开
计算机工程与设计 2020年8期
关键词:防盗线程车载

彭东旭,范文兵,杨云开

(郑州大学 信息工程学院,河南 郑州 450001)

0 引 言

目前大多车辆状态检测系统依靠自身传感器对车辆状态进行判断,不能够有效表明车辆状态的好坏,存在数据单一、有效性和实时性差等问题,而且对于车辆电子控制单元出现的故障码匹配度不够准确,兼容的OBD-II标准协议也较少,这样车辆存在的一些潜在故障并不能及时被发现,从而影响车辆的正常使用以及驾驶员的人身安全[1,2]。目前大部分车辆原有防盗系统都过于单一,被盗时车辆并不能准确反映当时的情况,由于引起车辆报警的因素过多,而真正被盗的情况很少,导致误报率过高,而且当车辆被盗时,车主一般距离车辆过远,警报无法被听到,进而不能及时发现车辆被盗,这说明传统的防盗系统实时性、有效性较差[3]。

为此,本文设计开发了基于车联网技术的车载智能监测系统,该系统可以随时随地对车辆状态进行监测,发现故障后及时告知车辆故障码和故障内容;实时对车辆防盗预警,在车辆被盗时远程锁定车辆,以及车辆被盗后的定位追踪。并且对车辆电源系统进行统一管理。该系统对车辆状态实时监测避免了车辆潜在故障的危害,提高了车辆的防盗能力,保证了车辆的安全性,同时也为将来汽车车况分析、防盗预警等应用提供技术基础。

1 智能监测系统总体方案设计

图1为车载智能监测系统总体设计,该系统主要由车载终端、手机App、云服务器3部分组成。每个车载终端都安装SIM卡,可以通过GPRS或SMS通信,并具有GPS定位、OBD数据读取等功能;当GPRS网络稳定时,车载终端通过GPRS网络负责发送车辆定位信息、车辆故障等信息到云服务器;云服务器负责信息的存储与转发。车主需要在智能手机上安装终端助手软件,并与车载终端绑定,该软件从云服务器上获取到车载终端上传的信息,显示到智能手机上;当GPRS网络不稳定时,车载终端通过SMS与智能手机通信,在此通信模式下车载终端只发送车辆防盗预警信息到智能手机终端。反之车主也可以通过智能手机对车辆进行控制[4]。以这样的系统设计方式实现人车“形影不离”,随时随地对车辆状态进行监控。

图1 车载智能监测系统总体设计

2 车载终端整体设计框架及主要功能

本系统采用模块化的思想进行设计,车载终端设计框架如图2所示。中央控制模块是整个系统的核心,通过相应的引脚与其它模块接口连接,对其它模块采集的信息进行分析整理以及信息的交换,根据信息分析的结果对相应的模块发出指令。

图2 车载终端设计框架

通信模块:实现车载终端与外界的无线移动通信,其中包含定位功能的GPS+北斗、GSM/GPRS以及蓝牙。

防盗模块:附加于原车防盗系统,完全保留原车防盗系统功能和使用方式,即在原来防盗系统基础加上新的探测和告警功能。

传感器模块:采集车辆多个传感器信息。

车辆诊断模块:诊断数据是由OBD模块从车辆上的OBD接口读出,OBD芯片会将故障码解析得出车辆存在故障的位置,因此可以提前对潜在的故障进行预警并处理,避免事故的发生。为了更高速处理采集的OBD数据,OBD模块与中央控制模块独立设计。

电源管理模块:由电源控制芯片和继电器控制,可以实现对车辆的空调、车辆的ACC等设备的电源控制,可以对其进行远程开启或者关闭,更智能化对车辆各种设备电源进行管理。

终端支持OTA在线升级,利于终端软件的维护和更新[5]。

2.1 车载终端硬件电路框架设计

如今车辆都配备OBD接口,不同厂家的车辆配备的OBD接口使用的OBD-II标准通信协议不同,通信协议普遍有ISO 9141-2、ISO 14230-4、ISO 15765-4,其中ISO 9141-2、ISO 14230-4通信协议基于K线的诊断协议,ISO 15765-4通信协议基于CAN总线的KWP2000诊断协议。由于不同的通信协议基于不同的驱动电路,所以为了车载终端更好兼容多种OBD-II标准通信协议,需要设计CAN总线驱动电路以及K线驱动电路。车载终端需要一个高性能、低成本、低功耗的微型处理器,该微型处理器还要有很高的实时性、可靠性以及丰富的外设接口等[6]。

依据车载终端设计框图进行车载终端硬件电路框架设计,车载终端硬件电路框架如图3所示。图中STM32F302RBT6为中央控制芯片,通过的串口与无线移动通信芯片MC20连接进行通信;MC20的定位功能基于内嵌的GNSS平台MT3333芯片与定位卫星进行信息传输,无线通信功能由MC20内嵌的GSM平台MT6261芯片与外界进行数据传输。STM32F105RBT6为车辆OBD信息采集诊断芯片,不是简单的用ELM327等芯片来做数据解析,芯片的数据解析完全由C语言实现,便于后续修改。中央控制芯片通过串口与OBD模块连接,OBD模块再由CAN总线或者K线连接车载OBD接口。中央控制芯片通过多个引脚经过芯片ULN2003放大电流控制继电器继而控制车辆电源系统。防盗系统由中央控制芯片引脚连接原车防盗系统,通过芯片引脚通信实现车辆防盗预警,另外增加了片外FLASH,保证了芯片的存储资源充足。

图3 车载终端硬件电路框架

2.1.1 车载终端高频降压电路设计

车辆电源供电电压为12 V,车载终端主要供电电压为5 V,需要对车辆供电电压进行降压转换,将车辆供电电压12 V转换为5 V,选用集成内部高端高压功率MOSFET的MP1584芯片,它是一款高频降压开关稳压器;通过在MOS管Q引脚上加上开关信号PWM,控制开关管的导通与关断,使电感和电容充放电达到将电源进行降压的目的。提供高达3 A的电流输出,具有电流模式控制,实现快速回路响应和简单的补偿;提供输入电压范围宽达4.5 V至28 V,适用于汽车输入环境中的降压应用。结合实际应用情况,输入为B+接口电压为12 V,输出为5 V,电路实际应用情况稳定,电路设计如图4所示。

图4 开关稳压器MP1584硬件电路

2.1.2 OBD车辆故障检测电路

电路中设计了两种驱动电路,更好适配不同车辆的不同通信协议,电路设计如图5所示。一种是CAN总线驱动电路,驱动电路芯片选择的是TJA1040T,速度高达1 Mbaud,具有很强的EMC性能,是局域网CAN协议控制器和物理总线之间的接口,适用于车辆的高速应用,又在TJA1040芯片的基础上增加了AU5790芯片,AU5790功能是把高速CAN转单线CAN,它可以为CAN总线控制器之间数据传输提供单线的物理接口,总线负载达到32节点时,总线速度可以高达33 kbps,当车辆未启动时,芯片处于睡眠模式,减少芯片的功耗[7]。另一种是K线驱动电路,K线包括ISO 9141-2、ISO 14230-4两种传输协议,这两种协议具有相同的电平标准,驱动电路选择的芯片为LM2903,与相应的电阻、电容元件共同构成。OBD-II协议驱动电路支持协议如下:

* ISO 9141-2

* ISO 14230-4 地址模式/快速模式

* ISO 15765-4 标准 11 bit 500 K/250 K

* ISO 15765-4 扩展 29 bit 500 K/250 K

2.2 车载终端软件平台设计

2.2.1 系统线程调度程序算法设计

程序中编写了线程创建函数和线程调度函数,线程工作流程如图6所示。线程函数中包含创建线程函数、启动线程函数、线程唤醒和线程超时处理函数,线程调度函数会为已创建的线程创建一个线程队列,每个线程都会有一个固定的ID号,根据程序的运行需要的线程ID号,线程指针会指向队列中对应的ID号,然后将线程推出运行;采用这种方法实现整个系统运行,系统线程队列生成后,不需要重新线程创建,当再次调用线程时,指针会跳到相应的线程子函数进行线程唤醒,这样可以更好分配CPU资源,优化系统反应时间。

2.2.2 防盗预警模块程序设计

当车载终端探测到车辆ACC由ON转为OFF时,防盗程序开始设防,熄火5 min后,探测是否锁车,若未锁车,车载终端把获取到的车门状态数据按照通信协议进行打包,通过GPRS网络发送到云服务器,云服务器再将信息转发到车主的智能手机,告知车主车辆未锁。当车辆在已锁车状态下,车载终端检测到车辆车门打开或者到车辆位置发生变化,车载终端会发送相应的告警信息到车主的智能手机[8]。若GPRS网络断线,车载终端立即通过SMS发送告警信息,提高了车辆防盗预警的有效性、实时性。防盗预警程序流程如图7所示。

图5 OBD车辆故障检测电路

图6 线程调度流程

图7 防盗预警程序流程

2.3 通信协议与数据格式

表1 车载智能监测系统通信数据包格式

车辆数据提取分析代码中定义了相应的结构体,用来定义车辆各种数据打包封装的数据,这样不仅提高了代码的阅读性,还可以分类管理函数和数据的属性,主要是对数据进行封装,增加代码再次利用的效率。

3 云服务器设计

云服务器是基于阿里云服务器(elastic compute ser-vice,ECS)是一种弹性可伸缩的计算服务,低成本,运维效率高。使用C# 编写服务器程序,程序中创建了Socket服务类,绑定监听端口。服务器程序只提供TCP/IP服务,为了终端整体系统测试,进行数据的转发,不做数据处理。

4 手机端软件设计

手机端App编写了车载终端的手机端登录界面以及功能界面,车主通过输入账号和密码进入App,点击App中的按钮,手机会发送指令给服务器,然后服务器再将相应的指令发送给终端,初步添加了OBD数据读取、车辆故障码提示、防盗报警、查询车辆位置等功能[10],可以根据需要添加相应的控制模块。

5 系统实现与测试

车载终端可以读取100多项OBD数据,这里只是显示了部分OBD数据,可以根据实际需要在手机App程序内添加相应的数据。手机App客户端读取到车辆OBD数据如图8(左),其中OBD数据包括发动机转速、车速、水温、空气流量、点火提前角、里程等。手机客户端获取到车载终端上传的车辆故障码,与OBD-II标准故障码检索表进行对比,然后将对比结果显示出来。手机客户端显示的内容包括故障码编号、故障码的数量以及故障码内容。这样有效避免了潜在故障对车辆安全的影响,从而也保证了车主的人身安全。故障诊断界面显示效果如图8(右)。

图8 OBD数据读取(左)、车辆故障码读取(右)

当车辆ACC由ON转为OFF时,车载终端开始计时,如果超过5 min车辆未锁,车载终端会发送车辆未锁信息到手机App客户端;如果车辆在锁定状态下,当车辆位置发生大范围变化时,车载终端会发送车辆位置变化异常的信息到手机App客户端。如果车辆在锁定状态下车门被打开,车载终端会发送车门非法打开信息手机App客户端,测试结果如图9(左);手机App客户端搭载百度地图开放平台,实时查看车辆位置,显示与车辆的距离,实时显示车辆在地图上的位置。当车辆被盗时,可以对车辆进行定位跟踪。测试效果如图9(右)。

图9 防盗预警(左)、车辆定位(右)

6 结束语

本系统基于车联网技术,初步实现了智能终端、服务器端、手机端的数据通信与控制,具有实时性高、适用性广、扩展性强等特点。在车辆故障检测方面,系统不仅解决了车辆潜在故障无法及时处理的问题,避免了车辆潜在故障产生的危害,而且使车辆状态更加直接地展示给车主,解决了大多车主对车辆故障不知所以的问题。在车辆防盗方面系统的实时性、有效性高,随时随地都可以知道车辆防盗状态,增加了车辆防盗预警的准确性,有效减少了车辆防盗预警的误报率。车载终端自适应多种OBD-II标准协议,读取车辆状态信息准确,很大程度上增加了人与车的信息交互。由此该系统对汽车安全性方面有很大帮助,具有一定的应用价值和开发前景。

猜你喜欢
防盗线程车载
一种车载可折叠宿营住房
基于C#线程实验探究
高速磁浮车载运行控制系统综述
基于国产化环境的线程池模型研究与实现
线程池调度对服务器性能影响的研究*
奔驰S级48V车载电气系统(下)
古代陵墓中的防盗机关
防火防盗报警器设计
2017年凯迪拉克XT5电路图
智能互联势不可挡 车载存储需求爆发