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