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

基于ARM芯片S3C2410的TFT-LCD驅(qū)動(dòng)方法

ARM9微處理器S3C2410的IP電話通信設(shè)計(jì)

基于S3C2410和Linux的智能家居系統(tǒng)的設(shè)計(jì)
基于S3C2410和Windows CEnet的智能移動(dòng)終端設(shè)計(jì)
基于微處理器S3C2410的Linux系統(tǒng)構(gòu)建
基于Linux操作系統(tǒng)和S3C2410微處理器實(shí)現(xiàn)GPS實(shí)時(shí)導(dǎo)航系統(tǒng)的設(shè)計(jì)

基于S3C2410微處理器和Linux實(shí)現(xiàn)嵌入式網(wǎng)關(guān)的設(shè)計(jì)

評論