摘 要 针对家庭网关的最重要功能:远程监控功能,本文设计了一个基于ARM平台的嵌入式家庭网关服务器平台。平台中集成了boa服务器和家庭网络服务器及视频服务器于一体,通过通用网关接口程序CGI,实现了远程用户和家庭内部网络的动态交互。本文中研究的数据信息主要是摄像头视频信息,采用了将视频信息通过ActiveX控件解码,发送的方式在HTTP浏览器上直接播放的方式来实现远程传输(本文不论述信息家电的远程控制部分)。
关键字 ARM, boa服务器 , CGI , 视频传输, ActiveX
引言
随着科学技术的不断进步和发展,人们对生活质量也提出了更高的要求。家庭网络作为一个新生体越来越近的开始走进人们的生活,它将家庭单元作为一个节点加入了网络的大家庭,其中作为连接家庭内部与Internet的桥梁的家庭网关起了举足轻重的作用。嵌入式网关的主要功能如下:
远程控制:客户通过Internet上连接的任意一台PC机的浏览器,都可以访问家庭网络的服务器;家庭网络中的设备状态将以HTML文件的方式显示在客户端的浏览器中;客户通过对HTML页面上相应设备的点击以实现对家庭网络中设备的远程控制,操作的结果同样以HTML页面的方式刷新客户端的浏览器。
远程监视:客户通过Internet上连接的任意一台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所需的其他外围电路,包括:电源电路、外部时钟(50MHZ)电路、开关及复位电路和JTAG调试接口电路等。
嵌入式操作系统选择的是uClinux操作系统,uClinux是专门针对没有MMU的处理器而设计的,系统多采用Romfs文件系统,Romfs是一种相对简单、占用空间较少的文件系统。而在UCLINUX下,主要有三个WEB服务器:httpd、thttpd和boa,httpd是最简单的WBE服务器,功能简单,不支持认证和CGI,thttpd和boa均支持认证和CGI,功能丰富,其中boa
1是一个单任务的http服务器,源代码开放,性能较高,占用系统资源较少,boa服务器在收到请求时,不启动多个服务进程处理多个请求,在一个进程内处理所有服务请求。对于CGI程序,将生成新的进程来处理,考虑到嵌入式系统自身资源有限,和家庭网关的进程数量有限,系统选择了在uCLinux系统中的boa服务器。