1 概述 信息家電和下—代寬帶無(wú)線(xiàn)通信是IPv6的兩大主要應用領(lǐng)域,隨著(zhù)互聯(lián)網(wǎng)快速發(fā)展和家庭寬帶的逐步普及,將家庭中的微計算機、信息家電以及消費電子設備等組成家庭網(wǎng)絡(luò ),已經(jīng)成為重要的消費熱點(diǎn)。IPv6技術(shù)在家庭網(wǎng)絡(luò )中具有獨特的優(yōu)勢?梢允辜彝鹊谋、空調等家電都擁有—個(gè)獨立的全球IPv6地址;全面支持服務(wù)質(zhì)量保證(QoS),這對于數字娛樂(lè )和多媒體信息應用非常有益。因此,在家庭網(wǎng)絡(luò )中應用IPv6具有廣闊的前景。 網(wǎng)絡(luò )迅速發(fā)展給人們帶來(lái)巨大便利的同時(shí),也帶來(lái)了嚴重的網(wǎng)絡(luò )安全問(wèn)題。在家庭網(wǎng)絡(luò )中,安全問(wèn)題同樣很突出。各種新技術(shù)在家庭中的廣泛應用一方面提高了信息家電的性能,另一方面也對簡(jiǎn)化操作和管理提出了新的要求。這些都需要通過(guò)一個(gè)統一的家庭網(wǎng)絡(luò )WSB平臺進(jìn)行設置和管理,并實(shí)現與客戶(hù)端的動(dòng)態(tài)交互。 本文提出了一種基于IPv6的嵌入式家庭網(wǎng)絡(luò )WEB平臺解決方案,以高性能的32位ARM核微處理器S3C2410為硬件平臺,通過(guò)移植新版本的嵌入式linux-2.6.18內核,實(shí)現了家庭網(wǎng)絡(luò )的管理平臺功能。 2 家庭網(wǎng)絡(luò )系統結構 本系統由客戶(hù)端、寬帶接入端口、家庭網(wǎng)絡(luò )HUB、家庭網(wǎng)關(guān)和家電控制器組成。如圖1所示: ![]() 圖1系統結構示意圖 系統分為三個(gè)部分。 第一部分,是位于家庭網(wǎng)絡(luò )以外的客戶(hù)端,家庭網(wǎng)絡(luò )用戶(hù)和信息家電廠(chǎng)商的維護人員,通過(guò)Intenet訪(fǎng)問(wèn)家庭網(wǎng)絡(luò )對外的統一平臺,即網(wǎng)關(guān)中內嵌的WEB服務(wù)器。 第二部分,是網(wǎng)關(guān)和PC主機,網(wǎng)關(guān)既是家庭網(wǎng)絡(luò )內部的各個(gè)家電控制器對外的統一接口,也負責統一控制和管理各個(gè)信息家電中家電控制器。一方面接收來(lái)自用戶(hù)通過(guò)Internet發(fā)送的控制信息,另一方面采集信息家電的狀態(tài),提供給用戶(hù)參考。 第三部分.是家電控制模塊,它連接家電的執行機構,接收來(lái)自網(wǎng)關(guān)的控制命令,并對家電進(jìn)行操作,同時(shí)根據網(wǎng)關(guān)的命令,采集家電的信息上傳。 3 硬件開(kāi)發(fā)環(huán)境 嵌入式系統硬件平臺的選擇主要是嵌入式處理器的選擇,針對開(kāi)發(fā)嵌入式網(wǎng)關(guān)的需要,并考慮系統外圍設備情況,本系統采用了內嵌ARM920T內核的三星S3C2410處理器,ARM920T是高性能、低功耗特性方面最佳的通用封裝微處理器,它采用5級流水線(xiàn),具有指令和數據Cache,支持協(xié)處理器、片上調試和MMU等技術(shù)。此外,還包括一些嵌入式外圍設備,由存儲設備(一片E28F640構成的8MB容量的16位NOR型Flash存儲器和兩片HY57V281620構成的32MB容量的32位SDRAM存儲器)、接口設備(異步串口、以太網(wǎng)口和USB接口)、顯示設備(LCD及觸摸屏模塊),這些共同構成了硬件開(kāi)發(fā)環(huán)境。 4 軟件設計 與其他嵌入式操作系統相比,Linux具有開(kāi)放源碼、內核小、功能強大、運行穩定、可移植性好等優(yōu)點(diǎn),能充分發(fā)揮ARM920T內核具有MMU(存儲單元管理)的強大功能,同時(shí)由于Linux的開(kāi)源優(yōu)勢.Linux內核對IPv6的支持比較全面,因此本系統選用Linux作為嵌入式操作系統。 4.1 Linux開(kāi)發(fā)環(huán)境的建立 由于嵌入式系統的資源有限,嵌入式Linux的開(kāi)發(fā)通常采用宿主機加目標板的方式,即需要一臺安裝Linux的PC機作為系統的編譯和調試環(huán)境。由于家庭網(wǎng)絡(luò )中的PC主機通常要使用Windows操作系統,來(lái)滿(mǎn)足日常需要,因此,采用了虛擬化的方法來(lái)解決這個(gè)矛盾。 在PC主機上安裝虛擬機軟件VMware(版本5.0.0),VMware運行在主機的操作系統之上,它在Guest OS與Host OS之間加了一層虛擬操作平臺(VMware Virtual Platform),客戶(hù)操作系統透明地運行在虛擬操作平臺之上。然后在虛擬機上安裝RedHatLinux9.0,作為宿主機,來(lái)進(jìn)行日標板所用到的操作系統的內核裁剪、移植、編譯,應用程序的編譯、調試,以及將內核和文件系統打包成映像(image)文件,然后就下載到目標板上去運行,雙方通過(guò)串El或以太網(wǎng)接口建立連接關(guān)系。 4.2 通過(guò)VMware管理 家庭網(wǎng)絡(luò )中的PC機上具有不同的兩種操作系統,需要通過(guò)VMware Workstation對其進(jìn)行管理,以解決二者不能相互訪(fǎng)問(wèn),傳送程序和文件的問(wèn)題,并使Linux和Windows可以同時(shí)在互不影響的情況下,分別接入Internet。 第一步,在Linux中安裝VMware Tools,獲得對X windows界面和網(wǎng)絡(luò )等的強化支持。 第二步,設置VMWare為host-only方式.在options中的sharefolders設置共享目錄。把PC主機的網(wǎng)卡設為“允許共享”,并設定網(wǎng)絡(luò )接口為VMnetl,進(jìn)入Linux,設定ethO為192.168.0.2,default gatewey為192.168.0.1。即可實(shí)現Linux和Windows分別獨立接入Intenet。 第三步,為實(shí)現Linux和Windows共享文件,采用smb (Server Message Block)服務(wù)的方式。在Linux中開(kāi)啟samba服務(wù)器,并修改其配置文件/etc/smb.conf,在Windows中添加IPX/SPX和NETBEUI協(xié)議。 由上面的步驟可以看到,在不同的場(chǎng)合下,對虛擬機中的Linux配置是不同的。對于家庭網(wǎng)絡(luò )的用戶(hù)來(lái)說(shuō),這樣的配置難度過(guò)大,因此,本系統利用虛擬化的”clone”技術(shù),在VMware中對不同場(chǎng)合下的配置,分別進(jìn)行“clone”.其名稱(chēng)分別為“shareholders”、“Intenet”和“test”,如圖2所示,這樣,就可以方便地進(jìn)行切換。 ![]() 圖2 虛擬機的配置 4.3 內核配置、協(xié)議棧優(yōu)化與服務(wù)器設置 考慮到嵌入式系統對穩定可靠性的要求,選用目前較新版本的Linux 2.6.18內核,它對IPv6協(xié)議棧、無(wú)線(xiàn)網(wǎng)卡以及Cisco的LEAP無(wú)線(xiàn)認證協(xié)議提供了更好的支持,而且已經(jīng)經(jīng)過(guò)一段時(shí)間的運行,比較穩定。 在IPv6網(wǎng)絡(luò )中,由ICMPv6(Intemet Control Messages Protocol)協(xié)議實(shí)現的鄰居發(fā)現和IP地址的自動(dòng)配置是IPv6協(xié)議在嵌入式應用中最實(shí)用的部分,其鄰居發(fā)現功能取代了IPv4協(xié)議中使用的ARP(Address Resolution Protocol)、ICMP路由器發(fā)現和重定向報文的功能,而自動(dòng)配置則實(shí)現了設備接入網(wǎng)絡(luò )的“即插即用”,因此本嵌入式系統平臺根據實(shí)際需要重點(diǎn)對ICMPv6協(xié)議進(jìn)行了優(yōu)化配置。 mini_httpd是嵌入式Linux下少數支持IPv6協(xié)議的輕量級WEB服務(wù)器,它內核很小,非常適合板上資源有限、一般為單任務(wù)的家庭網(wǎng)絡(luò )WEB環(huán)境,因此本系統選用了mini_httpd-1.19作為嵌入式WEB服務(wù)器,將其下載到宿主機后解壓縮、制定交叉編譯器,然后編譯生成二進(jìn)制可執行文件。在網(wǎng)關(guān)的系統配置文件/usr/etc/rc.local中增加命令“mini_httpd/jffs2 cgi-bin/”使得在系統啟動(dòng)時(shí)自動(dòng)加‘載到網(wǎng)關(guān)flash存儲設備的JFFS2(Journalling Flash File System閃存日志型文件系統第二版)文件系統中。 為了配置和測試IPv6的網(wǎng)絡(luò )環(huán)境和協(xié)議,還需要安裝BusyBox。這是一個(gè)集成了一百多個(gè)常用標準Linux工具的單個(gè)可執行實(shí)現,由于使這些工具共享相同的元素,因此體積非常輕巧,而且可以在圖形工具下進(jìn)行配置,被稱(chēng)為L(cháng)inux工具中的瑞士軍刀,其安裝配置與前述嵌入式服務(wù)器的過(guò)程類(lèi)似,不再贅述。 4.4 編寫(xiě)CGI程序進(jìn)行認證和管理 目前Web技術(shù)中生成動(dòng)態(tài)Web頁(yè)面的方法有CGI和服務(wù)器腳本,如JSP,ASP等,但后者需要Web服務(wù)器具有這些腳本的運行支持模塊。在嵌入式Web服務(wù)器中,考慮到資源限制問(wèn)題,一般都只提供CGI (Common Gateway Interface)支持,因此在嵌入式設備中Web方式應用實(shí)際上就是基于CGI的程序開(kāi)發(fā)。 CGI提供了客戶(hù)機與服務(wù)器交互的接口,服務(wù)器響應客戶(hù)端請求后執行相應的CGI程序,并把執行結果返回給客戶(hù)端,從而實(shí)現了基于WEB的動(dòng)態(tài)交互。使用FORM方式作為輸入界面,用戶(hù)在FORM中輸入的信息經(jīng)過(guò)URL編碼處理后再送到CGI程序中,這就是CGI的關(guān)鍵所在。程序完成對輸入處理和結束工作后,把結果以信息流的方式傳給服務(wù)器,服務(wù)器負責把要反饋的信息流以HTTP的形式封裝起來(lái),轉換到客戶(hù)端的瀏覽器上。 CGI程序分為以下幾部分:①用戶(hù)在客戶(hù)端的瀏覽器上訪(fǎng)問(wèn)網(wǎng)關(guān),載入用戶(hù)界面,并在FORM中輸入ID和口令,采用get方法提交;②服務(wù)器響應請求,分析瀏覽器請求的資源,發(fā)現是一個(gè)CGI程序,于是引導到指定位置的CGI程序;③URL編碼的解碼,程序從環(huán)境變量“QUERY_STRING(path&info)中提取信息”;④用printf()函數來(lái)產(chǎn)生HTML源代碼,并將經(jīng)過(guò)解碼后的數據正確地返回給瀏覽器。 5 IPv6家庭網(wǎng)絡(luò )的組網(wǎng)及測試 在家庭網(wǎng)絡(luò )中的配置主要包括PC主機和網(wǎng)關(guān)兩部分的配置。 PC主機安裝家庭用戶(hù)常用的Windows XP操作系統,在DOS方式下使用命令“ipv6 install”安裝IPv6協(xié)議棧,然后通過(guò)命令"ipconfig /all”查看,可以發(fā)現在本地連接下面,除IPv4地址外,又增加了一個(gè)IP地址“fe80::20c:76ff:fe67:5832%5”,表示該網(wǎng)卡在操作系統中的接口索引是5,于是通過(guò)以下命令.為PC主機和網(wǎng)關(guān)分別指定在本地鏈接IPv6地址,即“ipv6 adu 5/ 3ffe::1”等,然后在網(wǎng)關(guān)的CGI控制程序中分別為各個(gè)家電控制器依次分配地址。 最后要注意的是目前IE瀏覽器尚不支持IPv6訪(fǎng)問(wèn),需要通過(guò)Firefox瀏覽器進(jìn)行訪(fǎng)問(wèn)。 ![]() 圖3家庭網(wǎng)絡(luò )登錄界面 6 小結 本文設計了一個(gè)基于IPv6的嵌入式WEB平臺,并從虛擬化管理方面針對家庭網(wǎng)絡(luò )的情況進(jìn)行了優(yōu)化,具有一定的實(shí)用價(jià)值。該系統還存在一些值得改進(jìn)和進(jìn)一步努力的地方,如屬于網(wǎng)關(guān)的顯示模塊的引入、和控制總線(xiàn)的融合等,這些技術(shù)的實(shí)現會(huì )進(jìn)一步推進(jìn)IPv6在家庭網(wǎng)絡(luò )中的應用。 本文作者創(chuàng )新點(diǎn):設計了基于IPv6和Linux-2.6.8內核的家庭網(wǎng)絡(luò )嵌入式WEB平臺,并從虛擬化管理等方面簡(jiǎn)化了管理和使用。 項目經(jīng)濟效益90萬(wàn)元。 作者:王忠勇,安永帥,宋豫全 來(lái)源:《微計算機信息》(嵌入式與SOC)2009年第1-2期 |