1 概述 所謂信息家電(IA—Information Appliance),也稱網絡家電,是指將微型計算機和通信技術融入到傳統的家用電器中,使之智能化并具有網絡終端的功能,可以隨時隨地獲取與處理信息。目前的信息家電產品大多是基于IPv4的,而IPv4面臨著地址資源緊缺的困境,下一代互聯網協議---IPv6的誕生彌補了這方面的不足。首先,它擴大了地址空間,使用128bit表示一個IPv6地址,可以保證家庭內的冰箱、空調等所有家電都擁有一個獨立的IP地址,而不必擔心地址不足的問題。其次,利用IPv6的地址自動配置功能,與網絡連接的每個裝置均可自動獲得IP地址,可以簡化家庭網絡的構建和IP地址的管理,降低用戶操作的難度。另外,IPv6全面支持IPSec安全協議,利用認證擴展報頭和加密擴展報頭可以提高網絡互連和訪問的安全性。因此,在信息家電中引入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源代碼,并將經過解碼后的數據正確地返回給瀏覽器。 由于本系統中網絡傳輸的數據量不大,因此采用了較為簡單的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環境下的信息家電系統網絡終端。 |