摘要:以ARM9微处理器作为核心板的控制器,搭建无线视频监控系统硬件平台,扩展基于OV9650芯片的摄像头接口和GPRS无线传输模块的串口接口。利用Platform Builder5.O定制了合适的WinCE5.O的操作系统平台,开发了OV9650芯片和GPRS传输模块的串口驱动,设计了PC机端的监控系统的软件,研究开源的XVID MPEG一4视频编解码软件以及GPRS传输流程。通过有机结合事件编程和消息机制编程,调用底层VFW接口中的WIN32 API函数实现了监控软件的编译。该监控系统具有实时抓拍、定时监控、录像、安装方便等特点。
关键词:视频监控;嵌入式系统;WinCE5.0;ARM9;GPRS
0 引 言
传统的视频监控系统主要以模拟信号监控系统和基于插卡的数字监控系统为主。其中模拟信号监控系统布线工程量大,要耗费大量的存储介质,查询取证也十分繁琐;基于插卡的数字监控系统是由1台PC机加图像采集卡完成的,系统的成本高,而且PC机需要有人值守,无法在恶劣环境下使用。在视频监控领域中,如何使信息传输得更快,更稳定,距离更远,系统的成本、体积、功耗更低等问题是摆在当前技术研发人员面前的首要问题。
在此提出一种基于嵌入式Windows CE5.O的无线视频监控系统。解决了传统视频监控系统成本高、体积大、传输距离有限、功耗大、安装不方便等问题。该系统的设计将为无线视频监控提供一种新的思路、方法和技术路线;在安防、远程教育、远程视频会议、医疗系统等无线视频领域具有广阔的应用前景。
l 系统的整体硬件框图介绍
基于嵌入式WinCE5.0的无线监控系统的硬件系统主要由嵌入式终端和服务器端的PC机组成。嵌入式终端平台的微处理器选择的是基于ARM9T20内核的S3C2440,S3C2440有丰富的接口,其中摄像头接口与CMOS的摄像头相连,串口与GPRS发射模块相连;服务器端主要是1台PC机和GPRS接收模块。整个框图如1所示。
系统首先通过S3C2440微处理器控制CMOS摄像头采集图像数据,经过压缩编码后,再通过GPRS无线发射模块将压缩后的数据发射出去,在服务器端的PC机通过GPRS接收模块接收数据,并通过相应的应用程序,对视频数据进行解码,并通过屏幕显示出来。其中包含有S3C2440微处理器的嵌入式终端平台的核心控制板如图2所示。
2 系统的扩展接口设计
2.1 摄像头接口设计
摄像头中用的图像采集芯片为OV9650图像传感器,该图像传感器具有10位的数据接口和标准的SCCB接口,采用CSP一28封装,体积小。
该芯片支持RGB(4:2:2),YUV(4:2:2),YCrCb(4:2:2)三种数据输出格式,内置138个设备控制寄存器,地址分别从Ox00~Ox8A,通过SCCB接口可以方便地设置传感器视窗大小、增益、白平衡校正、曝光控制、饱和度、色调等参数。包含有图像传感器OV9650摄像头模块如图3所示。
S3C2440有一个专用的摄像头接口,CPU可以直接和CMOS图像传感器连接,当0V9650输出数据格式为8位的YUV时,要用到数据线D2~D9(D9为MSB位,D2为LSB位);当输出的数据格式为10位RGB,用数据线D0~D9(D9为MSB位,D0为LSB位),该系统用YUV格式。该摄像头模块与S3C2440的Camera接口连接,其电路图分别如图4~图6所示。
其中用到了TI公司的电平转换芯片74LVC4245,是一种双电源的电平移位器,电平移位在其内部进行。5 V端用5 V电源作为VDD_CAM,而3.3 V端则用3.3 V作为VCC33。双电源能保证两边端口的输出摆幅都能达到满电源幅值。
2.2 GPRS模块的接口设计
S3C2440有3个UART通道,利用其中一个通道设计串口,使其与GPRS模块连接,由于S3C2440自带的UART控制器,使得硬件开发和软件设计都比较简单。但RS 232标准所定义的高、低电平信号,与一般的微控制器系统的电路所定义的高、低电平信号完全不同,如S3C2440系统的标准逻辑“1”对应电平2~3 V,标准逻辑“O”对应0~4 V电平。显然,与RS 232标准所述的电平信号完全不同。两者之间要进行通信,必须经过信号电平的转换,目前常使用的电平转换芯片有MAX232,MAX3221和MAX324.3,具体设计电路如图7和图8所示。
3 操作系统平台的定制
Windows CE是高度模块化的嵌入式操作系统,正因为如此,用户为了满足特定的要求而对操作系统进行定制,如果为自己的嵌入式设备定制Windows CE操作系统,则须进行创建、构建、运行和发布OS等一系列操作。在无线视频监控系统中,根据功能要求,利用Platform Builder5.0定制系统的流程如下:
(1)导入BSP开发包。由于用的是三星公司的基于ARM920T核的S3C2440,所以在BSP包中找到SMDK2440文件下的SMDK2440.CEC文件将其导入。打开“Platform Builder5.0”,选择“File”菜单下的 “Manage Catalog Features”,如图9所示。在弹出的对 话框中单击“Import”,浏览到SMDK2440文件下的 smdk2440.cec文件,将其导入。
(2)创建项目。根据WinCE无线监控系统的要求,在定制系统的过程中选择合适的组件来实现。其中包括的组件有:支持应用程序开发的MFC组件和支持网络的相关组件等。
(3)编译项目:点击菜单“Build OS”→“Sysgen”开始编译项目。
(4)下载运行时映像,调试成功后启动。编译成功后会在目WinCES00\PBWorkspaces\testl\RelDir\smdk2 440_ARMV4I_Release下生成nk.bin和nk.nb0等文件,将nk.nb0下载到硬件平台上运行。
4 驱动程序的开发
4.1 摄像头驱动的开发
摄像头驱动开发是设计中的一个难点,也是一个关键部分。由于摄像头采集的视频数据可以当作数据流来处理,所以对于摄像头的驱动将采用流式接口的方法来开发。
(1)在Platform Builder中打开前面定制的操作系统工程,然后在新建一个WIN32 DLL项目,添加2个C++的源文件,即:camera.cpp和IIc.cpp,其中camer—a.cpp包含驱动的入口函数DLLMain();驱动的前缀为“CIS”,IIc.cpp包含通过ICC接口对摄像头相关寄存器进行配置的函数。
(2)根据前面的硬件电路和OV9650芯片的工作时序,通过编写流接口的CIS_Init函数实现OV9650初始化。主要包括以下3步:调用InterruptInitialize(SYSINTR_CAM,CameraEvent,NULL,0)函数通知系统注册中断;调用CreateEvent()函数创建一个CameraEvent事件;调用CreateThread()函数创建CameraThread线程。在Camera Capture Thread服务函数中调用WaitForSingleObject(CameraEvent,Dis—play Time)函数等待Camera Event事件的发生。此事件由与其关联的SYSINTR_CAM中断来触发。此外还有其它流接口函数(CIS_IOControl等)也可以以类似的方法实现。
(3)编写DLL的导出函数定义文件.DEF。.DEF文件定义了DLL的导出函数类表。.DEF文件可以就用一般的记事本编辑,保存时后缀名改为.DEF即可,关于本摄像头驱动的.DEF文件内容如下:
(4)为驱动程序配置注册表。在platform.reg中添加以下注册项即可:
在摄像头驱动开发完成后,通过编写应用程序在嵌入式终端的触摸屏上显示出来,如图10所示。首先通过CreateWindow这个API函数创建一个用来显示图像的窗体,然后创建回调函数CaptureThreadProc的线程,在回调函数中根据不同的操作向操作系统发送不同的消息值,处理图像的读取、显示等。测试结果如图11所示。
4.2 串口驱动开发
在Windows CE中串口的驱动实现是有固定模型的,基于流驱动模型,采用分层结构。串口驱动的开发的步骤和上面摄像头驱动开发的步骤一样,关键是实现流接口函数,由于这里采用了分层的结构,MDD层的代码可以参考微软提供的源代码在%WINCEROOT%\PUBUC\COMMON\OAK\DRIVERS\SERIAL\COMMDD2目录下,PDD层中的代码是与硬件相关的代码,需要针对不同的设备来编写。MDD层中的代码调用PDD层中的代码来实现具体的硬件操作。串口驱动的结构如图12所示。
5 PC机端监控中心程序的开发
监控中心是无线视频监控系统的核心部分,它负责管理整个系统并显示监控的图像。在该论文中,监控中心的应用程序实现了实时监控、定时录像、抓拍等功能。在系统中监控程序的开发,同时使用了C#语言和WIN32 API,利用C#语言基于事件的编程方法,设计了程序图形界面,利用VFW接口中的API函数基于消息机制设计了底层图像数据的读取和显示。该系统中API函数主要来自于VFW软件工具包。VFW(Video forWindows)提供了一系列应用程序编程接口(API),用户可以通过它们很方便地实现视频捕获、视频编辑及视频播放等通用功能,还可利用回调函数开发更复杂的视频应用程序。其特点是播放视频时,不需要专用的硬件设备,而且应用灵活,可以满足视频应用程序开发的需要。监控中心的程序调试运行效果如图13所示。
6 视频压缩编码和传输理论研究
6.1 视频压缩编码研究
图像和视频包含巨大数量的信息,其传输和存储需要很宽的带宽,多媒体视频数据在无线传输之前,必须进行压缩。常用的数字压缩技术主要包括用于会议电视系统的H.261压缩编码,用于计算机静止图像压缩的JPEG和用于活动图像压缩的MPEG数字压缩技术和近年来比较热点的H.263和H.264压缩编码技术。MPEG一4采用新一代视频编码技术,它在视频编码发展史上第一次把编码对象从图像帧拓展到具有实际意义的任意形状视频对象,从而实现了从基于像素的传统编码向基于对象和内容的现代编码的转变,因而引领着新一代智能图像编码的发展潮流。
由于MPEG一4压缩编码系统比较复杂,在论文中将重点对MPEG一4压缩编码技术进行研究,分析其在PC机上的压缩编码的源码,为以后在ARM等嵌入式设备上的移植奠定基础。对一帧图像进行MlPEG一4编码的流程如图14所示。
编译开源的MPEG一4 XVID模型的源代码,将生成一个xvidcore.dIl文件,在应用程序开发中调用库中的相关函数,程序执行过程如图15所示。其中程序在PC机上测试,先从摄像头中读取视频数据,再进行MPEG一4编码。
6.2 无线传输研究
GPRS采用基于分组传输模式的无线IP技术,以一种有效的方式高速传送数据,支持Internet上应用最广泛的IP协议和X.25协议,传输速率最高达117 KB/s,所以视频数据通过MPEG一4压缩后,完全可以通过GPRS模块进行传输。在此传输过程中通信的连接建立、数据传输等操作都是通过TCP/IP网络的API,Socket接口实现。整个无线传输效果如图16所示。
7 结 语
基于Windows CE5.0的无线监控系统涉及到了计算机编程技术、嵌入式技术、视频编码、无线传输等多方面的知识,在此课题中完成了大量的工作,测试结果达到了该论文预期的目的。嵌入式终端平台具有体积小、功耗低、运行速度快、采集的图像清晰等特点,在监控中心程序的设计也具有友好的人机交互界面,实现了定时监控、录像、拍照等功能。视频压缩与无线传输方面从理论上研究方法的可行性,提出具体的解决方法,这为以后进一步完善系统奠定了坚实的基础。