历史上的今天
返回首页

历史上的今天

今天是:2025年01月22日(星期三)

正在发生

2018年01月22日 | 基于嵌入式Windows CE5.O的无线视频监控系统设计与应用

2018-01-22 来源:互联网

传统的视频监控系统主要以模拟信号监控系统和基于插卡的数字监控系统为主。其中模拟信号监控系统布线工程量大,要耗费大量的存储介质,查询取证也十分繁琐;基于插卡的数字监控系统是由1台PC机加图像采集卡完成的,系统的成本高,而且PC机需要有人值守,无法在恶劣环境下使用。在视频监控领域中,如何使信息传输得更快,更稳定,距离更远,系统的成本、体积、功耗更低等问题是摆在当前技术研发人员面前的首要问题。


在此提出一种基于嵌入式Windows CE5.O的无线视频监控系统。解决了传统视频监控系统成本高、体积大、传输距离有限、功耗大、安装不方便等问题。该系统的设计将为无线视频监控提供一种新的思路、方法和技术路线;在安防、远程教育、远程视频会议、医疗系统等无线视频领域具有广阔的应用前景。


1 系统的整体硬件框图介绍


基于嵌入式WinCE5.0的无线监控系统的硬件系统主要由嵌入式终端和服务器端的PC机组成。嵌入式终端平台的微处理器选择的是基于ARM9T20内核的S3C2440,S3C2440有丰富的接口,其中摄像头接口与CMOS的摄像头相连,串口与GPRS发射模块相连;服务器端主要是1台PC机和GPRS接收模块。

系统首先通过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摄像头模块。


S3C2440有一个专用的摄像头接口,CPU可以直接和CMOS图像传感器连接,当0V9650输出数据格式为8位的YUV时,要用到数据线 D2~D9(D9为MSB位,D2为LSB位);当输出的数据格式为10位RGB,用数据线D0~D9(D9为MSB位,D0为LSB位),该系统用 YUV格式。该摄像头模块与S3C2440的Camera接口连接。


其中用到了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。


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中添加以下注册项即可:


在摄像头驱动开发完成后,通过编写应用程序在嵌入式终端的触摸屏上显示出来,首先通过CreateWindow这个API函数创建一个用来显示图像的窗体,然后创建回调函数CaptureThreadProc的线程,在回调函数中根据不同的操作向操作系统发送不同的消息值,处理图像的读取、显示等。


4.2 串口驱动开发


在Windows CE中串口的驱动实现是有固定模型的,基于流驱动模型,采用分层结构。串口驱动的开发的步骤和上面摄像头驱动开发的步骤一样,关键是实现流接口函数,由于这里采用了分层的结构,MDD层的代码可以参考微软提供的源代码在%WINCEROOT%\PUBUC\COMMON\OAK\DRIVERS\SERIAL\COMMDD2目录下,PDD层中的代码是与硬件相关的代码,需要针对不同的设备来编写。MDD层中的代码调用PDD层中的代码来实现具体的硬件操作。


5 PC机端监控中心程序的开发


监控中心是无线视频监控系统的核心部分,它负责管理整个系统并显示监控的图像。在该论文中,监控中心的应用程序实现了实时监控、定时录像、抓拍等功能。在系统中监控程序的开发,同时使用了C#语言和WIN32 API,利用C#语言基于事件的编程方法,设计了程序图形界面,利用VFW接口中的API函数基于消息机制设计了底层图像数据的读取和显示。该系统中 API函数主要来自于VFW软件工具包。VFW(Video forWindows)提供了一系列应用程序编程接口(API),用户可以通过它们很方便地实现视频捕获、视频编辑及视频播放等通用功能,还可利用回调函数开发更复杂的视频应用程序。其特点是播放视频时,不需要专用的硬件设备,而且应用灵活,可以满足视频应用程序开发的需要。监控中心的程序调试运行效果。


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的无线监控系统涉及到了计算机编程技术、嵌入式技术、视频编码、无线传输等多方面的知识,在此课题中完成了大量的工作,测试结果达到了该论文预期的目的。嵌入式终端平台具有体积小、功耗低、运行速度快、采集的图像清晰等特点,在监控中心程序的设计也具有友好的人机交互界面,实现了定时监控、录像、拍照等功能。视频压缩与无线传输方面从理论上研究方法的可行性,提出具体的解决方法,这为以后进一步完善系统奠定了坚实的基础。

推荐阅读

史海拾趣

CDE [ CORNELL DUBILIER ELECTRONICS ]公司的发展小趣事

经过近百年的发展,CDE公司始终坚守品质至上的原则,为全球客户提供高品质的电容器产品。公司通过不断的技术研发和产品升级,逐步在全球市场上树立了良好的口碑。如今,CDE的电容器产品已广泛应用于电源、电机、驱动器、航空电子、电力和军用电子设备等多个领域,赢得了全球客户的信赖。

Digital公司的发展小趣事

DIALIGHT公司一直专注于工业LED照明领域的发展。他们深入了解工业空间照明的需求和挑战,设计了一系列专为工业应用而定制的LED照明产品。这些产品不仅易于安装和维护,而且能在恶劣的环境下持续使用。此外,DIALIGHT还提供集成系统解决方案,帮助客户降低能源成本、维护成本和碳足迹,同时提高设施的安全性和生产力。通过不断创新和优质服务,DIALIGHT在工业LED照明领域赢得了广泛的认可和信赖。

Conexcon Group公司的发展小趣事

在电子行业的发展过程中,环保问题日益受到关注。Conexcon Group积极响应国家环保政策,将绿色环保理念贯穿于产品研发、生产和销售的全过程。公司采用了环保材料和工艺,减少了对环境的污染和破坏。同时,公司还加强了废旧电子产品的回收和处理工作,推动了电子行业的可持续发展。这些举措不仅赢得了消费者的认可和支持,也为公司树立了良好的社会形象。

EXCELSEMI [ EXCEL SEMICONDUCTOR INC. ]公司的发展小趣事

随着公司产品的不断成熟和市场认可度的提高,EXCELSEMI开始积极拓展市场。公司通过参加国际展会、举办技术研讨会等方式提高品牌知名度,并积极寻求与全球知名企业的战略合作。这些合作不仅为公司带来了更多的业务机会,还进一步提升了公司的技术实力和品牌影响力。

智浦欣(Chipstar)公司的发展小趣事

为了进一步提升公司的技术实力和品牌影响力,智浦欣公司积极寻求与国际知名企业的合作机会。经过多次沟通和洽谈,公司成功与一家国际知名半导体企业达成了战略合作协议。双方将在技术研发、产品推广和市场开拓等方面展开深度合作。通过这一合作,智浦欣公司不仅获得了宝贵的技术支持和市场资源,还进一步提升了其品牌形象和市场份额。

ATO SOLUTION公司的发展小趣事

在电子行业的激烈竞争中,ATO SOLUTION公司通过一项创新性的技术突破,成功引领了市场的新潮流。该公司研发出了一款高效能的半导体芯片,极大地提升了电子设备的性能和能效比。这一技术的问世,迅速获得了行业内外的广泛关注和认可,为公司赢得了大量合作伙伴和客户,奠定了市场领先地位。

问答坊 | AI 解惑

变压器的设计工具

哥们有个设计变压器的工具,谁要?拿去! 晚上会补充附件~~~ [ 本帖最后由 西门 于 2009-5-12 19:26 编辑 ]…

查看全部问答>

修改TE6410开机画面,遇到的问题

原板子没开机画面,修改TE6410开机画面,编译成功,烧写的时候出现 Download BIN file information: ----------------------------------------------------- [0]: Base Address=0x80030000 Length=0x0---------------------------------------- ...…

查看全部问答>

高分求解Filter Driver的"device string is NULL"问题,测试WHQL的问题。

整了个Filter Driver。是基于Mouse Class的。 WHQL验证时,遇到问题。不知道何解。 Context Index:   2344544492 Current:      Checking DeviceID String Parent:       WTTLOG          C ...…

查看全部问答>

关于wicne6.0下SDHC驱动的链接库问题

我在wince6.0下编译SDHC驱动,在source中,默认是如下lib文件: SOURCELIBS= \\      $(_COMMONOAKROOT)\\lib\\$(_CPUINDPATH)\\sdcardlib.lib \\      $(_COMMONOAKROOT)\\lib\\$(_CPUINDPATH)\\sdhcl ...…

查看全部问答>

手把手教你写专利申请书·如何申请专利

手把手教你写专利申请书·如何申请专利 摘要小前言(一)申请前的准备工作    1、申请前查询    2、其他方面的考虑    3、申请文件准备(二)填写专利申请系列文档    1、实际操 ...…

查看全部问答>

stm8之stvd7开发环境

                                 下载最新的STVD,STVD7是ST7用的 …

查看全部问答>

大家一起把这个做好吧?chenzhufly本身就很忙,一个人肯定应付不过来

这个板块现在好冷清,EE_WORLD 中断了,大家一起把这个做好吧?chenzhufly本身就很忙,一个人肯定应付不过来…

查看全部问答>

【Trf7960问题】MIFARE_ERROR_NO_CARD

我用TRF7960读写M1卡,电路部分参考Lm3s9b96的那个评估板,我的板子上天线部分已经输出13.56M正弦波,现在可以对TRF7960进行寄存器(0x00到0x0F)的读写,但是在用TI例程进行M1 读卡操作,当运行这个函数时:        ulUIDSiz ...…

查看全部问答>

AVR入门求助,望前辈们不吝赐教

如果说我用一块单片机Atmega32-16,插在基座上然后焊在万用板上,我每次想把程序烧进单片机里,是不是说在我焊好的万用板上引出单片机对应的MOSI,MISO,SCK,RESET,VCC,GND各个引脚插在我ISP下载器上相对应的引脚后,我就可以顺利烧录进程序了?另外 ...…

查看全部问答>