基于嵌入式Web服务器的网络视频监控系统设计

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:flscut
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:为说明数字视频监控所具有的模拟监控无法比拟的优点,本文较为详细的介绍了在S3C44B0X芯片上,基于嵌入式uClinux操作系统构建嵌入式Web服务器的网络视频监控系统的软件开发过程,并介绍了数字视频监控系统的硬件组成,阐明了嵌入式Web服务器的机制与机理,并结合具体的实践给出了一些相应的实现方法,以供业内同行参考使用。
  关键词:嵌入式Web服务器;CGI;数字视频监控;设计
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)18-31614-03
  Design of Video Surveillance System on Embedded Web Server
  WANG Chun-he
  (The Subsidiary Company of Railroad Communication,Yichun 153000,China)
  Abstract:In order to explain the digital video frequency monitoring has thesimulation monitoring is unable the merit which compares, This paper particular introduces a video surveillance system's software development process by building an embedded Web Server on the basis of embedded uClinux operating system in the S3C44B0X,and also introduces the hardware component,then illuminates the mechanism of embedded Web Server ane gives some responding implementation method. Unifies the concrete practice,The supplying industry in colleague refers to the use
  Key words:Embedded Web Server;CGI;digital video surveillance;design
  
  1 引言
  
  数字视频监控具有模拟监控无法比拟的优点,可充分利用计算机快速处理能力对其进行压缩、分析、存储和显示,更适合远距离传输。本数字视频监控系统的开发以嵌入式uClinux操作系统为平台,把模拟的视频信号转化为数字YUV信号,经过MPEG4压缩算法编码为数字视频流,通过以太网传输到客户端。用户使用配套的客户端软件,访问网络视频服务器所在的IP地址,就可以实时观看通过网络传输的图像。同时对于授权用户,还能对云台进行控制。
  嵌入式HTTP服务器是控制网络的关键设备,它起着连接现场层和高层企业信息网的作用。同时,嵌入式HTTP服务器又是实现设备Internet远程监控的关键技术。
  一般来说,将嵌入式系统接入Internet有两种形式,将高速微控制器直接接入TCP/IP协议族,或通过嵌入式网关由它实现嵌入式系统与Internet的信息交互。本系统采用由嵌入式网关构建的Web服务器形式。
  
  2 系统构成
  
  硬件电路主要包括:CPU处理模块;视频输入模块,音频输入模块:现场的数据采集设备将采集的数据送入嵌入式系统,系统对视频数据交MPEG4压缩芯片进行处理,对视频数据进行PCM编码;云台及变焦远程控制模块:控制信号从客户端通过TCP/IP网络传输流入嵌入式服务端,由嵌入式系统的云台及变焦远程控制模块对客户命令进行解析并发出相应的处理命令,以控制现场摄像机动作的切换。
  视频压缩模块:采用美国WIS公司的MPEG4视频压缩芯片GO7007SB,它的输入格式支持CCIR-601和8位CCIR-656 YUV 4:2:2,以及COMS影像传感器常用的四种RGB Bayer格式。采用运动预测引擎,高精度DCT/IDCT算法,量化与反量化引擎视频压缩技术,支持完美的音视频同步,能输出MPEG4,MPEG2,MJPEG等数据流格式,生成的2Mbit/s MPEG4视频质量接近DVD。其灵活的比特率控制(CBR/VBR)可适应不同带宽的需要。
  ARM与GO7007SB间的通信是通过16位HPI总线的接口来实现的,HPI连接GO7007SB端口与ARM总线控制器,S3C44B0以软件方式建立一内存映射与GO7007SB共享SDRAM,用于各种命令、数据的交互。
  图1 硬件结构图
  
  3 uClinux平台下Web Server THTTPD的配植
  
  本系统使用已去除MMU(内存管理单元)的uClinux2.4.20。这是一个稳定的版本,系统运行可靠、对各种硬件支持的接口都非常完善,在嵌入式OS方案中,是一个极好选择。在uClinux下,主要有三个Web Server:HTTPD、THTTPD和BOA。HTTPD是最简单的一个Web Server,它的功能最弱,不支持认证,不支持CGI。THTTPD和BOA都支持认证、CGI等,功能都比较全。以下是THTTPD的配置过程
  (1)执行make menuconfig把THTTPD编译到内核,在应用程序network application 项下面选择THTTPD。
  (2)编制配置文件Thttpd.conf放置在目标板/etc/config目录下。
  ServerName Samsung-ARM
  DocumentRoot /etc/config
  ScriptAlias /cgibin/ /etc/config/cgibin/
  ScriptAlias /index.html /home/html/index.html
  (3)编译烧写内核:重新编译内核后,通过烧写工具烧写内核,就可以在PC上通过IE浏览器访问开发板上的Web Server。例如,输入开发板的IP 地址http://192.168.0.128,即可访问到自己做的网页index.html了。
  
  4 嵌入式Web服务器程序设计
  
  4.1服务器工作模型[2]
  Linux系统网络服务器主要分为两种:循环服务器和并发服务器。循环服务器在同一时刻只能处理一个客户机请求,而并发服务器在同一时刻可以处理多个客户机请求。TCP套接字大多采用并发服务器提供服务。服务器所需做的工作是:首先创建一个专用子进程来专门处理数据,通过串口对设备进行数据的收发,对数据进行处理;然后再根据用户的请求创建相对应的子进程,将处理的数据交给Web Server子进程,子进程将数据显示到Web页下传给客户,并接收客户的参数设置命令,将参数设置上传到远程设备。用户子进程与串口数据处理子进程之间采用进程间通信来实现数据交换。服务器任何时刻都在监听用户请求。若用户发出监控请求,而且通过了密码校验,服务器就会产生一个子进程来处理该用户的请求:发送数据,接收设置等。
  4.2嵌入式Web服务器的实现
  (1)Web服务器守护模块
  该模块主要用来完成软件的初始配置、服务器初始化、被动连接建立和系统参数设定等功能。它首先读取flash,创建认证文件,并创建连接状态表,初始化系统信号量。然后调用BSD4.3插口例程,监听TCP 80端口,为接收到的连接请求创建新任务。最后,该模块检测各连接状态,如产生错误,则关闭连接或重启服务器。
  (2)请求处理模块
  该模块主要用来接受HTIP请求、解析HTTP请求、进行授权认证、选择处理模块、生成响应信息和发送响应。它又可细分为3个子模块,即处理选择子模块、CGI动态处理子模块和静态页面处理子模块。
  处理选择子模块:它首先为本连接创建连接结构体、请求结构体和响应结构体,并为连接创建私有环境变量和超时计时器。然后,它接收客户端的数据,解析这些数据并将合法的请求信息进行授权认证,根据URL选择CGI动态处理子模块或静态页面处理子模块进一步处理请求。最后,等待处理结果(处理结果将被写入响应结构体),并将处理结果按照HTTP1.1的要求发送给客户端浏览器。
  CGI动态处理子模块:根据已解析的HTTP请求,首先调用消息头处理库模块的函数处理请求,初始化并填写CGI环境变量。然后执行CGI函数,等待执行结果。最后,根据CGI1.1规范解析返回的结果,并生成响应信息,填写在响应结构体中,返回处理选择子模块。
  静态页面处理子模块:根据已解析的HTTP请求,首先调用消息头处理库模块的函数处理请求,然后查询内存中的静态页面镜像,并生成响应信息,填写在响应结构体中,返回处理选择子模块。
  (3)消息头处理模块
  根据由请求处理模块传递来的不同的请求头和总体头,按照HTTP1.1协议要求进行处理,并将处理结果返回给请求处理模块。
  
  5 服务器端程序设计
  
  5.1通用的自定义标记处理函数和CGI处理函数
  void cgi_handler(struct *resinfo,struct *cgi_handler_stru);
  void mark_handler(struct *resinfo,struct *mark_handler_stru)
  自定义标记处理函数用于对自定义标记的处理,每一类自定义标记对应一种具体的自定义标记处理函数,同一类自定义标记的不同数据点用参数来区分。所有自定义标记处理函数被放在一起,构成一个函数指针结构类型mark_handler_stru。CGI处理函数用变量名来区分,同一类变量对应一种CGI处理函数。与自定义标记处理函数类似,所有CGI处理函数也被放在一起,构成一个函数指针结构cgi_handler_stru。
  通用的自定义标记处理函数和CGI处理函数会根据数据结构resinfo的信息调用函数指针结构mark_handler_stru和cgi_handler_stru。这样,底层对于HTTP协议处理层是透明的。不论底层是RS485,CAN还是命名管道(项目中使用命名管道与现场控制任务交互),HTTP协议处理层都是相同的,嵌入式HTTP服务器代码因此具备了通用性。
  图2 嵌入式Web服务器的处理流程
  5.2 HTTP服务器的实现
  首先使用网页设计软件如FontPage设计一个网页,设命名为index.html,网页中含图片image.gif,存放在/home/html/下,然后将文件导出到S3C44B0X模块的HTTP服务器中。主程序中运行HTTP服务器的相关代码如下[4]:
  #define SERVER_PORT 80
  int main(void){
  …
  int s,fd;
  int len;
  struct sockaddr_in ec;
  struct sockaddr_in server_sockaddr;
  //创建TCP Socket连接到网络
  if((s=socket(AF_INET,SOCK_STREAM,IPPROTOCOL_TCP))==-1)
  {perror(“Unable to obtain network\n”);exit(1);}
  server_sockaddr.sin_family=AF_INET;
  server_sockaddr.sin_port=htons(SERVER_PORT);
  server_sockaddr.sin_addr.s_addr=htons(INADDR_ANY);
  if(bind(s,(struct sockaddr*)&server_sockaddr,sizeod(server_sockaddr))==-1)
  {perror(“Unable to bind socket\n”);exit(1);}
  //服务器应用程序被动打开一个TCP套接字进行交换数据
  if(listen(s,24)==-1)
  {perror(“Unable to listen\n”);exit(1);}
  //处理Web事务
  while(1)
  {
  len=sizeof(ec);
  if((fd=accept(s,(void *)&ec,&len))==-1)
  {exit(1);close(s);}
  HandleConnect(fd);//相关任务
  }
  …
  return 0;}
  5.3通过CGI接口控制拍摄
  在HttpSpec http_flashspec[]中加入以下定义:
  {HTTPSPEC_FUNCTION,”/get_photocgi”,0,get_phototoggle,0,NULL,NULL}
  在网页中嵌入按钮图标,使其链接到”/get_photocgi”,点击网页上此按钮,程序将跳转执行以下函数:
  int get_phototoggle(HTTPState* state){
  get_photo; //拍摄图像
  cgi_redirectto(state,’index.html’);//跳转到index.html网页,该网页含所拍摄的图像文件
  return 0;}
  
  6 结论
  
  采用了MPEG4视频压缩芯片GO7007SB,支持多种媒体文件格式:mp3,m2v,mpg,mpeg,实现本地及远端一点查看多点的网络图像监控服务。可在图像监控过程中,对云台进行控制和设置网络摄像机参数,包括摄像头姿态控制,摄像机变焦、调焦、自动巡视,图像传输速度调节,色彩调节(对比度、亮度、色饱和度),摄像机环境设置,摄像机图像采集格式设置等。
  
  参考文献:
  [1]王学龙.嵌入式Linux系统设计与应用[M].北京:清华大学出版社,2001.1.
  [2]Jernmy Bentham.嵌入式系统Web服务器TCP/IP Lean[M].北京:机械工业出版社,2003.
  [3]Tim JonesM.嵌入式系统TCP/IP应用层协议[M].北京:电子工业出版社,2003.
  [4]张斌,高波.等.Linux网络编程.北京:清华大学出版社,2000.
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
其他文献
摘要:移动Ad hoc网络是近年来网络研究的热点,WSN(Wireless Sensor Networks,无线传感器网络)是传感器研究领域一个新的研究方向。由于它们之间诸多的相似性使得每当提到WSN的时候往往与Ad hoc网络做比较。本文试图通过对Ad hoc网络和WSN网络特点和路由协议的介绍和分析,使这两个领域区别并联系起来。  关键词:网络;协议;传感器;路由  中图分类号:TP393文献
期刊
摘要:针对Web使用挖掘中的信息,提出一种基于遗传算法的关联规则挖掘模型,同时结合实例对有关信息特征进行量化,然后利用实数数组的方法进行编码以及构造适应度函数,挖掘出隐含在用户注册登记信息库中的有关用户规则。为个性化服务系统提供准确和可行的关联规则,并对用户的行为进行了预测和分析。  关键词:遗传算法;Web使用挖掘;关联规则  中图分类号:TP311文献标识码:A文章编号:1009-3044(2
期刊
摘要:在中学数学教学内容中,应用一元二次方程求根公式计算一元二次方程的根和应用高斯主元素消去法计算线性方程组的解是一部分具有机械计算性的程式化的单元,这使得很适合用C语言编写其计算程序。按照结构化思路设计编写C程序的二个实例。  关键词:C语言;结构化;计算程序  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)18-31611-03  Compiling two Ge
期刊
摘要:本文提出了一种新的基于相容近似空间的Rough集理论在不完全信息系统中进行知识提取。  关键词:Rough集;相容近似空间;不完备信息系统  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)18-31652-01  The Application of a New Rough Set Approach to Non-complete Information Sys
期刊
摘要:本文首先介绍了JAVA类装载机制的功能、体系结构以及规则,然后以Tomcat服务器为例,分析了J2EE应用服务器的特点,并对其类装载器进行了简单的分析。  关键词:类装载器,J2EE应用服务器  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)18-31609-02  Brief Research on JAVA Class Loader of J2EE Appl
期刊
摘要:介绍了TMS320C54x系列DSP的存储结构,详细讨论了存储器和存储空间的映射关系,分析了存储空间的配置方法,并结合实例给出了C5410型DSP的存储器映射关系和链接配置文件。  关键词:DSP;存储器;存储空间;映射;链接配置文件  中图分类号:TP312文献标识码:A文章编号:1009-3044(2007)18-31604-03  Study on the Memory Mapping
期刊
摘要:目前,单信道MAC协议在网络负载较重时的冲突和退避,造成信道带宽浪费而使得协议效率不高。本文主要针对UWB应用在无线个域网络中的特定场景,提出了一种新的应用于分布式网络的私有多信道UWB MAC协议,既可以解决隐藏终端和暴露终端问题,又可以有效地分配信道资源,提高网络性能。  关键词:私有多信道;接入策略; MAC; UWB  中图分类号:TP393 文献标识码:A文章编号:1009-304
期刊
摘要:本文在阐述MPLS VPN技术基本原理的基础上,简单介绍了MPLS VPN模型和技术的优势,最后给出利用ATM组网和用户多方式接入的方案。  关键词:ATM;MPLS;VPN;多协议标签交换  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)18-31594-01  The Virtual Network Technology on MPLS  XU Li, ZH
期刊
摘要:剖析了开源入侵检测工具Snort的体系结构及其工作配置模式,为中小型网络配置入侵检测系统提供了可行的解决方案。  关键词:入侵检测系统;通用入侵检测框架;Snort  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)18-31585-02  Research and Analysis the System Framework of Snort  YU Kun, W
期刊
摘要:在分布式计算环境下,Web服务发现和服务匹配技术直接关系到全球网络信息资源获取和信息的有效利用。传统的Web服务匹配和发现过程是基于UDDI并在语法级实现的。因而服务匹配模型没有涉及到语义,鉴于语义在智能匹配系统中所起的作用,本文从语义匹配的角度着重分析服务匹配系统中存在的数据语义、功能语义和服务质量语义。  关键词:语义描述;UDDI;匹配模型;本体  中图分类号:TP393文献标识码:A
期刊