车载嵌入式视频监控定位系统※

2013-09-25 03:05王忠勇赵毅栋李雅琼
单片机与嵌入式系统应用 2013年12期
关键词:网卡车载北斗

王忠勇,赵毅栋,李雅琼

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

引 言

目前我国实现智能化公交的城市寥寥无几,虽然杭州、长沙、武汉、佛山等城市已经出现智能公交,但也仅仅是部分线路。当前远程车辆监控系统存在数据传输速度慢、不能及时全面反馈整车运行状态信息、不能满足视频和语音等其他多媒体功能的缺点[1]。为了提高公交智能化程度,方便公交管理,本文设计了一个无线视频监控与定位结合的系统。此系统使用视频压缩技术,通过无线网络WiFi和3G网络利用RTP协议来传输实时视频流,并利用我国自主的北斗系统结合GPS导航系统来实现定位跟踪。

1 系统总体设计与说明

GPS车载定位监控系统由车载终端、客户监控中心及相关的业务管理系统组成,如图1所示。车载终端获取GPS定位信息、车辆信息等,通过GPRS移动通信网络将这些信息发送到客户监控中心,并且接收中心的业务指令。客户监控中心提供实时监控、调度处理和业务管理等功能。

车载终端主要由摄像头、北斗&GPS模块、ARM处理器、无线网卡、3G模块构成。主要完成以下功能:

图1 系统组成图

①实时视频的采集和压缩,并建立客户端与服务器的连接,然后把实时的视频流上传至监控中心服务器。

②利用北斗与GPS模块获取定位信息,把实时的位置、速度、经度、维度等信息发送至监控终端的服务器。

③通过WiFi和3G来实现与互联网的连接,登陆客户监控中心。

网络传输部分使用3G与WiFi,提供监控中心与车载终端的数据交互链路,使车载终端与服务器建立连接。

客户监控中心主要是建立起一个服务器,接收终端传来的实时视频数据和定位信息,并解压显示实时视频和定位信息。

对比目前的车载视频监控终端,本系统有两大特点:

①视频传输可以使用WiFi和3G两种模式,目前我国已有很多大城市实现了WiFi覆盖,如果整条线路都有WiFi覆盖,则使用WiFi来传输。相比3G传输视频,WiFi的延时小得多,能够更好地实现实时监控。

②实时接收BD2和GPS导航卫星信号,可以使用我国自主研制的北斗定位,摆脱对GPS的过分依赖。

2 车载终端与网络传输的设计

2.1 硬件设计

硬件的连接接口如图2所示,模拟摄像头采集视频,经A/D转换数字化之后送入Hi3515进行视频的压缩。北斗与GPS模块经串口把定位信息传递给处理器,然后通过USB口把压缩之后的视频数据和定位信息经WiFi网络和3G网络传输到Internet。

图2 硬件接口图

2.1.1 主控制器

目前嵌入式处理器种类繁多,系统的主要功能是进行视频的压缩传输,因此视频采集压缩的处理速度和对网络的支持是主要参数。本文采用的Hi3515是ARM9处理器内核带有视频硬件加速引擎,提供H.264和MJPEG多协议编解码和双码流编码能力,相比通用的S3C2440和S3C6410来说,Hi3515使用硬件视频压缩,比软件压缩快5~10s,几乎没有延时。

系统使用Linux操作系统,Linux操作系统的内核结构在网络方面是非常完整的,提供了十兆位、百兆位及千兆位的以太网,还有无线网络、令牌环等的支持[]。

2.1.2 WiFi模块

对于WiFi网络的支持本文使用驱动芯片为RT3070的无线网卡,由于Linux系统本身已经支持类似的网卡,所以只需在Linux系统内核中稍加配置即可实现系统对此网卡的支持。此网卡是USB接口,在Linux操作系统中只需操作USB即可对网卡进行相应的操作。

2.1.3 北斗&GPS模块

系统的定位使用的是北斗&GPS模块定位相结合的方法,自动根据定位的精度来决定使用北斗还是GPS来定位。北京联星的CC50-BG卫星导航模块是我国自主知识产权的定位模块,具有小体积、多系统、高灵敏度、低功耗、易集成的特点,可以实现机动载体的实时高精度三维定位、三维测速、精确授时。同时,支持BD2B1和GPS L1两个频点,标准NMEA0183数据输出,数据刷新率为1Hz。使用串口与Hi3515进行数据交互[4]。模块电路图如图3所示。

图3 北斗&GPS模块电路设计

2.1.4 3G模块

对于3G网络的支持本文使用华为的EM770W模块,华为官网有此模块的驱动移植说明,因此Linux驱动移植相对简单并且稳定。本系统使用USB接口与3G模块相连接,保证了数据传输速率并且方便数据读写。该模块支持中国联通的WCDMA,目前中国联通的3G网络相对较完善,能够最大程度地保障数据传输的实时稳定。

2.2 软件设计

车载终端的软件部分主要是获取实时视频流并压缩打包、WiFi网卡和3G驱动的编译、移植。

2.2.1 获取实时视频并压缩打包传输

使用海思公司提供捕获实时视频流与硬件压缩的API来完成视频压缩和打包,流程图如图4所示。

这一部分中重点是码流的打包发送。首先必须熟悉H.264码流格式与RTP协议。

(1)H.264基本流

H.264的基本流由一系列NALU(Network Abstraction Layer Unit)组成[5],不同的NALU数据量各不相同。H.264规范提到当数据流是储存在介质上时,在每个NALU前添加起始码0x000001,用来指示一个NALU的起始和终止位置。在这样的机制下,*在码流中检测起始码,作为一个NALU的起始标识,当检测到下一个起始码时,当前NALU结束。每个NALU单元由一个字节的NALU头(NALU Header)和若干个字节的载荷数据(RBSP)组成,如图5所示。

图4 视频压缩传输流程图

图5 NALU单元序列

NALU头格式如图6所示。

图6 NALU单元头格式

(2)RTP协议

每一个RTP数据包都由固定包头(Header)和载荷(Payload)两个部分组成,其中包头前12个字节的含义是固定的,而载荷则可以是音频或视频数据。RTP固定包头如图7所示。

图7 RTP固定包头

从RTP数据包的格式不难看出,它包含了传输媒体的类型、格式、序列号、时间戳以及是否有附加数据等信息。这些都为实时的流媒体传输提供了相应的基础。而传输控制协议RTCP为RTP传输提供了拥塞控制和流控制,它的具体包结构和各字段的含义可参考RFC3550[6],此处不再赘述。

前面分别讨论了RTP协议及H.264基本流的结构,那么如何使用RTP协议来传输H.264视频。一个有效的办法就是从H.264视频中剥离出每个NALU,在每个NALU前添加相应的RTP包头,然后将包含RTP包头和NALU的数据包发送出去。

(3)H.264流媒体传输系统的实现

一个完整的流媒体传输系统包含服务器端和客户端两个部分。对于服务器端,其主要任务是读取H.264视频,从码流中分离出每个NALU单元,分析NALU的类型,设置相应的RTP包头,封装RTP数据包并发送。而对于客户端来说,其主要任务则是接收RTP数据包,从RTP包中解析出NALU单元,然后进行解码播放。该流媒体传输系统的框架如图8所示。

图8 H264流媒体传输系统框图

其中服务器端是在车载终端运行的,客户端是在监控中心通过开源软件实现的。服务器的算法流程如图9所示。

2.2.2 北斗&GPS模块信号的获取与发送

使用北斗&GPS模块,标准NMEA0183数据输出,数据刷新率为1Hz,使用串口就可以读取串口数据。为减小车载终端的压力,从串口读取数据之后并不处理数据,而是把获取的原始数据经TCP发送到监控中心。流程图如图10所示。

2.2.3 WiFi无线网卡驱动的编译与移植

使用无线网卡驱动RT3070,驱动分为STA驱动和Soft-AP驱动两种。STA驱动支持无线网卡工作在STA模式下,而SoftAP的驱动支持无线网卡工作在软AP的模式下,可以作为一个软的接入点。本文使用STA模式。无线网卡驱动的编译移植略——编者注。

2.2.4 3G网卡驱动移植

使用的3G模块式EM770W,这个3G模块驱动全面,可移植性好。主要工作是配置3G模块驱动和ppp网络协议栈。具体移植过程略——编者注。

3 监控中心软件设计

监控中心主要是建立起服务器,通过网络来获取车载终端上传的实时数据。获取定位信息和解压显示实时视频。

图9 服务器端算法流程

图10 北斗&GPS信号的获取与发送流程图

3.1 实时视频解压显示

由于使用的是标准的H.264压缩,因此可以借助于开源的软件来进行视频的解压。这方面开源的软件很多,比如LIVE555、VLC等。本文使用的是VLC,通过编写一个w.sdp配置文件,VLC就能播放实时的H.264视频流,配置文件的模式如下:

通过上面的配置文件就能够获得使用RTSP协议传输的帧率为15fps的H.264视频流,端口号为8888,视频传输的目的IP是192.168.1.200。只需简单地修改配置文件即可应用到自己的应用中。

3.2 北斗&GPS模块信号的获取

由于北斗&GPS模块信号是由车载终端建立的TCP客户端打包发送的,因此监控中心还需要建立一个TCP服务器来获取数据。这里获取的是原始的数据,可以根据NMEA0183协议来解析收到的数据从而获得车辆的位置、速度等信息。本系统设计了一个测试软件来模拟监控中心的服务器端,界面如图11所示。

图11 模拟监控中心软件

结 语

本文设计了一种车载嵌入式视频监控定位系统,本系统利用视频压缩、WiFi、3G、北斗&GPS模块定位等技术,实现一个智能公交的监控系统模型,该系统可以实时地监控公交的运行。实验证明该系统具有数据延时小、定位准确、运行稳定易维护等特点。

编者注:本文为期刊缩略版,全文见本刊网站www.mesnet.com.cn。

[1] 齐光石.基于3G技术远程车辆监控系统的设计与实现[D] .长春:吉林大学,2012.

[2] 田鹏飞.基于GPS&GPRS的车载监控终端硬件设计[D] .合肥:中国科学技术大学,2006.

[3] 清华远见嵌入式培训中心.嵌入式Linux应用程序开发[M] .北京:人民邮电出版社,2009:2-3.

[4] 北京东方联星科技有限公司.CC50-BG V2.0Spec[OL] .[2013-06] .http://www.olinkstar.com.

[5] 国际电信联盟.ITU-T H.264建议书[EB/OL] .[2013-06] .http://www.itu.int/en/pages/default.aspx.

[6] Network Working Group.RFC3550[EB/OL] .[2013-06] .http://www.ietf.org/rfc/rfc3550.txt.

猜你喜欢
网卡车载北斗
一种车载可折叠宿营住房
北斗时钟盘
高速磁浮车载运行控制系统综述
“北斗”离我们有多远
奔驰S级48V车载电气系统(下)
Server 2016网卡组合模式
智能互联势不可挡 车载存储需求爆发
首个北斗全球“厘米级”定位系统开建
中国的北斗 世界的北斗
挑战Killer网卡Realtek网游专用Dragon网卡