基于ARM的远程无线视频监控终端设计
目前在视频监控系统领域中,有线视频监控系统较为普遍,然而其有效距离短、成本高,仅适用于小范围的区域监控,而对于一些特殊的监控场合,如油田采油现场、远程环境采样、灾害或突发事件现场等,由于监控点的分布范围比较广,难以架设线缆,因此有线视频监控受固有物理布线的限制无法实现。但远程无线视频监控却不受限制,可以摆脱线缆的束缚,具有安装周期短、维护方便、扩容能力强等优点。同时随着计算机技术和通信技术的发展,将嵌入式系统技术、无线通信技术和基于TCP/IP的Internet技术结合在一起的嵌入式远程无线视频监视系统已成为可能。
监控系统大多都符合"控制中心一监控终端"的构建模式。控制中心负责收集各监控终端上传的监控信息,发送各种操作命令,控制监控终端。监控终端置于远离控制中心的各监控点,负责信息采集、传输和响应控制中心发出的控制命令。由于监控终端对信息数据处理的能力和精度将影响整个系统的最终性能。ARM微处理器是一款高速、高性能的嵌入式处理器,适合加入操作系统,完成代P/IP协议,USB通信等复杂功能;速度快,存储空间大,适用于视频处理;具有很强的控制和事物调度能力,适用于那些既有数据处理又有大量事务需要处理的场合。因此,提出了一种基于ARM的监控终端设计方案。
1 监控终端的硬件设计
监控终端的硬件设计主要由3部分组成,1)由视频解码器和视频编码压缩器组成的视频采集处理模块;2)以ARM微处理器、存储器等组成的中央管理控制模块;3)以GPRS为主的无线传输模块。现场信息通过摄像头进入SAA7111A进行A/D转换,将模拟视频信息变成数字信息,然后再经过IME6400进行MPEG-4编码压缩,压缩后的数据进入嵌入式处理器S3C2440,最后S3C2440将压缩数据通过GPRS发送出去。其中ARM微处理器控制整个监控终端。ARM微处理器采用16/32位RISC嵌入式处理器S3C2440。它利用ARM920T内核为手持设备和一般类型应用提供了低价格、低功耗、高性能小型微控制器的解决方案。监控终端的硬件结构框图如图1所示。
1.1 视频采集处理模块
视频采集处理模块主要由视频A/D转换解码器SAA7111A和视频编码压缩器IME6400组成。SAA7111A是一种增强型视频输入处理器,它集A/D转换与解码功能于一身。现场视频信息通过摄像头从SAA7111A的4个模拟输入端AI11、AI12、AI21、AI22的某一引脚引入。经A/D转换后,产生的Y和UV信号经格式化后从VPO[15:0]引脚输出。SAA7111A的所有功能均是在I2C总线控制下完成的,嵌入式微处理器S3C2440通过I2C总线对SAA7111A内部的32个寄存器进行配置。SAA7111A内部功能原理如图2所示。
IME64400支持MPEG-1、MPEG-2和MPEG-4 3种格式的视频压缩编码标准;其图像大小可以编程设定,最大尺寸可达2 048x2 048;码率支持固定和可变码率压缩,并且支持动态检测。IME6400将SAA7111A数字化后的视频数据送入到IME6400内部进行MPEG-4压缩编码,编码后的数据流经SDRAM进行缓存,然后流经1 KB的FIFO缓冲区用来满足编码数据的快速传递,当FIFO溢出时,其GPI00引脚将产生一个下降沿的中断通知主控芯片读取FIFO中的数据。S3C2440通过数据线与IME6400的主机接口相连并对其内部的一系列的寄存器进行设置,IME6400的内部功能框图如图3所示。
1.2 中央管理控制模块
中央管理控制模块是以嵌入式ARM微处理器为核心,实现视频图像信号的采集与压缩管理、视频图像数据的收发,以及控制信号的解释执行等。该中央管理控制模块包括:电源和复位电路、系统时钟电路、Flash存储器接口电路、SDRAM接口电路、JTAG接口电路、串行接口电路等。
1.3 无线传输模块
无线传输模块采用GPRS Modem传输压缩后的视频图像数据,GPRS Modem中的MC55无线模块闱具有3频段,适用于欧洲和亚洲的频段:90 0,1 800和1 900 MHz,其3种频段的切换可由AT指令控制。MC55模块是系统的无线网络接口,具有GPRS class-10多时隙功能,class-B操作模式,支持增强型AT命令集,模块自带TCP/IP协议栈。嵌入式微处理器S3C2440通过串口与GPRS Modem提供的串口相连,所有数据都通过串口实现交换。嵌入式微处理器S3C2440与GPRS Modem连接的电路原理图如图4所示。
2 监控终端的软件设计
监控终端的软件设计是基于嵌入式Linux操作系统的,其模块框图如图5所示。
1)在监控终端硬件基础上搭建一个软件平台即操作系统层,搭建的软件开发平台需要完成系统启动代码的设计(U-BOOT的修改与移植)、嵌入式Linux操作系统内核的移植以及设备驱动程序的开发等。系统启动代码即Bootloader是在操作系统内核之前运行的一段小程序。通过这段小程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。通过对U-Boot-1.3.3的修改和移植完成系统启动代码的设计。监控终端软件的核心是嵌入式Linux操作系统,一切功能的实现都基于Linux操作系统完成的。嵌入式Linux操作系统内核采用Linux 2.6.26的内核版本,并对其进行配置,实现操作系统在监控终端硬件平台上的移植。根文件系统是指嵌入式Linux系统启动时所使用的第一个文件系统,在启动内核时需要挂载根文件系统来支持访问外部设备,以及装载和运行内核模块与应用程序,通过BusyBox1.6.1进行配置实现了根文件系统的建立,同时通过Cramfs工具包,制作了Cramfs文件系统。
嵌入式Linux系统内核通过设备驱动程序与外围设备进行交互,设备驱动程序是一组数据结构和函数,它们通过定义的接口控制一个或多个设备,设计了IME6400驱动程序和MC55驱动程序。将IME6400按照字符设备来处理,编写一个字符设备驱动。字符设备是Linux中最简单的设备,应用程序使用标准的系统调用打开、读取、写和关闭。内核使用file_operations结构访问驱动程序的函数,open()函数用于完成设备打开计数、中断申请和环形缓冲区的初始化工作;release()函数的用法和作用正好与open()函数相反;ioctl()函数用于提供各种各样的硬件控制,即应用程序需要通过ioctl()函数来读取和修改环形缓冲区的标识变量。MC55的设备驱动程序主要包括MC55的file_operations数据结构及MC55的打开、关闭、读、写,MC55的硬件初始化等函数。MC55的打开函数MC55_open()用于实现GPRS设备的打开;关闭函数MC55_close()用于实现GPRS设备的关闭;读函数MC55_read()用于实现数据的读取接收;写函数MC55_write()用于实现数据的发送;I/O初始化程序MC55_ hardware_init()实现对GPRS设备输入、输出端口的初始化;MC55的初始化程序void_initMC55_init()完成对GPRS设备的初始化工作。
2)在软件平台的基础上,开发系统的应用程序即应用层。借助交叉编译工具,开发视频监控终端上运行的采集、压缩、传输程序。监控终端的应用程序主要包括MPGE4压缩编码模块控制程序和GPRS模块传输数据的程序,同时还要对视频A/D转换器SAA7111A的工作方式进行配置。
SAA7111A工作方式的配置是微处理器S3C2440通过I2C总线对其内部32个寄存器的配置实现的。SAA7111A初始化设定为:1路模拟视频信号输入(AI11)、自动增益控制、PAL制式、YUV4:2:2的16位数字视频信号输出。由于输入视频信号属于PAL制式,需要把寄存器08H中的FSEL(50、60 Hz场频选择)位设置为0;另外还需要把该寄存器中的HPLL(锁相环使能选择)位设置为O,使HREF(行输出参考)、VREF(场输出参考)信号输出同步;把寄存器11H中的COLO位设置为1。表示Y和C通道同时工作;把11H中的OEHV、OEYC位设置为11,功能是使能芯片的VPO、HS、VS、HREF、VREF这些输出端口。
- 基于GPRS网络的GPS图形导航仪 (01-05)
- 基于ARM9内核Processor对外部NAND FLASH的控制实现(07-12)
- 基于ARM的局域网IP电话设计(05-11)
- Actel和ARM联合开发专为FPGA应用而优化的高性能32位处理器(02-26)
- 基于ARM的定时继电器驱动模板的设计(08-04)
- 基于ARM平台的GPRS CQT测试系统的设计(08-10)