基于ARM11嵌入式远程监控系统的分析与设计
一个名为a.out的文件。在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件。而GCC则通过后缀来区别输入文件的类别,一般情况下windows下编译出来的后缀名为.c文件。
宿主机上安装的fedora发行版的Linux内核,这里使用的是ARM—linux—gcc 4.3.0.
2.4 mjpg—stream库的移植
根据mjpg_stream源代码,默认的网络输出端口:output[0]=“output_http.so—port 8080”;默认的输入端口:char*input=“in put_uvc.so--resolution 640x480--fps 5--device/dev/video0”;而不是每一个开发板的活动端口都是video0,因此我们需要重新进行编译。采用之前的编译工具GCC编译器,利用make和makefile(make和makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作)命令进行编译,形成可执行文件也就是如图所示的mjpg_streamer文件格式,即是开发板当中的可执行文件。前面我们已经提到,所采用的摄像头一定要支持UVC格式的摄像头,图3就是不支持UVC和活动端口不连接的时候的错误提示,图4就是正确的提示信息。
2.5 视频采集图像
在mgpg—stream库移植完成以后,在终端中输入./mjpg_streamer—i“./input_uvc.so-d/dev/video2-y”-i“./input_uv c.so-d/dev/video2-y”-o“./output_http.so-w./www”,并执行,用以开启摄像头和网络协议,同时执行输入输出。此处必须指出,采集设备一定是在检测之后,确定是哪一个设备的基础上选择修改的,执行,开发板将进入等待时间。如图4所示。
在确定摄像头正常开启,输入输出端口正常工作之后,看到开发板处于等待状态,在PC机输入http:192.168.1.20:8080/?action =stream,可以浏览到正常画面,如图5所示。
2.6 视频数据的采集
Linux内置了标准的视频接口VideoForLinux(简称V4L),V4L支持数字摄像头的各种操作,应用程序只要遵循这个接口标准就可以使视频设备正常工作。本系统的软件设计遵循了结构化的编程思想,对重要的操作和数据进行了编译,形成可执行文件。重要的数据结构定义如下:
采集函数涵盖了设备采集图像的各种属性以及实际的数据帧缓冲区。在嵌入式Linux中,USB数字摄像头设备映射为设备文件/dev/vid eo,在对其进行任何操作与对普通文件操作类似。
要对设备进行操作,首先要对摄像头设备进行开启,“input_uvc.so--resolution640x480--fps5--device/dev/vide02”,然后就是对图形的格式大小,分辨率,颜色等就行设置,最后通过映射,发送采集命令,采集图像数据,采集的图像如上图5。
3 结 论
采用ARM11高速微处理器为核心,S3C6410开发板进行视频监控,移植mipg—stream库到linux系统开发板中,构成了视频监控系统,较传统监控设备无论是在数据传输还是数据采集方面都有了很大的提高。能工作于各种艰苦的环境,处理速度较快,画面清晰,符合现代视频监控的要求,达到了实验目的,在此基础上做一些补充,将会具有广阔的工业应用空间。
- Linux嵌入式系统开发平台选型探讨(11-09)
- 嵌入式系统中文输入法的设计(03-02)
- 基于MPC755的嵌入式计算机系统设计(05-10)
- WinCE下光电编码器的驱动程序设计(04-12)
- 为什么嵌入式开发人员要使用FPGA(05-13)
- VxWorks几种常用的延时方法介绍(05-16)