IPv6環(huán)境下信息家電系統(tǒng)網(wǎng)絡(luò)終端設(shè)計
1 概述
所謂信息家電(IA—Information Appliance),也稱網(wǎng)絡(luò)家電,是指將微型計算機和通信技術(shù)融入到傳統(tǒng)的家用電器中,使之智能化并具有網(wǎng)絡(luò)終端的功能,可以隨時隨地獲取與處理信息。
目前的信息家電產(chǎn)品大多是基于IPv4的,而IPv4面臨著地址資源緊缺的困境,下一代互聯(lián)網(wǎng)協(xié)議---IPv6的誕生彌補了這方面的不足。首先,它擴大了地址空間,使用128bit表示一個IPv6地址,可以保證家庭內(nèi)的冰箱、空調(diào)等所有家電都擁有一個獨立的IP地址,而不必擔(dān)心地址不足的問題。其次,利用IPv6的地址自動配置功能,與網(wǎng)絡(luò)連接的每個裝置均可自動獲得IP地址,可以簡化家庭網(wǎng)絡(luò)的構(gòu)建和IP地址的管理,降低用戶操作的難度。另外,IPv6全面支持IPSec安全協(xié)議,利用認(rèn)證擴展報頭和加密擴展報頭可以提高網(wǎng)絡(luò)互連和訪問的安全性[1]。因此,在信息家電中引入IPv6將具有更為廣闊的前景,它必將對信息家電行業(yè)產(chǎn)生深遠的影響。
本文給出了一種基于IPv6的信息家電系統(tǒng)網(wǎng)絡(luò)終端的軟、硬件設(shè)計方法。該方法以高性能的32位ARM核微處理器S3C2410為硬件平臺,通過移植嵌入式操作系統(tǒng)linux,并在配置操作系統(tǒng)內(nèi)核時加入對TCP/IPv6協(xié)議棧的支持,然后在其上開發(fā)應(yīng)用程序,實現(xiàn)了基于IPv6的信息家電網(wǎng)絡(luò)終端。
2 信息家電系統(tǒng)結(jié)構(gòu)
信息家電系統(tǒng)一般由客戶機、交換機、網(wǎng)絡(luò)終端和家電控制器組成。其結(jié)構(gòu)示意圖如圖1所示:
圖1 系統(tǒng)結(jié)構(gòu)示意圖
圖1中客戶機是遠程用戶和該系統(tǒng)的接口部分,任何一臺連入互聯(lián)網(wǎng)的PC機均可作為客戶機;網(wǎng)絡(luò)終端模塊接收來自網(wǎng)絡(luò)的控制信息并通過RS232串口與家電控制模塊通信;家電控制模塊連接家電的執(zhí)行機構(gòu),它接收來自網(wǎng)絡(luò)終端模塊的控制命令,并對家電進行操作。以上各模塊中,網(wǎng)絡(luò)終端模塊是信息家電系統(tǒng)的核心,它使家電接入IPv6網(wǎng)絡(luò),并作為一個嵌入式Web服務(wù)器來響應(yīng)客戶端的請求,完成控制數(shù)據(jù)在網(wǎng)口和串口之間的相互轉(zhuǎn)換。
3 硬件設(shè)計
本文所設(shè)計的網(wǎng)絡(luò)終端主要由ARM內(nèi)核的微處理器模塊、存儲器模塊、串行口模塊、以太網(wǎng)模塊、電源管理和復(fù)位電路模塊、LCD及觸摸屏模塊和JTAG模塊幾部分組成。其結(jié)構(gòu)示意圖如圖2所示。
圖2 網(wǎng)絡(luò)終端模塊示意圖
其中微處理器模塊采用三星公司32位ARM9內(nèi)核的微處理器S3C2410;存儲器模塊包括一片E28F640構(gòu)成的8MB容量的16位NOR型Flash存儲器和兩片HY57V281620構(gòu)成的32MB容量的32位SDRAM存儲器,F(xiàn)lash存儲器主要用于存儲操作系統(tǒng)內(nèi)核、引導(dǎo)啟動代碼bootloader、根文件系統(tǒng)以及應(yīng)用程序;以太網(wǎng)模塊選用8/16位以太網(wǎng)控制器DM9000AE;串行口模塊包括兩個異步串口,分別用于與家電控制模塊連接和用戶登錄系統(tǒng);LCD屏采用夏普公司生產(chǎn)的256色、分辨率為320×240的STN液晶模塊LM057QC1T01;JTAG模塊用于下載操作系統(tǒng)的引導(dǎo)啟動代碼bootloader。
4 軟件設(shè)計
S3C2410平臺上的軟件設(shè)計一般需要運行嵌入式操作系統(tǒng)。linux具有穩(wěn)定、源碼開放、網(wǎng)絡(luò)功能強大的優(yōu)點。因此本文選用linux作為操作系統(tǒng)。
4.1 linux開發(fā)環(huán)境的建立
基于linux操作系統(tǒng)的應(yīng)用開發(fā)環(huán)境一般由硬件目標(biāo)板和宿主PC機構(gòu)成。目標(biāo)板用于運行操作系統(tǒng)和應(yīng)用程序,而目標(biāo)板所用到的操作系統(tǒng)的內(nèi)核編譯、應(yīng)用程序的開發(fā)調(diào)試則需要通過宿主機來完成,雙方通過串口或以太網(wǎng)接口建立連接關(guān)系。
本系統(tǒng)的開發(fā)環(huán)境建立在運行Red Hat 9.0 linux的宿主機上,從網(wǎng)站下載并安裝交叉編譯工具鏈和linux源代碼包后就可以進行操作系統(tǒng)內(nèi)核和應(yīng)用程序的編譯、調(diào)試。
4.2 配置內(nèi)核
目前IPv6的應(yīng)用尚處于實驗階段,本文選用目前較新版本的內(nèi)核linux 2.6.14,它可以很好的支持IPv6。
為了使遠程用戶以IPv6訪問家電,本文選用開源的、支持IPv6和CGI的小型web服務(wù)器---mini_httpd,它可以很好的支持用戶的IPv6訪問,且編譯后的代碼體積很小。
為了配置和測試IPv6網(wǎng)絡(luò)環(huán)境,需要有支持IPv6的配置工具,如ifconfig、ping、traceroute等。linux里自帶的網(wǎng)絡(luò)配置工具并不支持IPv6協(xié)議,因此需要重新編譯包含這些工具程序的源碼包,以確保其支持IPv6。本文選用的是busybox 1.1.2,它包含大多數(shù)支持IPv6的網(wǎng)絡(luò)配置工具,但體積卻很小。
4.3 編寫CGI程序
本文中客戶機與網(wǎng)絡(luò)終端間的信息交互,是利用公共網(wǎng)關(guān)接口(CGI)技術(shù)來實現(xiàn)的。CGI提供了客戶機與服務(wù)器交互的接口。通常,服務(wù)器響應(yīng)客戶端請求后執(zhí)行相應(yīng)的CGI程序,并把執(zhí)行結(jié)果返回給客戶端,從而實現(xiàn)了動態(tài)Web。編寫Web頁面代碼時,由ACTION屬性來指定服務(wù)器需要執(zhí)行的CGI程序,METHOD屬性指明客戶機提交數(shù)據(jù)的方法(POST或GET)。
CGI程序分為以下幾部分:①根據(jù)POST方法或GET方法從提交的表單中接收數(shù)據(jù);②URL編碼的解碼;③用printf()函數(shù)來產(chǎn)生HTML源代碼,并將經(jīng)過解碼后的數(shù)據(jù)正確地返回給瀏覽器。[2]
由于本系統(tǒng)中網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量不大,因此采用了較為簡單的get方法來提交Web頁面數(shù)據(jù)。系統(tǒng)中網(wǎng)絡(luò)接口模塊和家電控制模塊之間采用串口通信,此串口對應(yīng)linux下的設(shè)備文件:/dev/ttySAC1。完整的CGI程序流程圖如圖3所示。
圖3 CGI程序流程圖
5 IPv6信息家電系統(tǒng)的組網(wǎng)及測試
本文根據(jù)信息家電系統(tǒng)特點和要求組建了一個純IPv6環(huán)境的小型信息家電系統(tǒng)測試網(wǎng)絡(luò),網(wǎng)絡(luò)拓撲結(jié)構(gòu)與圖1類似,測試網(wǎng)絡(luò)沒有接入公網(wǎng)。
它包括兩臺計算機、兩個HUB和冰箱、空調(diào)、風(fēng)扇、洗衣機四種家用電器及其相應(yīng)的網(wǎng)絡(luò)終端與控制電路。兩臺計算機中PC1安裝了Windows XP作為客戶端,PC2安裝了Windows Server 2003和雙網(wǎng)卡,并被配置為路由器,它用于為每個接入網(wǎng)絡(luò)的家電自動分配64位的IPv6路由前綴3FFE:FFFF:0:1::/64。兩臺PC機均配置IPv6協(xié)議,并且安裝了瀏覽器Firefox,這是因為目前的IE瀏覽器尚不支持IPv6訪問。
各家電網(wǎng)絡(luò)終端均配置了由其MAC地址派生出來的64位IPv6接口標(biāo)識符。以空調(diào)的網(wǎng)絡(luò)終端模塊為例:其MAC地址為00-60-35-01-c1-10,根據(jù)IEEE EUI-64格式,其IPv6接口標(biāo)識符將為260:35ff:fe01:c110。當(dāng)家電接入該測試網(wǎng)時,可以自動獲得由IPv6路由器PC2分配的64位IPv6路由前綴,這樣連同已有的64位接口標(biāo)識符共同組成了每個家電全球唯一的128位IPv6地址。
測試時,在PC1的瀏覽器里鍵入家電的IPv6地址后就可以進入相應(yīng)的家電控制界面,用戶通過點擊按鈕可以對家電進行操作,家電執(zhí)行用戶命令后會把執(zhí)行結(jié)果回傳給瀏覽器。以訪問空調(diào)為例,在瀏覽器里輸入空調(diào)的IPv6 地址http://[3ffe:ffff:0:1:260:35ff:fe01:c110]得到其操作界面,如圖4所示,用戶通過點擊相應(yīng)按鈕可以對家電進行控制。
圖4 IPv6信息家電操作界面
6 小結(jié)
本文對IPv6在信息家電中的應(yīng)用進行了探索,設(shè)計了一個基于IPv6的信息家電網(wǎng)絡(luò)終端。在IPv6局域網(wǎng)環(huán)境下,用戶可以通過網(wǎng)絡(luò)實現(xiàn)對家電的控制,系統(tǒng)運行穩(wěn)定可靠。該方法具有一定實用價值。
本文作者創(chuàng)新點:設(shè)計了基于ARM和Linux的IPv6環(huán)境下的信息家電系統(tǒng)網(wǎng)絡(luò)終端
參考文獻
[1] 張瑾,顧軍. IPv6在信息家電中的應(yīng)用[J]. 計算機與信息技術(shù),2005;10(9)
[2] 劉國梅,鄭安平. uClinux下動態(tài)Web技術(shù)的實現(xiàn)方法[J]. 單片機與嵌入式系統(tǒng),2004;10(2)
[3] 周遜. IPv6--下一代互聯(lián)網(wǎng)的核心[M]. 北京:電子工業(yè)出版,2004
[4] 栗大超,宋光德,靳世久.嵌入式系統(tǒng)的Internet互連技術(shù)[J].微計算機信息, 2003;13(12)
[5] 李駒光,聶雪媛等. ARM應(yīng)用系統(tǒng)開發(fā)詳解--基于S3C4510B的系統(tǒng)設(shè)計[M]. 北京:清華大學(xué)出版社, 2003
[6] O’Reilly Taiwan譯. 構(gòu)建嵌入式LINUX系統(tǒng)[M]. 北京:中國電力出版社,2004