蘇兵
(廣州白云工商高級(jí)技工學(xué)校計(jì)算機(jī)系,廣東廣州510450)
本設(shè)計(jì)的家庭網(wǎng)關(guān)是整個(gè)家庭網(wǎng)絡(luò)的樞紐,所有家電設(shè)備都連接在上面,由它集中控制。主要實(shí)現(xiàn)以下四方面功能:
(1)Internet接入功能。所有家庭內(nèi)部的信息家電通過(guò)這個(gè)網(wǎng)關(guān)接入Internet。
(2)語(yǔ)音網(wǎng)關(guān)功能。能打IP電話。
(3)管理信息家電。家庭網(wǎng)絡(luò)內(nèi)家電的添加、刪除、配置都可以在這上面來(lái)完成。
(4)遠(yuǎn)程監(jiān)控功能。通過(guò)在網(wǎng)關(guān)上設(shè)置Web服務(wù)器,可以通過(guò)Internet遠(yuǎn)程監(jiān)控家庭內(nèi)部的信息家電。
根據(jù)圖1將連接家庭內(nèi)部網(wǎng)絡(luò)和Internet網(wǎng)絡(luò)的家庭網(wǎng)關(guān)抽象為站點(diǎn),將家庭內(nèi)部的被控對(duì)象(智能電冰箱、智能空調(diào)等)抽象為節(jié)點(diǎn)。
站點(diǎn)是通過(guò)Internet訪問(wèn)家庭內(nèi)部網(wǎng)絡(luò)的驛站,它可以將來(lái)自互聯(lián)網(wǎng)絡(luò)的各種信息通過(guò)協(xié)議轉(zhuǎn)換的方法傳遞到家庭內(nèi)部網(wǎng)絡(luò),而具備此項(xiàng)功能的站點(diǎn)通常稱(chēng)為家庭網(wǎng)關(guān)。
節(jié)點(diǎn)負(fù)責(zé)對(duì)單個(gè)家用電器實(shí)施控制,使其按照人的要求正常運(yùn)行,同時(shí)以特定的通訊協(xié)議將本地信息傳送到家庭網(wǎng)關(guān),接受來(lái)自家庭網(wǎng)關(guān)的指令以改變現(xiàn)在的運(yùn)行狀況。
由于家庭網(wǎng)關(guān)可以將家庭內(nèi)部的信息發(fā)布到Internet上,那么可以在網(wǎng)絡(luò)的另一端在一臺(tái)安裝了監(jiān)控軟件的PC上對(duì)家庭網(wǎng)絡(luò)實(shí)施監(jiān)視與控制。
MCF5272微處理器是Motorola公司生產(chǎn)的高集成的ColdFire微處理器。在設(shè)計(jì)下一代互聯(lián)網(wǎng)設(shè)備、LAN電話系統(tǒng)、低端網(wǎng)絡(luò)控制、工業(yè)控制、圖像設(shè)備,摩托羅拉的MCF5272的高性能及通用性都能滿(mǎn)足嵌入式系統(tǒng)設(shè)計(jì)和應(yīng)用要求。
Motorola嵌入式處理器MCF5272,具有較好的處理能力的同時(shí)也支持藍(lán)牙上層協(xié)議棧、終端的接入控制、話路交換等功能。圖2描述了家庭網(wǎng)關(guān)的硬件結(jié)構(gòu)。
家庭網(wǎng)關(guān)的軟件體系可分為三個(gè)層次:
通過(guò)內(nèi)核的系統(tǒng)調(diào)用實(shí)現(xiàn)用戶(hù)需要的應(yīng)用服務(wù)。包括遠(yuǎn)程監(jiān)控系統(tǒng)、信息家電管理系統(tǒng)等。
提供進(jìn)程控制、文件系統(tǒng)管理、內(nèi)存管理、中斷和中斷處理、網(wǎng)絡(luò)協(xié)議棧等。
包括通用的硬件驅(qū)動(dòng)程序,如藍(lán)牙模塊、串口、USB設(shè)備、以太網(wǎng)、FOMFS文件和本系統(tǒng)的一些特殊的硬件驅(qū)動(dòng)程序,如LCD、VoIP、DSL等[3]。
家庭網(wǎng)關(guān)軟件結(jié)構(gòu)如圖3所示:
圖3 家庭網(wǎng)關(guān)軟件結(jié)構(gòu)
將藍(lán)牙技術(shù)集成到各種數(shù)字設(shè)備中的方式有兩種:一種是單微控制器方式,即所有的藍(lán)牙低層傳輸協(xié)議(包括藍(lán)牙射頻、基帶與鏈路控制器、鏈路管理器)與高層傳輸協(xié)議包括邏輯鏈路控制與適配協(xié)議、串口仿真協(xié)議、服務(wù)發(fā)現(xiàn)協(xié)議、網(wǎng)絡(luò)協(xié)議等)以及用戶(hù)應(yīng)用程序集成到一個(gè)模塊當(dāng)中,整個(gè)處理過(guò)程由一個(gè)微處理器來(lái)完成;另一種是雙微控制器方式,即藍(lán)牙協(xié)議與用戶(hù)應(yīng)用程序分別由主機(jī)控制器和主機(jī)來(lái)實(shí)現(xiàn)(低層傳輸協(xié)議一般通過(guò)藍(lán)牙硬件模塊實(shí)現(xiàn),模塊內(nèi)部嵌入式的微處理稱(chēng)為主機(jī)控制器;高層傳輸協(xié)議和用戶(hù)應(yīng)用程序在個(gè)人計(jì)算機(jī)或嵌入式的單片機(jī)、DSP等上運(yùn)行,稱(chēng)為主機(jī)),主機(jī)和主機(jī)控制器之間通過(guò)標(biāo)準(zhǔn)的物理總線接口(如通用串行總線USB、串行端口RS232)來(lái)連接[1]。連接模型如圖4所示。
圖4 藍(lán)牙主機(jī)—主機(jī)控制器連接模型
在藍(lán)牙的主機(jī)—主機(jī)控制器連接模型中,HCI作為藍(lán)牙軟件協(xié)議堆棧中軟硬件之間的接口,提供了一個(gè)控制基帶與鏈路控制器、鏈路管理器、狀態(tài)寄存器等硬件的統(tǒng)一接口。當(dāng)主機(jī)和主機(jī)控制器通信時(shí),HCI層以上的協(xié)議在主機(jī)上運(yùn)行,而HCI層以下的協(xié)議由藍(lán)牙主機(jī)控制器硬件來(lái)完成,它們通過(guò)HCI傳輸層進(jìn)行通信。主機(jī)和主機(jī)控制器中都有HCI,它們具有相同的接口標(biāo)準(zhǔn)。主機(jī)控制器中的HCI解釋來(lái)自主機(jī)的信息并將信息發(fā)向相應(yīng)的硬件模塊單元,同時(shí)還將模塊中的信息(包括數(shù)據(jù)和硬件/固件信息)根據(jù)需要向上轉(zhuǎn)發(fā)給主機(jī)。
主機(jī)—主機(jī)控制器模式的設(shè)計(jì)在很大程度上可以降低產(chǎn)品的成本同時(shí)設(shè)計(jì)難度也小很多,這種方式可以應(yīng)用在家庭網(wǎng)關(guān)上。但是對(duì)于信息家電來(lái)說(shuō)它的控制芯片往往是固化了產(chǎn)商的程序,用戶(hù)一般不能在上面添加自己的程序。所以這種模式不能用于信息家電上(將來(lái)藍(lán)牙通信協(xié)議可能會(huì)被固化到信息家電中作為一種標(biāo)準(zhǔn)通信接口,那樣家庭網(wǎng)絡(luò)內(nèi)的通信就很容易實(shí)現(xiàn)了),只能采用第一種模式,將所有的協(xié)議集成在一個(gè)模塊里,這個(gè)模塊提供標(biāo)準(zhǔn)的USB接口或RS232接口。將這個(gè)藍(lán)牙模塊插在家電的標(biāo)準(zhǔn)通信接口上即可構(gòu)成藍(lán)牙家電。
為了使嵌入式家庭網(wǎng)關(guān)能與家庭網(wǎng)絡(luò)內(nèi)的各嵌入式終端進(jìn)行通訊,在研究參考了國(guó)內(nèi)外相關(guān)資料的基礎(chǔ)上,本文設(shè)計(jì)了家庭網(wǎng)絡(luò)通訊協(xié)議。
鏈路層的幀格式為:幀頭+命令包字節(jié)數(shù)+命令包+幀尾。具體說(shuō)明如表1所示。
表1 數(shù)據(jù)幀格式
命令包的格式為:地址碼+命令屬性+命令串+校驗(yàn)和,具體描述如表2所示。
表2 命令包格式
其中地址碼(即家電ID)由產(chǎn)品類(lèi)別碼(1字節(jié))+產(chǎn)品序列碼(l字節(jié))共2個(gè)字節(jié)組成,產(chǎn)品類(lèi)別碼代表家電的種類(lèi),產(chǎn)品序列碼表示同一個(gè)家庭中一個(gè)產(chǎn)品類(lèi)別碼的不同家電的編碼,初始值為00H。ID=0000H為廣播地址,每臺(tái)家電或設(shè)備都必須執(zhí)行其中的指令。產(chǎn)品序列碼為可變的,家居組網(wǎng)后可由網(wǎng)關(guān)重新分配[2]。產(chǎn)品類(lèi)別的具體定義類(lèi)似表3。
表3 設(shè)備類(lèi)別碼定義參數(shù)
當(dāng)發(fā)送大數(shù)據(jù)量時(shí),大數(shù)據(jù)量包的格式為:地址碼+0EFH+總幀數(shù)+幀序號(hào)+數(shù)據(jù)+校驗(yàn)和。格式具體描述如表4。
表4 大數(shù)據(jù)量包格式
5.3.1 發(fā)信方的處理
發(fā)信方在發(fā)出一個(gè)數(shù)據(jù)包后,2S內(nèi)未收到目標(biāo)收信方的任何應(yīng)答,應(yīng)重發(fā),十次發(fā)送不成功,則放棄。
5.3.2 家居設(shè)備與嵌入式家庭網(wǎng)關(guān)之間的通訊
網(wǎng)關(guān)使用命令屬性42H讀工作狀態(tài),每10S輪詢(xún)一遍設(shè)備的工作狀態(tài),在每個(gè)循環(huán)中應(yīng)加入查詢(xún)新家電信息編碼的命令包。
5.3.3 ID的處理
ID初始值設(shè)為XX00H,XXH為家電設(shè)備類(lèi)別碼,固定不變,00H為家電序列碼,可動(dòng)態(tài)分配,家電在每次登陸網(wǎng)關(guān)時(shí),將重新分配家電ID,平時(shí)家電ID將保存在EEPROM中,只有在恢復(fù)初始設(shè)置時(shí),重新變?yōu)閄X00H。
有關(guān)通訊的數(shù)據(jù),應(yīng)根據(jù)不同的型號(hào),做出不同的定義。
網(wǎng)關(guān)在輪詢(xún)過(guò)程的每個(gè)循環(huán)中加入查詢(xún)新家電信息編碼的命令包,命令屬性E1。家電在收到E1命令后,如果已注冊(cè)則不作處理,如果未注冊(cè)則發(fā)回產(chǎn)品信息編碼,命令屬性El,命令包為12字節(jié)產(chǎn)品編碼+4字節(jié)校驗(yàn)。網(wǎng)關(guān)接收到家電的信息編碼后,發(fā)送分配家電ID命令,命令屬性E2。家電在接受到分配ID命令后,返回注冊(cè)成功,命令屬性為E3[3]。
網(wǎng)絡(luò)家電的MCU中應(yīng)存放表示該類(lèi)產(chǎn)品類(lèi)型的信息編碼。每個(gè)具體的產(chǎn)品編碼由七段共24位10進(jìn)制數(shù)組成(只取部分信息),具體格式如下:
規(guī)則:2-3-3-2-1-8-5(24位,分七段表示具體的設(shè)備條形碼)
各段具體說(shuō)明如表5所示:
表5 產(chǎn)品編碼
用設(shè)備類(lèi)型的信息碼即可表示出該設(shè)備的型號(hào),將這一編碼信息存放到網(wǎng)絡(luò)家電的EEPRO中。其中用一個(gè)字節(jié)的二進(jìn)制碼代表兩位十進(jìn)制數(shù)。網(wǎng)關(guān)將根據(jù)這一信息自動(dòng)建立起該型號(hào)網(wǎng)絡(luò)家電的控制指令及ID。
在接入Internet上的任意一臺(tái)計(jì)算機(jī)上通過(guò)瀏覽器就可以訪問(wèn)家庭網(wǎng)關(guān),在瀏覽器中輸入家庭網(wǎng)關(guān)的IP地址首先進(jìn)入一個(gè)登錄界面,進(jìn)行用戶(hù)驗(yàn)證,之后進(jìn)入管理主界面,可以查詢(xún)家居系統(tǒng)的當(dāng)前狀態(tài)、控制信息家電的運(yùn)行等操作。圖5為遠(yuǎn)程控制界面的截圖。
本文設(shè)計(jì)了家庭網(wǎng)絡(luò)控制系統(tǒng)模型,對(duì)家庭網(wǎng)關(guān)的硬件結(jié)構(gòu)和軟件結(jié)構(gòu)進(jìn)行了分析和設(shè)計(jì),通過(guò)對(duì)一個(gè)基于MCF5272微處理器的嵌入式Linux操作系統(tǒng)的構(gòu)造方法,對(duì)家庭網(wǎng)絡(luò)通信協(xié)議,以及對(duì)家庭網(wǎng)絡(luò)內(nèi)部的藍(lán)牙無(wú)線通信的實(shí)現(xiàn)方案進(jìn)行了分析和設(shè)計(jì),最終以B/S模式來(lái)完成遠(yuǎn)程監(jiān)控服務(wù)的設(shè)計(jì)。
[1]R.Shepherd.Bluetooth wireless technology in the home[J].Electronics and Communication Engineering Journal,2001.7:78-80.
[2]周明天,汪文勇.TCP/IP網(wǎng)絡(luò)原理與技術(shù)[M].北京:清華大學(xué)出版社,1993.
[3]Klaus Wehrle,F(xiàn)rank Pahlke,Hartmut Ritter.LINUX內(nèi)核中網(wǎng)絡(luò)協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)[M].北京:清華大學(xué)出版社,2006.