基于ARM的家庭视频服务器的研究

上传人:l****6 文档编号:38056569 上传时间:2018-04-26 格式:DOC 页数:6 大小:33.50KB
返回 下载 相关 举报
基于ARM的家庭视频服务器的研究_第1页
第1页 / 共6页
基于ARM的家庭视频服务器的研究_第2页
第2页 / 共6页
基于ARM的家庭视频服务器的研究_第3页
第3页 / 共6页
基于ARM的家庭视频服务器的研究_第4页
第4页 / 共6页
基于ARM的家庭视频服务器的研究_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《基于ARM的家庭视频服务器的研究》由会员分享,可在线阅读,更多相关《基于ARM的家庭视频服务器的研究(6页珍藏版)》请在金锄头文库上搜索。

1、1基于 ARM 的家庭视频服务器的研究摘 要 针对家庭网关的最重要功能:远程监控功能,本文设计了一个基于ARM 平台的嵌入式家庭网关服务器平台。平台中集成了 boa 服务器和家庭网络服务器及视频服务器于一体,通过通用网关接口程序 CGI,实现了远程用户和家庭内部网络的动态交互。本文中研究的数据信息主要是摄像头视频信息,采用了将视频信息通过 ActiveX 控件解码,发送的方式在 HTTP 浏览器上直接播放的方式来实现远程传输(本文不论述信息家电的远程控制部分)。 关键字 ARM, boa 服务器 , CGI , 视频传输, ActiveX引言随着科学技术的不断进步和发展,人们对生活质量也提出了

2、更高的要求。家庭网络作为一个新生体越来越近的开始走进人们的生活,它将家庭单元作为一个节点加入了网络的大家庭,其中作为连接家庭内部与 Internet 的桥梁的家庭网关起了举足轻重的作用。嵌入式网关的主要功能如下:远程控制:客户通过 Internet 上连接的任意一台 PC 机的浏览器,都可以访问家庭网络的服务器;家庭网络中的设备状态将以 HTML 文件的方式显示在客户端的浏览器中;客户通过对 HTML 页面上相应设备的点击以实现对家庭网络中设备的远程控制,操作的结果同样以 HTML 页面的方式刷新客户端的浏览器。远程监视:客户通过 Internet 上连接的任意一台 PC 机的浏览器,都可以访

3、问家庭网络的服务器,在 HTML 页面上通过点击控件按钮来实现视频工具的自动下载和所要求视频文件的自动播放,从而可以显示多个摄像头中的视频信息。远程维护:当 HomeNetServer 的后台数据库需要维护,或者家庭网络中设备的HTML 描述文件有了更新,甚至系统的网络管理系统需要升级为新版本时,管理2员都可以通过 Internet 远程对家庭网络中的服务器做维护和更新。基于这些基本要求和嵌入式系统自身资源有限的特点,系统选择了 S3C4510 芯片,并对其进行外围电路扩展如图 1:图 1 外围扩展电路方框图其中:Flash/ROM 用于存储家庭网关中的嵌入式操作系统、HTTP 服务器、CGI

4、网关程序、家庭网络服务器以及各种服务所需的文件系统。整个家庭网关软件平台存储在 Flash 中,系统启动时,将从 Flash 中运行 Bootloader,解压操作系统并将其移入 SDRAM 中。Ethernet:S3C4510 内部集成了网络控制接口,并提供专用于网络通信的 DMA 通道。通过 Ethernet 模块,S3C4510 实现与 Internet 的连接。Ethernet 模块完成芯片与网络的隔离和数据的收发。System:S3C4510 所需的其他外围电路,包括:电源电路、外部时钟(50MHZ)电路、开关及复位电路和 JTAG 调试接口电路等。嵌入式操作系统选择的是 uClin

5、ux 操作系统,uClinux 是专门针对没有 MMU 的处理器而设计的,系统多采用 Romfs 文件系统,Romfs 是一种相对简单、占用空间较少的文件系统。而在 UCLINUX 下,主要有三个 WEB 服务器:httpd、thttpd和 boa,httpd 是最简单的 WBE 服务器,功能简单,不支持认证和 CGI,thttpd 和boa 均支持认证和 CGI,功能丰富,其中 boa1 是一个单任务的 http 服务器,源代码开放,性能较高,占用系统资源较少,boa 服务器在收到请求时,不启动多个服务进程处理多个请求,在一个进程内处理所有服务请求。对于 CGI 程序,将生成新的进程来处理,

6、考虑到嵌入式系统自身资源有限,和家庭网关的进程数量有限,3系统选择了在 uCLinux 系统中的 boa 服务器。由于目前的 uCLinux 还不支持 ASP、PHP 等动态网页技术,所以在 uCLinux 下通过 CGI2 技术连接 WEB 页和本地程序,提供动态和交互的特性。图 2 系统总体设计框图1 配置 boa 服务器CGI 程序不是放在服务器上就能顺利运行,如果要想使其在服务器上顺利的运行并准确的处理用户的请求,则须对所使用的服务器进行必要的设置。Boa 的配置文件 boa.conf:在 boa.conf 中对 boa 进行了配置,这些配置多使用默认值,本系统中将 Document

7、Root 指定的 WEB 服务器的根修改为/boas.在对内核进行配置时,选择 boa 程序和 cgi.将 cgi_generic 文件夹下的 cgi.c 和 makefile 覆盖到程序包中的/usr/cgi_generic/。将 boa 文件夹下的 hash.c 覆盖到程序包中的/usr/boa/src。将 rc 文件覆盖到程序包中的/vendor/Miectek/4510。本系统中的 ucLinux 系统中的文件使用的是 ROMFS 和运行于 RAM 的 EXT2。为了可通过 FTP 等工具更新网页,rc 文件在/boas 下创建文件夹 cgi_bin,然后将index.html,boa

8、.conf 和 mine.type 复制到/boas 下,将 CGI 程序复制到/boas/cgi_bin 下。至此建立了 boa 运行的基本环境,使用boa c/boas/命令就可以运行 boa.2 系统设计描述在嵌入式网关的设计中,网关程序与家庭网络的 HTTP 服务器和家庭网络内部服务器位于同一物理设备(基于 S3C4510 的硬件平台)之上,负责连接 HTTP 服务器与后台数据库,完成 HTTP 服务器与 HomeNetServer 之间的信息交互。4在家庭网关的设计中,根据功能描述,网关应能提供远程监视、远程控制、远程维护功能。网关内部工作流程如下: 若客户发送的 HTTP 请求,经

9、过 HTTP 服务器接收和解析后,得知要求的是设备状态信息时,HTTP 服务器从存储设备状态信息的静态文件中取出设备状态,并封装为 HTTP 响应消息发送回客户端。 若客户发送的 HTTP 请求,经过 HTTP 服务器接收和解析后,得知请求的消息是对设备的设置(操作),则通 CGI 函数将消息内容转换为家庭网络协议传递给家庭网络服务器,由家庭网络服务器对家庭内部设备的管理和控制,并将处理结果以消息形式传递给 CGI 程序,并封装为 HTTP 响应消息的形式,发送回客户端。 若客户发送的 HTTP 请求,经过 HTTP 服务器接收和解析后,得知请求的页面是提供实时视频服务时,HTTP 服务器将调

10、用 CGI 函数向视频数据处理模块发送消息,通过视频数据处理模块来控制视频压缩卡完成视频数据的采集,压缩和发送等功能。 若客户发送的 HTTP 请求,经过 HTTP 服务器接收和解析后,得知请求的消息包含对云台设备及镜头的控制命令时,HTTP 服务器通过 CGI 函数向云镜解码器直接发送控制指令以实现对云台和镜头的控制。图 3 家庭网关软件结构框图3 实时视频传输部分设计基于 HTTP 的 boa 服务器负责接收和响应客户端的 HTTP 请求,当请求的是视频信息时,此请求通过 CGI 函数向视频数据处理模块发送消息,从而向视频设备发送事件以允许实时视频发送任务进入运行队列。视频数据处理模块主要

11、包括视频图像的实时捕捉(借助 MPEG-4 视频压缩卡完5成)、动态存储和实时播放,图像的实时播放可以和图像的实时捕捉存储同时进行。初始化视频压缩卡:M878Object*pObject=NULL;For(int i=0;im_nDevice;i+)pObject=new M878Object(i,m_strDisk+m_str VideoDir);If(!pObjectGetDataFormFile()pObject-InitData();m_obArray.Add(pObject); 数据采集: for(i=0;im_nDevice;i+) OpenDev(i); /打开指定卡号的设备,分

12、配相应系统资源pObject=( M878Object*)m_obArrayi;OutMpegBuff(i,OnMpeg4Write); /采集视频数据流RegisterViSaveExceptionProc(i,(ViSaveErrCallBack) ViErrCallBack);pObject-SetParamToDevice(); /设定参数停止设备:当不再使用设备时,调用 ViUnInit()关闭视频压缩采集卡并卸载系统资源。数据发送模块:OutMpegBuff(i,OnMpeg4Write);Void CALLBACK OnMpge4Write(DWORD dwCard,BYTE *

13、pbuff,DWORD dwSize, BOOL isKeyFrom) if(dwCard=g_dwDevice)return;g_VStrmInfodwCard+=dwSize/26;MTAWriteVideo(BYTE)dwCard,pbuff,(LONG)dwSize,isKeyFrm) 发送模块负责向地址表中的地址发送经过编码处理的实时视频数据,并修改地址表中的信息。地址表用来保存请求实时视频服务的用户的 IP 地址,视频发送任6务根据地址表中的地址来发送视频包。数据接收模块:该模块主要完成视频数据的接收、解码和显示工作。用户通过浏览器实现对远程设备的监控,服务器返回的信息通过浏览器显

14、示。浏览器可以使用微软公司的Internet Exploer 或 Netscape 公司的 Netscape Navigator 等。对于普通的文本及HTML 文件支持的 GIF、JPEG 等格式的图片,普通浏览器都可以显示。但对于实时视频数据,首先,与 HTTP 链接不同,不是使用流套接字而是使用数据报套接字接收,然后还需解码和显示,这些工作浏览器都无法完成。为使用户能通过浏览器观看视频,本系统采用在 WEB 页面中嵌入 ActiveX 控件,由 ActiveX 控件完成视频数据的接收、解码和显示工作。而 ActiveXInternet 技术的一个重要方面是安全的下载和安装 ActiveX

15、控件和需要的支持文件。Microsoft Internet Explore 通过在HTML 文档中使用 Internet Component Download 方法自动下载并安装 ActiveX 控件 3。(1)客户端控件的嵌入在 WEB 服务器的 HTML 文件中嵌入 ActiveX 属性,针对客户端使用最多的 IE浏览器,HTML 代码可使用的 MFCControl 控件如下:HTML HEAD TITLEVideoPage/TITLE /HEAD BODY OBJECTID=Mpge4Control WIDTH=100 HEIGHT=51CLASSID=CLSID:A119846-2E7

16、5-11D0-BDB2-000000000000CODEBASE=http:/ /BODY /HTML其中 ID 标志控件命名,提供访问控件的 HTML 代码。CLASSID 标志是唯一的UUID 给控件赋值的指令,告诉 IE 哪个对象被装载。在 HTML 页面实现控件的自动下载,使用OBJECT标志的 CODEBASE 属性,该属性告诉 IE 要下载和安装的控件版本和找到和下载控件及其支持文件的地址。(2)客户端控件的注册控件编写完成后,需要在客户端注册,关于控件的信息记录在注册表中。客户端从服务器端接收到嵌有控件的 HTML 页面后,将根据 OBJECT 标签中的信息通过注册表使用对应的空间完成接收,解码和显示。4 远程控制部分设计在远程控制部分设计中,根据性能最

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号