新聞中心

EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計應(yīng)用 > 創(chuàng)建經(jīng)濟(jì)實(shí)惠的無線傳感器網(wǎng)絡(luò)

創(chuàng)建經(jīng)濟(jì)實(shí)惠的無線傳感器網(wǎng)絡(luò)

作者: 時間:2018-08-29 來源:網(wǎng)絡(luò) 收藏

背景

本文引用地址:http://butianyuan.cn/article/201808/387972.htm

隨著更經(jīng)濟(jì)實(shí)惠、高度集成的單芯片通用ISM頻帶FSK收發(fā)器的出現(xiàn),加之與嵌入式低成本單片機(jī)單片機(jī)(MCU)的結(jié)合,實(shí)施無線傳感應(yīng)用已成為一種頗具吸引力的選擇方案。

只需將這兩項(xiàng)技術(shù)簡單地結(jié)合在一起,便可構(gòu)造非?;镜腎SM頻帶915 MHz射頻(Radio Frequency,RF)網(wǎng)絡(luò),來監(jiān)控各種數(shù)字和模擬無線,例如遠(yuǎn)程溫度和基本運(yùn)動檢測。

本文將定義一個基本的RF框架,用以實(shí)現(xiàn)對無線傳感器的近實(shí)時監(jiān)控。這一框架可輕松修改,以適應(yīng)其他需要近實(shí)時無線監(jiān)控或控制接口的應(yīng)用系統(tǒng)。

系統(tǒng)說明

RF收發(fā)器簡介

高度集成的RF收發(fā)器(例如RFM生產(chǎn)的用在433、868以及915 MHz ISM頻帶的TRC102)正憑借更經(jīng)濟(jì)實(shí)惠的成本優(yōu)勢得到越來越多的應(yīng)用。這些器件通常具有串行通信接口,可通過SPI或I2C?接口輕松連接到各種嵌入式MCU。

遠(yuǎn)程無鑰門禁(Remote Keyless Entry,RKE)系統(tǒng)中常用的一種無線電調(diào)制方法是振幅鍵控(Amplitude Shift Keying,ASK),即通過改變頻率固定的載波的振幅來傳送數(shù)據(jù)。如果數(shù)據(jù)的編碼方式為最大振幅表示“1”(傳號),零振幅(功率放大器[PA]關(guān)閉)表示“0”(空號),則該調(diào)制方法稱為開關(guān)鍵控(On-Off Keying,OOK)。這些類型的系統(tǒng)常用于單向應(yīng)用。但是,使用此調(diào)制格式可實(shí)現(xiàn)非常簡單且成本較低的收發(fā)器設(shè)計。

RF收發(fā)器解決方案中通常采用的RF調(diào)制方案是使用頻移鍵控(Frequency Shift Keying,F(xiàn)SK)。這是通過在平均頻率(或載波頻率)的任一側(cè)對載波頻率進(jìn)行位移來實(shí)現(xiàn)的。載波在載波頻率一側(cè)的位移量稱為偏差。相對于ASK調(diào)制,F(xiàn)SK調(diào)制具有多種優(yōu)勢。振幅調(diào)制對振幅和噪聲的變化非常敏感,而采用FSK編碼的傳送方案對信號衰減或其他與振幅相關(guān)的干擾的抵御能力更強(qiáng)。

雖然FSK系統(tǒng)的帶寬表面上是從f0– f到f0+ f,但實(shí)際上,帶寬的跨度要大于f0– f到f0+ f的范圍,因?yàn)閮蓚€頻率之間的轉(zhuǎn)移速度會產(chǎn)生額外的頻譜分量。簡而言之,可認(rèn)為FSK調(diào)制是可靠性更高、噪聲更少的傳輸方式。為實(shí)現(xiàn)成功設(shè)計,您需要更深入地了解FSK調(diào)制無線鏈路的需求。圖1顯示了此類FSK調(diào)制信號的典型頻譜。

圖1:FSK調(diào)制信號的典型頻譜

收發(fā)器是既可以發(fā)送又可以接收RF數(shù)據(jù)的器件。可以同時發(fā)送和接收數(shù)據(jù)的收發(fā)器系統(tǒng)稱為全雙工系統(tǒng)。反過來,在一定時間內(nèi)只能發(fā)送或接收的系統(tǒng)稱為半雙工系統(tǒng)。因此,半雙工系統(tǒng)只使用一個載波頻率,且兩個終端共享同一頻率。全雙工系統(tǒng)使用兩個載波頻率,分別稱為上行頻率和下行頻率。在本文中,由于遠(yuǎn)程傳感器單元的流耗限制,我們采用半雙工方法。

晶振精度

FSK調(diào)制收發(fā)器設(shè)計所使用的晶振的精度非常重要。我們的專用FSK系統(tǒng)使用百萬分率(parts per million,ppm)值很低的高精度晶振。晶振的精度越高,發(fā)送與接收頻率的偏移越少,偏差和基帶帶寬也就越小。如今,質(zhì)量較好的晶振的ppm值應(yīng)小于等于40。晶振的ppm值說明了其精度,ppm值越低,晶振的質(zhì)量越好。

圖2顯示了晶振精度對兩個收發(fā)器之間的發(fā)送/接收頻率的影響。晶振的精度越高,基帶濾波器的帶寬就可以配置得越窄,因此從接收器基帶中濾除的無用RF噪聲也就越多。

圖2:晶振精度對兩個收發(fā)器之間的發(fā)送/接收頻率的影響

電路布線注意事項(xiàng)

對于任何RF設(shè)計,在布置印刷電路板(Printed Circuit Board,PCB)時所選擇的關(guān)鍵元件值以及設(shè)計做法是否合理,對確保實(shí)現(xiàn)良好的總體RF性能都起到至關(guān)重要的作用。

強(qiáng)烈建議使用收發(fā)器制造商推薦的PCB布線,因?yàn)樗麄兲峁┑腞F設(shè)計已經(jīng)過測試和驗(yàn)證。從參考晶振位置到FSK收發(fā)器的XTAL輸入引腳的PCB走線應(yīng)盡可能短。對于TRC102收發(fā)器,從天線輸出端到天線饋線的走線也應(yīng)盡可能短。

最后,在PCB上布一排過孔使正反兩面可以連接在一起。放置這些過孔的目的是提供牢固的接地連接以及使電位均衡,以免出現(xiàn)任何可能的自激振蕩。兩個過孔的間距應(yīng)在5-6 mm左右。如果需要提供牢固的接地連接,可以放置更多過孔。

收發(fā)器初始化

在使用任何RF收發(fā)器無線電器件之前,都必須對其進(jìn)行初始化。通常通過向控制接口寫入一系列串行命令來進(jìn)行器件初始化。對這些特定控制寄存器的說明已超出本文范圍,讀者應(yīng)參考所使用的RF收發(fā)器的數(shù)據(jù)手冊中的具體信息。通常,可配置的參數(shù)包括頻帶選擇、基帶頻率濾波器寬度、輸出功率管理控制、數(shù)據(jù)緩沖配置、數(shù)據(jù)傳輸速率以及先進(jìn)先出(First In First Out,F(xiàn)IFO)緩沖器控制。

收發(fā)器工作

收發(fā)器通過將中斷輸出線的電平拉低來向主機(jī)MCU發(fā)出中斷請求。這表示發(fā)生以下事件之一:

發(fā)送(TX)寄存器已準(zhǔn)備好接收下一字節(jié)

接收(RX)FIFO已達(dá)到預(yù)編程的位數(shù)

上電復(fù)位(Power on Reset,POR)確認(rèn)

發(fā)生了FIFO溢出/TX寄存器下溢

主機(jī)MCU收到來自收發(fā)器的中斷請求后,會通過讀取收發(fā)器的狀態(tài)位來確定中斷源。然后,MCU會決定所需的下一個串行命令以繼續(xù)通信或使收發(fā)器斷電。

數(shù)據(jù)緩沖

大多數(shù)收發(fā)器中都含有一個FIFO緩沖器。如果使能數(shù)據(jù)FIFO,則收到的數(shù)據(jù)流在時鐘控制下進(jìn)入16位緩沖器。收發(fā)器只在同步模式電路檢測到有效數(shù)據(jù)包后才開始填充FIFO。這可防止隨機(jī)錯誤數(shù)據(jù)裝入FIFO。FIFO達(dá)到預(yù)定義位數(shù)后,器件的中斷輸出引腳上將發(fā)出緩沖器已滿信號。此引腳上的邏輯電平“1”表示RX FIFO中的位數(shù)已達(dá)到預(yù)編程限制。收發(fā)器產(chǎn)生中斷的電平可通過FIFO和復(fù)位命令設(shè)置。有關(guān)這些配置寄存器的詳細(xì)信息,請參見器件數(shù)據(jù)手冊。

對于我們的應(yīng)用,此值已設(shè)置為8位(一個字節(jié)),這樣在發(fā)送/接收過程中可以將數(shù)據(jù)逐字節(jié)裝入FIFO。這只適用于通過配置設(shè)置命令使能的FIFO模式。SPI緩沖器的讀取操作會使RX FIFO復(fù)位已接收位數(shù),并使中斷輸出引腳恢復(fù)到邏輯零電平。

RF協(xié)議選擇

對于本設(shè)計,我們評估了各種當(dāng)前可用的RF通信協(xié)議。ZigBee?、Microchip的MiWi?和MiWi點(diǎn)對點(diǎn)(Peer to Peer,P2P)等協(xié)議均已經(jīng)過評估。但是,由于應(yīng)用需要近實(shí)時的特性,因此使用了非?;镜臅r分多址(Time Divisional Multi Access,TDMA)協(xié)議方案(見圖3)。通過將幀中第一個時隙定義為主機(jī)控制器發(fā)出的標(biāo)識,我們可以很容易地確保在整個傳感器監(jiān)控系統(tǒng)中實(shí)現(xiàn)非常精確的延時。

圖3:TDMA系統(tǒng)

傳感器單元

對于我們的系統(tǒng),我們已決定在每個數(shù)據(jù)幀中使用10個時隙,第一個時隙作為幀起始,另外九個用于多個遠(yuǎn)程傳感器。這樣,我們最多可以近實(shí)時地監(jiān)控九個傳感器。我們將主機(jī)MCU的預(yù)定義時隙設(shè)置為每秒10個,即每幀持續(xù)100 ms。這樣,我們便能夠以每秒10次的速率(或10 Hz)從各個傳感器提取RF數(shù)據(jù)。通過增加每秒時隙數(shù)可輕松實(shí)現(xiàn)更快的輪詢方案,但這樣會影響所需數(shù)據(jù)速率以及基帶濾波器帶寬間距。

硬件

傳感器單元上使用的PIC16F688 8位閃存MCU實(shí)際上每20 ms測量一次原始模擬傳感器輸入(每秒50次采樣)。然后,它每隔100 ms會將最后五次采樣一次發(fā)送給主機(jī)控制器。這樣可獲得更高的傳感器采樣率,而不會對系統(tǒng)的復(fù)雜性產(chǎn)生明顯影響。這種數(shù)據(jù)緩沖方案還有助于降低傳感器的總功耗要求,因?yàn)榻邮蘸桶l(fā)送RF數(shù)據(jù)包消耗了大部分功率。MCU單元在大多數(shù)時間都處于低功耗休眠狀態(tài)。它會每隔20 ms喚醒一次來對模數(shù)轉(zhuǎn)換器(Analog-to-Digital Converter,ADC)或數(shù)字I/O引腳進(jìn)行采樣,然后每隔100 ms進(jìn)行一次批量RF傳送(大約持續(xù)2 ms)。

固件

PIC16F688 MCU使用內(nèi)部基于RC的振蕩器來確保從休眠和低功耗狀態(tài)快速啟動。為簡化軟件,采用了基本狀態(tài)機(jī)軟件流,并將MCU配置為每隔20 ms喚醒一次。這些狀態(tài)中的一個被分配為等待主機(jī)控制器的RF幀起始(Start Of Frame,SOF)標(biāo)識的傳輸。此SOF標(biāo)識的接收操作用于將遠(yuǎn)程傳感器單元與精度更高的主機(jī)單元同步,該主機(jī)單元采用晶振進(jìn)行USB通信。如果在至少150 ms內(nèi)未檢測到SOF標(biāo)識,則遠(yuǎn)程傳感器將進(jìn)入低功耗非活動狀態(tài),在此狀態(tài)下,單元每秒喚醒一次來搜索SOF標(biāo)識。這樣主機(jī)便可通過打開或關(guān)閉SOF標(biāo)識的傳輸,只在需要時輪詢遠(yuǎn)程傳感器。

如果需要同時監(jiān)控更多傳感器,可以輕松地將這個非?;镜膮f(xié)議方案擴(kuò)展至允許更多時隙。但總是需要在各個傳感器單元的常規(guī)反應(yīng)時間(采樣傳感器)與總功耗預(yù)算之間進(jìn)行權(quán)衡。此協(xié)議方案可進(jìn)行修改以滿足系統(tǒng)以及可用電源的特定需求,例如為每個遠(yuǎn)程傳感器供電的電池尺寸以及預(yù)期使用壽命。

主機(jī)控制器單元

對于主機(jī)控制器,我們選擇了PIC18F14K50 8位閃存MCU,它是小型20引腳封裝形式的全速USB 2.0器件。選擇此器件的原因是其成本低廉,并且我們希望主機(jī)控制器通過USB端口直接與任何PC連接,以報告有關(guān)系統(tǒng)中每個遠(yuǎn)程傳感器狀態(tài)的近實(shí)時信息。也可以使用其他備用接口選項(xiàng)。主機(jī)單元由USB端口供電,然后以人機(jī)接口設(shè)備(Human Interface Device,HID)類USB設(shè)備的形式注冊到PC。

硬件

使用PIC18F14K50 MCU,實(shí)際的硬件設(shè)計與遠(yuǎn)程傳感器單元非常類似。使用相同的RF收發(fā)器設(shè)計,但將PIC16F688 MCU換成PIC18F14K50 MCU,以提供所需的USB接口功能。此單元需要持續(xù)供電,用作簡化的TDMA系統(tǒng)中的主節(jié)點(diǎn)。

固件

主機(jī)控制器上的固件包含配置為HID類的Microchip標(biāo)準(zhǔn)USB協(xié)議棧;對于遠(yuǎn)程傳感器單元使用相似的收發(fā)器初始化和數(shù)據(jù)傳輸程序;使用一臺非?;镜臓顟B(tài)機(jī)來控制RF無線電設(shè)備與PC間的數(shù)據(jù)傳送。如果使用運(yùn)行MS Windows?的PC,由于操作系統(tǒng)的多任務(wù)性質(zhì),無法始終保證時序精確。此外,我們不希望PC圖形用戶界面(Graphical User Interface,GUI)軟件過于復(fù)雜。因此,使用PIC18F14K50作為RF遠(yuǎn)程傳感器單元與PC GUI應(yīng)用程序之間的數(shù)據(jù)緩沖器。PIC? MCU用于保持TDMA時隙,以便在為PC緩沖采樣數(shù)據(jù)時實(shí)現(xiàn)同步。PC應(yīng)用程序已配置為每隔100 ms輪詢一次USB HID設(shè)備,以獲取任何可用的數(shù)據(jù)。在每個時隙/單元中增加了一個狀態(tài)/控制字節(jié),PC應(yīng)用程序可輕松確定是否有新的傳感器數(shù)據(jù)可用于屏幕更新。PIC18F14K50上的傳感器數(shù)據(jù)緩沖器已配置為可處理多個RF數(shù)據(jù)包,以防PC應(yīng)用程序沒有及時讀取可用數(shù)據(jù)。

PC GUI軟件

對于本應(yīng)用,傳感器數(shù)據(jù)通過GUI應(yīng)用程序內(nèi)的進(jìn)度條顯示,并且可以輕松記錄以對遠(yuǎn)程傳感器進(jìn)行數(shù)據(jù)跟蹤。軟件的開發(fā)平臺為Microsoft的Visual C#。軟件可作為多個無線遠(yuǎn)程傳感器單元實(shí)時行為的可視監(jiān)控器,顯示從每個無線傳感器收到的實(shí)時數(shù)據(jù)。GUI通過USB HID類函數(shù)連接到主機(jī)控制器來輪詢可用數(shù)據(jù)或控制系統(tǒng)行為,例如啟動RF輪詢、停止RF輪詢和請求單次數(shù)據(jù)捕獲等。

各種傳感器類型

確定基本的RF傳感器框架后,實(shí)際的RF遠(yuǎn)程傳感器可以是從基本的溫度監(jiān)控器到加速(模擬或數(shù)字)監(jiān)控器、數(shù)字輸入(高/低電平檢測)以及模擬電壓監(jiān)控(通過ADC轉(zhuǎn)換為數(shù)字值)中的任何一個,甚至是基本的數(shù)字輸出控制信號。通過這個簡化的TDMA輪詢方案,簡單的RF框架還允許使用各種不同類型的遠(yuǎn)程傳感器。

為傳感器單元配對

每個傳感器提供的信息都可包括一個惟一標(biāo)識符、一個傳感器類型指示符和原始傳感器數(shù)據(jù)測量值。使用每個傳感器單元的惟一標(biāo)識符有助于將傳感器單元與主機(jī)控制器配對。主機(jī)標(biāo)識器可以向?qū)⒅甘灸男r隙可用的傳感器發(fā)送各種控制命令,甚至從系統(tǒng)中移除傳感器。主機(jī)控制器還可以發(fā)送組標(biāo)識符,這樣它將只輪詢與該特定傳感器組配對的傳感器。遺憾的是,這已超出本文范圍,但絕對可實(shí)現(xiàn)極其靈活易用的遠(yuǎn)程。

安全增強(qiáng)功能

如果有人進(jìn)行竊聽并發(fā)送可對整個系統(tǒng)的完整性造成負(fù)面影響的虛假傳感器數(shù)據(jù),則會很容易對RF網(wǎng)絡(luò)的安全產(chǎn)生危害。通過在RF網(wǎng)絡(luò)中添加一個安全層,可以輕松防止這種危害。有多種安全方案和算法可用于惟一傳感器驗(yàn)證,例如Microchip的KEELOQ?加密算法。甚至可以與更高級的加密算法(例如擴(kuò)展的微型加密算法(eXtended Tiny Encryption Algorithm,XTEA)或高級加密標(biāo)準(zhǔn)(Advanced Encryption Standard,AES)算法)結(jié)合使用,以加密從遠(yuǎn)程傳感器傳輸?shù)街鳈C(jī)控制器的傳感器信息。

結(jié)論

本文介紹了如何實(shí)現(xiàn)可實(shí)時監(jiān)控傳感器行為的基本RF遠(yuǎn)程。低成本RF收發(fā)器與MCU(如PIC18F14K50)的結(jié)合簡化了此類系統(tǒng)的開發(fā)。遠(yuǎn)離無線傳感器系統(tǒng)的時代無疑已成為過去。

本文所述的框架可用于近實(shí)時無線監(jiān)控起重要作用的各種應(yīng)用。如果遠(yuǎn)程傳感器系統(tǒng)可以容許更大程度的延時,則完全可以使用本文所列的其他RF通信協(xié)議。這些備選協(xié)議的靈活性更高,但也需要更高端的MCU資源才能實(shí)現(xiàn)。此外,通過添加簡單的惟一網(wǎng)絡(luò)標(biāo)識,基本的RF配對方案和加密算法可以使此類無線網(wǎng)絡(luò)更加穩(wěn)定可靠和安全。



評論


相關(guān)推薦

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

關(guān)閉