新聞中心

EEPW首頁 > 設(shè)計應(yīng)用 > 基于Arduino的ZigBee無線傳感節(jié)點的硬件設(shè)計

基于Arduino的ZigBee無線傳感節(jié)點的硬件設(shè)計

作者: 時間:2016-10-10 來源:網(wǎng)絡(luò) 收藏

摘要:針對傳統(tǒng)的成本高、可擴展性差等不足,提出一種基于開源平臺及協(xié)議的系統(tǒng)??紤]到系統(tǒng)設(shè)計需求,首先給出該傳感節(jié)點系統(tǒng)的總體框架,然后對系統(tǒng)中的處理器模塊、傳感器模塊、無線通信模塊、電源模塊的設(shè)計給出了具體的方案。該硬件系統(tǒng)能夠?qū)崿F(xiàn)高性能、低成本、低功耗的無線環(huán)境數(shù)據(jù)采集,較傳統(tǒng)方法更具有研究和應(yīng)用價值。

本文引用地址:http://butianyuan.cn/article/201610/306087.htm

關(guān)鍵詞:無線傳感節(jié)點;硬件;;

無線傳感器網(wǎng)絡(luò)是物聯(lián)網(wǎng)底層網(wǎng)絡(luò)的重要技術(shù)形式,它綜合了傳感器技術(shù)、信息處理技術(shù)和無線通信等技術(shù)。無線傳感器網(wǎng)絡(luò)節(jié)點作為無線傳感網(wǎng)絡(luò)的基本組成部分,它的性能優(yōu)劣及實用性關(guān)系到整個網(wǎng)絡(luò)的工作效率和工作成本,因此高性能低成本的無線傳感節(jié)點成為無線傳感網(wǎng)絡(luò)設(shè)計的關(guān)鍵。目前傳統(tǒng)的無線傳感節(jié)點主要有兩種類型:一種是封裝好直接購買可用的節(jié)點如Micaz、TelosB節(jié)點;另一種是在特定芯片如CC2430、CC2530上自主設(shè)計制作的節(jié)點。前一種節(jié)點性能佳,但價格較貴且可定制性差,后一種節(jié)點,雖價格便宜,但開發(fā)工作量大,且可擴展的接口少。

是近年來快速流行起來的一種控制器,其硬件電路的核心是一個AVR芯片,整塊電路板在功能上與單片機開發(fā)板類似,但是Arduino板要比單片機開發(fā)板在功能上強大很多。是一種短距離無線通信技術(shù),它可以很好地解決物聯(lián)網(wǎng)中最后100 m的通信問題,并且已經(jīng)廣泛地應(yīng)用于智能交通、智能醫(yī)療、智能家居和工業(yè)自動化當中。本文針對現(xiàn)有的無線傳感網(wǎng)絡(luò)節(jié)點的發(fā)展現(xiàn)狀,從硬件角度著手,設(shè)計了一種基于Arduino的ZigBee無線傳感節(jié)點,它將Arduino軟硬件開源、接口豐富、容易上手、價格低廉、可根據(jù)應(yīng)用需求實現(xiàn)個性化系統(tǒng)設(shè)計等特性與ZigBee技術(shù)傳輸延時較低、復(fù)雜度低、容量高、功率消耗極低、成本低廉等特性結(jié)合到一起,實現(xiàn)更具有實用性和更適用于物聯(lián)網(wǎng)的無線傳感網(wǎng)絡(luò)節(jié)點。

1 硬件整體設(shè)計

無線傳感網(wǎng)絡(luò)節(jié)點硬件電路包括處理器模塊、傳感器模塊、無線通信模塊及電源模塊。其中,電源部分為整個節(jié)點提供能量,其余3個均是耗能模塊。本文采用Arduino Uno R3功能板的電路作為硬件設(shè)計的基礎(chǔ)電路板,并結(jié)合實際需求在該電路基礎(chǔ)上進行組成部件的刪減和功能模塊的增加。Arduino Uno R3是Arduino USB接口系列的最新版本。其上的所有參考設(shè)計均是基于AVR芯片ATmega328的,二者的管腳是兼容的。

節(jié)點的各個模塊中,處理器模塊采用單片機ATmega328P—PU作為CPU對傳感數(shù)據(jù)進行采集、處理和傳輸,單片機ATmega16U2-MU作為轉(zhuǎn)換芯片實現(xiàn)USB接口數(shù)據(jù)與處理器串口數(shù)據(jù)的對接。傳感器模塊設(shè)為接口模式,沒有直接選定傳感器并將該傳感器連接到電路中。傳感器模塊接口包括數(shù)字信號接口和模擬信號接口。無線通信模塊采用Digi公司生產(chǎn)的XBee ZB模塊,XBee ZB模塊通過RX、TX串口與單片機進行數(shù)據(jù)通信。電源模塊采用電池供電和USB供電協(xié)作模式,為了避免電池供電和USB供電同時接入電路產(chǎn)生沖突,采用 FDN34 0P場效應(yīng)管來實現(xiàn)電池供電和USB供電模式的自動切換。此外,節(jié)點還通過硬件輔助的形式控制傳感模塊和無線通信模塊的工作狀態(tài),以降低節(jié)點的工作能耗。無線傳感網(wǎng)絡(luò)節(jié)點硬件系統(tǒng)結(jié)構(gòu)框圖如圖1所示。

2 模塊設(shè)計

2.1 處理器模塊

節(jié)點硬件系統(tǒng)處理器模塊的元器件選型主要是基于Arduino Uno R3功能板。Arduino Uno R3電路板的主控芯片是ATmega328P—PU,USB轉(zhuǎn)串口芯片是ATmega16U2-MU。單片機ATmega328P—PU是一款高性能低功耗的AVR微控制器,它的工作電壓是1.8~5.5 V,片上包含32 kB的Flash、1 kB的EEPROM以及2 kB的SRAM,有6個模擬輸入接口,有14個數(shù)字輸入輸出接口且數(shù)字接口中有6個PWM模擬輸出接口,晶振頻率是16 MHz。這款單片機能夠完全滿足傳感節(jié)點的處理器需求。該單片機的外圍電路中,需要在5 V電源與管腳reset之間連接一個110歐姆的電阻,因為Arduino Uno R3提供自動復(fù)位設(shè)計,可以通過在主機上運行相應(yīng)程序進行自動復(fù)位,但本節(jié)點的復(fù)位模式設(shè)計為外部電路觸發(fā)復(fù)位模式,所以需在管腳reset位置進行電路修改。另外,需要在ATmega328P—PU的XTAL1、XTAL2引腳之間接尺寸小、可靠性能佳的陶瓷振蕩子CSTCE16MOV53-R0,而不是接普通的16 M晶振。負責(zé)USB一串口數(shù)據(jù)轉(zhuǎn)換功能的AVR芯片ATmega16U2-MU內(nèi)置有支持USB2.0的USB控制裝置,它支持數(shù)據(jù)的全速轉(zhuǎn)換,有控制、批量、中斷以及同步這4種工作模式。ATmega 16U2-MU外接16 MHz晶振,以此給芯片的內(nèi)部PLL提供參考時鐘,使得內(nèi)部PLL可以為USB全速轉(zhuǎn)換提供需要的48 MHz±0.25%參考時鐘。ATmega16U2-MU的PD2(RXD1)引腳接單片機ATmega3 28P—PU的TXD輸出串口,PD3(TXD1)接單片機ATmega 328P—PU的RXD輸入串口,以提供TTL電壓水平的串口收發(fā)信號。另外,ATmega16U2-MU芯片的D-引腳接USB接口的數(shù)據(jù)線D-,D+ 引腳接USB接口的數(shù)據(jù)線D+。

2.2 傳感器模塊

為了增強無線傳感節(jié)點的復(fù)用性,傳感器模塊電路設(shè)計中,未包含傳感器元件,而是采用接口形式連接傳感器元件,并為其提供工作電路。物聯(lián)網(wǎng)中常用的傳感器元件按輸出信號類型可分為模擬傳感器和數(shù)字傳感器,因此節(jié)點傳感器接口需包含這兩種數(shù)據(jù)接口。節(jié)點傳感器數(shù)字信號接口和模擬信號接口直接由處理器模塊核心芯片ATmega328P—PU的數(shù)字輸入輸出口和模擬輸入口引出。ATmega328P—PU共有14個數(shù)字輸入輸出接口,本節(jié)點的設(shè)計中,TXD、 RXD數(shù)字接口作串口,有兩路數(shù)字接口作串口狀態(tài)燈控制口,有一路數(shù)字接口作無線通信模塊工作模式控制口,有一路數(shù)字接口作傳感器工作模式控制口,還有一路數(shù)字接口作電源能量監(jiān)測控制口,因此節(jié)點傳感器模塊中的傳感器數(shù)字接口共有7個,模擬數(shù)字接口共有6個。常用的傳感器模塊如DHT11溫濕度模塊、 HX711稱重傳感器模塊、BH1750FVI光照度傳感器模塊等,均可通過該通用接口與節(jié)點進行連接。

為了降低無線傳感節(jié)點的能耗,本節(jié)點設(shè)計傳感器數(shù)據(jù)進行周期性采集,即傳感器在采集一段時間的環(huán)境信息后進入休眠狀態(tài),再經(jīng)過固定的休眠時間后返回到工作狀態(tài),從而降低傳感器元件對電源能量的消耗。這里的傳感器工作模式切換設(shè)計為單片機接口控制傳感器模塊電源通斷模式。單片機接口控制電源通斷功能通過三極管S8550驅(qū)動電路作開關(guān)、繼電器HK4100F作負載來實現(xiàn)。三極管S8550是一種常用的普通三極管,它是一種低電壓、大電流、小信號的PNP型硅材料三極管。繼電器HK4100F是一種價格低廉的6管腳電子控制器件,實際上是一種利用較小電流來控制較大電流的“自動開關(guān)”,它能夠在電路中提供自動調(diào)節(jié)、安全保護和轉(zhuǎn)換電路等功能,主要由鐵芯、線圈、銜鐵和觸點簧片組成。當電路在線圈兩端加上一定電壓后.線圈會流過一定的電流,從而產(chǎn)生電磁效應(yīng),于是銜鐵在電磁吸引力的作用下克服彈簧的反彈拉力與鐵芯吸合,從而使繼電器的內(nèi)部動觸點與靜觸點(常開觸點)導(dǎo)通;當線圈兩端斷電后,線圈的電磁吸引力消失,銜鐵會在彈簧的反作用力下回到原來的位置,從而使繼電器的內(nèi)部動觸點與原來的靜觸點(常閉觸點)導(dǎo)通,由此實現(xiàn)了外部電路的導(dǎo)通和切斷。

單片機接口控制傳感器模塊電源通斷具體的電路連接情況為,三極管S8550的基極經(jīng)4.7 kΩ電阻與單片機ATmega328P—PU的一路數(shù)字接口連接,發(fā)射極與繼電器HK4100F內(nèi)部線圈的一個外部引腳連接,集電極接地。繼電器 HK4100F常閉觸點的外部引腳接地,常開觸點的外部引腳接傳感器的工作電源正極。當單片機引腳輸出高電平時,三極管截止,繼電器線圈兩端無電位差,繼電器銜鐵釋放,常閉觸點導(dǎo)通,即傳感器電源關(guān)閉;當單片機引腳輸出低電平時,三極管飽和導(dǎo)通,繼電器銜鐵吸合,常開觸點閉合,即傳感器電源開啟。三極管截止瞬間,繼電器線圈中的電流無法突變?yōu)榱悖瑑啥藭a(chǎn)生一個電壓較高的感應(yīng)電動勢,有可能會擊穿三極管,因此需要在繼電器線圈兩端并聯(lián)一個常見的反向耐電壓為100 V的小信號二極管1N4148,以釋放瞬間感應(yīng)電動勢,如此,既保護了三極管,也消除了感應(yīng)電動勢對其他電路的干擾。單片機接口控制HK4100F線圈通斷電路原理如圖2所示。

2.3 無線通信模塊

本節(jié)點的無線通信模塊采用的是美國Digi公司生產(chǎn)的XBee ZB模塊,該模塊按照ZigBee協(xié)議設(shè)計并把ZigBee協(xié)議內(nèi)置進片內(nèi)Flash,其內(nèi)部包含有全部的工作外圍電路以及完整的ZigBee協(xié)議棧,雖然體型小,但卻是一個功能完善的ZigBee收發(fā)器(具備接收器和發(fā)射器),它的工作模式是雙向半雙工式,可交替地發(fā)送或接收數(shù)據(jù)昀。XBeeZB模塊只需少量的功耗便可進行可靠的遠端數(shù)據(jù)傳輸。該模塊的室內(nèi)傳輸距離為40米,室外傳輸距離為120米,發(fā)射功率為3 dBm,具有AT和API兩種配置模式且擁有專門的PC端配置軟件X—CUT,可直接在PC端對模塊進行發(fā)射功率、信道等網(wǎng)絡(luò)拓撲參數(shù)的配置,使用起來簡單快捷。XBee ZB模塊通過DOUT和DIN與處理器模塊中的單片機串口進行通信,DOUT接單片機ATmega32 8P—PU的RXD引腳,DIN接TXD引腳。該模塊的工作模式共有5種,分別是空閑模式、發(fā)送模式、接收模式、命令模式和睡眠模式。當XBee ZB模塊沒有接收或發(fā)送數(shù)據(jù)時,模塊進入空閑模式;當串行接收緩沖區(qū)內(nèi)的串行數(shù)據(jù)已接收并打包準備好時,模塊自動退出空閑模式準備發(fā)送數(shù)據(jù),進入發(fā)送模式;當天線接收到一個合法的RF數(shù)據(jù)包時,該數(shù)據(jù)將會轉(zhuǎn)送到串口發(fā)射緩沖區(qū)內(nèi),模塊進入接收模式;當命令模式字符序列形成時,模塊進入命令模式;當接收到休眠觸發(fā)時,模塊進入睡眠模式,XBee ZB僅支持終端節(jié)點睡眠模式觸發(fā),且有管腳休眠和周期休眠兩種觸發(fā)模式。睡眠模式可大大降低模塊的能耗,XBee ZB模塊的管腳休眠觸發(fā)機制是:當休眠控制管腳Sleep_RQ處于高電平狀態(tài)時,模塊開啟睡眠模式;管腳處于低電平狀態(tài)時,模塊關(guān)閉睡眠模式。本節(jié)點設(shè)計使用單片機數(shù)字輸出口控制來實現(xiàn)XBeeZB模塊的正常工作模式與睡眠模式之間的切換,電路連接上,ATmega328P—PU的一路數(shù)字接口引腳與 XBee ZB模塊的Sleep_RQ管腳連接以控制Sleep_RQ管腳的電平狀態(tài),再以軟件程序進行輔助,設(shè)置XBee ZB模塊進行周期性休眠,從而降低節(jié)點無線通信模塊的能耗。節(jié)點無線通信模塊電路連接框圖如圖3所示。

2.4 電源模塊

節(jié)點正常工作所需要的電壓有5 V和3.3 V。Arduino Uno R3電路中有3種供電方式,并且能夠自動選擇供電方式,這3種供電方式分別是:外部直流電源通過電源插座供電、USB接口供電以及電池連接電源連接器的 GND和VIN引腳供電,其中,電源插座供電和電池供電的輸入電壓范圍為7~12 V。本節(jié)點在Arduino Uno R3供電原理基礎(chǔ)上選擇鋰電池供電和USB接口供電兩種模式共同提供5 V工作電壓,節(jié)點電路的另一路工作電壓3.3 V則由穩(wěn)壓管LP2985—33DBVR通過對5 V電壓進行轉(zhuǎn)換獲得。電源模塊電路中5 V電壓供電方式的自動選擇通過場效應(yīng)管FDN340P實現(xiàn),F(xiàn)DN340P是一種P溝道增強型絕緣柵場效應(yīng)晶體管,具有輸入電阻高、噪聲小、功耗低、動態(tài)范圍大、無二次擊穿現(xiàn)象、安全工作區(qū)域?qū)挼忍攸c。節(jié)點電源供電電路中,一路鋰電池輸入VIN連接到穩(wěn)壓管NCP1117ST50T3G的輸入端,另一路經(jīng)二分之一分壓電路分壓后連接到電壓比較器的正輸入端V+,電壓比較器的負輸入端V-連接的參考電壓為3.3 V。電壓比較器的輸出Vo與場效應(yīng)管FDN340P的柵極連接,USB電源線與場效應(yīng)管FDN340P的漏極相連接,場效應(yīng)管的源極作為電壓輸出端并與5 V電源線連接。當電源模塊僅有鋰電池供電時,5 V電源直接由穩(wěn)壓管NCP1117ST50T3G輸出;當電源模塊僅有USB供電時,V+V-,Vo輸出高電位,F(xiàn)DN340P的柵極和源極之間的電位差為0,場效應(yīng)管關(guān)斷,USB供電截止,僅鋰電池供電。另外,USB電源線信號并不與FDN340P場效應(yīng)管的漏極直接連接,而是在二者之間連接了一個自恢復(fù)保險絲MF—MSMF050—2(500mA),MF—MSMF050—2是一種可重置的保險絲,它能夠為電路提供過電保護,當通過保險絲的電流超過500 mA時,保險絲斷開連接,從而保護了USB電路。電源模塊供電電路框圖如圖4所示。

實際應(yīng)用中,節(jié)點的供電電源多是鋰電池,節(jié)點的正常工作依賴于鋰電池,因此電池余量的對實時監(jiān)測就顯得格外重要。本節(jié)點使用DS2438智能鋰電池監(jiān)測芯片作為監(jiān)測鋰電池電池剩余容量的硬件裝置。DS2438為電池組提供了一系列有用的功能,包括有唯一的標識電池組的序列號,有內(nèi)置的數(shù)字溫度傳感器因此電池組不再需要接熱敏電阻,有測

量電池電壓和電流的內(nèi)置A/D轉(zhuǎn)換器,有記錄電池電流流入流出總量的集成電流累加器,有運行時間記錄器,還有40字節(jié)的非易失EEPROM,主要用于儲存電池的一些重要參數(shù)如

電池化學(xué)類型、電池容量、電池充電方式以及電池組裝日期。DS2438芯片能夠自動采集當前電池的充放電狀態(tài)、溫度、電流、電壓以及剩余電量等數(shù)據(jù),并存放到片上存儲器中。本節(jié)點中,DS2438芯片的DQ引腳與單片機的一路數(shù)字接口相連接,當芯片滿足工作條件時,開始進行電池信息采樣,等到DS2438 芯片采樣完成后,單片機再讀取DS2438的片上電流累加寄存器(ICA)中的數(shù)值并進行相應(yīng)的數(shù)據(jù)處理,即可得到無線傳感節(jié)點供電鋰電池的當前剩余電量值。

3 結(jié)束語

節(jié)點設(shè)計實現(xiàn)了以Arduino開源平臺為基礎(chǔ)以ZigBee技術(shù)進行數(shù)據(jù)傳輸?shù)臒o線傳感節(jié)點硬件系統(tǒng)。并分別給出了硬件系統(tǒng)處理器模塊、傳感器模塊、無線通信模塊以及電源模塊各部分的設(shè)計方法,從硬件選型到具體設(shè)計思路都一一作了闡述。該硬件系統(tǒng)具備低能耗、可連接通用傳感器、有電源電壓檢測功能等特點。此設(shè)計方案成本低廉、性能較高、經(jīng)濟適用,符合設(shè)計初衷,且具有良好的應(yīng)用前景,可應(yīng)用于物聯(lián)網(wǎng)中,為監(jiān)測物聯(lián)網(wǎng)環(huán)境參數(shù)提供了高性能低成本的無線傳感節(jié)點設(shè)計方案。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉