目前, 随着网络技术和集成电路技术的高速发展, 嵌入式系统已经成为IT的一个焦点, 嵌入式视频监控系统大量的应用于自动控制工业生产、军事技术和家用消费电子等各个领域。
现今市场上有两种数字视频监控系统类型, 一种是以数字录像设备为核心的视频监控系统, 另一种是以嵌入式视频WEB服务器为核心的视频监控系统。以嵌入式视频WEB服务器为核心的视频监控系统, 采用嵌入式实时多任务操作系统。摄像头采集到的图片信息经过压缩, 通过内部总线送到内置的WEB服务器, 网络上的用户可以直接用浏览器观看WEB服务器上的由摄像头采集的图像。由于把图片采集和WEB功能集中到一个体积很小的设备内, 可以直接连入局域网, 用户无需安装任何硬件设备, 仅用浏览器即可观看。
本文主要介绍一种基于ARM9处理器的新型智能远程仓库安防监控视频系统。利用GPRS模块实现呼出预警, 并在Linux系统中搭建WEB服务器以实现远程监控。
本监控系统平台采用三星公司ARM9嵌入式处理器, 以USB接口的CMOS摄像头实现图像采集, 另以同样为USB接口的GPRS模块的呼出预警。
如图1所示, 系统以ARM处理器为核心, 通过外部扩展64M存储器 (Flash/SDRAM) 、CMOS摄像头, 实现无线监控平台的视频采集和数据传输功能。
三星公司的处理器S3C2440内部集成了ARM公司ARM920T处理器核的32位微控制器, 资源丰富, 带独立的16KB指令Cache和16KB数据Cache、LCD控制器、RAM控制器、NAND闪存控制器、3路UART、4路DMA、4路带PWM的Timer、并行I/O口、8路10位ADC、Touch Screen 12S接口、2个USB接口控制器、2路SPI, 主频最高可达533MHz。
本系统中USB摄像头使用一种ZC301P芯片的极速摄像头。该摄像头采用高品质CMOS感光芯片, 图像的分辨率最大可达到640x480。引出了一个串行接口和一个HOSTUSB接口。通过在USB接口上外接一个USB口的摄像头, 将采集到的视频图像数据放入输入缓冲区中, 对采集的图像数据进行处理, 然后通过网络接口将图像发送到Internet上。
GPRS模块的选择要选择低成本且带有TCP/IP协议, 本系统选用了性价比比较高的Wavecom的Q2401A模块。
视频监控软件是工作的核心部分。该监控系统的软件系统包括嵌入式系统引导程序Bootloader, 嵌入式Linux操作系统, USB接口驱动程序, GPRS驱动程序, V4L2摄像头图像采集接口, TCP/IP协议和用户应用程序。系统软件结构如图2所示。
摄像头驱动安装之后, 为了进行视频采集必须加入Video4Linux模块, 从而可以通过Video4Linux模块提供变成接口 (API) 从摄像头设备中获取图像帧。
Video4Linux (简称V4L) 是Linux中关于视频设备的内核驱动, 它为针对视频设备的应用程序编程提供一系列接口函数, 这些视频设备包括现今市场上流行的TV卡、视频捕捉卡和USB摄像头等。对于USB口摄像头, 其驱动程序中需要提供基本的I/O操作接口函数open、read、write、close的实现。
另外, 对中断的处理实现, 内存映射功能以及对I/O通道的控制接口函数ioct1的实现等, 把它们定义在struct file_operations中。这样, 当应用程序对设备文件进行诸如open、close、read、write等系统调用操作时, Linux内核将通过file_operations结构访问驱动程序提供的函数。例如, 当应用程序对设备文件执行读操作时, 内核将调用file_operations结构中的read函数。在系统平台上对USB口数码摄像头驱动时, 首先把USB控制器驱动模块静态编译进内核, 使平台中支持USB接口, 再在需要使用摄像头采集时, 使用insmod动态加载其驱动模块, 这样摄像头就可正常工作了, 接着进行下一步对视频流的采集编程。
远程视频服务器的设计包含了视频设备的初始化, TCP传输的初始化及设置, 打开套接口以及视频数据的传输。
视频数据发送主要包括:等待客户端的连接请求, 创建图像采集线程, 发送采集到的视频数据。
嵌入式WEB服务器Boa和普通WEB服务器一样, 能够完成接收客户端请求、分析请求、响应请求、向客户端返回请求结果等任务。
嵌入式WEB服务器Boa根据请求方法的不同, 做出不同的响应。如果请求方法为HEAD, 则直接向浏览器返回响应首部;如果请求方法为GET, 则在返回响应首部的同时, 将客户端请求的URL目标文件从服务器上读出, 并且发送给客户端浏览器;如果请求方法为POST, 则将客户发送过来的表单信息传送给相应的CGI程序, 作为CGI的参数来执行CGI程序, 并将执行结果发送给客户端浏览器。Boa的功能实现也是通过建立连接、绑定端口、进行侦听、请求处理等来实现的。
通常的嵌入式系统的软件开发采用一种交叉编译调试的方式。交叉编译调试环境建立在宿主机 (即装有LINUX的PC机, 本设计使用Cent OS5.6系统) 上;对应的开发板叫做目标板, 它运行交叉编译后的目标程序;最后还需要一台PC机 (Windows XP主机) 通过超级终端对目标板进行配置与控制, 并装有DNW软件下载系统镜像。系统开发平台建立如图3所示。
本系统采用了基于模块的设计方法, 各个模块之间相互独立, 增强了系统的健壮性和灵活性, 当需要更换其中一个模块时其他模块并不需要做很大的改动, 有利于系统的更新换代。系统终端体积较小便于携带和安装, 在实际测试中取得较好效果。由于GPRS通信速度和网络质量的限制, 系统传输的信息量还不是很大。随着3G、4G网络的覆盖和技术推广, 该系统的架构很容易升级到网络进行远程的图像, 视频, 语音传输。
上一篇: 自动化立体仓库的货位分配优化
下一篇: 某仓库混凝土结构缺陷柱的加固处理