|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
<strong>1 概述</strong>
信息家电和下—代宽带无线通信是IPv6的两大主要应用领域,随着互联网快速发展和家庭宽带的逐步普及,将家庭中的微计算机、信息家电以及消费电子设备等组成家庭网络,已经成为重要的消费热点。IPv6技术在家庭网络中具有独特的优势。可以使家庭内的冰箱、空调等家电都拥有—个独立的全球IPv6地址;全面支持服务质量保证(QoS),这对于数字娱乐和多媒体信息应用非常有益。因此,在家庭网络中应用IPv6具有广阔的前景。
网络迅速发展给人们带来巨大便利的同时,也带来了严重的网络安全问题。在家庭网络中,安全问题同样很突出。各种新技术在家庭中的广泛应用一方面提高了信息家电的性能,另一方面也对简化操作和管理提出了新的要求。这些都需要通过一个统一的家庭网络WSB平台进行设置和管理,并实现与客户端的动态交互。
本文提出了一种基于IPv6的嵌入式家庭网络WEB平台解决方案,以高性能的32位ARM核微处理器S3C2410为硬件平台,通过移植新版本的嵌入式linux-2.6.18内核,实现了家庭网络的管理平台功能。
<strong>2 家庭网络系统结构</strong>
本系统由客户端、宽带接入端口、家庭网络HUB、家庭网关和家电控制器组成。如图1所示:
<ignore_js_op>
2010-4-14 10:47:46 上传
<strong>下载附件</strong> (2.75 KB)
</ignore_js_op>
图1系统结构示意图
系统分为三个部分。
第一部分,是位于家庭网络以外的客户端,家庭网络用户和信息家电厂商的维护人员,通过Intenet访问家庭网络对外的统一平台,即网关中内嵌的WEB服务器。
第二部分,是网关和PC主机,网关既是家庭网络内部的各个家电控制器对外的统一接口,也负责统一控制和管理各个信息家电中家电控制器。一方面接收来自用户通过Internet发送的控制信息,另一方面采集信息家电的状态,提供给用户参考。
第三部分.是家电控制模块,它连接家电的执行机构,接收来自网关的控制命令,并对家电进行操作,同时根据网关的命令,采集家电的信息上传。
<strong>3 硬件开发环境</strong>
嵌入式系统硬件平台的选择主要是嵌入式处理器的选择,针对开发嵌入式网关的需要,并考虑系统外围设备情况,本系统采用了内嵌ARM920T内核的三星S3C2410处理器,ARM920T是高性能、低功耗特性方面最佳的通用封装微处理器,它采用5级流水线,具有指令和数据Cache,支持协处理器、片上调试和MMU等技术。此外,还包括一些嵌入式外围设备,由存储设备(一片E28F640构成的8MB容量的16位NOR型Flash存储器和两片HY57V281620构成的32MB容量的32位SDRAM存储器)、接口设备(异步串口、以太网口和USB接口)、显示设备(LCD及触摸屏模块),这些共同构成了硬件开发环境。
<strong>4 软件设计</strong>
与其他嵌入式操作系统相比,Linux具有开放源码、内核小、功能强大、运行稳定、可移植性好等优点,能充分发挥ARM920T内核具有MMU(存储单元管理)的强大功能,同时由于Linux的开源优势.Linux内核对IPv6的支持比较全面,因此本系统选用Linux作为嵌入式操作系统。
4.1 Linux开发环境的建立
由于嵌入式系统的资源有限,嵌入式Linux的开发通常采用宿主机加目标板的方式,即需要一台安装Linux的PC机作为系统的编译和调试环境。由于家庭网络中的PC主机通常要使用Windows操作系统,来满足日常需要,因此,采用了虚拟化的方法来解决这个矛盾。
在PC主机上安装虚拟机软件VMware(版本5.0.0),VMware运行在主机的操作系统之上,它在Guest OS与Host OS之间加了一层虚拟操作平台(VMware Virtual Platform),客户操作系统透明地运行在虚拟操作平台之上。然后在虚拟机上安装RedHatLinux9.0,作为宿主机,来进行日标板所用到的操作系统的内核裁剪、移植、编译,应用程序的编译、调试,以及将内核和文件系统打包成映像(image)文件,然后就下载到目标板上去运行,双方通过串El或以太网接口建立连接关系。
4.2 通过VMware管理
家庭网络中的PC机上具有不同的两种操作系统,需要通过VMware Workstation对其进行管理,以解决二者不能相互访问,传送程序和文件的问题,并使Linux和Windows可以同时在互不影响的情况下,分别接入Internet。
第一步,在Linux中安装VMware Tools,获得对X windows界面和网络等的强化支持。
第二步,设置VMWare为host-only方式.在options中的sharefolders设置共享目录。把PC主机的网卡设为“允许共享”,并设定网络接口为VMnetl,进入Linux,设定ethO为192.168.0.2,default gatewey为192.168.0.1。即可实现Linux和Windows分别独立接入Intenet。
第三步,为实现Linux和Windows共享文件,采用smb (Server Message Block)服务的方式。在Linux中开启samba服务器,并修改其配置文件/etc/smb.conf,在Windows中添加IPX/SPX和NETBEUI协议。
由上面的步骤可以看到,在不同的场合下,对虚拟机中的Linux配置是不同的。对于家庭网络的用户来说,这样的配置难度过大,因此,本系统利用虚拟化的”clone”技术,在VMware中对不同场合下的配置,分别进行“clone”.其名称分别为“shareholders”、“Intenet”和“test”,如图2所示,这样,就可以方便地进行切换。
<ignore_js_op>
2010-4-14 10:47:46 上传
<strong>下载附件</strong> (7.26 KB)
</ignore_js_op>
图2 虚拟机的配置
4.3 内核配置、协议栈优化与服务器设置
考虑到嵌入式系统对稳定可靠性的要求,选用目前较新版本的Linux 2.6.18内核,它对IPv6协议栈、无线网卡以及Cisco的LEAP无线认证协议提供了更好的支持,而且已经经过一段时间的运行,比较稳定。
在IPv6网络中,由ICMPv6(Intemet Control Messages Protocol)协议实现的邻居发现和IP地址的自动配置是IPv6协议在嵌入式应用中最实用的部分,其邻居发现功能取代了IPv4协议中使用的ARP(Address Resolution Protocol)、ICMP路由器发现和重定向报文的功能,而自动配置则实现了设备接入网络的“即插即用”,因此本嵌入式系统平台根据实际需要重点对ICMPv6协议进行了优化配置。
mini_httpd是嵌入式Linux下少数支持IPv6协议的轻量级WEB服务器,它内核很小,非常适合板上资源有限、一般为单任务的家庭网络WEB环境,因此本系统选用了mini_httpd-1.19作为嵌入式WEB服务器,将其下载到宿主机后解压缩、制定交叉编译器,然后编译生成二进制可执行文件。在网关的系统配置文件/usr/etc/rc.local中增加命令“mini_httpd/jffs2 cgi-bin/”使得在系统启动时自动加‘载到网关flash存储设备的JFFS2(Journalling Flash File System闪存日志型文件系统第二版)文件系统中。
为了配置和测试IPv6的网络环境和协议,还需要安装BusyBox。这是一个集成了一百多个常用标准Linux工具的单个可执行实现,由于使这些工具共享相同的元素,因此体积非常轻巧,而且可以在图形工具下进行配置,被称为Linux工具中的瑞士军刀,其安装配置与前述嵌入式服务器的过程类似,不再赘述。
4.4 编写CGI程序进行认证和管理
目前Web技术中生成动态Web页面的方法有CGI和服务器脚本,如JSP,ASP等,但后者需要Web服务器具有这些脚本的运行支持模块。在嵌入式Web服务器中,考虑到资源限制问题,一般都只提供CGI (Common Gateway Interface)支持,因此在嵌入式设备中Web方式应用实际上就是基于CGI的程序开发。
CGI提供了客户机与服务器交互的接口,服务器响应客户端请求后执行相应的CGI程序,并把执行结果返回给客户端,从而实现了基于WEB的动态交互。使用FORM方式作为输入界面,用户在FORM中输入的信息经过URL编码处理后再送到CGI程序中,这就是CGI的关键所在。程序完成对输入处理和结束工作后,把结果以信息流的方式传给服务器,服务器负责把要反馈的信息流以HTTP的形式封装起来,转换到客户端的浏览器上。
CGI程序分为以下几部分:①用户在客户端的浏览器上访问网关,载入用户界面,并在FORM中输入ID和口令,采用get方法提交;②服务器响应请求,分析浏览器请求的资源,发现是一个CGI程序,于是引导到指定位置的CGI程序;③URL编码的解码,程序从环境变量“QUERY_STRING(path&info)中提取信息”;④用printf()函数来产生HTML源代码,并将经过解码后的数据正确地返回给浏览器。
<strong>5 IPv6家庭网络的组网及测试</strong>
在家庭网络中的配置主要包括PC主机和网关两部分的配置。
PC主机安装家庭用户常用的Windows XP操作系统,在DOS方式下使用命令“ipv6 install”安装IPv6协议栈,然后通过命令"ipconfig /all”查看,可以发现在本地连接下面,除IPv4地址外,又增加了一个IP地址“fe80::20c:76ff:fe67:5832%5”,表示该网卡在操作系统中的接口索引是5,于是通过以下命令.为PC主机和网关分别指定在本地链接IPv6地址,即“ipv6 adu 5/ 3ffe::1”等,然后在网关的CGI控制程序中分别为各个家电控制器依次分配地址。
最后要注意的是目前IE浏览器尚不支持IPv6访问,需要通过Firefox浏览器进行访问。
<ignore_js_op>
2010-4-14 10:47:47 上传
<strong>下载附件</strong> (7.31 KB)
</ignore_js_op>
图3家庭网络登录界面
<strong>6 小结</strong>
本文设计了一个基于IPv6的嵌入式WEB平台,并从虚拟化管理方面针对家庭网络的情况进行了优化,具有一定的实用价值。该系统还存在一些值得改进和进一步努力的地方,如属于网关的显示模块的引入、和控制总线的融合等,这些技术的实现会进一步推进IPv6在家庭网络中的应用。
本文作者创新点:设计了基于IPv6和Linux-2.6.8内核的家庭网络嵌入式WEB平台,并从虚拟化管理等方面简化了管理和使用。
项目经济效益90万元。
作者:王忠勇,安永帅,宋豫全 来源:《微计算机信息》(嵌入式与SOC)2009年第1-2期 |
|