■ 高立兵
高立兵: 甘肃有色冶金职业技术学院,甘肃 金昌,737100
远程图像传输在通信技术高度发达的今天有着广泛的市场需求。在交通、工业现场等许多领域都有着广泛的应用。设计一种基于H.264视频压缩技术的嵌入式无线视频监控系统,详细给出了监控系统的硬件设计和相应的软件实现方法,随着铁路信息化的逐步深入,在铁路领域中应用远程图像传输技术则可以进行远程观察,从而建立起一个有效的监测网络,提高铁路技术的现代化程度。
采用无线移动通信网络传输图像的主要目的是为了避免自行建设通信网络传输,并借助移动通信网络的覆盖率,实现更大范围的应用,同时也大大降低终端设备的成本。目前能够低成本获得的无线服务主要有CDMA和GPRS ,接入设备主要有手机或专用的模块。CDMA与GPRS虽然都是2.5代的移动通信系统,但CDMA网络通信速度远高于GPRS网络。目前视频监控系统中采用图像压缩标准为MPEG-4和H.264等几个标准,H.264在同等图像质量条件下具有比MPEG-4更高的数据压缩比,对网络带宽的要求更低。码分多址无线网络具有覆盖面广、高效、低成本的特点。码分多址网络的数据传输速率可达150 kb/s。这里开发的嵌入式无线视频定位监控系统就是充分利用了H.264视频压缩技术码分多址无线网络技术和嵌人式系统的特点而搭建的数据传输系统。该系统由嵌入式移动终端、CDMA网络、Internet网、远端控制中心服务器,无线或有线车站互联网客户端组成。
系统总体结构见图1。各部分功能如下:
监控终端:监控前端是的Linux嵌入式系统,它采集摄像头的视频数据,并用H.264标准压缩封装成RTP包发送到CDMA模块,以无线电波的形式发送到监控中心服务器。
监控中心服务器:监控终端选用Windows操作系统的PC机,监控终端软件采用Visual c+ +编程,实现的主要功能是接收、H.264软件解码嵌入式监控终端发送过来的监控数据,并将得到的图像保存和传输给客户端主机。
客户端主机:建立与监控中心服务器的连接,向监控中心主机发送控制命令,从而实现实时监视、控制、录像、报警等功能。
图1 无线网络视频监控系统结构
无线客户端主机或者有线互联客户端主机向监控中心服务器发送客户请求命令,先通过码分多址网关接入Internet,然后到达中心服务器。中心服务器收到用户命令后进行命令解析,再通过网络向监控终端发送命令,监控终端收到中心服务器的任务之后,就通过图像采集模块拍摄现场图像,并将经过H.264压缩编码后的图像数据按照RTP通信协议,经由码分多址模块发送回中心服务器。对于无线客户端主机,中心服务器再通过无线网络向客户端主机发送监控视频或图片,而对于互联网客户端主机,中心服务器则直接通过Internet向网络客户端主机提供视频或图片监控,其次,中心服务器还要监控码分多址传输数据质量,并进行反馈,由此来控制码分多址在不同信号质量下发送数据的速度。系统采用双C/S架构,具有非常好的扩容性,多个终端安装在不同的地点,就能够实现对不同目标的实时监控。
摄像头:由于Hi3510支持ITU-RBT.656/601视频输入接口,不能直接接收摄像头输出的模拟视频信号,如果摄像头需要再加一片SAA7114视频解码芯片,就可以把摄像头输出的模拟视频信号经SAA7114模数转换成BT.656格式的数字视频信号,从ITU-RBT.656/601的视频端口输入监控终端。
监控终端:监控终端的硬件部分采用Hi3510芯片的ARM926EJ-S作为主控芯片,主要有CDMA Modem,Hi3510芯片,数据采集设备(摄像头)及电源。围绕核心芯片Hi3510分别搭建相应的硬件和软件环境,以实现监控终端的设计。
Hi3510:核心芯片采用华为海思公司的基于H.264 BP算法的视频压缩芯片Hi3510,Hi3510采用ARM+DSP+硬件加速引擎的双核高集成度的SoC 构架,可以很好地运行嵌人式Linux,能自适应各种网络环境,大小为19×19 mm,引脚间距为0.8 mm,片内集成了包括数字视频接口、USB、ETH、I2S、I2C、GPIO、SPI、UART、SDRAM、DDR 等接口,工作原理是视频输入单元通过ITU-RBT.601/656接口接收由VADC输出的数字视频信息,并通过AHB总线把接收到的原始图像写入到外存(SDR SDRAM或DDR SDRAM)中;视频编解码器从外存中读取图像,进行运动估计(帧间预测)、帧内预测、DCT变换、量化、IDCT变换、反量化、运动补偿等操作,最后将符合H.264协议的裸码流和编码重构帧(作为下一帧的参考帧)写入到外存中;视频输出单元从外存中读取图像数据并通过ITU-R BT.601/656接口送给VDAC进行显示,应用的需求不同,视频输出单元从外存中读取的图像内容也不同,当需要对输入图像进行预览时,视频输出单元从外存中读取原始图像,当需要观察视频编码器的编码效果时,视频输出单元从外存中读取编码重构帧;ARM 对视频编码器输出的码流进行协议栈的封装,然后送给网口发送,以实现视频点播业务。
码分多址通讯模块:采用深圳倚天科技公司的ETPro-309AI CDMA Modem,其内置SIM卡,其内部核心芯片是QualcommMSM6025。该模块包含基于码分多址业务标准IS95和IS2000的调制解调系统,而且带内置TCP/IP协议栈,可利用AT命令直接与其通信。码分多址模块与核心处理器之间使用UART进行连接。
在本软件设计中,采用典型的C/S结构,由客户端与服务端两部分构成。客户/服务器模式的最显著特点是非对等作用,即客户相对于服务器处于不平等的地位,服务端提供服务,客户端提供请求。这很好地适应了当前网络中大量存在的资源分布和运算能力不均的现状。系统软件主要由三部分组成,终端监控现场的视频数据处理模块,服务器端数据处理模块以及车站客户端用户模块。
终端软件的核心是嵌入式Linux操作系统,所有功能的实现都基于Linux操作系统来完成。主要包括三个层次,最底层是BootLoader服务程序和基本外设驱动,主要完成系统加载和ARM核心处理器的初始化配置,第二层主要是摄像头模块和码分多址模块的驱动程序,最后一层是系统的应用程序。
由于Linux内核采用模块化的设计。很多模块可以独立地加载或卸载,所以小型化就是对Linux内核重新编译,在编译时仔细地选择嵌入式设备所需要的功能模块,同时删除不需要的功能。这里只需要串口驱动、SAA7114视频解码芯片驱动,还有拨号网络应用,还要支持PPP、TCP/IP网络协议,其他都可以删除掉,使系统运行所需要的内核显著减小至l Mb以内。码分多址拨号通过运行PPP程序进行。在Linux下的PPP包是专门为解决Modem拨号上网问题而编写的,并且是公开源代码的。PPP拨号脚本程序主要通过调用pppd和chat这两个应用程序,并通过AT指令实现对Modem的操作。
应用程序主要是监听客户端主机的命令,收到命令后调用摄像头模块采集图像,然后再使用码分多址模块来发送图像数据。监控终端一旦初始化后,就与中心服务器建立TCP连接,在运行过程中终端跟中心服务器保持TCP连接,中心服务器可随时主动地请求图像数据,因此,对于对交互性和实时性有较高要求的应用系统可实现较好的响应。监控终端软件流程见图2。
服务器端模块软件可以分为通信模块,用户管理模块,图像预览和控制模块四部分。实现的主要功能是从数据接收模块接收数据、H.264软件解码嵌入式终端发送过来的数据、并将得到的图像视频多路显示、对多个监控节点的音/视频数据进行轮巡显示、保存和传输给终端用户、负责添加和删除用户、同时为添加的用户设置使用等级,系统保留一个超级用户。
客户端主机通过宽带上网方式登录到Internet上,因为系统的监控终端都是通过CDMA方式接入Internet;这种方式的最大问题是拨号上网,IP地址临时分配而不固定。所以客户端主机必须申请一个静态IP地址以连接到固定的中心服务器上。
当客户端输入监控中心主机的IP和用户名、密码后,该软件与视频监控系统的服务器创建连接,为保证系统安全,根据实际需要,客户终端主机使用安全访问机制。当客户端主机连接上监控中心主机后,即可运行服务器端软件,在权限允许的情况下可以实现对监控中心主机的控制,从而提供给用户实时监视、控制、录像等功能。
图2 视频监控系统监控终端软件流程
[1]童长飞.C8051F系列单片机开发与C语言编程[M]. 北京:北京航空航天大学出版社,2005 :558
[2]潘琢金.C8051F120/1/2/3混合信号ISP FLASH微控制器数据手册[M]. 深圳:新华龙电子有限公司,2004:304
[3]朱斌. 何成杰,叶家骏,等. 基于嵌入式系统的视频图像传输系统[J]. 电子技术,2003 (1) :22-24
[4]摩托罗拉工程学院. CDMA 20002-1X网络技术[M]. 北京:电子工业出版社,2005
[5]胡智娟,张华清. 移动通信技术使用教程[M]. 北京:国防工业出版社,2005