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