龔名茂 徐思燕


摘 ? 要:隨著物聯網技術的逐步成熟,智能家居已經進入實際運用階段,讓人們感受到科技帶來的高效、舒適、智能化的生活。但是現在智能家居設備品種繁多,并且存在著多種通信協議,導致各種家居設備無法實現互聯互通。在現有的物聯網協議中,ZigBee是一種比較完備的通信協議。因此,為了實現協議的相互轉換,在SOPC技術基礎上,文章設計并實現了將ZigBee通信協議和TCP/IP協議相互轉換的智能家居網關。
關鍵詞:可編程片上系統;ZigBee通信協議;傳輸控制協議/因特網互聯協議;協議轉換
智能家居系統一般由智能家居業務平臺、智能家居網關、智能家居終端傳感器以及執行機構3個部分構成,其中,家庭網關作為智能家居的核心部分,主要實現不同協議的相互轉換、協議數據轉發、節點管理,實現家庭外部網絡與室內各種家居設備之間的信息互聯互通[1]。本文對原有的家庭網關方案進行研究和分析,在此基礎上,提出利用可編程片上系統(System-on-a-Programmable Chip,SOPC)技術實現家庭網關方案。
1 ? ?網關硬件平臺構建
網關總體的硬件結構如圖1所示。網關硬件由可編程邏輯控制器EP4CE15和外圍模塊兩部分組成[2]。在現場可編程邏輯門陣列(Field Programmable Gate Array,FPGA)內部構建了Nios Ⅱ處理器系統和時鐘模塊。外圍電路包括FLASH,同步動態隨機存儲器(Synchronous Dynamic Random Access Memory,SDRAM),以太網電路,ZigBee通信模塊,狀態顯示模塊和聯合測試行為組織(Joint Test Action Group,JTAG)電路[3]。其中,Nios Ⅱ處理器采用快速型內核,并且加入一個全功能模式的定時器timer0。靜態隨機存取存儲器(Static Random Access Memory,SRAM)采用的是Hynix公司的HY57V2562GTR,FLASH芯片采用的是Altera公司生產的EPCS64。
網關與ZigBee模塊通信使用通用異步收發傳輸器(Universal Asynchronous Receiver/Transmitter,UART),通信協議為115200波特率,8位數據位,無奇偶校驗,無硬件流控制。
EP4CE15系統內構建三速以太網(Triple-Speed Ethernet,TSE)核實現媒體介入控制層(Media Access Control,MAC),它主要接收來自外部網絡的數據,并將其數據解析后重新封裝成ZigBee協議,另外,也需要進行逆轉換。系統選擇的以太網芯片是PHY DP83848。根據本系統網關的需求,對Nios II處理器系統的IP進行設計和整合,最終生成Nios II的處理器系統。
2 ? ?網關軟件平臺設計
2.1 ?ZigBee通信協議設計
在智能家居控制系統中,為了實現智能家居網關對各種家居設備的管理和控制,需要有統一的通信協議作為信息交互的橋梁。ZigBee數據包協議格式如表1所示。
其中,0xAA,0x55:幀頭,代表一幀數據的開始,接收端接收到該字段即表明數據來自于各個節點。
CMD:命令字,指定了這條指令將執行何種操作。
Payload:有效載荷,傳輸指令的參數,如溫度傳感器的溫度數據等。
CRC16:16位CRC校驗,該校驗確保數據通信的可靠性。
0x0D,0x0A:幀尾,標志著一條指令的結束。
本設計通過該通信協議,將ZigBee協議變成傳輸控制協議/因特網互聯協議(Transmission Control Protocol/Internet Protocol,TCP/IP),實現ZigBee家居設備與智能家居控制中心之間的通信以及控制中心對設備的控制和管理。
2.2 ?應用程序設計
為了方便地使用TCP/IP網絡協議,在上述硬件系統中加入μClinux操作系統,在該操作系統上進行ZigBee協議與TCP/IP協議轉換。在該操作系統中應用程序設計主要包括串口和網口兩個部分。
由于在μClinux系統中已經有串口驅動程序,因此,串口應用程序設計只需利用μClinux操作系統中應用層的open(),read(),write(),close()等函數對串口進行操作,其具體操作步驟如圖2所示。
網絡應用程序的設計首先需對已有的驅動程序進行修改,把本文中的端口物理層(Physical Layer,PHY)芯片的設備和狀態信息、PHY和多址接入信道(Multiple Access Channel,MAC)配置信息加入到驅動程序中。在此基礎上,才能利用μClinux系統中的socket套接字進行網絡應用程序設計。
3 ? ?實驗驗證
利用網絡助手和串口助手,對本文網關的功能進行驗證。首先,利用串口助手向網關的串口發送符合ZigBee協議規定的數據,網絡助手接收數據,然后利用網絡助手向網關的網口發送ZigBee格式的數據,利用串口助手接收。經過反復的測試,TCP/IP與ZigBee協議之間能正確轉換,在轉換過程中數據出錯次數為0,證明了本設計的可靠性和穩定性。
4 ? ?結語
本文設計了一個基于SOPC技術的智能家居網關,該網關能夠實現ZigBee和TCP/IP協議轉換。首先,對SOPC技術進行簡介;其次,分別介紹網關的硬件設計和軟件設計;最后,對網關的功能進行驗證,證明本網關具備ZigBee和TCP/IP協議轉換的功能。
[參考文獻]
[1]趙海,邵士亮,朱劍,等.一種連接WSN與Intternet的多核嵌入式網關設計與實現[J].東北大學學報(自然科學版),2012(1):65-68.
[2]杜超,陳濟民.基于SoC的嵌入式網關的設計與實現[J].計算機工程與設計,2011(9):89-93.
[3]張杰.基于FPGA的嵌入式以太網接口設計[D].西安:西安電子科技大學,2014.