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