由于3G无线网络技术和嵌入式技术的不断发展,推动了视频监控领域的迅速发展,尤其是在汽车监控领域。3G无线网络覆盖面积广,可灵活接入,相比之前车载视频监控终端所采用GPRS,CDMA等无线通信技术,传输速度快了很多,但是3G技术在汽车监控领域的实际应用不够完善。DM365支持H.264视频编码技术,在网络带宽有限的条件下,保证了视频数据的高质量传输。上海龙尚公司的U6100模块可以集成到任何3G移动设备,并且可以接入到HSDPA、 HSUPA、UMTS等高速网络。所以我们设计了以TI的DM365为核心,以上海龙尚公司的U6100为传输模块的车载视频传输模块。
1 3G车载视频传输模块的硬件设计
本文设计的视频传输模块是应用在于车载监控设备中,所以我们在进行方案设计和硬件的选择时,视频的传输要求是首当其冲的。鉴于DM36X系列软硬件兼容性好,Davinci平台方便算法扩展,故采用TMS320DM365芯片来搭建3G车载视频传输系统。
本模块的硬件平台主要由以下几部分组成,分别是视频采集和处理部分,本地存储与显示部分,3G视频传输部分,电源部分。车载终端视频传输模块硬件框架图如图1所示。
1.1 视频采集和处理部分
视频采集部分由一个PAI/NTSC制式的云台摄像头和一个视频编解码芯片TVP5151组成。云台摄像头需要用RS485来控制,由于DM365上的只有两个串行接口(UART),且都已经被占用(一个用来连接串口调试,一个连接GPS模块)。所以我们利用USB HUB里多余的一个USB口,进行二级转换,先用LP2303转换成232,在用MAX485转换成485用于云台的控制。
TVP5151和处理器是用I2C总线进行对接的,将输入的模拟信号转换成数字信号。
视频处理部分则采用TI的DM365高清视频处理器。DM365支持H.264视频编码技术,在用3G无线网络传输的条件下,保证可以进行高质量视频数据的传输。
1.2 本地存储和显示部分
DM365提供了专门的外部存储器接口,包括一个Flash接口和一个SDRAM接口,可以连接外部存储器。在这个车载终端的设计中我们选用三星公司的1GB容量、8位数据线的K9F 8G08UOB的NAND Flash芯片和128MB容量、16位数据线的K4T1G164QE的DDR SDRAM芯片。
为了车载终端的操作的更加人性化,显示部分我们选用的是台湾晶采光电公司的一款5.7英寸的TFT-LCD触摸屏面板。该面板具有640X480的高分辨率。它支持I2C总线或SPI总线,考虑到上层驱动的实际情况,使用的是I2C总线和主芯片进行连接。
1.3 3G视频传输部分
3G传输部分选用的是U6100模块。他在3G网络平台下上行和下行的最传输速率均能达到384Kbps,符合车载传输模块的设计要求。3G传输部分的电路设计如图2所示。
U6100的供电要求是3.6~4.2 V,我们用3.8 V给其供电。U6100提供6条SIM卡接口连接SIM卡,兼容现在各种3G格式。U6100提供标准的RS232接口USB_DM和USB_DP,可以直接和用户的CPU相连。由于本设计需要4个USB口,我们用一款USB扩展芯片把DM365仅有一个USB口扩展成4个,并用其中的DP1和DM1来连接U6100。电源USB VBUS由5 V电源经过滤波后供给。KPD_PWR_N是U6100的供电开关,其拉低时有效,我们直接通过一个0欧姆电阻接地,这样U6100开启时默认处在工作模式。EXT_RET_IN是U6100的复位信号,其拉低时进行复位,我们这里通过DM365的GPIO口来进行控制。
2 车载视频传输模块的软件设计
视频传输模块的软件设计部分主要分为驱动的设计和应用程序的设计。我这里主要讲了包括U6100模块的驱动设计,3G网络接入程序设计和视频传输程序设计。由于Linux 2.6.18的系统相比于其他版本具有更好的开放性、安全性和可移植性,所以本系统的全部软件开发是在该平台进行的。
2.1 U6100模块的驱动设计
驱动模块的加载分静态和动态两种。本系统采用的是动态加载方式。U6100模块的加载过程如下:1)首先要确认编译驱动和编译内核的交叉编译工具是同一个 (本系统用的是arm_v5t_le_gcc);2)对驱动的Makefile文件进行修改,添加内核源码目录和编译工具,进行make编译后,生成.ko文件;3)将生成的.ko文件拷到车载终端的/module/下面;4)用insmod命令进行模块的加载,在目录/dev/tts下会生成3个设备节点USB1-USB3;至此,3G无线模块加载成功。
2.2 3G网络接入程序设计
3G无线模块加载成功后,就要接入网络,车载设备通过拨号的方式连接至网络,最常用的是使用PPP(点对点协议)协议。PPP协议的拨号主要分为3个阶段,完成以后,一条完整的PPP链路就建立起来了。经过如图3所示。
虽然U6100模块对电信的CDMA2000和联通的WCDMA都支持,相对来说,联通的WCDMA网络更加稳定和快速,所以我们选用联通的WCDMA网络。在LINUX中,与WCDMA入网有关的程序为pppd和chat。pppd程序负责3G模块的初始化和入网拨号。在初始化部分调用chat程序进行 AT指令的发送,主要交互拨号参数和拨号的用户信息的设置,然后pppd程序进行入网拨号。U6100拨号接入网络的具体流程如下:1)编写pppd拨号脚本wcdma3、会话建立和断开的调用脚本chat—wcdma—connect和chat—wcdma—disconnect文件;2)添加内核选项,编译支持PPP协议的内核;3)把编译好的进行pppd文件和chat文件的移植到车载终端的文件系统的/etc/ppp/peers下;4)在终端输入拨号命令pppd callwcdma3进行连接;5)用ifconfig查询,出现出现一个网络接口ppp0的打印消息,表明已经成功连接到WCDMA3G网络。
2.3 视频传输程序设计
车载视频传输系统对视频传输的时延和丢包率要求比较高,RTP/RTCP是实时视频传输过程中一种比较好的解决方案,它具有开源代码的RTP库,因此本系统采用实时传输协议RTP和实时传输控制协议RTCP配合使用来进行3G传输。
RTP数据包的发送流程如图4(a)所示。先把从缓存中读取的H.264视频流打包成一个一个RTP数据包,依次发送给服务器。RIP荷载的单元类型结构有单NAL单元包、聚合包和分片单元3种。在这里为了避免视频数据在网络层被分割,我们采用的是单NAL包和分片包模式,将1个NAL单元设为1K字节。如果小于1K字节,直接封装成一个RTP包发送。如果数据单元的长度较长超过1K字节,则作为FU—A包发送,需要分割成若干个小于1K字节的NAL包,包括首片包、中间包和尾片包三类。然后按照RTP数据包的格式封装上RTP报头,再通过U6100模块发送至3G网络。对应的RTP包接收流程如图 4(b)所示。
3 测试效果
在搭建好的车载终端环境下进行3G视频传输,并用Wireshake软件进行RTP数据包分析实验。如图5所示,其中黑色阴影的是抓到的第847个RTP包,它从3G网络的地址10.13.1 4.77传送到我们的设备服务器101.69.255.130。看到全部RTP包的大小都不超过设置的包的最大值1040。经过多次测试,丢包率在4%以内,符合的要求。在客户端看到的视频也非常的清晰,视频流畅度也很好,无线传输速率能达到25帧/s,如图6所示。
4 结论
文中设计的3G车载视频传输模块是车载监控系统的重要部分,通过3G网络传输的视频画面清晰,有利于远程监控中心对车辆进行实时的监控和调度,符合目前车载传输的要求。