基于ARM 處理器的低成本網(wǎng)關(guān)硬件設(shè)計(jì)
隨著物聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,將傳統(tǒng)的Internet與新型的無(wú)線傳感器網(wǎng)絡(luò)整合的趨勢(shì)越來(lái)越明顯,嵌入式服務(wù)網(wǎng)關(guān)既是無(wú)線傳感器網(wǎng)絡(luò)的協(xié)調(diào)器網(wǎng)關(guān),又是遠(yuǎn)程WEB 的服務(wù)器,它實(shí)現(xiàn)兩個(gè)不同協(xié)議的網(wǎng)絡(luò)之間的通信。同時(shí)也是將無(wú)線傳感器網(wǎng)絡(luò)接入Internet,從而實(shí)現(xiàn)物聯(lián)網(wǎng)概念的關(guān)鍵設(shè)備。物聯(lián)網(wǎng)服務(wù)網(wǎng)關(guān)在未來(lái)的物聯(lián)網(wǎng)時(shí)代將會(huì)扮演非常重要的角色,它將成為連接物聯(lián)網(wǎng)感知層網(wǎng)絡(luò)與傳統(tǒng)通信網(wǎng)絡(luò)的紐帶。物聯(lián)網(wǎng)網(wǎng)關(guān)可實(shí)現(xiàn)感知網(wǎng)絡(luò)和基礎(chǔ)網(wǎng)絡(luò)以及不同類(lèi)型的感知網(wǎng)絡(luò)之間的協(xié)議轉(zhuǎn)換,既可以實(shí)現(xiàn)廣域互聯(lián),也可以實(shí)現(xiàn)局域互聯(lián)。并且具有廣泛的感知網(wǎng)接入、通信協(xié)議轉(zhuǎn)換和強(qiáng)大的系統(tǒng)管理等特點(diǎn)[1]。利用嵌入式系統(tǒng)設(shè)計(jì)的服務(wù)網(wǎng)關(guān)可以有效降低成本,利用家庭智能化的普及。
1 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)的總體結(jié)構(gòu)如圖1 所示。在遠(yuǎn)端的移動(dòng)智能終端或電腦通過(guò)Internet 訪問(wèn)到無(wú)線傳感器網(wǎng)絡(luò),而嵌入式WEB 服務(wù)器提供了交互式的頁(yè)面訪問(wèn)。如果訪問(wèn)數(shù)據(jù)量大或者需要對(duì)數(shù)據(jù)有統(tǒng)計(jì)、分析及處理,那么需要建立網(wǎng)頁(yè)服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器 [2]。在物聯(lián)網(wǎng)框架下的智能家居是一個(gè)復(fù)雜的系統(tǒng),需要多人合作完成,如Internet 數(shù)據(jù)庫(kù)服務(wù)器的設(shè)計(jì)、建立感知層網(wǎng)絡(luò)。文中重點(diǎn)介紹服務(wù)網(wǎng)關(guān)的設(shè)計(jì),包括嵌入式WEB、近程終端、WSN 協(xié)調(diào)器3個(gè)部分所組成的一體化終端。它是兩個(gè)異構(gòu)網(wǎng)之間的橋梁,起著重要的銜接作用[3]。
圖1 系統(tǒng)總體框
2 系統(tǒng)硬件設(shè)計(jì)
本設(shè)計(jì)中智能家居系統(tǒng)的硬件由3 部分組成:服務(wù)網(wǎng)關(guān)、終端節(jié)點(diǎn)和路由節(jié)點(diǎn)。
(1)服務(wù)網(wǎng)關(guān)
服務(wù)網(wǎng)關(guān)硬件框圖如圖2 所示。由ARM 主控制器、Zigbee 模塊、以太網(wǎng)PHY、TFT-LCD液晶觸
摸屏、及最小系統(tǒng)模塊5 部分組成。
圖2 服務(wù)網(wǎng)關(guān)硬件框
主控制器采用基于ARM(Cotex-M3) 核的STM32F107 互聯(lián)型微控制器。它擁有64K SRAM、
256K FLASH、以太網(wǎng)MAC 等豐富的存儲(chǔ)器及外設(shè)資源。Zigbee 模塊是由TI 公司的CC2430 作為主控芯片,在服務(wù)網(wǎng)關(guān)中它是WSN 的協(xié)調(diào)器,通過(guò)USART 實(shí)現(xiàn)與主控制器之間的數(shù)據(jù)通信。以太網(wǎng)模塊采用以太網(wǎng)的物理層芯片DM9161A,通過(guò)RMII與主控制器相連接,其50M 時(shí)鐘由ARM 的MCO提供。液晶觸摸屏通過(guò)I/O 接口與ARM 相連,實(shí)現(xiàn)人機(jī)對(duì)話。
(2)終端節(jié)點(diǎn)與路由節(jié)點(diǎn)
傳感器節(jié)點(diǎn)是組成傳感網(wǎng)的最基本單元,主要有射頻通信模塊和傳感器數(shù)據(jù)采集模塊組成。終端
節(jié)點(diǎn)與路由節(jié)點(diǎn)的硬件一樣,不同之處主要表現(xiàn)在軟件上。
終端節(jié)點(diǎn)硬件圖如圖3 所示。根據(jù)CC2430 的特點(diǎn),它是一款集Zigbee 協(xié)議棧、RF 射頻模塊以
及增強(qiáng)型51 核于一身的SOPC,可以滿足對(duì)數(shù)字或模擬傳感器模塊收集的數(shù)據(jù)處理及在WSN 中的通傳輸任務(wù)。
圖3 終端節(jié)點(diǎn)硬件框
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件分為運(yùn)行于ARM 上的服務(wù)網(wǎng)關(guān)軟件和運(yùn)行于CC2430 模塊上的WSN 網(wǎng)關(guān)軟件。考慮到服務(wù)網(wǎng)關(guān)軟件的總體設(shè)計(jì)的復(fù)雜程度以及層次性模塊化的設(shè)計(jì)理念,系統(tǒng)采用嵌入式操作系統(tǒng)uCOS-II 作為系統(tǒng)資源的管理,對(duì)系統(tǒng)功能任務(wù)化。服務(wù)網(wǎng)關(guān)軟件總體設(shè)計(jì)框圖如圖4 所示。
圖4 服務(wù)網(wǎng)關(guān)總體設(shè)計(jì)框
3.1 服務(wù)網(wǎng)關(guān)軟件層次結(jié)構(gòu)
服務(wù)網(wǎng)關(guān)軟件層次結(jié)構(gòu)分為:底層驅(qū)動(dòng)層,系統(tǒng)層,應(yīng)用層。
(1)底層驅(qū)動(dòng)層
底層驅(qū)動(dòng)層包括FWLib 和BSP。FWLib 是ST公司為了對(duì)其ARM 的支持而推出的驅(qū)動(dòng)支持軟件,
提供系統(tǒng)初始化函數(shù),對(duì)中斷和操作系統(tǒng)的支持,存儲(chǔ)器分配以及所有片內(nèi)外設(shè)的驅(qū)動(dòng),從而方便軟件的開(kāi)發(fā)。此外,用戶(hù)還應(yīng)開(kāi)發(fā)針對(duì)應(yīng)用的板級(jí)支持包(BSP),在本系統(tǒng)中BSP 的內(nèi)容主要是應(yīng)用開(kāi)發(fā)板相關(guān)的硬件驅(qū)動(dòng)。
(2)系統(tǒng)層
系統(tǒng)層包括了操作系統(tǒng)和中間件軟件LwIP,操作系統(tǒng)是對(duì)軟硬件資源的管理,其他各部分軟件都
要以操作系統(tǒng)為中心。操作系統(tǒng)移植的過(guò)程中,主要任務(wù)是改寫(xiě)針對(duì)處理器和編譯器相關(guān)的部分,向上為應(yīng)用任務(wù)提供支持,向下連接驅(qū)動(dòng)程序來(lái)實(shí)現(xiàn)對(duì)硬件的操作[4]。LwIP 是一個(gè)針對(duì)嵌入式系統(tǒng)的TCP/IP 協(xié)議棧,本程序包含其基本功能:TCP、IP、UDP、ICMP。LwIP 的操作系統(tǒng)模擬層提供了向操作系統(tǒng)移植的方便,因其包括了任務(wù)間通信的機(jī)制:信號(hào)量、消息郵箱。
(3)應(yīng)用層
本設(shè)計(jì)根據(jù)模塊化和功能獨(dú)立性原則,將所有的應(yīng)用程序分成7 個(gè)應(yīng)用任務(wù),分別是引領(lǐng)全局的
根任務(wù),與輸入輸出有關(guān)的按鍵任務(wù)和LCD顯示任務(wù),與嵌入式WEB 相關(guān)的TCP 發(fā)送任務(wù)和TCP 超時(shí)重傳任務(wù),與WSN 協(xié)調(diào)器相關(guān)的串口數(shù)據(jù)發(fā)送任務(wù)和Zigbee 控制命令任務(wù)。
3.2 軟件設(shè)計(jì)流程
軟件設(shè)計(jì)流程分為服務(wù)網(wǎng)關(guān)根任務(wù)軟件設(shè)計(jì)流程和WSN 網(wǎng)關(guān)軟件設(shè)計(jì)流程。
(1)服務(wù)網(wǎng)關(guān)根任務(wù)軟件設(shè)計(jì)流程
操作系統(tǒng)環(huán)境中,每個(gè)任務(wù)都是無(wú)限循環(huán)的相對(duì)獨(dú)立的功能模塊,通常都會(huì)有一個(gè)根任務(wù),它應(yīng)
該被設(shè)定該系統(tǒng)的核心功能業(yè)務(wù)。如圖5 為根任務(wù)程序流圖,首先板級(jí)初始化是對(duì)硬件的抽象和封裝,為應(yīng)用程序提供更友好的接口。然后創(chuàng)建其余6 個(gè)應(yīng)用任務(wù),創(chuàng)建格式與創(chuàng)建開(kāi)始任務(wù)類(lèi)似。最后程序進(jìn)入WEB 服務(wù)主循環(huán)程序,為了讓別的優(yōu)先級(jí)低的任務(wù)能夠執(zhí)行,必須調(diào)用任務(wù)掛起函數(shù)。
圖5 根任務(wù)流程
(2)WSN 網(wǎng)關(guān)軟件設(shè)計(jì)流程
WSN 網(wǎng)關(guān)也叫WSN 協(xié)調(diào)器,它是整個(gè)傳感器網(wǎng)絡(luò)的總控制中心和數(shù)據(jù)采集的匯聚點(diǎn),無(wú)線傳感
器節(jié)點(diǎn)分布在其覆蓋范圍內(nèi)[5]。傳感網(wǎng)網(wǎng)關(guān)的軟件流圖如圖6 所示。程序開(kāi)始建立Zigbee 網(wǎng)絡(luò),此時(shí)網(wǎng)絡(luò)中沒(méi)有其他節(jié)點(diǎn)。然后進(jìn)入無(wú)線監(jiān)控程序,查找是否有請(qǐng)求加入網(wǎng)絡(luò)的信號(hào)產(chǎn)生,若有新節(jié)點(diǎn)信號(hào)申請(qǐng)則根據(jù)信號(hào)類(lèi)型添加入網(wǎng)并分配網(wǎng)絡(luò)號(hào),若不是新節(jié)點(diǎn),則判定節(jié)點(diǎn)傳輸?shù)臄?shù)據(jù)有效性,有效則接收并發(fā)送到ARM 網(wǎng)關(guān),否則丟棄。
網(wǎng)關(guān)軟件流程
4 結(jié)語(yǔ)
文中系統(tǒng)地討論了物聯(lián)網(wǎng)服務(wù)網(wǎng)關(guān)這一項(xiàng)基于物聯(lián)網(wǎng)應(yīng)用的關(guān)鍵性技術(shù)[6-7],結(jié)合家庭自動(dòng)化進(jìn)行應(yīng)用設(shè)計(jì)。在硬件方面,按照嵌入式板級(jí)硬件設(shè)計(jì)流程,設(shè)計(jì)并實(shí)現(xiàn)了一種基于ARM 處理器的低成本網(wǎng)關(guān)硬件。軟件設(shè)計(jì)上采用自頂向下和分層的設(shè)計(jì)方法,結(jié)合網(wǎng)關(guān)硬件,利用嵌入式操作系統(tǒng)uCOS-II 和協(xié)議棧LwIP,搭建了一個(gè)應(yīng)用開(kāi)發(fā)平臺(tái),為應(yīng)用軟件的開(kāi)發(fā)提供了良好的軟件環(huán)境。