(1.泰州市科技信息中心;
2.泰州市高新技術(shù)創(chuàng)業(yè)服務(wù)中心,江蘇泰州225300)
智能家庭網(wǎng)絡(luò)是信息時(shí)代帶給人們的又一個(gè)高科技產(chǎn)物,它利用計(jì)算機(jī)網(wǎng)絡(luò)技術(shù),將家庭內(nèi)各種智能設(shè)備連網(wǎng),通過家庭網(wǎng)關(guān)實(shí)現(xiàn)家庭內(nèi)部信息與家庭外部信息的交換[1-2]。因此家庭網(wǎng)關(guān)是整個(gè)智能家庭網(wǎng)路的核心,通過家庭網(wǎng)關(guān)才能實(shí)現(xiàn)家庭內(nèi)部多種智能設(shè)備之間的聯(lián)網(wǎng),以及從家庭內(nèi)部到外部網(wǎng)絡(luò)的互聯(lián),因此設(shè)計(jì)性價(jià)比高的家庭網(wǎng)關(guān)是實(shí)現(xiàn)智能家庭網(wǎng)路的關(guān)鍵。本文以ARM內(nèi)核的處理器AT91RM9200為核心,結(jié)合藍(lán)牙技術(shù)實(shí)現(xiàn)硬件平臺(tái),以具有強(qiáng)大網(wǎng)絡(luò)功能的嵌入式操作系統(tǒng)μClinux為基礎(chǔ),構(gòu)建家庭網(wǎng)關(guān)的軟件平臺(tái),設(shè)計(jì)出一種實(shí)用的家庭網(wǎng)關(guān),實(shí)現(xiàn)對(duì)家電電器的集中管理和遠(yuǎn)程控制。
根據(jù)家庭網(wǎng)關(guān)的功能要求,本系統(tǒng)的硬件平臺(tái)總體結(jié)構(gòu)如圖1所示,主要由以下五個(gè)模塊組成:ARM920T內(nèi)核的微處理器為核心的主控模塊、針對(duì)Internet接入的以太網(wǎng)模塊、存儲(chǔ)模塊、基于串口的藍(lán)牙模塊、公共電話網(wǎng)接口模塊。
微控制器選用 atmel的 AT91RM9200,AT91RM9200是基于ARM920T核的高性能、低功耗32位處理器,時(shí)鐘頻率最高可達(dá)180MHz,片內(nèi)集成了非常豐富的外圍功能模塊,非常適用于對(duì)功耗和成本有嚴(yán)格要求的嵌入式控制等方面的應(yīng)用??紤]到設(shè)計(jì)周期和開發(fā)成本,系統(tǒng)直接選用恒頤公司的開發(fā)板H9200C-II。H9200C-II是基于AT91RM9200的最小系統(tǒng)板,超微型緊湊結(jié)構(gòu)設(shè)計(jì)(70mm×45mm);板載 8M NOR FLASH、64M NAND FLASH、32M SDRAM;電路板間聯(lián)結(jié)器采用100針*2的雙排插針,連接可靠,抗震性強(qiáng);多層板的布線工藝,穩(wěn)定可靠。
AT91RM9200內(nèi)部集成一個(gè)10M/100M的以太網(wǎng)控制器(MAC),具有MII和RMII兩種網(wǎng)絡(luò)接口,可以工作在半雙工或全雙工模式,控制器支持IEEE802.3 CSMA/CD協(xié)議,在主機(jī)與物理層(PHY)間以IEEE802.3u數(shù)據(jù)幀格式進(jìn)行數(shù)據(jù)交換。雖然AT91RM9200內(nèi)部沒有提供物理層(PHY),但可以通過具有相同接口的以太網(wǎng)PHY芯片接入以太網(wǎng),在本設(shè)計(jì)中使用具有MII接口的DM9161實(shí)現(xiàn)AT91RM9200和物理層的連接[3]。DM9161是一款10/100M自適應(yīng)的以太網(wǎng)收發(fā)器,支持雙絞線自適應(yīng),功耗低,集成度高,只要少量的外圍元件芯片就可以工作。AT91RM9200與DM916l接口連接如圖2所示。
藍(lán)牙模塊選用BT100-2型藍(lán)牙模塊,BT100-2采用BlueCore4 External藍(lán)牙芯片,完全遵循藍(lán)牙系統(tǒng)的數(shù)據(jù)和音頻連接。采用USB或UART主設(shè)備接口,最高支持3Mbps的數(shù)據(jù)速率。音頻接口支持PCM協(xié)議,模塊和設(shè)備固件完全兼容藍(lán)牙規(guī)范V2.0。BT100-2模塊由于具有標(biāo)準(zhǔn)的串行口接口,因此和AT91RM9200可以直接通過串行口進(jìn)行通信。當(dāng)微控制器AT91RM9200需要和其它家電設(shè)備通信時(shí),只需按照規(guī)定數(shù)據(jù)幀格式將數(shù)據(jù)通過串口發(fā)送給BT100-2藍(lán)牙模塊,然后由BT100-2模塊中根據(jù)數(shù)據(jù)幀中的目的藍(lán)牙地址,將數(shù)據(jù)傳輸?shù)侥康乃{(lán)牙模塊。
為實(shí)現(xiàn)遠(yuǎn)程電話控制,本設(shè)計(jì)提供了公共電話網(wǎng)接口模塊。模塊由專用電話集成電路TEA1062和MT8880組成,TEA1062用來(lái)為TTS語(yǔ)音和撥號(hào)音的輸出提供單獨(dú)的輸出口,MT8880用來(lái)完成DTMF信號(hào)、撥號(hào)音、忙音等信號(hào)的檢測(cè)。語(yǔ)音操作提示采用單芯片TTS處理器SD178A,采用真人發(fā)音為樣本,輸出的語(yǔ)音真實(shí)、自然、可將漢字及ASCⅡ碼轉(zhuǎn)換為語(yǔ)音輸出。SD178A可直接與AT91RM9200相連,如圖3所示,圖中RYD、SCLK和SDI用于與主控制器進(jìn)行串行通信。
智能家庭網(wǎng)關(guān)是一個(gè)典型的嵌入式設(shè)備,因此選用開源的μClinux作為操作系統(tǒng)。μClinux是一種高度優(yōu)化的、代碼緊湊的嵌入式Linux版本,一款模塊化的、可移植性強(qiáng)、易于配置的嵌入式操作系統(tǒng),同時(shí)又具有Linux系統(tǒng)的高可靠性、網(wǎng)絡(luò)功能強(qiáng)大、源碼開放等特點(diǎn)[4-5]。μClinux通過裁剪和定制,編譯后的目標(biāo)文件只有在幾百KB,因此完全可以移植到AT91RM9200中。
家庭網(wǎng)關(guān)的軟件框架結(jié)構(gòu)由三層組成,最底層由各類接口模塊的驅(qū)動(dòng)程序,由μClinux操作系統(tǒng)進(jìn)行管理。中間層由web服務(wù)器以及網(wǎng)絡(luò)通信協(xié)議構(gòu)成,最頂層是整個(gè)家庭網(wǎng)關(guān)的控制系統(tǒng)軟件,由各個(gè)模塊的應(yīng)用程序組成,各個(gè)模塊的應(yīng)用程序?qū)τ布目刂剖峭ㄟ^驅(qū)動(dòng)程序來(lái)實(shí)現(xiàn)的。
家庭網(wǎng)關(guān)主要包含有藍(lán)牙模塊,PSTN模塊、以太網(wǎng)物理層芯片三個(gè)接口電路,針對(duì)這三個(gè)接口電路分別編寫了以太網(wǎng)驅(qū)動(dòng)、電話網(wǎng)接口驅(qū)動(dòng)、藍(lán)牙模塊驅(qū)動(dòng)等驅(qū)動(dòng)程序,分別提供對(duì)其相應(yīng)硬件的操作。
對(duì)于μClinux操作系統(tǒng)來(lái)說(shuō),所有的設(shè)備都以文件的形式管理,所以對(duì)設(shè)備的操作和對(duì)μClinux系統(tǒng)中的文件操作是一樣的。只需為相應(yīng)的設(shè)備編寫幾個(gè)基本函數(shù)并向VFS注冊(cè)即可,一般都是在現(xiàn)成的驅(qū)動(dòng)程序基礎(chǔ)上針對(duì)特殊的硬件設(shè)備作相應(yīng)的改動(dòng)。
藍(lán)牙模塊、TTS語(yǔ)音芯片和AT91RM9200采用串口連接,直接修改嵌入式Linux內(nèi)核的串口驅(qū)動(dòng)程序。AT91RM9200共有5個(gè)串口。在μClinux內(nèi)核源代碼文件at91rm9200kd.h中,有個(gè)宏定義,表明了AT91RM9200的串口與內(nèi)核中的串口驅(qū)動(dòng)的對(duì)應(yīng)關(guān)系,根據(jù)家庭網(wǎng)關(guān)的使用需要以及硬件的連接關(guān)系,對(duì)宏定義進(jìn)行修改,就可以對(duì)實(shí)際硬件的串口進(jìn)行操作。
以太網(wǎng)接口模塊中使用DM9161和AT91RM9200連接,因此驅(qū)動(dòng)程序設(shè)計(jì)就是針對(duì)DM9161的驅(qū)動(dòng)。DM9161具有MII接口,在μClinux內(nèi)核編譯時(shí)選擇μClinux下對(duì)于DM9161的驅(qū)動(dòng)代碼,編譯生成的目標(biāo)文件中就包含了以太網(wǎng)接口的驅(qū)動(dòng)程序,使用時(shí)只需在上層應(yīng)用程序調(diào)用Socket等μClinux的系統(tǒng)調(diào)用即可。
μClinux沒有專門的電話網(wǎng)接口驅(qū)動(dòng),因此本設(shè)計(jì)為電話網(wǎng)專門編寫了相關(guān)的驅(qū)動(dòng)程序??紤]到是為上層電話控制應(yīng)用程序提供硬件操作的,驅(qū)動(dòng)程序采用字符設(shè)備驅(qū)動(dòng)。根據(jù)電話網(wǎng)控制模塊需要完成功能的分析,驅(qū)動(dòng)模塊包括振鈴中斷檢測(cè)引腳、自動(dòng)摘掛機(jī)引腳、電話音檢測(cè)引腳、寄存器讀寫引腳、發(fā)音串口引腳、發(fā)音完成引腳等6個(gè)字符設(shè)備,如圖4所示。這樣在上層應(yīng)用程序中需要使用這些設(shè)備之前,只要使用open函數(shù)打開相關(guān)的字符設(shè)備即可。
AT91RM9200通過MT8880與電話網(wǎng)進(jìn)行數(shù)據(jù)通信,因此電話網(wǎng)控制模塊的驅(qū)動(dòng)程序需要包含有對(duì)MT8880內(nèi)部寄存器進(jìn)行讀寫的操作程序,MT8880內(nèi)部有數(shù)據(jù)和狀態(tài)寄存器,對(duì)這2個(gè)寄存器的判斷在驅(qū)動(dòng)函數(shù)通過變量count來(lái)區(qū)分是控制操作還是數(shù)據(jù)操作。具體的讀寫函數(shù)流程圖見圖5、6。
家庭網(wǎng)關(guān)的控制系統(tǒng)軟件程序按照接口模塊的不同進(jìn)行劃分,由三個(gè)模塊化的程序?qū)崿F(xiàn)對(duì)應(yīng)三個(gè)接口模塊的功能,三個(gè)模塊的應(yīng)用程序由主控模塊進(jìn)行控制。Internet控制模塊通過驅(qū)動(dòng)實(shí)現(xiàn)基于Web的網(wǎng)絡(luò)服務(wù)功能。PSTN控制模塊通過驅(qū)動(dòng)實(shí)現(xiàn)電話的遠(yuǎn)程控制服務(wù)功能,并對(duì)家庭內(nèi)的報(bào)警信息自動(dòng)進(jìn)行電話報(bào)警。而Bluetooth控制模塊通過驅(qū)動(dòng)負(fù)責(zé)在家庭網(wǎng)關(guān)和家庭內(nèi)具有藍(lán)牙接口的電器之間進(jìn)行數(shù)據(jù)傳遞,發(fā)送和接收來(lái)自Internet控制模塊和PSTN控制模塊的藍(lán)牙數(shù)據(jù)??紤]到實(shí)時(shí)性,為防止三個(gè)控制模塊在運(yùn)行時(shí)發(fā)生沖突,設(shè)計(jì)了主控模塊用來(lái)對(duì)三個(gè)接口模塊的應(yīng)用程序進(jìn)行調(diào)度管理,以及應(yīng)用程序之間的數(shù)據(jù)傳遞。主控模塊的流程圖如圖7所示。
本文提出了一種基于藍(lán)牙技術(shù)的無(wú)線智能家庭網(wǎng)關(guān)的設(shè)計(jì)和實(shí)現(xiàn)方案,實(shí)現(xiàn)了通過外部電話網(wǎng)絡(luò)(PSTN網(wǎng))對(duì)家用電器的遠(yuǎn)程控制,整個(gè)系統(tǒng)采用藍(lán)牙無(wú)線通信,很好地克服了有線方式連線繁瑣、安裝復(fù)雜和維護(hù)困難等缺點(diǎn),具有很好的通用性,滿足了人們對(duì)家庭自動(dòng)化和智能化的需求。
[1]施榮,徐平平.藍(lán)牙技術(shù)在電力抄表中的應(yīng)用[J].移動(dòng)通信.2004,28(1):1-6.
[2]ChristosDouligeris.IntelligentHomeSystems[J].IEEECommu nieationsMagazine.1993,31(10):52-61.
[3]李永祥,周書民,王卡風(fēng),王子新,楊志剛.基于 LPC2366與DM9161嵌入式網(wǎng)絡(luò)設(shè)計(jì)[J].微計(jì)算機(jī)信息,2010,(29):86-88.
[4]董國(guó).uClinux的分析與移植[D].上海:華東師范大學(xué),2004.
[5]馬啟杰.基于AT91RM9200的ARM-Linux移植[D].成都:電子科技大學(xué),2007.