IPv6车联网校车视频监控系统设计及实现

2021-10-10 02:56高龙琛陈永红邢建平
物联网技术 2021年9期
关键词:网关车载终端

高龙琛,丁 月,陈永红,刘 政,邢建平

(1.山东大学 微电子学院,山东 济南 250101;2.济南市城市公共客运管理服务中心,山东 济南 250013)

0 引 言

随着国家经济的发展,对教育行业的投入逐年增加。但由于缺乏有效监管,校车事故频繁发生。自2013年起,我国校车伤亡事件数量逐年上涨,单起事故的伤残率与死亡率由2013年的3.5人/起、0.75人/起上升至2016年的13.38人/起、2.25人/起,给社会造成了极大危害[1]。因此,排除安全隐患,对校车进行实时监控刻不容缓。

物联网技术的发展带动车联网行业的兴起。大量车辆接入互联网,将自身内部信息通过网络传输至联网服务端平台,以保证车联网系统的实时运作。传统的车联网终端加入互联网通过使用GPRS模块接入IPv4网络,WebGIS(网络地理信息系统)服务平台和数据库也在IPv4环境中工作。随着Internet规模的日益扩大,车联网网络中各终端对网络IP地址数量的要求越来越大,产生了大量的地址需求,传统方式已无法满足当前需求。IPv4地址的短缺日益严重,不适用于大规模车辆加入互联网以及车与车之间的网络连接。车载终端需要独立的IP地址才能与服务平台建立对等的通信连接,IPv6网络无疑为车联网的发展提供了一种便捷的技术路线。在IPv6网络下建立车联网系统,实现车联网中人-车互联、车-车互联的场景,实时掌握车辆动态信息,才能有效预防人为原因造成的重大安全事故。

本系统融合了WebGIS服务平台、Oracle分布式数据库、安全网关等集存储、访问、转发于一体的云端车联网云服务平台,设计基于嵌入式Linux的车载终端设备,实现了高精度北斗/GPS厘米级定位系统,开发了基于V4L2框架的视频服务器系统。监管人员能够实时监控终端报警数据,实现对报警数据的记录、查询,第一时间预警、处理危险情况。

1 校车监控系统设计分析

本系统旨在解决难以实时监管车辆的问题。车联网监控系统需要完成对车辆信息的获取、云端数据的存储与获取、云平台指令下发,以及实现人-机交互等功能,系统架构如图1所示。车载终端获取车辆实时信息,包括终端定位数据、车身OBD(车载自动诊断系统)数据以及监控视频相关数据等,通过网络将数据加密后上传至安全网关,安全网关接收到终端数据后,将数据进行拆包、校验、解密后,转发至分布式数据库中分类储存。WebGIS监控管理服务平台用于向监管人员实时显示车辆定位信息,包括对车身数据的调取,如油耗、刹车、车速等;向平台实时展示报警数据,如超速行驶、车身状态异常等。云平台嵌入大数据分析框架,可对驾驶人员的急加速、急减速等不良驾驶行为进行次数统计,通过分析驾驶员的驾驶历史,对其进行安全驾驶等级划分,从而激励驾驶人员文明驾驶。

图1 车联网系统架构

2 车联网子系统设计分析

2.1 车载视频定位终端设计

车载定位终端需要完成对车辆信息的获取与实时数据的上传,以及视频服务器的运行。车载终端如图2所示。选取ARM Cortex-A9作为系统处理器单元,终端内部运行嵌入式Linux操作系统。板载UVC高清摄像头、北斗/GPS双频高精度定位模块、WiFi/4G模块,以及CAN网关设备接口。

图2 高清视频服务器设计

ARM Cortex-A9处理器是基于指令集ARMv7的A系列处理器,相比上一代处理器,它在降低功耗的同时提升了功效和峰值性能,适应性良好。其中,内部媒体处理引擎(MPE)可加强特定应用中的性能表现,满足长时间电池供电需求。嵌入式Linux系统因其免费开源、易移植、性能稳定、开发周期短等特点,被广泛应用于嵌入式设备中。本系统基于嵌入式Linux系统编程,实现车联网终端设备中包括IPv6网络加入、高精度定位信息处理、车身OBD数据获取、远程视频服务器等功能。

终端系统中的CPU通过读取GPS/北斗定位模块的数据与INS惯导模块的数据[2],将GPS/北斗定位源数据与惯导原件的源数据进行数据融合,采用动态加权融合算法降低惯性导航系统在工作过程中的累计误差,实现厘米级精度定位,保证校车定位信息的可靠性。结合速度、姿态、位置的误差方程,建立组合导航状态方程(连续系统)。通过状态方程可以递推出下一时刻的速度、姿态、位置,用于与差分定位的输出进行融合。由状态转移方程得到下一时刻的位置、速度等数据。

式中:X为状态矢量;F为状态转移矩阵;G表示噪声驱动;W表示系统噪声矢量矩阵[3]。将算法用C语言离散化表示,定义输出函数,执行程序后即可得到下一时刻的速度、位置等信息。在嵌入式Linux系统下运行该程序时,需要使用ARM-Linux-gcc工具编译程序,然后将交叉编译环境中生成的程序拷贝至ARM平台系统中运行。

车载终端需完成对UVC摄像头视频的获取、封装、储存以及压缩等。本系统远程视频服务器采用V4L2(Video for Linux Two)架构[4],该架构是Linux为视频设备提供的标准接口,主要包括V4L2相关底层数据结构和V4L2相关底层驱动接口,可使程序具备发现和操作设备的能力。视频服务器工程流程如图3所示。初始化输入设备相关函数,通过FFmpeg程序将采集的图像压缩编码为适合网络流媒体传输的H.264格式,并将图像压入缓冲区,供输出函数调用。FFmpeg可以记录、转换数字音视频,并将其转化为开源计算机程序[5]。输出函数通过创建Socket进程绑定本地IPv6地址与端口,回应客户端发起的UDP请求,将图像或视频数据通过HTTP应答的方式发送至客户端,供客户端读取调用。对视频实现H.264压缩编码需要借助FFmpeg相关库,在交叉编译环境下安装编译完成之后将FFmpeg库生成的动态链接库复制到嵌入式Linux系统[6]。将程序移植到ARM Cortex-A9 硬件开发平台,在Ubuntu平台下搭建ARM-Linux交叉开发环境,将程序拷贝至ARM平台。

图3 高精度定位数据的获取

2.2 通信协议设计与数据库

车联网系统运行在IPv6网络环境中,数据链路中的通信协议不再适用,需构建适用于IPv6网络的数据包格式。车载终端需定时向云平台上传数据,通过TCP协议建立与云平台数据通信链路的连接,上传数据包括车辆登录与退出、终端心跳包传输、车身OBD数据传输、报警、监控视频传输等信息。通信网关接收到数据后,对不同的数据包进行处理,包括对每一帧数据的校验、解密、拆包,将有效数据根据数据库规则存入对应数据库中。其中,车载终端向服务平台上传的定位报警数据主要包括车载终端ID、IPv6地址、端口、定位数据、定位时间、速度、报警、油耗,以及附加消息;多媒体数据包括ID、IPv6地址、多媒体数据类型、数据包大小、数据格式、附加消息等;平台向车载终端下发的指令消息包括车载终端ID、IPv6地址、指令类型、指令数据、附加消息等;指令类型包括视频监控调取、视频画面抓拍、当前终端数据上传等。通信协议格式见表1所列。

表1 通信协议格式

数据库用于存储车辆相关信息以及多媒体信息等,供WebGIS服务平台使用JDBC组件调取使用。数据库是车联网系统的关键,用于支撑车联网云平台的数据调用以及数据分析。网关系统通过ODBC组件与数据库进行数据交互,网关将终端上传的不同类型的数据解析后,将有效数据写入数据库。数据库参数见表2所列。

表2 数据库参数

定位信息包括定位车辆的经度、纬度、速度、IPv6地址、定位时间等,用于在车联网平台获取数据库信息并实时显示在车联网平台。

2.3 车联网云平台架构设计

车联网云服务平台包括监控管理平台、网关系统、分布式数据库等,其中监控管理网站平台需要完成对车辆信息的显示,包括对定位数据与WebGIS数据的融合,与道路匹配,以及提供车联网云计算平台相关服务。云服务平台架构基于WebGIS+Oracle[7]数据库,使用Java Web完成前端服务程序与后端数据处理程序。平台应用分层搭建,主要分为应用层、服务接口、业务层、存储层、数据处理层、通信层、设备层,如图4所示。

图4 云服务平台架构

(1)云计算环境支撑层IaaS:为云服务对象提供统一的访问界面,包装云服务资源、建立服务等级SLA、管理云服务对象状态和请求等。

(2)平台服务层PaaS:通过构建分布式服务平台,对外提供平台级服务,包括开发环境、平台资源、服务资源。PaaS提供了消息中间件、数据持久化存储、多媒体存储、统一配置、用户权限、数据分析、运维管理中心等基础服务;对外提供了服务的限流、降级、熔断、路由等核心功能。

(3)软件服务层SaaS:该层主要基于PaaS提供的资源开发业务构建核心业务,搭建微服务业务集群,Open API应用通过前端软负载对外提供软件服务。该层主要实现具体的业务逻辑,通过微服务开发方式把系统业务拆分成多个单元模块,降低模块耦合性,提高系统健壮性。系统通过Open API提供与其他接入方的数据接口。

3 系统测试

车载终端内部ARM平台使用基于Linux 3.0内核的Qt嵌入式操作系统,内核内部集成IPv6协议栈,ARM平台硬件板载MT6620 WiFi/蓝牙芯片,设备经无线网络接入校园网,通过无状态地址自动配置协议获取全局IPv6地址。硬件平台如图5所示。

图5 车载终端硬件平台

远程视频服务器初始化完成后,查询IPv6地址下有无UDP请求,若有,则根据请求做出应答,通过板载LCD触摸显示屏显示实时UVC摄像头画面。通过Socket绑定IPv6地址与端口号,与网关系统建立IPv6网络下的TCP连接,完成登录、数据上传等信息交互。

网关选用Windows Server 2012版本,通过监听本地IPv6地址[8]与对应端口号,接收来自车载终端上传的数据,将数据校验解密后通过ODBC连接数据源,将数据存入分布式数据库。

分布式数据库集群采用Oracle RAC,其架构的最大特点是将整个RAC集群建立在一个共享的存储设备之上,节点之间高速互联。在Oracle安装文件夹目录中修改listener.ora文件中的监听地址,使数据库监听程序监听本地IPv6地址。系统工作流程如图6所示。车载终端通过加入无线IPv6网络监听云平台有无指令下发,同时实时保持与网关间的通信链路;网关系统实时监听来自终端与平台的数据并处理,之后加密转发至数据库。

图6 车联网系统运行流程

打开设备运行程序,终端车载设备向网关上传数据,发送登录注册信息与终端定位数据,地图实时显示当前数据,通过历史回放可以查询当前车辆行驶轨迹等信息。云平台还具备报警数据上传、驾驶员驾驶行为分析、路况查询等功能。监控平台展示界面如图7所示。

图7 监控平台展示图

硬件平台板载2路UVC高清摄像头,一路拍摄司机,一路拍摄车内乘客。待终端远程视频服务器程序初始化完毕,车辆根据功能提示打开车载视频,并根据数据库保存的车载终端的IPv6地址,打开对应视频服务器8080端口。远程视频监控测试图如图8所示。

图8 远程视频监控测试图

4 结 语

本文简述了IPv6网络下校车监控系统的搭建与实施,分别对校车监控各子系统做了简要分析,通过在校车内部安装监控系统,实现在IPv6网络环境下的校车远程监管与视频实时监控。该系统能够预防由于监管不足造成的人为行车事故,实现向下一代网络环境下车联网系统的过渡以及原型验证。

猜你喜欢
网关车载终端
X美术馆首届三年展:“终端〉_How Do We Begin?”
高速磁浮车载运行控制系统综述
通信控制服务器(CCS)维护终端的设计与实现
智能互联势不可挡 车载存储需求爆发
多功能北斗船载终端的开发应用
基于ZVS-PWM的车载隔离DC-DC的研究
应对气候变化需要打通“网关”
一种实时高效的伺服控制网关设计
ABB Elastimold 10kV电缆终端及中间接头
新型轻便式车载电子系统的结构设计