首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
汽车电子
» 基于3G网络的汽车防盗报警系统视频监控设计
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于3G网络的汽车防盗报警系统视频监控设计
发短消息
加为好友
porereading
当前离线
UID
863084
帖子
7183
精华
0
积分
3592
阅读权限
90
在线时间
209 小时
注册时间
2011-11-30
最后登录
2019-8-28
论坛元老
UID
863084
1
#
打印
字体大小:
t
T
porereading
发表于 2015-3-24 21:04
|
只看该作者
基于3G网络的汽车防盗报警系统视频监控设计
视频监控
,
报警系统
,
3G网络
,
汽车防盗
,
报警器
引言
随着第三代移动通信网络的成熟发展,基于移动通信网络的视频监控技术的应用越来越广泛。本文基于3G网络覆盖率高、可靠性强、传输速率快的优势,设计实现汽车防盗报警系统的可视监控。本设计在现有的电子式汽车防盗报警器的基础上,通过扩展通用接口,实现了对于车体原有报警系统的功能扩展,其总体结构框图如图1所示。本文着重阐述该系统视频监控部分的设计实现。
本系统视频监控部分是在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网络的视频监控功能,并详细阐述了摄像头的流接口函数和通信发送端的设计。此外,通过该系统的通用接口的扩展,该系统还可与具体行业或家庭应用相结合,实现手机对于小范围环境的可视化监控。该系统的设计实现不但对于汽车防盗产品的发展有着重要的意义,同时对于基于3G网络的可视化监控的发展提供了良好的应用前景。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议