主页(http://www.pttcn.net):一种嵌入式网络视频监控系统的硬件设计(2)
图5视频采集电路原理框图 4、外围电路模块 本设计用到的外设有USB接口,网卡接口,串行接口和JTAG接口。同时为保证系统将来的可扩展性,系统还预留了PC104接口和大量的GPIO接口。AT91RM9200处理器的片内以太网卡端口和网络物理层芯片DM9161E 的MII 接口通信。而且片内以太网卡内置了独立的双缓冲的读写DMA 通道,这样大大提供了数据的发送速度,同时不影响AT91RM9200 的正常运行。 为保证视频采集质量,监控系统选用了罗技等高端品牌的产品,然后摄像头通过专用的USB集线器与处理器单元的USB接口连接。在实时监控状态下,各个摄像头上捕获的图像数据通过USB集线器传输到视频监控系统的USB主控制器模块上,然后再由USB主控制器模块交由AT91RM9200处理器集中处理。AT91RM9200对采集到的图像进行实时编码压缩,编码之后的码流直接传输到发送缓冲区中,等候发送。最后由上层应用程序将处理后的视频数据通过以太网口进行发送。 四、软件方案 系统的应用软件建立在Linux操作系统之上,嵌入式Linux具有许多优点,如开放源码,功能强大的内核,支持多用户、多线程、多进程、实时性好、功能强大稳定;大小功能可定制等。本系统采用的嵌入式Linux系统是基于2.6.21的内核,支持了内核抢占式调度,同时调度周期为1ms,因此大大保证了系统的实时性。此外,系统内嵌的嵌入式Linux系统实现了对所有硬件设备的驱动支持,如基于Flash的文件系统、网卡驱动程序、USB驱动程序等等,完全保证了系统的可用性。 在本系统中,软件设计可分为3部分:视频图像数据采集、图像数据的JPEG压缩以及系统平台的网络通信。 1、视频图像数据采集的实现 首先加载USB摄像头驱动程序,接着就是编写一个对视频流采集的应用程序。摄像头中的各种I/O口的控制主要依靠Vide04Linux提供的应用程序接口函数实现,主要有Open、Read、Write等。V4L下的视频采集1。在本系统中,将有关摄像头的各种数据和结构封装成了一个类,主要用到的一些系统调用函数定义如下: open(“/dev/vide00”,O—RDWR):设备的打开。 close(fd):设备的关闭。 mmap(void+addr,size—t len,int prot,int flags,int fd,off__t offset): 设备缓冲区到内存空间的映射。 munmap(void*addr,size t len):采集工作结束后取消mmap和mbuf的绑定。 ioctl(int Rl,jnt cmd...,):控制I/O的通道。 2、Linux下图象数据的JPEG压缩 由于视频信息数据量过大,因此必须在视频传输前对图像数据进行压缩处理。在本系统中,摄像头采集过来的图像数据格式为RGB24,通过调用Linux下的Libjpeg库来实现视频数据的编码,把RGB24图像数据转换为JPEG格式。下面简述下整个压缩处理过程:首先初始化JPEG压缩的图片格式,调用jpeg_set—defauhs(&cmjpeg),接着初始化JPEG压缩图片质量,通过jpeg_set—ratio(&cmjpeg,ratio,7rURE)实现。 开始压缩:jpeg_start—compress(&cmjpeg,TURE);for(i--0,line--buf;i<_height;i++,line+=_width*3)jpeg_write—seanlines(&cmjpeg,&line,1); 压缩完成:jpeg_finish—eompress(&cmjpeg); 将压缩得到的数据拷贝到jpeg数据变量中: memepy(new一>buf 0。((_dst_ptr)cmjpeg.dest)一>buffer,size); 释放内存并销毁cmjpeg变量:jpeg_destory_compress(&cmjpeg) jpeg_buff_free(&emjpeg); 最后返回return size;返回值size标记了缓冲区中视频数据的实际长度。 3、系统网络通讯的实现 本系统采用B/S(浏览器/服务器)模式的通信构架。用户只需在远程客户机安装一个普通的浏览器软件,其他大部分工作由Web服务器完成。B/S模式开发的监控软件,降低了对系统软件的要求,避免了用户对客户端的安装和设置,实现了软件安装的简单化、自由化。 视频监控系统实现了对USB摄像头的驱动程序,这样上层视频采集程序可以直接通过标准的Video4Linux接口函数访问USB摄像头设备,捕获实时的视频流,放入上层缓冲区,同时通知上层服务器软件处理。 系统中内置了一个完整的基于网络的多用户视频服务器软件,这样当服务器软件监听到有网络客户连接时,立即启动采集进程从缓冲区中把处理后的视频流数据读出,然后发送给相应的客户连接。同时为了保证监控客户端的简单性与统一性,本系统中的客户端可以直接使用IE软件,即用户打开PC端的IE软件后,直接在地址栏内输入需要访问的设备IP地址或者域名,如192.168.0.5,此时就可以在IE浏览器中显示当前的实时采集图像。 五、结论 本系统采用嵌入式Linux,操作系统和ARM核处理器的硬件平台相结合,视频信号从前端图像采集设备输出时即为数字信号,以网络为传输媒介,并基于国际通用的TCP/IP协议,使用流媒体技术实现视频信号在网络上的传输,构成了一个高质量、监控方式灵活、可靠性好和具有易于扩展架构的网络视频监控系统。ARM处理核和Linux。相结合,很好地体现了整个监控小型化、数字化、网络化、低功耗的优点。系统电路板现已成功配置和运行,调试结果表明,整个系统具有稳定可靠、安装简便、成本低廉等特点,可广泛使用在家庭、银行、超市、公共场所等。 (中国集群通信网 | 责任编辑:陈晓亮) |