APP下载

基于车载自组网(VANET)的车辆协作系统

2018-06-20柯锦超陈娜佳周伟志

计算机技术与发展 2018年6期
关键词:服务器端嵌入式车载

马 广,柯锦超,陈娜佳,王 震,周伟志

(北京理工大学珠海学院 计算机学院,广东 珠海 519085)

0 引 言

随着中国经济的增长,国内机动车数量随之增加,越来越多的交通事故给社会环境和生命安全带来了严重威胁。交通安全问题不仅涉及车辆自身,更与交通环境密不可分,因此开发一个智能化的车载系统也日渐重要。

据调查显示,目前的自治安全系统基于反应式机理,并且依赖于自治传感器(雷达、激光雷达、摄像头等)在给定时间内的实时反馈,自治传感器的覆盖范围有限,缺乏协同性,并且存在盲区、适应性有限等问题。车载自组网(vehicular ad hoc networks,VANET)[1]将车辆间无线通信和高精度定位技术融合到车辆传感器组件中,可以提供超视距提前感知能力[2],在主动安全系统汇总引入预期或前馈行为,能够实现协作式驾驶应用。文献[3]的协作式安全系统使驾驶员有更长的反应时间避免进入危险驾驶情况,从而减少其他主动安全系统或被动安全系统的需求。

VANET是指在交通环境中车辆之间相互通信组成的开放式ad hoc网络[4],其目的是为了在道路上构建一个自组织的、费用低廉、部署方便的车辆间通信网络,提供无中心、自组织、支持多跳转发的数据传输能力,以实现事故预警、信息查询、辅助加时、道路交通车间通信和Internet接入服务等应用[5]。

因此,为了解决众多交通安全问题,研发了基于VANET的车辆协作系统,利用VANET所提供的超视距感知能力来提高驾驶员和周围环境的安全,并且有利于节省油耗、增加舒适度以及减少环境(如路面结冰)带来的影响。同时,系统具备与其他网络互连的能力,能够提供多种信息增值服务,为驾驶员提供安全应用。在驾驶员间建立易操作的实时通信,从而优化目前的交通环境。

1 系统概述

该系统是一个基于VANET模式[6],搭建在S5P4418开发平台的车载系统,旨在解决车辆间沟通难、车辆本身安全等问题。

基于VANET的车辆协作系统是将GPS、LTE、GIS等与嵌入式硬件技术相结合的高科技产物,车载终端主要由GPS模块、语音识别模块、中控模块等构成。GPS模块接收卫星数据并通过LTE模块向基站发送数据实现GIS信息查询;中控模块由nano pi2-S5P4418平台构成,负责数据处理和分析;数据采集端为C51单片机,负责数据采集,实现车载通信、紧急指示牌、道路交通信息、车内环境智能检测、自动紧急呼救等功能。通过自组网在汽车与汽车之间,用户与汽车之间建立通信协议,简化操作使用户能够与汽车进行交互,汽车驾驶员之间能通过自动搜索附近车牌对应的IP进行一键实时语音对话,亦可通过麦克风,用户对系统发出指令后,系统将信息转化为LED文字显示,解决了车辆间的沟通问题并提醒周围车辆注意紧急情况,可避免因沟通不到位而发生的交通事故;该系统还搭载了温度、有毒气体、湿度传感器,实时反馈车内安全问题,预警事故的发生;除此之外,该系统配备了一般车载系统所具备的GPS导航、实时路况信息通报等功能,满足驾驶员的基本道路需求。

2 系统硬件设计

系统硬件框图如图1所示。

图1 系统硬件框图

2.1 S5P4418平台简介

车载系统需要一个强大却微小的处理器,因此选择一个能够满嵌入式系统开发需求的处理器对于项目而言至关重要。而嵌入式微处理器是整个硬件平台的核心,目前在国内市场上流行很多种处理器核,其中ARM处理器以体积小、功耗低、性能高、成本低等优势广受欢迎。

所以根据设计需求,该项目选取广州友善之臂计算机科技有限公司开发的NanoPi S2,采用Cortex-A9架构的四核S5P4418处理器(主频1.4 GHz),整合了目前工业、消费、车载等行业常用接口,满足常规应用,所以选用S5P4418作为系统核心。

S5P4418开发板配备了4 G INAND(SDIN5C1-4 G),内存配置了1 G DDR3并配备有三星电源管芯片—NXE2000;PCB布局布线充分考虑电器要求,具有极佳的性能和抗干扰特性,使系统稳定工作于各种环境下,有助于提高车载系统抗干扰性能。S5P4418开发板[7]被设计为一块开源硬件,引出芯片的大部分重要接口可任意扩展使用的模块,有利于车载系统开发拓展nRF24L、GPS等模块。同时,采用Cortex-A9架构,其MPCore应用级处理器基于先进的推测型八级流水线[8],可避免因访问指令的延时而影响跳转指令的执行,可使系统中的紧急报警系统不被阻塞。每个周期内连续将二至四条指令发送到指令解码,确保充分利用超标量流水线性能,使整个系统可高效处于运行状态,保障系统的实时性。

2.2 nRF24L特性

该无线数据通信系统采用挪威Nordic公司推出的nRF24L射频芯片,其工作频段为2.4 GHz的全球开放ISM频段。与蓝牙和ZigBee相比,nRF24L射频芯片没有复杂的通信协议,完全对用户透明,同种产品之间可以自由通信[9]。其能在低成本、低功耗、短延时、高容量的优点下建立无线通信组网,系统由单片机C51控制无线数字传输芯片nRF24L,通过无线方式进行数据双向远程传输,两端采用半双工方式通信。

随着人们对低成本无线网络需求的增长,目前国内外研究机构对nRF24L在组网技术上的研究已经非常成熟,并在相关领域取得了一定的成就,因此该系统选择此射频芯片进行无线通信,以确保短距离通信的有效性和可靠性。

2.3 硬件电路的设计

系统硬件电路结构如图2所示。

图2 系统硬件电路结构

文献[10]的车载终端通信由ZigBee模块和nRF24L射频模块搭建,通过nRF24L无线传输,ZigBee和周围的节点组建自组网,且由于终端绑定车牌对应唯一特定ip,这样在一个nRF24L射频允许组网的范围内,每辆车都是唯一的,即可实现搜索附近车辆,在一定范围内即可建立语音通信,达到实时对讲的功能。

车内实时环境检测通过ZigBee模块中的传感器采集到温度、湿度、有毒气体浓度、火焰等值,通过串口发送给S5P4418中控平台对数据进行加工处理,并且通过4G模块将数据上传到yeelink服务器,最后通过串口返回相应数值显示在终端和安卓端。当其中某一项检测值超过所设定的阈值时,将会触发紧急呼救系统,终端将会即时通过4G模块发送求救信号,系统后台会发送求救信息(车辆GPS坐标、事故时间、车牌号等)给预先存好的联系人手机。

为了完善车辆间的信息交流,用户也可通过终端或安卓端选择相应的文字信息,单片机接收到用户指令,终端会将相对应的信息在分析处理后在LED点阵屏上进行显示。并且该系统配备了基本的道路信息提醒功能,利用高德地图提供的SDK开发包和GPS模块,满足用户最基本的导航和实时路况信息等功能。

3 系统软件设计

3.1 软件概述

该系统采用嵌入式Linux操作系统[11],具有内核小、效率高、内核更新速度快等特点,并且嵌入式Linux适应于多种CPU和多种硬件平台,是一个跨平台的系统。嵌入式Linux性能稳定、裁剪性好的特点,有利于拓展模块的开发。同时,Linux内核结构在网络方面非常完整,Linux全面支持网络中最常用的TCP/IP协议,提供了包括无线网络、Toker ring(令牌环网)、光纤甚至卫星的支持,完美解决了车载系统中对LTE-4G模块的开发问题。

根据各个模块终端的设计要求,每个平台模块运行环境和使用的编程语言不一。

(1)车载终端:硬件环境是Nanopi2-S5P4418平台,运行环境是Linux操作系统Debian。

(2)移动设备终端:硬件环境为Android2.2或者更高版本系统的移动设备,运行环境是Android2.2或者更高版本,开发语言是Java,开发环境是Android Studio。

(3)服务器:Yeelink服务器、高德服务器,开发语言采用SQL、Java,开发环境是Eclipse。

(4)车载终端显示:硬件环境是Nano pi2-S5P4418平台,标准4.5寸触摸板。

3.2 系统结构

文献[12]为满足车载系统后续功能的开发需求,降低耦合的复杂程度,避免“触一发而动全身”的问题,对车载终端的软件系统设计采用分层以及模块化的设计思想。根据该系统的实际应用,采用逻辑分层和功能分块的设计方案[13],即每个模块都必须完成特定的功能,同时提供上层服务,同时分配任务给下层模块,尽可能降低模块之间的通信量,减少软件设计的复杂度,使系统拥有良好的可拓展性。

根据软硬件的结构以及车载功能划分,将该系统划分为适合开发的多层结构,如图3所示。每层提供API接口,层与层之间通过信息队列等实现通信,上层作为功能接口,下层作为可选的策略来实现[14]。这样的分层结构可使开发人员进行并行开发,缩短开发周期。

应用层触摸屏控制显示功能模块通信协议及扩展层主要包含扩展新模块的通信协议集网络层GPS模块、WIFI模块、4G模块硬件驱动层数据采集模块、电源管理模块、语音识别模块硬件层传感器、Zigbee等

图3 软件系统分层结构

(1)硬件层。

硬件层相当于物理接触层,是车载系统的根本,主要实现物理世界和信息世界的衔接。借助感应器件的“感官”,实现物理世界物体间的互通,如C51单片机、各种传感器(温度、湿度、有毒气体等)和GPS等节点采集物理世界的信息。

(2)网络层。

网络层是硬件层和应用层间的桥梁,主要实现两层之间的信息互通,根据不同需求,提供最基本的端到端的信息处理及数据传送服务。该层的核心技术已相对成熟,能够单独提供良好的通信服务,并且融合了多种通信网络技术,如WIFI、4G、卫星通信等。

(3)应用层。

应用层处于车载系统架构的顶层,主要负责对硬件层采集的各种数据进行计算、处理,从而实现车内监控、检测和管理。该层由两个平台构成,分别是车载终端和Android手机端,负责完成协作、管理、计算等,为用户提供服务。

同时,为了提升用户体验,开发了Android手机终端,其分层结构划分为三层:

(1)用户表示层:用户与手机终端的交互操作界面,为用户显示数据信息,同时根据用户需求,接受用户命令,并通过网络进行信息传输。

(2)业务逻辑层:软件架构的核心组成部分,针对具体的问题进行逻辑操作,重点是数据业务逻辑的处理和数据层的操作。

(3)数据访问层:对Yeelink提供的数据库进行访问操作,实现车内监控、用户信息的修改等操作。

4 系统实现的关键技术

车载系统是一个实时要求高的应用,保持客户端和服务器端的信息同步是该系统实现的关键要素,所以系统的软件设计和服务端的选择至关重要。

服务器端选择:为了保障服务端的信息与客户端同步,选用了国内最大的物联网平台Yeelink,用以提供传感器云服务。其具有的高并发介入服务器和云存储方案能够同时完成车载系统大量的传感器数据接入和存储任务,确保了车辆实时数据能够安全地保存在互联网上,使用户可随时查看车辆的实时信息。Yeelink配置了事件触发机制,当数据达到设定阈值时,Yeelink平台会自动调用车载系统预先设定的规则,发送短信至预存联系人,实现车载系统的紧急报警应用。

由于车载系统具有实时性强的特点,终端会通过LTE-4G模块实时上传传感器所采集到的车内信息,因此,若客户端以频繁请求的方式来保持和服务器端的同步,这种同步方案带来的弊病是,当客户端以固定频率向Yeelink服务端发起请求,服务器端的数据可能并没有更新,这样便会带来许多无谓的网络传输,造成资源浪费。因此,针对这一问题,采用自行优化的Long-Polling实时技术来优化客户端。

该项目采用基于Long-Polling[15]技术原理,自行改进后的AlarmManager+Sevice+Thead混合复用机制,创建AlarmManager系统级服务贯穿在APP整个生命周期中,负责定时执行实时轮询服务器数据动态的任务,一旦AlarmManager监听器监听到服务器端传感器数据更新,通过Binder机制向AMS发送广播,触发报警消息推送通知和拨打电话服务,并开启多线程异步分发处理服务器端回调数据。采用AlarmManager系统级别服务负责轮询请求服务器,解决Android系统电源锁机制,即Android系统在屏幕熄灭后自动销毁到级别较低的进程或服务,避免客户端和服务不能进行即时通信或报警功能失效,同时实时触发和保持后台服务任务器和数据监听器的有效执行。核心代码如下:

public static void startPollingService (Context,int seconds,Class cls,String action){

AlaraManager manager=(AlarmManager) cpntext

getSystemServicr(Context ALARM-SBRVICB);

Intent intent=new Intent(context,cls);

intent.setAction(action);

PedingIntent pendingIntent=PendingINtent.getService(context,0,intent,PendingIntent.PLAG-UPFATE-CURRBNT);

longtriggerAtTime=SystemClock.elapsedRealtime();

manager.setRepeating(AlarmManager.BLAPSBD-RBALTIMS,triggerAtTime,seconds*1000,pendingIntent);

}

文献[16]的长轮询是对定时轮询的改进和提高,目的是为了降低无效的网络传输。当服务器端没有数据更新时,连接会保持一段时间周期直到数据或状态改变或者时间过期,通过这种机制来减少无效的客户端和服务器间的交互。原理图如图4所示,可见长连接的特点[16]:

·客户端接收到更新会立即调用响应处理函数去处理服务器返回的信息,结束后再次发出请求,重新与服务器建立连接;

·在客户端处理接收的信息,重新建立连接前,服务器端若有数据更新,这些信息会被保留,直到与客户端建立连接,服务器端才会将更新的所有信息发出;

·服务器端会阻塞请求,直到有数据传递或超时才返回。

图4 长轮询原理

5 结束语

基于VANET的网络特点,借助物联网技术,在nano pi2- S5P4418开发板上实现了智能车载系统,并同时开发相应的安卓手机端系统。该系统不仅可以实现远程对车内环境的实时监测报警和车内实时监控,使用户可以无时无刻查看自己爱车的实况,更重要的是提供了车载实时通信和LED点阵屏信息提醒功能,为车辆间的联系提供了一个良好的沟通平台,很好地起到了交通安全事故的预警功能,有效减少交通事故的发生并提高道路交通的行车体验。

参考文献:

[1] ZEADALLY S,HUNT R,CHEN Y S,et al.Vehicular ad hoc networks(VANETS):status,results,and challenges[J].Telecommunication Systems,2012,50(4):217-241.

[2] 朱存智.车载自组织网络(VANET)综述[J].湖北广播电视大学学报,2011,31(11):157-158.

[3] KARIM R.VANET:superior system for content distribution in vehicular network applications[D].New Jersey:Rutgers University,2009.

[4] 赵志峰,郑少仁.Ad hoc网络[J].中国数据通信,2002,4(9):1-5.

[5] 李 勇,黄均才,王凤碧,等.Ad hoc网络体系结构研究[J].计算机应用,2005,25(1):163-164.

[6] ABOOBAKER A K K.Performance analysis of authentication protocols in vehicular ad hoc networks (VANET)[D].London:Royal Holloway University,2009.

[7] 刘 览.基于FPGA的32位RISC嵌入式微处理器设计[D].南京:南京航空航天大学,2015.

[8] 施 亮.嵌入式微处理器的调试技术[J].科技视界,2015(8):42-45.

[9] 任宏伟,王德亮,张素伟.基于MSP430单片机的网络通信模块的设计[J].甘肃科技纵横,2011,40(6):24-26.

[10] 闫 沫.ZigBee协议栈的分析与设计[D].厦门:厦门大学,2007.

[11] 杜传业.嵌入式Linux内核解析[D].天津:河北工业大学,2008.

[12] 甯油江,赵 津,石 晴,等.基于ZigBee的多车协作控制研究[J].现代电子技术,2017,40(6):114-117.

[13] 刘 张.基于嵌入式的车载多功能终端的研究和设计[D].成都:西华大学,2008.

[14] 王念桥.应用MVP模式改进软件架构[J].计算机时代,2012(4):37-38.

[15] PHILLIPS B,HARDY B.Android编程权威指南[M].北京:人民邮电出版社,2014.

[16] 刘 伟,杨慧勇,乔 建,等.使用异步I/O构建高性能Web服务器[J].科技创新与生产力,2013(1):83-87.

猜你喜欢

服务器端嵌入式车载
基于IMX6ULL的嵌入式根文件系统构建
一种车载可折叠宿营住房
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
Linux环境下基于Socket的数据传输软件设计
捷豹I-PACE纯电动汽车高压蓄电池充电系统(三)
奔驰S级48V车载电气系统(下)
TS系列红外传感器在嵌入式控制系统中的应用
嵌入式PLC的设计与研究
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计