嵌入式网络技术应用
《PLC 技术应用200 例》
您的论文得到两院院士关注
基于Linux 的嵌入式网络摄像机设计
Web Camera Des ign Bas ed On Embedded Linux
(西南石油大学)梅大成杨大千赵娜
MEI DACHENG YANG DAQIAN ZHAO NA
摘要:本嵌入式网络摄像机采用高性能ARM9 芯片微处理器, 内置嵌入式Web 服务器。通过嵌入式多任务操作系统采集摄像
机视频数据; 采集的视频信号数字化后经MJPEG 算法压缩, 再通过内部总线送到内置的Web 服务器; 使用者可以直接用浏
览器观看Web 服务器上的摄像机图像; 通过通用网关接口CGI , 授权用户还可以控制摄像机、云台和镜头的动作或直接通
过Web 页面对系统进行配置。
关键词:V4L; ARM; Linux; CGI;MJPEG
中图分类号:TP393.17 文献标识码:A
Abstr act:This embedded web camera takes the powerful ARM9 chip as MPU, there is a embedded web server inside it. The camera
captures the video through embedded multitask operating system; the digital video has been compressed by MJPEG algorithm before it
is sent to inner web server through interior bus; the users can view camera’s video directly by internet explorer and the users who
are authorized can also control camera、the motion of cloud- station and lens or configure the parameters of the embedded web camera
straightly by Common Gateway Interface.
Key Words:V4L, ARM, Linux, CGI, MJPEG
文章编号:1008- 0570(2007)08- 2- 0045- 03
引言
基于同轴电缆的视频监控系统结构复杂、稳定性差、可靠性
低且价格昂贵, 因而出现了嵌入式网络摄像机等远程Web 视频
监控系统。本嵌入式网络摄像机, 采用高性能的ARM9 芯片作
微处理器, 内置嵌入式Web 服务器—Boa, 通过嵌入式多任务操
作系统—Linux 采集摄像机视频数据; 摄像机采集的视频信号数
字化后经MJPEG 算法压缩, 压缩后的视频流再通过内部总线送
到内置的Web 服务器; 通过在网页中嵌入图像播放器, 用户可
以直接通过浏览器观看Web 服务器上的摄像机图像; 通过通用
网关接口CGI, 授权用户还可以控制摄像机、云台和镜头的动作
或直接通过Web 实现对系统进行配置。
1 嵌入式网络摄像机系统原理及组
成结构
嵌入式网络摄像机的基本原理:在嵌入式Linux 操作系统中
内置Web 服务器Boa, 摄像机采集视频信号并将其数字化, 经
MJPEG 压缩后, 传送到内置的Web 服务器, 通过Web 页面将视
频信息发布到Internet。由于嵌入式网络摄像机是视频采集终端
和Web 服务器的融合, 因此, 用户可以直接通过浏览器观看摄
像机拍摄的视频图像, 达到远程监控的目的。
整个系统由视频采集模块、视频压缩模块、Web 服务器、通用
网关接口、Web 页面等5 个部分组成。其硬件结构如图1 所示:
图1 嵌入式网络摄像机硬件结构图
视频采集模块包括以S3C2410X 为核心的中央控制和数据
处理中心, 以及USB Camera 数据采集单元。中央控制和数据处
理中心主要完成视频采集终端的控制和视频图像的压缩;Web
服务器完成基本服务器的功能, 负责响应HTTP 请求, 配合视频
采集、压缩模块完成图像信息发布; 通用网关接口—CGI, 可以
根据用户输入的数据信息, 控制摄像机、云台和镜头的动作或直
接通过Web 实现对系统进行配置。
嵌入式微处理器是嵌入式系统的“硬核”。微处理器的选择
将对整个嵌入式系统的成本和性能产生决定性的影响。目前, 比
较流行的处理器主要有:Power PC 、MIPS、Intel、ARM等。ARM
( Advanced RISCMachines) 公司是一家全球领先的嵌入式微处
理器IP(Intellectual Property )核提供商, 它设计了一系列高性能、
低功耗、低成本和高可靠性的RISC 处理器核、外围部件和系统
级芯片应用解决方案。当前, ARM系列微处理器核广泛应用于
便携式通讯设备、手持终端、多媒体数字消费产品等嵌入式系统
解决方案中。本设计选用以ARM920T 为核心的S3C2410X 32
位微处理器, 该处理器集成了LCD 控制器、USB Host、USB
梅大成:副教授硕士
基金资助:本文得到国家十五科技攻关项目基金资助
(2004BA616A- 1- 01)
- 45 -
技
术
创
新
中文核心期刊《微计算机信息》( 嵌入式与SOC)2007 年第23 卷第8-2 期
360元/ 年邮局订阅号: 82-946 《现场总线技术应用200 例》
嵌入式网络技术应用
Slave、NAND 控制器、中断控制、功率控制、UART、SPI、
SDI/MMC、IIS、GPIO、RTC、TIMER/PWM、ADC 等丰富的资源。
操作系统是嵌入式系统的“软核”。早期的嵌入式系统, 由
于当时还没有操作系统的概念, 系统的主要功能都是用汇编语
言实现的, 其兼容性、通用性及扩展性都很差。随着硬件性能不
断提高, 在嵌入式系统中使用通用操作系统已成为现实。在嵌
入式系统中引入操作系统后, 利用软件工程的思想指导嵌入式
系统开发, 其开发效率和资源可重用率都将得到很大的提高。
目前较为流行的嵌入式操作系统有:VxWorks、Neculeus、WindowsCE
、Linux 等。相对其它商业操作系统, Linux 这个开源网络
操作系统有以下独特优势:
(1) 价格低廉。在保证产品性能的前提下, 价格永远都是系
统设计时必须考虑的重用因素之一。由于Linux 来源于开源社
区, 相对于其它商业操作系统, 其价格几乎为零。
(2) 文档丰富。全世界的Linux 程序员都是技术顾问, 任何
人都可以在开源社区得到其系统所需要的文档和帮助。
(3) 网络性能优良。与Unix 一脉相承的Linux 支持多种网络
协议, 并能够使系统长期稳定运行。
(4) 知识创新。在国产操作系统中, 嵌入式操作系统被认为
是唯一可以赶超国外同行的操作系统。而Linux 是操作系统中
的佼佼者, 任何人都可以遵照GPL 规则发布包含自己知识产权
的产品, 可以高效地进行知识创新, 少走弯路。
为此, 本设计选用高性能ARM9 芯片和嵌入式Linux 操
作系统。
2 视频采集模块设计与实现
视频采集模块是嵌入式网络摄像机的核心模块之一。它通
过嵌入式Linux 操作系统调度V4L(video4linux)和影像设备驱动
程序来完成视频捕获。V4L 是Linux 影像系统与嵌入式影像的
基础, 是Linux kernel 里支持影像设备的一组APIs, 配合适当的
视频采集卡与视频采集卡驱动程序, V4L 可以实现影像采集、
AM/FM无线广播、影像CODEC、频道切换等功能。目前, V4L 主
要应用在影像串流系统与嵌入式影像系统里, 其应用范围相当
广泛, 例如:远程教学、远程医疗、视频会议、视频监控、可视电话
等。V4L 为2 层式架构, 最上层为V4L 驱动程序, 最下层则是影
像设备驱动程序。
在Linux 操作系统中, 外部设备都作为设备文件来处理, 因
此, 对外部设备的操作就转变成对设备文件的操作。视频设备
文件位于/dev/ 目录下, 一般情况下为video0。当摄像机通过
USB 接口连接到视频采集终端后, 在程序中调用V4L APIs 对设
备文件video0 的读操作即可实现摄像头视频数据采集。其主要
过程如下:
1) 打开设备文件: int v4l_open(char *dev, v4l_device *vd){}打
开影像源的设备文件;
2) 初始化picture: int v4l_get_picture(v4l_device *vd){} 获取
输入的影像信息;
3) 初始化channel:int v4l_get_channels(v4l_device *vd){} 获取
每个channel 的信息;
4) 对channel 设置norm:int v4l_set_norm(v4l_device *vd, int
norm){} 对所有的channel 设置norm;
5) 设备地址映射:v4l_mmap_init(v4l_device *vd){} 返回存放
图像数据的地址;
6) 初始化mmap 缓冲区: int v4l_grab_init(v4l_device *vd, int
width, int height){};
7) 视频捕获同步: int v4l_grab_sync(v4l_device *vd){};
8) 视频捕获: int device_grab_frame(){}。
通过以上操作, 即可将摄像机视频数据采集到内存。采集到
内存的视频数据既可采用文件的形式保存, 也可将其压缩后通
过网络发布到Internet。本设计采用后一种处理方法, 即:将采集
的视频数据经MJPEG 压缩, 生成视频数据流并发布到Internet。
3 视频压缩模块设计
由于摄像机采集到的视频数据信息量较大, 如果直接将其
处理成视频, 将会给视频处理和网络数据传输带来很大的负担。
因此, 本设计采用高性能ARM9 处理器对采集到的数据进行
MJPEG 压缩。
JPEG(Joint Photographic Experts Group)—联合图像专家组的
简称, 它的主要目标是研究具有连续色调图像(包括灰度和彩色
图像)的压缩算法, 是MJPEG 的基础。JPEG 算法被确定为静态
数字图像压缩的国际标准, 不仅适用于静止图像压缩, 而且适用
于电视图像序列的帧内图像压缩。由于JPEG 压缩采用的是全
彩影像标准, 其主要处理过程包括:色彩模型转换、离散余弦—
DCT 变换、重排DCT 结果、量化、编码等。
MJPEG 是Motion JPEG 的缩写, 即动态JPEG。它将动画播
放与JPEG 结合, 按照25 帧/ 秒的速度使用JPEG 算法压缩视
频信号, 完成动态视频的压缩。
4 Web 服务器设计
在资源有限的嵌入式设备中可以使用的轻量级Web Server
有:httpd、thttpd、boa 等。本设计选用开源的、支持CGI 的Boa
Web Server, 其主要移植过程如下:
(1)到www.boa.org 下载最新软件包并解压到相关目录。
(2) 在目录boa/src 下的defines.h 文件顶部设置默认的
SERVER_ROOT 路径。
(3) 选择交叉编译工具。在boa 目录下使用./configure
- - host=i686- pc- Linux- gnu- - target=arm- Linux完成对boa 的配置。
(4)执行make 编译boa 后即在src/ 目录下生成可执行文件boa。
(5)对boa.conf 文件进行配置。主要完成对boa 运行的端口
号、Server 根目录、log files、html 文件、cgi 文件目录及可读写的
temp 目录的属性的设置。
5 浏览器与服务器之间的通信—通
用网关接口
CGI (Common Gateway Interface) 是外部应用扩展程序与
WWW 服务器交互的一个标准接口。按照CGI 标准编写的外部
扩展程序能够处理客户端浏览器输入的数据, 从而完成客户
端与服务器的交互、实现动态Web 技术。在本设计中, 当用户
通过浏览器向网络摄像机发送控制信息(比如控制摄像机云台
的动作等)时, 服务器守护进程启动CGI 模块, CGI 模块通过串
口将控制命令传送给云台, 使云台执行相应的动作。其流程图
如图2 所示:
- 46 -
邮局订阅号: 82-946 360 元/ 年
技
术
创
新
嵌入式网络技术应用
《PLC 技术应用200 例》
您的论文得到两院院士关注
图2 CGI 控制云台动作原理流程图
6 Web 页面的设计
在本嵌入式网络摄像机中,Web 页面的主要功能是显示
Web 页面及动态视频信息。由于标准的html 网页只具有显示文
字和图片的功能, 因而无法在标准的html 网页里嵌入一个窗口
来“实时”观看视频图像。解决这个问题的一种方法是将“实
时” 视频监控软件嵌入到网页中。Microsoft 制定了ActiveX 规
范, 只要符合这个规范的软件都可以嵌入到网页中。为了能满
足多人同时“ 实时”观看视频图像, 在本设计中选用标准ActiveX
控件—VgPlayerObject 来实现这一功能。
7 结束语
本文提出了一种基于ARMS3C2410X 和Linux 的嵌入式网
络摄像机设计。采用嵌入式Linux 操作系统进行视频采集、压缩
并通过ActiveX 控件显示动态视频, 通过嵌入式Web Server 和
CGI 技术融合整个系统, 形成一套完整的网络摄像机系统解决
方案。由于系统采用高性能嵌入式处理器完成主要控制、压缩
和Web 处理工作, 因此该系统具有结构简单、性能稳定、成本低
廉等优点, 在油田、油气井现场视频实时监控、智能小区、移动
监控等领域具有广阔的应用前景。
本文作者创新点: 成功将CGI 技术应用到嵌入式网络摄像
机中, 利用简单的方法实现了用户和嵌入式系统的交互, 本网
络摄像机在智能监控和移动监控中有广阔的应用前景。
参考文献
[1]曹翔. 实时视频传输在MPLS 网络中的QoS 研究[J]微计算机
信息,2006,7- 3:58- 60.
[2]陈俊宏.Embedded Linux 嵌入式系统原理与实务[M].北京:中
国铁道出版社,2004.
作者简介:梅大成(1965.1- ), 男(汉族), 四川广安人, 西南石油大
学副教授, 硕士, 主要研究:数字信号处理、嵌入式系统; 杨大千,
男(汉族), 1977.5- , 四川绵阳人, 讲师, 研究方向:嵌入式系统。西
南石油大学(Southwest Petroleum University), 四川成都西南石油
大学研究生院; 赵娜, 女, 1982- , 四川成都人, 在读硕士研究生,
研究方向:嵌入式系统。西南石油大学(Southwest Petroleum University),
四川成都西南石油大学研究生院。
Biogr aphy:Mei DaCheng (1965.1 - ) , man (the Han nationality),
come from guangan SiChuan, associate professor,Master, master’s
teacher, research way: digital signal process、embedded system.
Southwest Petroleum University,computer science institute of SWPU
chengdu Sichuan.
(610500 四川成都西南石油大学)梅大成杨大千赵娜
(Southwest Petroleum Univer sity Chengdu Sichuan 610500)
Mei Da- Cheng Yang Da- Qian Zhao Na
通讯地址:(610500 四川四川成都西南石油大学计算机科学
学院)梅大成
(收稿日期:2007.5.23)(修稿日期:2007.6.25)
(上接第70 页)
随着PXA27x 处理器的逐步推广使用, 会有越来越多的开
发商和科研机构加入到研究和使用它的行列中, 相应的底层移
植工作也必将会越来越多, 本文总结的移植过程和扩展功能的
基本方法必将对类似的系统开发有直接借鉴意义。
本文作者创新点:本文对移植blob 的过程做了总结, 给出了
扩展blob 现有功能的建议, 对从事嵌入式Linux 系统移植与开
发工作的人员有直接指导作用。
参考文献
[1]毛德操,胡希明.嵌入式系统—采用公开源代码和StrongARM/
XScale 处理器[M].杭州:浙江大学出版社。2003 年:563- 566 页。
[2]白伟平,包启亮.基于ARM的嵌入式bootloader 浅析[J]微计算
机信息,2006.22,4- 2:53,99- 100。
[3]詹荣开. 嵌入式Bootloader 技术内幕[Z] . IBMDW,2003.
[4]Intel PXA27x Processor Family Developer’s Manual [P], Jan
2006.Intel co.ltd
作者简介:吴涛, 男, 1972.12 生, 博士, 副教授。主要研究方向包
括:软件开发与复用、软件质量保证与测试等;张翼, 男, 1981.10
生, 华中科技大学2004 级硕士研究生, 研究方向:嵌入式系统;
杨鹏, 男, 1981.11 生, 华中科技大学2005 级硕士研究生, 研究方
向:系统分析与集成。
Biogr aphy:Wu tao, Male, born in 1972, mainly interested
areas: Software development and duplicate usage, Software
quality assurance;Zhangyi, Male, born in 1981, the realm of
study: embedded systems;Yang peng, Male, born in 1981, the
realm of study: system analysis and integration.
(430074 武汉华中科技大学软件学院)吴涛张翼
(430074 武汉华中科技大学水电学院数字化工程与仿真中
心)杨鹏
(School of Softwar e Engineer ing)Wu Tao Zhang Yi
(School of Mater ials Science & Engineer ing . Huazhong
Univer sity of science and Technology, Wuhan, China)
Yang Peng