APP下载

移动智能终端的车辆制动系统监测技术

2016-06-17蔡军伟颜幸尧戎悦

中国计量大学学报 2016年1期

蔡军伟,颜幸尧,戎悦

(1.中国计量学院 计量测试工程学院,浙江 杭州 310018;2无锡市计量检定测试中心,江苏 无锡 214101)



移动智能终端的车辆制动系统监测技术

蔡军伟1,颜幸尧1,戎悦2

(1.中国计量学院 计量测试工程学院,浙江 杭州 310018;2无锡市计量检定测试中心,江苏 无锡 214101)

【摘要】提出了基于移动智能终端的车辆制动系统监控技术,开发了基于智能手机操作系统的客户端应用程序,通过蓝牙4.0与相关硬件进行连接,实现实时监控司机是否踩错油门.在踩错油门的情况下,硬件会根据手机应用程序预先设置的参数对踩错油门这一现象进行纠正,并及时制动.

【关键词】移动智能终端;车辆制动系统;蓝牙通讯

近年来,人们的生活水平在不断的提高,很多家庭都拥有自己的私家车.同时,随着科技的进步,汽车技术的发展也相当迅猛,智能汽车是目前一个很热的话题,各个汽车厂商也都在智能汽车方面相互竞争,不断创新[1-2].在汽车变得越来越方便和智能的同时,交通事故的发生率也在逐年提升.而在这些事故中,有一大部分是由于驾驶人在紧急情况下,错将油门当成刹车进行踩踏而造成的.因此,如果能有一种方法能够在司机将油门当刹车踩时进行纠正并及时制动,将会大幅降低交通事故的发生率.2008年华东理工大学张钦[3],2012年中国计量学院邱亚楠[4]等人都先后研究过预防误踩油门的装置,也提出了一些解决方案,但仍存在一些问题,并不能推广到市场应用.本文设计了一款基于移动智能终端的客户端软件,通过蓝牙4.0与安装在汽车上的硬件设备进行连接,设置其相关参数,并获取特定数据,传递到后台服务器以便管理,在紧急情况下和硬件配合作用一起达到纠正油门勿踩行为并制动的目的.

1体系架构

整个系统的架构如图1,安装在汽车上的智能硬件通过UART串行口与蓝牙4.0模块连接,以便与智能手机之间实现无线通讯.智能手机客户端App通过HTTP协议与后台服务器之间进行通讯,数据以JSON的格式进行传送.后台服务端利用Java Web技术和MySQL数据库技术进行实现.

图1 系统整体架构图Figure 1 System architecture diagram

从上述可知,智能手机客户端需要实现的核心功能如下:

1)通过蓝牙4.0与硬件产品进行连接,通过自定义的协议获取和设置相关数据;

2)通过HTTP协议,以JSON的格式与后台服务端之间进行数据交互;

3)用户管理、注册、登录、编辑用户基本信息.

图2为智能手机客户端架构图,最底层为智能手机底层硬件驱动,其上层为移动操作系统厂商提供的SDK,如Android SDK或者IOS SDK,在此基础上实现一些所需的功能模块,最上层用户交互层,包含一些逻辑处理. 整个程序设计采用MVC设计模式[5-6],将视图、控制器、模型三者分开,降低模块之间的耦合,便于后期维护. 虽然IOS与Android开发平台和语言不同,但开发思想和原理是相似的,另外,通过一些跨平台技术,可以很方便地在两个平台之间进行代码移植,故本文中主要还是以IOS为例进行说明.

图2 移动客户端架构图Figure 2 Mobile client architecture diagram

2协议描述

2.1基于蓝牙4.0的低功耗通讯协议

蓝牙4.0是最新一代的蓝牙通讯技术,其以低功耗为主要特点,IOS SDK与Android SDK均提供了相应的低功耗蓝牙(BLE,Bluetooth Low Energy)编程框架[7],在本客户端的设计中,利用这些框架完成蓝牙连接管理,以及蓝牙数据交互.

图3  蓝牙连接管理流程图Figure 3 Flow chart of Bluetooth connection management

图3为客户端软件与硬件之间进行蓝牙连接管理的程序流程图.程序启动后,用户选择连接设备,便启动蓝牙连接程序,先扫描外部蓝牙设备,再寻找匹配的Service,找到之后在Service中寻找匹配的Characteristic,拿到Characteristic便可以进行数据的读写.此外,还设计了断开重连的机制,即如果由于一些客观原因,如距离过远,导致手机与硬件设备之间的蓝牙连接断开,则App可在下次搜索到蓝牙信号后自动重新进行连接.

为了保证在蓝牙通讯过程中安全稳定可靠,故设计了自定义的通讯协议的格式,如表1.

表1 基于蓝牙4.0的自定义通讯协议的格式

2.2基于JSON的异步网络协议

2.2.1异步网络请求

网络请求属于一种耗时的操作,如果放在UI线程中,将会导致UI线程停滞、卡顿,用户无法进行其他操作.因此为了提升用户体验,在设计时应该重新开辟一个线程来处理网络请求.即异步发送网络请求.可以将网络请求的各个方法归到一个类中,并将这个类设计成单例,对于IOS,每次网络请求的结果将通过Block的形式对外传递,而对于Android,将通过Java中的接口(Interface)机制来传递数据.

2.2.2HTTP请求签名机制

签名的目的是为了验证请求的来源是否在允许的范围内.如果不设计签名机制,则任何人都可以通过后台服务器的接口获取数据.所以,此处设计了一套签名机制来解决这一问题.如图4,具体的签名流程分三步:

图4 HTTP请求签名流程Figure 4 HTTP request signature process

第一步,将所有的请求参数以“key=value”的形式,按照字母序进行排序,首字母相同时,按照第二位字母排序,以此例推,排序后将所有的请求参数再用字符‘&’进行连接,如:

name=cjw&age=16&gender=female.

排序后:

age=16&gender=female&name=cjw.

第二步,将第一步中排序后的字符串与key值(key值为服务端分配给客户端的一个参与签名的关键字符串)拼接,生成待签名字符串,例如:

假设key值为abcdefg,上述字符串与key值拼接之后的结果为:

age=16&gender=female&name=cjwabcdefg.

上述变为待签名字符串.

第三步,将代签名字符串进行32为大写MD5加密,加密之后的字符串作为参数名为“sign”的值,和其他的请求参数一起发送到服务器.例如:sign=2A201CAD1D847E441E630D2336DC524C.

服务端在接收到客户端发来的请求数据后,会根据按照同样的规则对签名字段进行校验,校验通过再回复请求结果数据.

2.2.3JSON数据解析

服务器是以JSON的数据格式返回数据的,JSON是一种常见的数据传输格式,是以键值对的形式出现的,一般键都为字符串,值可以字符串,或者数组等,数组中又可以嵌套JSON数据.本客户端在设计过程中没有使用第三方的框架进行JSON解析,而是直接采用Objective-C或者Java中的对象对JSON数据进行封装,基本原则为:一个JSON对象对应一个字典对象,一个JSON数组对象对应于一个数组对象.

3客户端软件原型的实现

在完成了基本的系统设计与协议设计后,编写了客户端软件的原型,实现了基本的功能模块,并对客户端软件的性能做了分析.

3.1用户管理

用户管理包括身份管理、登陆、注册、忘记密码、修改基本信息等.

按照功能划分,有两种不同的用户身份,如图5,一种为普通用户,一种为安装用户.

图5 用户身份选择界面Figure 5 User identity selection interface

在用户登录过之后,程序会在本地KeyChain中存储用户的基本信息,包括身份信息,在以后每次启动应用程序,如果检查到本地存储中有用户信息,则直接跳过登录程序,进入程序主界面.此处采用NSUserDefaults[8]来存储登录信息、用户基本信息、以及蓝牙相关设置参数.

每次App向服务器发送请求时,都会先从本地存储中读取用户的身份标识,带上这一标识将请求参数发送到后台服务端,服务端在接收到请求参数后,根据用户标识选择相对应的处理方法.

3.2蓝牙功能模块的实现

为了与硬件之间进行配合,蓝牙功能界面设计成图6.测试蓝牙完成对蓝牙链接的检测,修改设备密码用来修改移动客户端与硬件之间通讯协议中的密码,油门测试用来向硬件发送油门测试的协议,以便硬件进入油门测试状态,驾驶习惯学习用来采集用户踩踏油门的力度,灵敏度设置用来设置硬件设备制动作用生效的阈值比例.

图6 蓝牙功能界面Figure 6 Bluetooth function interface

3.4二维码扫描

二维码扫描的主要作用是为了使用户方便的通过扫描粘贴于智能硬件表面的二维码便能获得设备的相关信息,如参数、生产日期等信息.

以IOS操作系统编程为例,二维码扫描采用的是IOS SDK中的AVFundation框架[9-10],将AVCaptureMetadataOutput类的metaDataObjectTypes设置为AVMetadataObjectTypeQRCode即可进行二维码的扫描处理,在AVCaptureMetadata OutputObjectsDelegate的代理方法中读取扫描结果即可.此处使用Block的形式将扫描结果进行传递,供外部来处理.二维码扫描界面如图7.

图7 二维码扫描界面Figure 7 Qr Code scanning interface

3.5性能分析

在智能手机客户端软件编写完成之后,部署在iPhone和Android的真机上,利用性能测试工具对软件运行时的性能做了分析,图8为IOS客户端软件运行过程中对内存的使用量.从图中可以看出,内存的使用量较低,只有系统的2.4%,这说明整个软件运行时的性能还是良好的.

图8 软件性能分析图Figure 8 Software performance analysis chart

4结语

本文基于移动智能终端,对车辆制动系统的监控技术及通讯技术进行了研究,设计了一款配合硬件使用的移动客户端软件.该软件通过蓝牙4.0技术与硬件进行连接,设置和获取相关参数,并且将数据上传到后台的Java Web服务器进行管理.主要介绍了在App开发过程中所用到的一些关键技术和解决方案.在设计完成之后对该App的性能进行了分析.该App配合硬件,将会给人们的行车安全带来更好的保障,并且会一定程度上降低交通事故发生率,故具有一定的市场应用价值.

【参考文献】

[1]胡海峰.智能汽车发展研究[J].计算机应用研究,2004(6):20-23.

HU Haifeng. Research on intelligent vehicle development[J]. Computer Application Research, 2004(6): 20-23.

[2]何树林.浅谈智能汽车及其相关问题[J].汽车工业研究,2010(9):28-30.

HE Shulin. Mainly talks about the smart cars and related[J]. Auto Industry Research, 2010(9): 28-30.

[3]张钦.汽车误踩油门纠错装置的设计[J].汽车电器,2008(8):4-6.

ZHANG Qin. Design a prevent stepping on accelerator pedal by mistake[J]. Vehicle Electrical, 2008(8): 4-6.

[4]邱亚楠.汽车防误踩油门的自动刹车系统的研究[D].杭州:中国计量学院,2012.

QIU Yanan. Research on a vehicle automatic braking system of preventing mistakenly stepping on accelerator pedal[D]. Hangzhou: China Jiliang University,2012.

[5]李霞.MVC设计模式的原理与实现[D].吉林:吉林大学,2004.

LI Xia. Theory and realization of MVC design pattern [D]. JiLin: Jilin University, 2004.

[6]CARLO Chung. Pro Objective-C Design Patterns for iOS[M]. California Berkeley: Apress,2011: 67-82.

[7]张群,杨絮,张正言,等.蓝牙模块串口通讯的设计与实现[J].实验室研究与探索,2012,31(6): 79-82.

ZHANG Qun, YANG Xu, ZHANG Zhengyan, et al. Design and realization of serial communication[J]. Research and Exploration in Laboratory, 2012, 31(6):79-82.

[8]Mark D. Beginning iOS 6 Development : exploring the iOS SDK[M]. California Berkeley: Apress,2013: 102-133.

[9]龙清清. 基于二维码识别的Android智能手机导游系统研究[D]. 杭州: 中国计量学院, 2013.

LONG Qingqing. Research of android smartphone guiding system based on QRCode recognition[D]. Hangzhou: China Jiliang University, 2013.

[10]徐玲,蒋欣志,张杰.手机二维码识别系统的设计与实现[J].计算机应用,2012,32(5):1474-1476.

XU Ling, JIANG Xinzhi, ZHANG Jie. Design and implementation of two-dimensional code recognition system in mobile phone[J].Journal of Computer Applications, 2012, 32(5):1474-1476.

Vehicle braking system monitoring techniques based on mobile intelligent terminals

CAI Junwei1,YAN Xingyao1,RONG Yue2

(1. College of Metrology and Measurement Engineering, China Jiliang University, Hangzhou 310018, China 2. Measurement and Testing Center of Wuxi, Wuxi 214101, China)

Abstract:We proposed a vehicle braking system monitoring technique based on the mobile intelligent terminal and designed a client application program based on smart phone operating systems. The application was connected with hardware via bluetooth 4.0 to real-time monitor the braking. In the case of a wrong throttle, the hardware would take the brake in time according to the preset parameters on the mobile phone application.

Key words:mobile intelligent terminal; vehicle braking system; bluetooth communication

【文章编号】1004-1540(2015)01-0028-05

DOI:10.3969/j.issn.1004-1540.2016.01.005

【收稿日期】2015-09-29《中国计量学院学报》网址:zgjl.cbpt.cnki.net

【作者简介】蔡军伟( 1990-),男,甘肃省庆阳人,硕士研究生,主要研究方向为可穿戴设备关键技术、互联网+等 . E-mail:caijunwei1990@163.com

【中图分类号】TP311.5

【文献标志码】A

通信联系人:颜幸尧,男,副教授. E-mail: cjlu_yan@163.com