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