張 毅,蘭麗慧
(重慶郵電大學(xué) 通信學(xué)院,重慶 400065)
一個(gè)完整的物聯(lián)網(wǎng)系統(tǒng)的構(gòu)成或產(chǎn)業(yè)鏈的劃分應(yīng)該包括感知層、網(wǎng)絡(luò)層和應(yīng)用層三個(gè)層面[1]。由于數(shù)字整合的需求日益增長,對作為感知層核心組成元素的傳感器數(shù)據(jù)融合提出了更高的要求,如何將傳感器連入物聯(lián)網(wǎng)成為一個(gè)尤其重要的問題。
而隨著物聯(lián)網(wǎng)的發(fā)展,傳感器作為數(shù)據(jù)采集的檢測裝置,將在農(nóng)業(yè)、工業(yè)、智能家居等領(lǐng)域得到更為廣泛的應(yīng)用[2]。由于每種傳感器輸出信息格式有所不同,這就需要設(shè)計(jì)一種通用的傳感模塊信息處理接口,將傳感器輸出的信息轉(zhuǎn)換成統(tǒng)一的信息格式輸出。
而傳統(tǒng)的數(shù)據(jù)采集裝置采用有線網(wǎng)絡(luò)傳輸數(shù)據(jù),安裝布線及維護(hù)困難,成本也較高,越來越不能滿足數(shù)據(jù)采集的要求。
基于以上兩個(gè)方面的考慮,本文對傳感模塊的通信接口進(jìn)行研究,設(shè)計(jì)了一種通用的傳感模塊通信接口,解決傳感器輸出信息格式不統(tǒng)一的問題,并采用ZigBee無線數(shù)據(jù)采集網(wǎng)絡(luò)對處理后的信息進(jìn)行傳輸,以解決傳感器連入物聯(lián)網(wǎng)的問題。
傳感器接口模塊硬件主要由電源模塊、時(shí)鐘模塊、電源管理模塊、CC2530、射頻天線單元、信號調(diào)理模塊、傳感器模塊組成。其結(jié)構(gòu)圖如圖1所示。電源管理單元為傳感器模塊和信號調(diào)理模塊提供工作電壓,同時(shí)為了降低節(jié)點(diǎn)的能耗,該單元還實(shí)現(xiàn)了對工作電壓開關(guān)的控制,保證系統(tǒng)在不采集數(shù)據(jù)時(shí),數(shù)據(jù)采集部分的功耗為零。數(shù)據(jù)采集部分由傳感器模塊和信號調(diào)理模塊組成,實(shí)現(xiàn)對物理信號的采集、信號的轉(zhuǎn)化、處理,提高信號的精確度。
考慮到數(shù)據(jù)在物聯(lián)網(wǎng)中的傳輸,核心處理器直接采用CC2530,它帶有8051的處理器內(nèi)核,可以處理傳感器轉(zhuǎn)換后的數(shù)據(jù);支持IEEE802.15.4協(xié)議規(guī)范,可以無線傳輸;作為傳感器采集節(jié)點(diǎn)的核心處理器,CC2530的功耗較低;支持AES加密,保障數(shù)據(jù)傳輸?shù)陌踩?;帶有兩路RS232接口、3個(gè)計(jì)數(shù)器,為傳感器數(shù)據(jù)通信提供了豐富的接口[3]。ZigBee核心板電路如圖2所示。
傳感器接口模塊采集多個(gè)傳感器的數(shù)據(jù),各個(gè)傳感器模塊的供電電壓有所不同,一般為 3.3 V、5 V和 9 V,CC2530的供電電壓采用3.3 V供電,因此電源及電源管理模塊需要提供多個(gè)不同級別的電壓。電源及電源管理電路如圖3所示。
從抗干擾角度來看,電源部分的脈沖干擾是最嚴(yán)重的,因此在設(shè)計(jì)電源模塊時(shí)還要考慮這個(gè)問題,將數(shù)字電源/數(shù)字地與模擬電源/模擬地隔離,防止干擾。
為了降低傳感模塊的功耗,當(dāng)有的傳感節(jié)點(diǎn)不需要采集數(shù)據(jù)時(shí),電源管理模塊在控制器的作用下斷開部分傳感器模塊的供電電源,降低系統(tǒng)功耗,保障節(jié)點(diǎn)較長時(shí)間工作。本文選用CD4066[4]模擬開關(guān)來實(shí)現(xiàn)對電源通斷的控制。CD4066是一種雙向模擬開關(guān),在集成電路內(nèi)有4個(gè)獨(dú)立的能控制數(shù)字及模擬信號傳送的模擬開關(guān)。每個(gè)開關(guān)有一個(gè)輸入端和一個(gè)輸出端,它們可以互換使用,還有一個(gè)選通控制端,當(dāng)選通端為高電平時(shí),開關(guān)導(dǎo)通;當(dāng)選通端為低電平時(shí),開關(guān)截止。
在實(shí)際電路應(yīng)用中,模擬信號采集是一個(gè)重要環(huán)節(jié)。通用模擬信號處理接口能夠處理一些標(biāo)準(zhǔn)電壓、電流和電阻信號,同時(shí)能夠?qū)⑽⑿盘柤安罘中盘栠M(jìn)行精確的轉(zhuǎn)換。模擬傳感器接口電路如圖4所示。
圖4 模擬傳感器接口電路
由于電流和電阻信號不能直接進(jìn)行A/D轉(zhuǎn)換,因此需要先將電流和電阻信號轉(zhuǎn)換成電壓信號再輸入到A/D轉(zhuǎn)換中。對于高于3.3 V的輸入電壓需要經(jīng)過精密電阻分壓,只要保證ADS1115[5]的輸入電壓不高于3.3 V即可。
本設(shè)計(jì)選取TI公司生產(chǎn)的ADS1115芯片,這款芯片內(nèi)部集成了可編程放大器和16位的A/D轉(zhuǎn)換,低電流功耗,低漂移電壓,4個(gè)單端或2個(gè)差分輸入,可檢測的電壓范圍為-0.3~+0.3V,可編程的增益為2/3,1,2,4,8或16。其輸出采用I2C接口與ZigBee連接,ZigBee通過I/O口模擬I2C接口與其通信,節(jié)約了ZigBee的I/O端口。
開關(guān)量輸入信號通常夾雜著眾多噪聲,需要進(jìn)行信號的隔離,以減少外部的干擾。采用光耦器件采集開關(guān)量信號接口電路簡單,電平轉(zhuǎn)換方便,也很好地解決了輸入與輸出的電氣隔離問題。電路結(jié)構(gòu)如圖5所示。
圖5 開關(guān)型傳感器接口電路
數(shù)字接口主要針對3.3 V與5 V混合邏輯電壓系統(tǒng)以及3.3 V的數(shù)字信號。目前仍有很多5 V電源供電的器件可用。為了使該系統(tǒng)能夠與5 V器件通信,同時(shí)CC2530采用3.3 V供電,所以I/O口的最大邏輯電平也是3.3 V。只有能夠工作于3.3 V的器件才能直接與其I/O口直接相接,進(jìn)行無誤的通信。因此采用何種處理才能保證在與5 V器件或模塊接口通信時(shí)的完整性與準(zhǔn)確性,也是混合電壓系統(tǒng)中的主要問題,因此在接口方面需要做出處理。
針對以上問題,目前有很多解決方法:電阻分壓、三級管單向轉(zhuǎn)換方法,在可靠性、穩(wěn)定性方面存在不足;采用FPGA/CPLD進(jìn)行電平轉(zhuǎn)換,在成本方面受到限制。本設(shè)計(jì)則采用美信的MAX3377完成3.3 V與5 V之間的邏輯電平轉(zhuǎn)換。
MAX3377是雙向低電壓邏輯電平轉(zhuǎn)換器,在3 V與5 V之間轉(zhuǎn)換通信速度高達(dá)8 Mb/s,具有三態(tài)引腳(Three-State),當(dāng)為低有效電平時(shí)消耗電流為 1μs,靜態(tài)電流典型值為130μA,整體功耗比較低。數(shù)字型傳感器接口電路如圖6所示。
圖6 數(shù)字型傳感器接口電路
系統(tǒng)的軟件設(shè)計(jì)主要是ZigBee傳感模塊的軟件設(shè)計(jì),這里的ZigBee模塊需要在程序中配置為終端節(jié)點(diǎn)或路由器類型。程序采用最新的TI 2007版ZigBee協(xié)議棧,該協(xié)議棧可很好地支持網(wǎng)絡(luò)的自組織和自愈合。相對于目前使用較多的TI 2006版ZigBee協(xié)議棧,07版協(xié)議棧在06版協(xié)議?;A(chǔ)上主要增加了支持多密鑰高安全性、支持大型網(wǎng)絡(luò)、支持分割傳輸?shù)忍匦?。傳感模塊程序在已有協(xié)議?;A(chǔ)上,還需增加用戶自己的應(yīng)用程序。
A/D數(shù)據(jù)采集是實(shí)現(xiàn)模擬型傳感器信息獲取的關(guān)鍵所在。該模塊負(fù)責(zé)將采集到的傳感器信息轉(zhuǎn)化為數(shù)字信號[6]。
A/D數(shù)據(jù)采樣主要完成如下的幾個(gè)功能:
(1)初始化。該工作主要完成對一些物理器件的引腳功能、工作模式等進(jìn)行預(yù)定義。
(2)A/D轉(zhuǎn)換。通過軟件啟動(dòng)模數(shù)轉(zhuǎn)換芯片,完成模擬信號到數(shù)字信號的轉(zhuǎn)換。
(3)數(shù)據(jù)接收和發(fā)送。詳細(xì)操作步驟如下:
①需采集的通道地址通過I2C接口寫入ADS1115的相應(yīng)寄存器,應(yīng)用設(shè)定的波特率來設(shè)置接口傳輸速度;
②啟動(dòng)ADS1115進(jìn)行數(shù)據(jù)采樣和轉(zhuǎn)換,數(shù)據(jù)傳輸方式為I2C發(fā)送模式;
③當(dāng)數(shù)據(jù)發(fā)送完畢后,通過I2C設(shè)置ADS1115,結(jié)束數(shù)據(jù)傳輸,進(jìn)入空閑模式并等待指令。
數(shù)字量和開關(guān)量按照一定的通信協(xié)議與ZigBee進(jìn)行通信,最后將采集的數(shù)據(jù)按照自定義的數(shù)據(jù)傳輸幀格式解析、處理接收到的數(shù)據(jù),按照自定義的數(shù)據(jù)傳輸幀格式構(gòu)造待發(fā)送數(shù)據(jù)給ZigBee協(xié)調(diào)器。
根據(jù)ZigBee節(jié)點(diǎn)的類型、編號、功能指令、操作類型等參數(shù),定義相應(yīng)的數(shù)據(jù)包格式。在ZigBee傳感模塊與ZigBee協(xié)調(diào)器通信時(shí),按照統(tǒng)一的指令傳輸數(shù)據(jù)。通信協(xié)議指令格式如表1所示。
表1 通信協(xié)議指令包格式
系統(tǒng)的測試借助上位機(jī)測試平臺和ZigBee協(xié)調(diào)器節(jié)點(diǎn)。首先,將ZigBee傳感模塊與ZigBee協(xié)調(diào)器建立連接;然后,通過上位機(jī)串口軟件對相應(yīng)的ZigBee節(jié)點(diǎn)發(fā)送控制指令;最后,對協(xié)調(diào)器接收的信息進(jìn)行實(shí)時(shí)解析。測試結(jié)果如表2和表3所示。
表2 ZigBee網(wǎng)絡(luò)節(jié)點(diǎn)信息
表3 測試結(jié)果
指令00 00 FE 00用于獲取ZigBee網(wǎng)絡(luò)中節(jié)點(diǎn)信息。
本文以傳感器的輸出信號類型為分類依據(jù),基于該信號接口分類給出了基于ZigBee的傳感器接口模塊的硬件設(shè)計(jì),并實(shí)際設(shè)計(jì)實(shí)現(xiàn)了模擬型、開關(guān)型以及數(shù)字I/O型模塊,給出了相應(yīng)的硬件選型;進(jìn)行了接口模塊的軟件設(shè)計(jì)。
本文設(shè)計(jì)的ZigBee傳感模塊解決了開關(guān)型、模擬型、數(shù)字型傳感器與ZigBee之間的通信接口問題,將傳感器與ZigBee技術(shù)結(jié)合起來,實(shí)現(xiàn)了對各種信息的采集和控制。
[1]ITU Internet Reports 2005:The Internet of Things[R].Geneva:International Telecommunication Union,2005.
[2]鄔賀銓.物聯(lián)網(wǎng)的應(yīng)用與挑戰(zhàn)綜述[J].重慶郵電大學(xué)學(xué)報(bào),2010,22(5),526-531.
[3]高守瑋,吳燦陽.ZigBee技術(shù)實(shí)踐教程[M].北京:北京航空航天大學(xué)出版社,2009.
[4]Texas Instruments Incorporated.CD4066 CMOS quad bilateral switch[EB/OL].[2003-09-10].http://www.ti.com.cn/cn/lit/ds/symlink/cd4066b.pdf.
[5]Texas Instruments Incorporated.ADS1115 data sheet[EB/OL].[2009-10-08].http://www.ti.com.cn/cn/lit/ds/symlink/ads1115.pdf.
[6]翟羽佳,吳仲城,沈春山.基于 STM32的傳感器接口模塊的設(shè)計(jì)[J].電子技術(shù),2011(8):57-60.