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