新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于ARM11的嵌入式Web监控系统的研究与实现

基于ARM11的嵌入式Web监控系统的研究与实现

作者:时间:2016-09-12来源:网络收藏

随着嵌入式计算机、互联网、数字图像以及通信等技术的发展,视频监控技术也得到迅速的发展,并渗透到人们的现实生活中。视频监控的领域涉及安全监控、远程医疗、智能家居、视频实时会议等。

本文引用地址:http://www.eepw.com.cn/article/201609/303783.htm

文中利用Web和嵌入式技术,以ARM11-S3C6410处理器为硬件核心,以系统作为软件平台,研究并实现了一个嵌入式Web实时监控系统,为嵌入式设备接入Internet提供了一种简单且有效的解决技术,进而可以实现通过Web浏览器对嵌入式设备进行远程监控的目的。

1 系统总体设计

文中设计一种典型的嵌入式Web监控系统主要通过嵌入式终端上的摄像头进行视频图像的采集,视频服务器MJPG—streamer然后对采集过来的数据进行压缩,传输JPEG格式的图像到用户客户端浏览器。用户可以通过Web浏览器实时远程监控摄像头采集到的视频图像。系统整体框架如图1所示。

基于ARM11的嵌入式Web监控系统的研究与实现

2 硬件设计

本系统使用的硬件平台功能框图如图2所示。该平台采用三星处理器S3C6410。该处理器基于ARM1176JZF—S内核,64/32位内部总线架构,并且具有丰富的内部资源,支持MPEG4/H.264编解码、VC1的解码,实时视频会议和NTSC,PAL的输出。在片上资源非常丰富的基础上,对硬件系统的配置进行了相关的扩展,包括1块256 MB的NAND Flash和2块64 Mbyte的DDR SDRAM,1个连接PC机用于调试的串口、2个USB接口、1个以太网控制芯片DM9000AE扩展了1个网络口,在主控USB接口外接数字摄像头。

基于ARM11的嵌入式Web监控系统的研究与实现

3 软件设计

3.1 嵌入式boa的移植

本项目采用的嵌入式(WWW.boa.org),它一般是单进程服务器,即同一时刻只能响应单个用户的,而无法并发响应,这也是和Apache等高性能的主要的区别,但对于应用于嵌入式设备的场合里已足够。这里介绍常用的web服务器boa的移植。的可执行代码只有约60KB,是一个非常小巧的单任务服务器,所以只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但支持,能够为程序fork出一个新的进程来响应用户的需求。在其站点公布的速度和安全性能测试中,Boa的性能要好于Apache服务器。

基于ARM11的嵌入式Web监控系统的研究与实现

最后将生成的可执行程序boa挂在到目标系统,若能成功地访问静态HTML网页和运行测试用的程序,则表明配置成功。

3.2 Cgi技术简介以及Cgi库的移植

目前Web开发中生成动态Web页面的方法有CGI和服务器脚本,如JSP,ASP等,但在嵌入式Web服务器中,考虑资源有限,一般都只提供CGI支持,因此在嵌入式设备中Web应用实际上就是基于CGI的开发。

CGI(Common Gate Interface)是一段运行在Web服务器上的程序,它提供了同客户端Html页面的接口。为了完成服务器与客户端的动态交互,依据cgi标准编写的代码运行在服务器端,处理来自用户浏览器的数据,如表单数据的操作、Web数据库的访问以及远程操控等。编写不同的cgi程序,用于视频采集设备的初始化以及实时控制。CGIC是一个支持CGI开发的开放源码的标准C库,只需要在开发的站点和程序文档中公开声明即可,表明程序使用了CGIC库,用户也可以购买商业授权而无需公开声明。首先在其官网下载源代码,目前使用的是cgic205版,设置交叉编译器进行交叉编译,并移植cgic库。完成移植后,将capture和egictest.cgi文件复制到Web服务器中的/web/cgi—bin目录下。C GIC库移植成功后,可在浏览器中访问其测试页面则表明测试成功。测试页面如图3所示。

基于ARM11的嵌入式Web监控系统的研究与实现

3.3 MJPG-streamer服务器的设计

MJPG-streamer是一个基于网络应用的开源流媒体服务器。本课题对MJPG-streamer流媒体服务器进行深入研究,结合试验平台的特点,对其进行修改、编译,使这个流媒体服务器可以正常的工作在系统平台上。利用MJPG-streamer流媒体服务器与Linux系统所提供的API以及丰富的网络功能完成视频数据的采集、压缩和网络传输。

用户通过浏览器与嵌入式Web服务器通信。MJPG-streamer视频服务器主要负责架设服务,进行配置(端口,显示参数),摄像头的识别由s3c2440_camif.c驱动程序完成。MJPG-streamer服务器是一个命令行应用软件,它运行时会启动一个socket套接字来侦听8080端口,若有TCP连接请求,则以TCP流将视频发送出去。可以从一个输入端复制JPG格式的图像到多个输出端,也可以将从摄像头采集到的JPEG视频流通过网络传输到浏览器上或者嵌入式设备上。有了视频服务器处理数据的输入输出,在构建前台网页时可以直接调用生成相应的实时数据,方法是在HTML页面上输入:http://IP地址:端口/? action=参数”格式来调用,其中参数为“stream”表示调用视频网页,“snapshot”表示调用相应网页,这个功能是通过httpd服务器实现的,MJPG—streamer流程图如图4所示。

基于ARM11的嵌入式Web监控系统的研究与实现

MJPG—streamer其流程图如图4,有输入组件input_uvc和输出组件output_http,以及out_file等。每个组件的功能明。input_testpic ture.so将预设好的图片编译成头文件,即使摄像头不工作了,也能继续传输未完全的;input_uvc.so调用摄像头驱动,从摄像头读取视频数据,读取一帧数据,判断数据帧的大小,如果数据帧太小或者太大,则丢弃。判断原始数据格式,如果是YUV进行格式转换后将原始数据复制到全局缓冲区,继续刷新缓冲区。而input_control.so是摄像头控制接口,output_http.so是一个网站服务器,将视频文件以HTTP视频数据服务流形式输出。output_file.so实现图片存储到特定的文件夹。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭