WWW_PLCJS_COM-PLC-技.术_网
1 引言WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
WWcW_PLCJS_COM-PLC-技.术_网
随着微处理器技术、计算机网络技术的进步,基于嵌入式WEB的网络数字视频监控系统逐渐得到了人们的广泛关注。把图像采集、视频压缩和WEB功能集中到一个体积很小的设备内,可以直接连入局域网和Internet,达到即插即用,省掉多种复杂的电缆,安装方便,用户也无须安装任何硬件设备即可观看,这使得由嵌入式网络视频监控服务器组成的监控网络组网和扩展都极为灵活方便。WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
2 WEB服务器所在系统工作原理WWcW_PLCJS_COM-PLC-技.术_网
WWW_PLCJS_COM-PLC-技.术_网
系统有两种网络接入方式:通过PPPOE自动拨号,动态获取IP联入Internet;自定义静态IP连入局域网。WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
WWW_P※LCJS_COM-PLC-)技.术_网
之后,系统的整个工作流程包括两条主线:WWW_P※LCJS_COM-PLC-)技.术_网
WWW_PLC※JS_COM-PmLC-技.术_网
1.通过HTTP/TCP/IP方式,解析来自监控端的网页请求,包括:摄像机控制(云台上下左右、镜头光圈、缩放等等),数据库读写(视频参数如分辨率、亮色度、码流,画质),视频调度与传输(多个用户之间视频数据的发送停止及其相互协调,系统参数也放在这里)。plcjs.技.术_网
WWW_P※LCJS_COM-PLC-)技.术_网
2.通过RTP/UDP/IP方式,为监控端提供所需的实时视频信息。RTP/UDP/IP的方式兼顾了视频传输的实时性与QoS保证。P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
WW.W_PLC※JS_C,OM-PL,C-技.术_网
3 WEB服务器的选择WWW_PLCJS@_COM%-PLC-技.术_网
WWW.PLCJS.COM——可编程控制器技术门户
根据工作原理的描述,WEB服务器处于整个系统核心的位置,需要解决的几个难点包括:WWW_PLCJS@_COM%-PLC-技.术_网
WW.W_PLCJS_COM-PLC-技.术_网
1.安全性。只有授权登陆用户才能进行系统配置(网络参数、视频特性等等)。普通用户只能简单监控。WWW_PLC※JS_COM-PmLC-技.术_网
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
2.流量控制。视频数据连续且大量,服务器应该具备一定的协调各路监控数据的能力。WWW_P※LCJS_COM-PLC-)技.术_网
WWW_PLCJS@_COM%-PLC-技.术_网
3.实时性。对于监控端的web请求指令响应速度,特别是在高负荷的情况下。WWcW_PLCJS_COM-PLC-技.术_网
WWW_P※LCJS_CO※M-PLC-技-.术_网
4.性能。在多路监控请求同时存在的情况下,系统的响应速度。WWW_PLCJS_COM-PLC-技.术_网
——可——编——程——控-制-器-技——术——门——户
5.支持串口命令。云台控制指令需要串口支持。WWW_P※LCJS_COM-PLC-)技.术_网
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
6.数据库交互。包括用户数据库,系统配置参数等等,都需要实现脱机保存。WWW.PLCJS.COM——可编程控制器技术门户
plcjs.技.术_网
uCLinux下,主要有3个Web Server:Httpd、Thttpd和BOA。Httpd是最简单的一个Web Server,它的功能最弱,不支持认证,不支持CGI(Common Gateway Interface,通用网关接口)。Thttpd和BOA都支持认证、CGI等,功能都比较全。BOA源代码开放、性能可靠、稳定性好,但是是一个单任务的Web服务器。所以,我们选择简单、小巧、易移植、快速和安全的Thttpd。WWW_PLC※JS_COM-PmLC-技.术_网
WWW_PL※CJS_COM-PLC-技.术_网
Thttpd在默认的状况下,仅运行于普通用户模式下,从而能够有效地杜绝非授权的系统资源和数据的访问,同时Thttpd全面支持HTTP基本验证(RFC2617),可有效解决安全性的问题。WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
plcjs.技.术_网
另外,Thttpd对于并发请求不使用fork()来派生子进程处理,而是采用多路复用(Multiplex)技术来实现,因此效能很高,可以有效提高系统的性能。plcjs.技.术_网
WW.W_PLC※JS_C,OM-PL,C-技.术_网
最后,Thttpd基于URL的文件流量限制,对于连续的视频流量控制而言是非常方便的,象Apache就必须使用插件实现,效率较Thttpd低。在Thttpd的官方网站上有一个与其他web server的对比图Benchmark。W1WW_P4LCJS_COM-PLC-技.术_网
WWW_PL※CJS_COM-PLC-技.术_网
综上所述,Thttpd在安全性、性能、流量控制等方面有效的满足系统需要,当然,实时性也得到很好的保证。下面,结合源码,首先实现Thttpd的基本功能,然后将视频数据转发、安全性、支持串口命令、数据库交互的实现完善起来。WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
WW.W_PLCJS_COM-PLC-技.术_网
4 Thttpd基本功能的实现WWW_P※LCJS_COM-PLC-)技.术_网
P.L.C.技.术.网——可编程控制器技术门户
首先,确保在编译uCLinux内核的make menuconfig这一步,选中busybox中的Thttpd。WWW_PLC※JS_COM-PmLC-技.术_网
WW.W_PLCJS_COM-PLC-技.术_网
然后,根据需要,修改源码/user/thttpd下的config.h:P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
#define DEFAULT_PORT 80WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
//服务器监听端口WWW_P※LCJS_CO※M-PLC-技-.术_网
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
#define DEFAULT_DIR /home/httpdWWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
W1WW_P4LCJS_COM-PLC-技.术_网
//设定服务器根目录WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
WWW.PLCJS.COM——可编程控制器技术门户
#define INDEX_NAME index.htmlWWcW_PLCJS_COM-PLC-技.术_网
WWcW_PLCJS_COM-PLC-技.术_网
//设定访问服务器时的默认主页WWW_PLCJS_COM-PLC-技.术_网
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
#define AUTH_FILE passwdWWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
WWW_PLCJS_COM-PLC-技.术_网
//授权用户数据库文件WWW.PLCJS.COM——可编程控制器技术门户
W1WW_P4LCJS_COM-PLC-技.术_网
#define CGI_PATTERN /cgi-bin/*.cgiWWW_PLC※JS_COM-PmLC-技.术_网
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
//CGI的文件名格式WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
WWW_PLCJS_COM-PLC-技.术_网
#define CGI_PATH /home/httpd/cgi-bin——可——编——程——控-制-器-技——术——门——户
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
//CGI的所在目录WWW_P※LCJS_CO※M-PLC-技-.术_网
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
WW.W_PLCJS_COM-PLC-技.术_网