




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 / 9基于 ARM 的家庭视频 服务器的研究摘 要 针对家庭网关的最重要功能:远程监控功能,设计了一个基于 ARM 平台的嵌入式家庭网关服务器平台。平台中集成了 boa 服务器和家庭网络服务器及视频服务器于一体,通过通用网关接口程序 CGI,实现了远程用户和家庭内部网络的动态交互。中研究的数据信息主要是摄像头视频信息,采用了将视频信息通过 ActiveX 控件解码,发送的方式在 HTTP 浏览器上直接播放的方式来实现远程传输(不论述信息家电的远程控制部分)。 关键字 ARM, boa服务器 , CGI , 视频传输, ActiveX 引言 随着科学技术的不断进步和发展,人们对生活质量也提出了更高的要求。家庭网络作为一个新生体越来越近的开始走进人们的生活,它将家庭单元作为一个节点加入了网络的大家庭,其中作为连接家庭内部与 Internet 的桥梁的家庭网关起了举足轻重的作用。嵌入式网关的主要功能如下: 远程控制:客户通过 Internet 上连接的任意一台 PC 机的浏览器,都可以访问家庭网络的服务器;家庭网络中的设备状态将以HTML 文件的方式显示在客户端的浏览器中;客户通过对HTML 页面上相应设备的点击以实现对家庭网络中设备的远程控制,操作的结果同样以 HTML 页面的方式刷新客户端的浏览器。 远程监视:客户通过 Internet 上连接的任意一2 / 9台 PC 机的浏览器,都可以访问家庭网络的服务器,在 HTML页面上通过点击控件按钮来实现视频工具的自动下载和所要求视频文件的自动播放,从而可以显示多个摄像头中的视频信息。 远程维护:当 HomeNetServer 的后台数据库需要维护,或者家庭网络中设备的 HTML 描述文件有了更新,甚至系统的网络管理系统需要升级为新版本时,管理员都可以通过 Internet 远程对家庭网络中的服务器做维护和更新。 基于这些基本要求和嵌入式系统自身资源有限的特点,系统选择了 S3C4510 芯片,并对其进行外围电路扩展如图1:图 1 外围扩展电路方框图 其中:Flash/ROM 用于存储家庭网关中的嵌入式操作系统、HTTP 服务器、CGI 网关程序、家庭网络服务器以及各种服务所需的文件系统。整个家庭网关软件平台存储在 Flash 中,系统启动时,将从Flash 中运行 Bootloader,解压操作系统并将其移入 SDRAM中。 Ethernet:S3C4510 内部集成了网络控制接口,并提供专用于网络通信的 DMA 通道。通过 Ethernet 模块,S3C4510 实现与 Internet 的连接。Ethernet 模块完成芯片与网络的隔离和数据的收发。 System:S3C4510 所需的其他外围电路,包括:电源电路、外部时钟电路、开关及复位电路和 JTAG 调试接口电路等。 嵌入式操作系统选择的是 uClinux 操作系统,uClinux 是专门针对没有 MMU 的处理3 / 9器而设计的,系统多采用 Romfs 文件系统,Romfs 是一种相对简单、占用空间较少的文件系统。而在 UCLINUX 下,主要有三个 WEB 服务器:httpd、thttpd 和 boa,httpd 是最简单的 WBE 服务器,功能简单,不支持认证和 CGI,thttpd和 boa 均支持认证和 CGI,功能丰富,其中 boa1 是一个单任务的 http 服务器,源代码开放,性能较高,占用系统资源较少,boa 服务器在收到请求时,不启动多个服务进程处理多个请求,在一个进程内处理所有服务请求。对于 CGI程序,将生成新的进程来处理,考虑到嵌入式系统自身资源有限,和家庭网关的进程数量有限,系统选择了在uCLinux 系统中的 boa 服务器。 由于目前的 uCLinux 还不支持 ASP、PHP 等动态网页技术,所以在 uCLinux 下通过 CGI2 技术连接 WEB 页和本地程序,提供动态和交互的特性。图 2 系统总体设计框图 1 配置 boa 服务器 CGI 程序不是放在服务器上就能顺利运行,如果要想使其在服务器上顺利的运行并准确的处理用户的请求,则须对所使用的服务器进行必要的设置。 Boa 的配置文件:在中对 boa 进行了配置,这些配置多使用默认值,本系统中将 Document Root指定的 WEB 服务器的根修改为/boas. 在对内核进行配置时,选择 boa 程序和 cgi. 将 cgi_generic 文件夹下的和makefile 覆盖到程序包中的/usr/cgi_generic/。 将 boa4 / 9文件夹下的覆盖到程序包中的/usr/boa/src。 将 rc 文件覆盖到程序包中的/vendor/Miectek/4510。 本系统中的ucLinux 系统中的文件使用的是 ROMFS 和运行于 RAM 的EXT2。为了可通过 FTP 等工具更新网页,rc 文件在/boas下创建文件夹 cgi_bin,然后将,和复制到/boas 下,将CGI 程序复制到/boas/cgi_bin 下。至此建立了 boa 运行的基本环境,使用boa c/boas/&命令就可以运行boa.2 系统设计描述 在嵌入式网关的设计中,网关程序与家庭网络的 HTTP 服务器和家庭网络内部服务器位于同一物理设备之上,负责连接 HTTP 服务器与后台数据库,完成HTTP 服务器与 HomeNetServer 之间的信息交互。 在家庭网关的设计中,根据功能描述,网关应能提供远程监视、远程控制、远程维护功能。网关内部工作流程如下: 若客户发送的 HTTP 请求,经过 HTTP 服务器接收和解析后,得知要求的是设备状态信息时,HTTP 服务器从存储设备状态信息的静态文件中取出设备状态,并封装为 HTTP 响应消息发送回客户端。 若客户发送的 HTTP 请求,经过 HTTP服务器接收和解析后,得知请求的消息是对设备的设置,则通 CGI 函数将消息内容转换为家庭网络协议传递给家庭网络服务器,由家庭网络服务器对家庭内部设备的管理和控制,并将处理结果以消息形式传递给 CGI 程序,并封装为 HTTP 响应消息的形式,发送回客户端。 若客户发送5 / 9的 HTTP 请求,经过 HTTP 服务器接收和解析后,得知请求的页面是提供实时视频服务时,HTTP 服务器将调用 CGI 函数向视频数据处理模块发送消息,通过视频数据处理模块来控制视频压缩卡完成视频数据的采集,压缩和发送等功能。 若客户发送的 HTTP 请求,经过 HTTP 服务器接收和解析后,得知请求的消息包含对云台设备及镜头的控制命令时,HTTP 服务器通过 CGI 函数向云镜解码器直接发送控制指令以实现对云台和镜头的控制。图 3 家庭网关软件结构框图 3 实时视频传输部分设计 基于 HTTP 的 boa 服务器负责接收和响应客户端的 HTTP 请求,当请求的是视频信息时,此请求通过 CGI 函数向视频数据处理模块发送消息,从而向视频设备发送事件以允许实时视频发送任务进入运行队列。 视频数据处理模块主要包括视频图像的实时捕捉、动态存储和实时播放,图像的实时播放可以和图像的实时捕捉存储同时进行。 初始化视频压缩卡:M878Object*pObject=NULL; For(int i=0;iInitData(); m_(pObject); 数据采集:for(i=0;iSetParamToDevice(); /设定参数 停止设备:当不再使用设备时,调用 ViUnInit()关闭视频压缩采集卡并卸载系统资源。 数据发送模块: OutMpegBuff(i,OnMpeg4Write); Void CALLBACK OnMpge4Write(DWORD dwCard,BYTE *pbuff,DWORD 6 / 9dwSize,BOOL isKeyFrom) if(dwCard=g_dwDevice) return; g_VStrmInfodwCard+=dwSize/26; MTAWriteVideo(BYTE)dwCard,pbuff,(LONG)dwSize,isKeyFrm) 发送模块负责向地址表中的地址发送经过编码处理的实时视频数据,并修改地址表中的信息。地址表用来保存请求实时视频服务的用户的 IP 地址,视频发送任务根据地址表中的地址来发送视频包。 数据接收模块: 该模块主要完成视频数据的接收、解码和显示工作。用户通过浏览器实现对远程设备的监控,服务器返回的信息通过浏览器显示。浏览器可以使用微软公司的 Internet Exploer 或 Netscape 公司的 Netscape Navigator 等。对于普通的文本及 HTML 文件支持的 GIF、JPEG 等格式的图片,普通浏览器都可以显示。但对于实时视频数据,首先,与HTTP 链接不同,不是使用流套接字而是使用数据报套接字接收,然后还需解码和显示,这些工作浏览器都无法完成。为使用户能通过浏览器观看视频,本系统采用在 WEB 页面中嵌入 ActiveX 控件,由 ActiveX 控件完成视频数据的接收、解码和显示工作。而 ActiveXInternet 技术的一个重要方面是安全的下载和安装 ActiveX 控件和需要的支持文件。Microsoft Internet Explore 通过在 HTML 文档中使用Internet Component Download 方法自动下载并安装ActiveX 控件 3。 客户端控件的嵌入 在 WEB 服务器的 HTML7 / 9文件中嵌入 ActiveX 属性,针对客户端使用最多的 IE 浏览器,HTML 代码可使用的 MFCControl 控件如下:VideoPageID=Mpge4Control WIDTH=100HEIGHT=51CLASSID=CLSID:A119846-2E75-11D0-BDB2-000000000000CODEBASE=http:/videodisplay/#Version=1,0,0,1 其中 ID 标志控件命名,提供访问控件的 HTML 代码。CLASSID 标志是唯一的 UUID 给控件赋值的指令,告诉 IE 哪个对象被装载。在 HTML 页面实现控件的自动下载,使用标志的 CODEBASE 属性,该属性告诉 IE 要下载和安装的控件版本和找到和下载控件及其支持文件的地址。 客户端控件的注册 控件编写完成后,需要在客户端注册,关于控件的信息记录在注册表中。客户端从服务器端接收到嵌有控件的 HTML 页面后,将根据 OBJECT 标签中的信息通过注册表使用对应的空间完成接收,解码和显示。4 远程控制部分设计 在远程控制部分设计中,根据性能最优化和实时性考虑,将控制部分分为两部分:云台控制部分,主要是通过串口进行通信;信息家电远程控制,通过内部家庭网络协议对相应设备进行控制,控制信号的物理载体是家庭网络内部总线。 。 云台控制模块设计 该模块是个相对独立的模块,负责控制云台的上下左右旋转以及镜头的焦距和光圈8 / 9的调整。当服务器接受到的请求中含有对云台设备以及镜头的控制命令时,将通过 CGI 函数向云台解码器发送控制指令以实现对云台,镜头的控制。在室内,采用 CDA2000室内万能解码器 4 直接通过 RS-232 串行口与嵌入式网关通信,云台控制电压24V、220V 可选,镜头控制电压可在 5V-12V 之间无级调节。图 4 云台控制系统硬件连接框图 在云镜控制模块中,解码器起着核心的地位,设计云镜控制模块主要解决的问题是将各项操作如上下旋转,镜头调焦等操作进行编码,但本系统采用的解码器封装了底层硬件程序的编写,因此所做的工作是利用解码器开发商提供的协议,通过 RS232 串行口向解码器发送指令。 Linux 对串口的操作是通过设备文件进行访问的,只需打开相应的串口文件,然后通过调用设备相关函数来打开串口,设置串口参数(tcgetattr(),cfsetispeed(), cfsetospeed(),设置输入输出模式,恢复串口属性,关闭串口等即可。图 5 串行通信流程 5 结论 本系统的特点是基于嵌入式微处理器有限的系统资源之上,为客户提供视频服务。本系统采用的是bo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论