本系统视频监控有些是在InterPXA270为中心的硬件渠道上,经过构建嵌入式WindowsCE操作系统的软件开发完结上层运用。该规划以流接口方法开发摄像头驱动,并运用摄像头驱动供给的接口,完结嵌入式WindowsCE下实时图画的数据收集,对原始图画进行MPEG-4格局的编码紧缩,一起在WindowsCE端运用SOCKET编程,完结监控数据的传输。
1 硬件渠道
现有的轿车防盗报警系统的构造如图1虚线框内所示,这篇文章侧重规划完结的是此系统的视频监控有些。视频监控有些的硬件包含三个有些,收集监控数据的摄像头、多媒体处理器和通讯模块。硬件建立构造图如图2所示。视频监控有些的硬件渠道是以InterXScale微系统构造的InterPXA270处理芯片为中心,选用SIM5218模块作为3G通讯模块,选用双端口RAM技能完结视频处理和图1系统的整体构造框图3G通讯模块的双CPU之间通讯。其间,InterPXA270芯片的主频为520Hz,一起参加WirelssMMX技能,大大提高了多媒体处理才能。此外PXA270的InterSpeedStep动态电源办理技能,在确保CPU功能的状况降低低了设备的功耗;西门子公司的3G通讯模块SIM5218支撑高达7.2Mb/s的数据传输率,而且供给UART、USB2.0、GPIO和I2C等丰厚的外围接口,降低了规划难度;本规划中摄像头挑选了网眼2000,它选用OV511芯片为中心,具有COMS35万像素的清晰度,并选用USB方法通讯,能够选用流接口的方法实时收集监控数据。
2 软件功用
根据WindowsCE操作系统的软件架构包含两有些。
运用PlatformBuilder定制WindowsCE系统并开发USB摄像头驱动和数据发送端的开发,这篇文章详细介绍USB摄像头驱动的规划和发送端的程序规划。系统的软件构造图如图3所示。
WindowsCE流接口驱动程序是具有定制接口的驱动程序,表现为在用户一级的动态链接库DLL,是通常类型的设备驱动程序。流接口驱动程序中用来完结一组固定的函数称为流接口函数,这些流接口函数使得运用程序能够经过文件系统拜访这些驱动程序。流接口驱动程序简直支撑任何类型的能够连接到根据WindowsCE.net的渠道外部设备,其间包含USB设备。
流接口驱动程序的首要任务是把外设的运用传递给运用程序,这是经过把设备表明为文件系统的一个特殊文件完结。运用程序经过文件系统的API函数调用流接口函数,然后流接口驱动程序调用本机驱动或者经过设备办理器与系统内核或外围打交道。
2.1 摄像头驱动程序的流接口函数的完结
开发摄像头驱动程序涉及到一组标准的流接口驱动程序的函数,如CAM_Init()、CAM_Deinit()、CAM_Open()、CAM_Read()等,这些函数是接口驱动程序的DLL接口,其间CAM_Init()、CAM_Open()、CAM_Read()和CAM_IOControl()最为重要。下面临这些重要函数进行详细介绍。
(1)CAM_Init()
CAM_Init()函数是经过设备办理器供给的ActiveDeviceEx()函数调用。在设备初始化时经过ActiveDeviceEx()将设备句柄信息写入Drivers\Active下面,当运用程序初始化时,注册表的地址将以Context参数方式传给CAM_Init(),运用RegOpenKeyEx()、RegQueryValueEx()等函数履行翻开和读写注册表操作,等履行成功后回来USB设备的句柄信息等。驱动程序的有些源代码:
(2)CAM_Open()
在对设备进行读操作之前,首先要先经过履行CeratFile()来调用CAM_Open()翻开设备,CAM_Open()所需的第一个参数是运用程序初始化时由CAM_Init()回来的设备句柄等信息,然后将设备关闭的事情设为无信号状况。
下面是有些源码:
程序中涉及的EnterCriticalSection()和LeaveCriticalSection()两个函数的作用是确保在临界区内所有被拜访的资本不被其他线程拜访,直到当时线程履行完临界区代码。EnterCriticalSection()和LeaveCriticalSection()别离表明为进入临界区和退出临界区。
(3)CAM_IOControl()
程序规划中经过CreatFile()函数调CAM_Open()翻开摄像头设备,经过ReadFile()将回来值传给CAM_IOControl()流接口函数,而CAM_IOControl()则调用OV51xReadOneFrame()对USB设备数据进行读取。下面是有些源码:
关于USB总线上的数据传输,一共有四种传输类型,别离是操控传输、中断传输、批量传输和实时传输,这四种传输类型别离运用到不同的USB设备。其间实时传输适用于以固定速率或特定时间内传输,能够忍受偶然过错的流数据状况,关于USB摄像头这种实时性要求比较高的设备通常选用实时传输,所以在CAM_Read()中就需求用到实时传输函数IssueIsochTransfer()来读取摄像头收集的数据。假如IssueIsochTransfer()履行后回来一个标明句柄,则代表履行成功,假如无回来值,则表明履行失利。
在每次得到一包数据时,查找帧开端符号,假如查找到,则仿制剩余的所有数据到运用程序的缓冲中。在程序的Ov51xReadOneFrame()函数中,pDataBuff申请了9610B空间,dwFrameLen为10次传输每次的长度,这里都设置为961。图4为Ov51ReadFrame()软件流程图。
2.2 通讯发送端的规划完结
通讯发送端首要完结RTP/RTCP协议封装宽和封装、网络发送与数据获取。这篇文章所完结的是根据RTP/UDP/IP协议栈的MPEG-4实时流媒体传输,是移动视频监控系统中网络传输有些的子模块。选用JRTPLIB库函数来完结RTP的实时传输。传输有些的系统架构如图5所示。
该发送端的首要功用是将音视频流封装到RTP包内经过3G网络传送给接纳端,一起发送和接纳RTCP包进行反馈操控,以期到达最好效果。根据WindowsCE渠道经过调用JRTPLIB函数库来编程完结实时流媒体传输。
因为RTP协议并不作为独立的网络层来完结,它选用运用层组帧的理念,作为运用程序代码的一有些,这篇文章针对一个详细媒体的运用经过运用程序完结RTP封装分组,然后将RTP分组交给UDP接口,选用JTHREAD作为线程库,完结多线程的操作。运用RTP来做视频传输分2个session来完结:一个担任声响传送;另一个担任视频传送。
发送端的有些主程序如下:
3 结语
这篇文章在现有的轿车防盗报警系统的基础上,经过接口的拓展,完结了根据3G网络的视频监控功用,并详细论述了摄像头的流接口函数和通讯发送端的规划。此外,经过该系统的通用接口的拓展,该系统还可与详细职业或家庭运用相结合,完结手机关于小范围环境的可视化监控。该系统的规划完结不但关于轿车防盗商品的开展有侧重要的含义,一起关于AV168根据3G网络的可视化监控的开展供给了杰出的运用远景。
来源:机房监控 机房环境监控系统 机房监控系统 http://www.create-china.com.cn北京金恒智能系统工程技术有限责任公司 版权所有 Copyright 2007-2020 by Create-china.com.cn Inc. All rights reserved.
法律声明:未经许可,任何模仿本站模板、转载本站内容等行为者,本站保留追究其法律责任的权利!
电话:86+10-62104277/2248/4249 传真:86+10-62104193-819 京ICP备10010038号-2网站XML
智慧机房
在线体验