1 引言
目前,远程视频监控系统已经广泛应用于工矿企业生产现场监控、电信机房监控、城市交通管理等领域。常见的远程视频监控系统大多是通过架设专用的有线媒介,或者租用电信运营商的通信线路传输视频信号。前者工程工期长,前期投入比较大,传输距离有限;后者受周边环境影响较大,可扩展性较差,这就造成在矿山等偏远地区和地形复杂地区的应用受到限制。
随着移动通信技术的发展,无线数据传输的速度有了很大提高。为了能够向GSM用户提供分组形式的数据业务,移动公司利用现有的GSM网络的绝大部分基础设施,进行软件的升级,形成了一种新的网络逻辑实体——通用分组无线业务(GeneralPacket Radio Service,GPRS)。中国移动GPRS网络覆盖率广,具有基于IP、实时在线、按流量计费、方便、性价比高等优点。通过GPRS网络传送用H.263等低比特图像压缩标准压缩的视频数据已成为远程视频实时监控系统的新选择。本文介绍一种基于GPRS网络的无线视频监控系统,该系统可以在不适合架设有线网络的特殊地理环境下,利用现有的中国移动GPRS网络和Internet代替传统的有线视频监控系统对远程目标进行视频监控。系统中采用嵌入式控制模块I-7188作为监控终端的主控制器。
2 系统结构
GPRS是一种新型的GSM数据业务,可在用户和数据网络之间提供一种连接,给移动用户提供高速无线IP和X.25分组数据接入服务。GPRS采用分组交换技术,多个用户可共享某些固定的信道资源,免受上网断线之苦。GPRS数据传送速率理论上最高可达164 kb/s。虽然目前只支持53.3 kb/s的峰值传输速率,但是由于H.263等低比特图像压缩标准能以低于28.8 kb/s的码率对单帧或者活动帧视频进行压缩解压缩,因此,通过GPRS网络传送已压缩的视频信号是完全可行的。
整个无线视频监控系统分为现场视频采集站点、GPRS网络及远程视频服务器3部分,如图1所示。现场视频采集站点与远程视频服务器之间通过GPRS网络建立TCP连接,传送视频编码和控制指令。现场视频采集站点作为TCP连接的客户端,远程视频服务器作为TCP连接的服务端。现场视频采集站点在上电后自动寻找远程视频服务器。而远程视频服务器在与现场视频采集站点建立TCP连接后,通过发送指令远程控制视频采集的开始、结束以及是采用单帧采集还是连续帧采集。
2.1 现场视频采集站点
现场视频采集站点包括摄像头、云台、视频采集卡、I-7188嵌入式控制模块、GPRS Modem 5个模块,如图1所示。其中,摄像头可根据客户要求的清晰度、彩色/黑白、可控性等选择合适的型号,还可以增加云台来控制摄像头的动作。摄像头输出视频的制式要符合视频采集卡的要求。视频采集卡可以选择市面上符合H.263协议的视频采集卡成品,也可以根据需求,采用FPGA、DSP以及专用视频采集器件来实现。本系统设计选用北京百目公司生产的视频编码板-极目719EC。
2.1.1 极目719EC视频编码板
图像监控系统的设计重点之一是图像编解码。虽然GPRS网络的性能相对于GSM网络有了很大的提升。但是仍然无法满足动态图像传输的速度要求,因此,本系统采用北京百目公司自行研发的专有视频序列压缩算法CAMEC传输静态图像,并对图像的编解码步骤进行适当取舍。
CAMEC算法在保证一定性能的前提下具有计算量小的特点,可有效降低系统功耗和成本。极目系列产品全部采用CAMEC算法,已在实际应用中得到了各行业用户的肯定与好评。极目719EC编码板既可以输出采用帧内视频压缩方式生成的单帧编码,也可以输出基于帧间预测压缩方式生成的帧序列编码码流。一般单帧编码比较适用于照片存储类应用,而帧序列编码方式则适合传输类应用。另外,该视频压缩卡支持H.263图像压缩标准和CIF/QCIF格式,压缩帧率为1~25帧每秒,可调。
极目719EC编码板的主要功能是对输入的模拟视频信号进行量化、压缩、编码等处理,然后通过一个RS232串行数据口将压缩编码码流输出给主机设备。主机设备利用极目719EC的视频压缩编码板实现视频传送、视频存储等功能。
2.1.2 GPRS MODEM网络部分命令的应用
GPRS Modem内嵌了TCP/IP协议栈,可进行透明的数据传输。I-7188通过COM1口使用标准AT命令对GPRS Modem进行操作。GPRS Modem网络相关的部分指令如下:
2.1.3 视频采集站点的工作原理
首先,视频采集卡与控制器I-7188的COM3口相连,对输入的模拟视频信号进行量化、压缩、编码等处理。然后,通过COM3将压缩编码码流输出给控制器I-7188。I-7188的COM1口与GPRS Modem相连,I-7188通过COM1根据网络情况把输入的编码打包传送给GPRS Modem。GPRS Modem上电后自动依附到GPRS网络上,进入命令模式。
2.2 远程视频服务器
如图1所示,监控视频服务器端由Internet网络接入点、视频服务器和监控软件组成。监控软件采用面向对象的方法,由Visual C++6.0编程实现。应用程序除了主线程外,还为每一个已建立的TCP连接增加了一个解码线,使得程序在同一时间可以对多个监控终端进行监控。监控终端的身份识别、视频的控制(包括监控点图像切换、云台控制和摄像机镜头控制)统一由监控软件管理。
2.2.1 TCP的连接实现
对于计算机用户来说,实现拨号接入Internet是件很容易的事,因为在PC上有非常成熟的软件能够轻松实现PPP和TCP/IP协议。但是对于采用嵌入式设备的终端尤其是单片机来说,由于硬件资源的制约和协议的复杂繁琐,实现起来比较困难。
程序TCP连接是在Windows套接字(Winsock)的基础上开发的。Winsock是Windows系统TCP/IP编程的通用接口。MFC类库中的CAsyncSocket类和CSocket类为开发Windows Socket通信程序提供了面向对象的编程接口。在实际应用中,通常是以它们为基类派生出Socket对象完成网络通信的。系统中远程视频采集站点和服务器之间需要建立TCP连接,所以Socket采用流式套接字。
服务器程序中用到了两个Socket类:CLis-tenSocket类和CAcceptSocket类。它们都是以Public方式继承CSocket类生成的。CListenSocket类为侦听套接字类,只注册FD_ACCEPT事件,主要负责维护为客户连接服务的数据套接字。CAccept-Socket类为数据套接字类,主要负责和视频采集站点的通信工作。CAceeptSocket类是由CListenSocket类接受视频采集站点的连接请求而建立的。在建立的同时开始一个视频解码线程,对传输过来的视频编码进行解码。同时根据传递过来的视频信息发送远程视频采集站点控制指令,以调整视频采集站点的动作。TCP连接的工作流程如图2所示。
2.2.2 GPRS远程传输方式
系统通过GPRS网络建立TCP连接有两种方式:一种是监控终端通过GPRS Modem与GSM基站通信,GPRS分组数据包通过内部网关节点后,转换为可在Internet中传送的格式,传送给视频服务器。另一种是现场视频采集站点GPRS Modem通过GPRS网络直接与监控服务器端的GPRS Modem进行点对点通讯,然后通过串口将数据发送至视频服务器。
相比较而言,第二种方法是在GPRS网络内部进行数据传输,所以传输速率和可靠性比第一种方法要好,但通信和设备费要高一些。视频服务器端同一时刻只接受一个现场视频采集站点的连接请求,适用于移动办公视频监控。
推荐采用第一种方法。远程视频服务器端接人Internet,并拥有一个固定的实IP地址,现场视频采集站点设定在上电后自动请求与这一IP地址建立连接。视频服务器端作为TCP Server,可以有选择地接受现场视频采集站点的连接请求,并给每一个已连接的现场视频采集站点分配一个接收视频编码和解码的线程,可以同时监控多个站点。这种方法适用于大范围、多站点的视频监控。
3 I-7188在无线监控中的嵌入式应用
嵌入式控制模块在现场视频采集站点中的作用非常关键。现场系统的初始化、系统当前状态的检测、编码数据打包发送、解释服务器发布的控制指令、向GPRS Modem发送AT指令、与远程服务器建立TCP连接等操作都是由嵌入式控制模块完成。本系统设计采用I-7188作为监控终端的主控制器。
3.1 I-7188的结构与性能
I-7188系列控制器是由台湾泓格公司生产的嵌入式控制器,适用于高可靠性、PC兼容、紧凑而价格合理的嵌入式系统,常用于数据采集与控制领域。其内部结构图如图3所示。
I-7188系列控制器采用美国AMD公司80188内核,主频为40 MHz。I-7188模块含有256 KB/512 KB静态RAM以及256 KB(可扩充至512 KB)的Flash-ROM,这种ROM体积小、功耗低、访问速度快、抗震和抗冲击能力强,具有非易失性,可广泛应用于嵌入式设备。I-7188不仅含有Flash-ROM,而且还含有2 KB的E2PROM。因为考虑到现场的要求不同,Flash-ROM是整块删除数据的,一次性可删除64 KB,对于不足1 KB的小文件,I-7188增加2 KB的E2PROM。然而E2PROM和Flash-ROM的擦除次数是有限的(如E2PROM不超过1 000 000次)。而现场系统需经常读写数据,Flash-ROM、E2PROM就不能满足这一要求,所以此模块提供了31 bit的NVRAM,可反复擦除、读写。设计者考虑到不同数据的应用需求提供了不同功能的存储器,大应用文件、操作系统、BIOS等存储在Flash-ROM中,而小文件则存储在E2PROM中,更改比较方便,对于频繁擦除、读写的数据可用NVRAM。
I-7188不仅有强大的运算和存储功能,而且还具有强大的通信功能,它可提供4个串口:COM1(RS-232或RS-485),可做普通9线或3线RS-232串行接口,如与普通PC通信或其他RS-232设备通信,还可以接MODEM实现远程通信;也可以做2线的RS-485串行接口,通过RS-485网络与其他RS-485设备通信。COM2(带3 000 V隔离RS-485)。COM3(RS-232);COM4(RS-232),I-7188的程序通过COM4载人Flash-ROM或E2PROM,程序调试也通过COM4。
I-7188的每个COM口都能达到115.2 kbit/s的高速。且每个COM口都有1 KB的缓冲。对于高速传来的数据,缓冲区可使I-7188来得及对数据进行处理而不造成数据丢失。
I-7188的操作系统采用泓格自己开发的嵌入操作系统MiniOS7。MiniOS7与DOS操作系统相兼容,与常规的DOS相比,MiniOS7更适合嵌入式应用,如:更短的上电启动时间(小于0.1 s)、内置硬件诊断功能、直接支持内置或活动的存储设备等。
I-7188含有实时时钟,能设定时间,支持1980~2079年,没有2000年问题。I-7188含有看门狗电路,接通电源,看门狗工作且每隔1.6 s侦测一次,如I-7188无应答,I-7188复位,适用于无人值守及关键应用场合。
I-7188可以工作在-25℃至75℃的极限温度范围内,功耗为2 W~3 W,工作电源为工业现场常见的+10 VDC~+30 VDC直流电源,它支持电源反接保护,非常适合工业现场恶劣的环境。
软件则用标准C语言,即用户只需要使用标准C语言编写程序,然后利用泓格公司提供的工具下载至I-7188中运行即可。除了可以使用C语言标准函数库以外,泓格公司还提供丰富的C函数库,包括:串口操作相关函数、Flash文件系统读写函数、Flash读写擦除有关的函数、E2PROM读写相关函数、定时器和看门狗相关函数等。用户可以很方便地开发出一个具有串口通讯的嵌入式控制系统。
3.2 I-7188的软件设计
嵌入式控制器I-7188内部流程如图4所示。在建立TCP连接的情况下,I-7188将不停地查询是否接收到数据,是否有数据发送,然后再进行相应的操作。
在系统中,监控终端作为TCP连接的客户端,监控服务器作为TCP连接的服务端。监控终端在上电后,由I-7188控制器控制GPRS Modem寻找监控服务器。而监控服务器在接受监控终端的连接请求,建立TCP连接后,发送控制指令给I-7188,由I-7188控制监控终端的视频采集和视频编码传送。
由I-7188内部流程图可以看出:现场系统的初始化、系统当前状态的检测、编码数据打包发送、解释服务器发布的控制指令、向GPRS Modem发送AT指令、与远程服务器建立TCP连接等操作都是由I-7188控制完成的。
3.3 I-7188的可扩展性
I-7188的COM2为RS-485串行接口,是一种平衡差分驱动、半双工的串行通信接口标准。RS-485通常应用于一对多点的主从应答式通信系统,即一个主机可以对应多台从设备。在此,I-7188作为主设备,摄像头和云台作为从设备,通讯波特率设为4 800 b/s。
在一个无人值守机房的无线视频监控系统实例中,RS-485除了连接摄像头和云台两个从设备之外,还接入了另外两个电力参数采集模块,对机房中的几种特种电源的参数进行定时监测。一般情况下,电源参数保存在I-7188的Flash ROM中。当参数超过警戒值时,I-7188将向监控服务器发出报警信号,并把出错参数传输至监控服务器,有助于工作人员尽快分析出故障原因。
4 结束语
系统利用现有的移动GPRS网络和Internet,不需铺设专门的线路,就可以对远程目标进行视频实时监控;现场视频采集站点充分体现出了嵌入式系统的优势:功耗低、安装维护简单、性价比较高、强调“量身定做”的原则。I-7188嵌入式控制器为用户提供了丰富的资源,用户可以在短时间内开发出符合要求的系统。内置MiniOS7操作系统非常稳定,再加上看门狗电路,可以大幅度提高系统的可靠性,更加适合无人值守场合,从而减少了系统的维护成本。
实验证明,系统在稳定的GPRS网络中,每秒传送10帧QCIF格式的黑白图像,可满足对实时性要求不是十分严格的应用需求。相信系统在加入流量控制机制后,性能将会大大提高。