首页 » 技术文章 » 基于ARM的远程无线视频监控终端设计

基于ARM的远程无线视频监控终端设计

作者:  时间:2011-03-02 14:17  来源:EDN

  嵌入式Linux系统内核通过设备驱动程序与外围设备进行交互,设备驱动程序是一组数据结构和函数,它们通过定义的接口控制一个或多个设备,设计了IME6400驱动程序和MC55驱动程序。将IME6400按照字符设备来处理,编写一个字符设备驱动。字符设备是Linux中最简单的设备,应用程序使用标准的系统调用打开、读取、写和关闭。内核使用file_operations结构访问驱动程序的函数,open()函数用于完成设备打开计数、中断申请和环形缓冲区的初始化工作;release()函数的用法和作用正好与open()函数相反;ioctl()函数用于提供各种各样的硬件控制,即应用程序需要通过ioctl()函数来读取和修改环形缓冲区的标识变量。MC55的设备驱动程序主要包括MC55file_operations数据结构及MC55的打开、关闭、读、写,MC55的硬件初始化等函数。MC55的打开函数MC55_open()用于实现GPRS设备的打开;关闭函数MC55_close()用于实现GPRS设备的关闭;读函数MC55_read()用于实现数据的读取接收;写函数MC55_write()用于实现数据的发送;IO初始化程序MC55_ hardware_init()实现对GPRS设备输入、输出端口的初始化;MC55的初始化程序void_initMC55_init()完成对GPRS设备的初始化工作。

  2)在软件平台的基础上,开发系统的应用程序即应用层。借助交叉编译工具,开发视频监控终端上运行的采集、压缩、传输程序。监控终端的应用程序主要包括MPGE4压缩编码模块控制程序和GPRS模块传输数据的程序,同时还要对视频AD转换器SAA7111A的工作方式进行配置。

  SAA7111A工作方式的配置是微处理器S3C2440通过I2C总线对其内部32个寄存器的配置实现的。SAA7111A初始化设定为:1路模拟视频信号输入(AI11)、自动增益控制、PAL制式、YUV42216位数字视频信号输出。由于输入视频信号属于PAL制式,需要把寄存器08H中的FSEL(5060 Hz场频选择)位设置为0;另外还需要把该寄存器中的HPLL(锁相环使能选择)位设置为O,使HREF(行输出参考)VREF(场输出参考)信号输出同步;把寄存器11H中的COLO位设置为1。表示YC通道同时工作;把11H中的OEHVOEYC位设置为11,功能是使能芯片的VPOHSVSHREFVREF这些输出端口。

  MPGE4压缩编码模块控制程序主要由Firmware的下载及其寄存器的设置,以及MPEG4数据的传送组成。Firmware下载程序是一个内部SRMA的写操作循环,下载时首先向Control寄存器写入Ox4000,告知IME6400初始化下载;然后将Firmware看成一个16位的二进制数组,每次向Ba-seAddress0写入下载的目的地址偏移。而且向Data写入要下载的16位数据下载一个16位字,如此循环直到按顺序下载完整个FirmwareIME64 00接收连续的视频图像数据流,也相应地输出连续的压缩视频图像数据流。IME6400工作在异步模式下,FIFO中有NFIFOSIZE(通常是1 024)字节以上的数据之后,将GPI00引脚状态置为低。主控处理器检测到GPI00上的低电平之后,从IME6400读取NFIFOSIZE字节的数据。结束之后向HI用户寄存器USER4中写入一个不同的值,通知IME6400传输结束。IME6400将新的数据继续写入FIFO中。这样一个循环允许嵌入式处理器从IME6400中连续读取连续的数据流。同时使用IME6400的设备驱动程序来完成IME6400接收编码数据,把数据搬运到一个可见的缓冲区中,并协调对数据的处理。

  GPRS模块传输数据的程序主要包括接入GPRS网络程序和Socket通信程序2部分。接入GPRS网络程序主要由pppd程序调用chat会话程序来完成。采用pppd-243源码包,经过交叉编译后生成pppdchatpppdumppppstats4个可执行文件,最后就可以在嵌入式Linux终端下直接运行ppp-on脚本程序即可实现GPRS拨号接入CMNET中国移动无线网络。监控终端接入中国移动GPRS无线网络后,获得了一个IP,通过使用中国移动的CMNET网关,终端就可以与连入Internet网络的监控中心之间进行数据交换。监控中心与监控终端使用Socket(套接字)通信。套接字Socket的基本模式采用CS(客户/服务器),远程终端设备工作在客户模式,而Internet网上的监控中心工作在服务器模式。客户端程序基本流程是:创建套接字,绑定套接字到服务器端口上,然后请求连接,最后调用数据收发函数进行数据的传输。在客户端通信程序执行前,服务器端的程序必须完成初始化并开始侦听。基于Socket网络通信的客户端系统流程如图6所示。

  图6中,调用Socket()函数用来实现建立一个Socket,接着发起一个请求,通过调用connect()函数来实现,一旦客户机和服务器套接字建立了连接,双方就可以通过send()recv()函数的调用来发送和接收数据了。如果想断开连接,调用close()函数释放和套接字相关的系统资源即可。

  3 测试结果

  通过实验测试,一幅分辨率为360x288的视频图像,经无线网络GPRS进行传输,其传输速度可达到约2帧/秒,满足无线视频监控系统要求。

  4 结论

  经过测试分析,基于ARM的远程无线视频监控终端的设计方案具有实时性好、功耗低、工作可靠等优点,适用于移动环境、难于布线的场所和边远地区,具有较好的市场应用前景。

相关推荐

ARM收购Geomerics 强化行动装置游戏视觉

ARM  游戏视觉  2013-12-18

ARM:2013年Mail芯片出货量将超三亿片

ARM  芯片  2013-12-06

ARM控制智能机及平板芯片市场趋势将持续

ARM  控制智能机  2013-11-28

推动连网与行动创新 ARM聚焦物联网商机

ARM  物联网  2013-11-26

全球75%企业高管关注物联网新机遇

ARM  物联网  2013-11-08

英特尔将代工ARM芯片 或引发芯片价格下跌

英特尔  ARM  2013-10-31
在线研讨会
焦点