IPv6环境下信息家电系统网络终端设计
扫描二维码
随时随地手机看文章
1 概述
所谓信息家电(IA—Information Appliance),也称网络家电,是指将微型计算机和通信技术融入到传统的家用电器中,使之智能化并具有网络终端的功能,可以随时随地获取与处理信息。
目前的信息家电产品大多是基于IPv4的,而IPv4面临着地址资源紧缺的困境,下一代互联网协议---IPv6的诞生弥补了这方面的不足。首先,它扩大了地址空间,使用128bit表示一个IPv6地址,可以保证家庭内的冰箱、空调等所有家电都拥有一个独立的IP地址,而不必担心地址不足的问题。其次,利用IPv6的地址自动配置功能,与网络连接的每个装置均可自动获得IP地址,可以简化家庭网络的构建和IP地址的管理,降低用户操作的难度。另外,IPv6全面支持IPSec安全协议,利用认证扩展报头和加密扩展报头可以提高网络互连和访问的安全性[1]。因此,在信息家电中引入IPv6将具有更为广阔的前景,它必将对信息家电行业产生深远的影响。
本文给出了一种基于IPv6的信息家电系统网络终端的软、硬件设计方法。该方法以高性能的32位ARM核微处理器S3C2410为硬件平台,通过移植嵌入式操作系统linux,并在配置操作系统内核时加入对TCP/IPv6协议栈的支持,然后在其上开发应用程序,实现了基于IPv6的信息家电网络终端。
2 信息家电系统结构
信息家电系统一般由客户机、交换机、网络终端和家电控制器组成。其结构示意图如图1所示:
图1 系统结构示意图
图1中客户机是远程用户和该系统的接口部分,任何一台连入互联网的PC机均可作为客户机;网络终端模块接收来自网络的控制信息并通过RS232串口与家电控制模块通信;家电控制模块连接家电的执行机构,它接收来自网络终端模块的控制命令,并对家电进行操作。以上各模块中,网络终端模块是信息家电系统的核心,它使家电接入IPv6网络,并作为一个嵌入式Web服务器来响应客户端的请求,完成控制数据在网口和串口之间的相互转换。
3 硬件设计
本文所设计的网络终端主要由ARM内核的微处理器模块、存储器模块、串行口模块、以太网模块、电源管理和复位电路模块、LCD及触摸屏模块和JTAG模块几部分组成。其结构示意图如图2所示。
图2 网络终端模块示意图
其中微处理器模块采用三星公司32位ARM9内核的微处理器S3C2410;存储器模块包括一片E28F640构成的8MB容量的16位NOR型Flash存储器和两片HY57V281620构成的32MB容量的32位SDRAM存储器,Flash存储器主要用于存储操作系统内核、引导启动代码bootloader、根文件系统以及应用程序;以太网模块选用8/16位以太网控制器DM9000AE;串行口模块包括两个异步串口,分别用于与家电控制模块连接和用户登录系统;LCD屏采用夏普公司生产的256色、分辨率为320×240的STN液晶模块LM057QC1T01;JTAG模块用于下载操作系统的引导启动代码bootloader。
4 软件设计
S3C2410平台上的软件设计一般需要运行嵌入式操作系统。linux具有稳定、源码开放、网络功能强大的优点。因此本文选用linux作为操作系统。
4.1 linux开发环境的建立
基于linux操作系统的应用开发环境一般由硬件目标板和宿主PC机构成。目标板用于运行操作系统和应用程序,而目标板所用到的操作系统的内核编译、应用程序的开发调试则需要通过宿主机来完成,双方通过串口或以太网接口建立连接关系。
本系统的开发环境建立在运行Red Hat 9.0 linux的宿主机上,从网站下载并安装交叉编译工具链和linux源代码包后就可以进行操作系统内核和应用程序的编译、调试。
4.2 配置内核
目前IPv6的应用尚处于实验阶段,本文选用目前较新版本的内核linux 2.6.14,它可以很好的支持IPv6。
为了使远程用户以IPv6访问家电,本文选用开源的、支持IPv6和CGI的小型web服务器---mini_httpd,它可以很好的支持用户的IPv6访问,且编译后的代码体积很小。
为了配置和测试IPv6网络环境,需要有支持IPv6的配置工具,如ifconfig、ping、traceroute等。linux里自带的网络配置工具并不支持IPv6协议,因此需要重新编译包含这些工具程序的源码包,以确保其支持IPv6。本文选用的是busybox 1.1.2,它包含大多数支持IPv6的网络配置工具,但体积却很小。
4.3 编写CGI程序
本文中客户机与网络终端间的信息交互,是利用公共网关接口(CGI)技术来实现的。CGI提供了客户机与服务器交互的接口。通常,服务器响应客户端请求后执行相应的CGI程序,并把执行结果返回给客户端,从而实现了动态Web。编写Web页面代码时,由ACTION属性来指定服务器需要执行的CGI程序,METHOD属性指明客户机提交数据的方法(POST或GET)。
CGI程序分为以下几部分:①根据POST方法或GET方法从提交的表单中接收数据;②URL编码的解码;③用printf()函数来产生HTML源代码,并将经过解码后的数据正确地返回给浏览器。[2]
由于本系统中网络传输的数据量不大,因此采用了较为简单的get方法来提交Web页面数据。系统中网络接口模块和家电控制模块之间采用串口通信,此串口对应linux下的设备文件:/dev/ttySAC1。完整的CGI程序流程图如图3所示。
图3 CGI程序流程图
5 IPv6信息家电系统的组网及测试
本文根据信息家电系统特点和要求组建了一个纯IPv6环境的小型信息家电系统测试网络,网络拓扑结构与图1类似,测试网络没有接入公网。
它包括两台计算机、两个HUB和冰箱、空调、风扇、洗衣机四种家用电器及其相应的网络终端与控制电路。两台计算机中PC1安装了Windows XP作为客户端,PC2安装了Windows Server 2003和双网卡,并被配置为路由器,它用于为每个接入网络的家电自动分配64位的IPv6路由前缀3FFE:FFFF:0:1::/64。两台PC机均配置IPv6协议,并且安装了浏览器Firefox,这是因为目前的IE浏览器尚不支持IPv6访问。
各家电网络终端均配置了由其MAC地址派生出来的64位IPv6接口标识符。以空调的网络终端模块为例:其MAC地址为00-60-35-01-c1-10,根据IEEE EUI-64格式,其IPv6接口标识符将为260:35ff:fe01:c110。当家电接入该测试网时,可以自动获得由IPv6路由器PC2分配的64位IPv6路由前缀,这样连同已有的64位接口标识符共同组成了每个家电全球唯一的128位IPv6地址。
测试时,在PC1的浏览器里键入家电的IPv6地址后就可以进入相应的家电控制界面,用户通过点击按钮可以对家电进行操作,家电执行用户命令后会把执行结果回传给浏览器。以访问空调为例,在浏览器里输入空调的IPv6 地址http://[3ffe:ffff:0:1:260:35ff:fe01:c110]得到其操作界面,如图4所示,用户通过点击相应按钮可以对家电进行控制。
图4 IPv6信息家电操作界面
6 小结
本文对IPv6在信息家电中的应用进行了探索,设计了一个基于IPv6的信息家电网络终端。在IPv6局域网环境下,用户可以通过网络实现对家电的控制,系统运行稳定可靠。该方法具有一定实用价值。
本文作者创新点:设计了基于ARM和Linux的IPv6环境下的信息家电系统网络终端
参考文献
[1] 张瑾,顾军. IPv6在信息家电中的应用[J]. 计算机与信息技术,2005;10(9)
[2] 刘国梅,郑安平. uClinux下动态Web技术的实现方法[J]. 单片机与嵌入式系统,2004;10(2)
[3] 周逊. IPv6--下一代互联网的核心[M]. 北京:电子工业出版,2004
[4] 栗大超,宋光德,靳世久.嵌入式系统的Internet互连技术[J].微计算机信息, 2003;13(12)
[5] 李驹光,聂雪媛等. ARM应用系统开发详解--基于S3C4510B的系统设计[M]. 北京:清华大学出版社, 2003
[6] O’Reilly Taiwan译. 构建嵌入式LINUX系统[M]. 北京:中国电力出版社,2004