无线网络技术在近一两年开始全面普及,无论是在家庭用户还是企业用户中,我们都能看到无线技术的影子。 认识无线监控,相信大家对有线监控系统比较了解,有线监控系统主要由网络摄像机、云台、视频服务器、监控终端等设备组成。而无线监控系统所需要的设备则比较简单,它只需要无线网络摄像机、无线AP、监控终端等设备组成,如果需要远距离无线监控,还要增加户外无线网桥等设备。
在此提出一种基于嵌入式Windows CE5.O的无线视频监控系统。解决了传统视频监控系统成本高、体积大、传输距离有限、功耗大、安装不方便等问题。该系统的设计将为无线视频监控提供一种新的思路、方法和技术路线;在安防、远程教育、远程视频会议、医疗系统等无线视频领域具有广阔的应用前景。
Windows CE作业系统是Windows家族中最新的成员,专门设计给掌上型电脑(HPCs)所使用的电脑环境。这样的作业系统可使完整的可携式技术与现有的Windows桌面技术整合工作。 Windows CE 被设计成针对小型设备(它是典型的拥有有限内存的无磁盘系统)的通用操作系统, Windows CE 可以通过设计一层位于内核和硬件之间代码来用设定硬件平台,这即是众所周知的硬件抽象层(HAL)(在以前解释时,这被称为 OEMC (原始设备制造)适应层,即 OAL; 内核压缩层,即 KAL. 以免与微软的 Windows NT 操作系统 HAL 混淆)。
1 系统的整体硬件框图介绍
基于嵌入式WinCE5.0的无线监控系统的硬件系统主要由嵌入式终端和服务器端的PC机组成。嵌入式终端平台的微处理器选择的是基于ARM9T20内核的S3C2440,S3C2440有丰富的接口,其中摄像头接口与CMOS的摄像头相连,串口与GPRS发射模块相连;服务器端主要是1台PC机和GPRS接收模块。整个框图如1所示。
系统首先通过S3C2440微处理器控制CMOS摄像头采集图像数据,经过压缩编码后,再通过GPRS无线发射模块将压缩后的数据发射出去,在服务器端的PC机通过GPRS接收模块接收数据,并通过相应的应用程序,对视频数据进行解码,并通过屏幕显示出来。其中包含有S3C2440微处理器的嵌入式终端平台的核心控制板如图2所示。
2 系统的扩展接口设计
2.1 摄像头接口设计
摄像头(CAMERA)又称为电脑相机,电脑眼等,是一种视频输入设备,被广泛的运用于视频会议,远程医疗及实时监控等方面。普通的人也可以彼此通过摄像头在网络进行有影像、有声音的交谈和沟通。另外,人们还可以将其用于当前各种流行的数码影像,影音处理。
摄像头中用的图像采集芯片为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模块的接口设计
通用分组无线服务技术(General Packet Radio Service)的简称,它是GSM移动电话用户可用的一种移动数据业务。GPRS可说是GSM的延续。GPRS和以往连续在频道传输的方式不同,是以封包(Packet)式来传输,因此使用者所负担的费用是以其传输资料单位计算,并非使用其整个频道,理论上较为便宜。GPRS的传输速率可提升至56甚至114Kbps.
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)下载运行时映像,调试成功后启动。编译成功后会在目WinCES00PBWorkspacestestlRelDirsmdk2 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等)也可以以类似的方法实现。