創(chuàng )建經(jīng)濟實(shí)惠的無(wú)線(xiàn)傳感器網(wǎng)絡(luò )
背景
本文引用地址:http://dyxdggzs.com/article/201808/387972.htm隨著(zhù)更經(jīng)濟實(shí)惠、高度集成的單芯片通用ISM頻帶FSK收發(fā)器的出現,加之與嵌入式低成本單片機單片機(MCU)的結合,實(shí)施無(wú)線(xiàn)傳感應用已成為一種頗具吸引力的選擇方案。
只需將這兩項技術(shù)簡(jiǎn)單地結合在一起,便可構造非?;镜腎SM頻帶915 MHz射頻(Radio Frequency,RF)網(wǎng)絡(luò ),來(lái)監控各種數字和模擬無(wú)線(xiàn)傳感器,例如遠程溫度傳感器和基本運動(dòng)檢測傳感器。
本文將定義一個(gè)基本的RF框架,用以實(shí)現對無(wú)線(xiàn)傳感器的近實(shí)時(shí)監控。這一框架可輕松修改,以適應其他需要近實(shí)時(shí)無(wú)線(xiàn)監控或控制接口的應用系統。
系統說(shuō)明
RF收發(fā)器簡(jiǎn)介
高度集成的RF收發(fā)器(例如RFM生產(chǎn)的用在433、868以及915 MHz ISM頻帶的TRC102)正憑借更經(jīng)濟實(shí)惠的成本優(yōu)勢得到越來(lái)越多的應用。這些器件通常具有串行通信接口,可通過(guò)SPI或I2C?接口輕松連接到各種嵌入式MCU。
遠程無(wú)鑰門(mén)禁(Remote Keyless Entry,RKE)系統中常用的一種無(wú)線(xiàn)電調制方法是振幅鍵控(Amplitude Shift Keying,ASK),即通過(guò)改變頻率固定的載波的振幅來(lái)傳送數據。如果數據的編碼方式為最大振幅表示“1”(傳號),零振幅(功率放大器[PA]關(guān)閉)表示“0”(空號),則該調制方法稱(chēng)為開(kāi)關(guān)鍵控(On-Off Keying,OOK)。這些類(lèi)型的系統常用于單向應用。但是,使用此調制格式可實(shí)現非常簡(jiǎn)單且成本較低的收發(fā)器設計。
RF收發(fā)器解決方案中通常采用的RF調制方案是使用頻移鍵控(Frequency Shift Keying,FSK)。這是通過(guò)在平均頻率(或載波頻率)的任一側對載波頻率進(jìn)行位移來(lái)實(shí)現的。載波在載波頻率一側的位移量稱(chēng)為偏差。相對于A(yíng)SK調制,FSK調制具有多種優(yōu)勢。振幅調制對振幅和噪聲的變化非常敏感,而采用FSK編碼的傳送方案對信號衰減或其他與振幅相關(guān)的干擾的抵御能力更強。
雖然FSK系統的帶寬表面上是從f0– f到f0+ f,但實(shí)際上,帶寬的跨度要大于f0– f到f0+ f的范圍,因為兩個(gè)頻率之間的轉移速度會(huì )產(chǎn)生額外的頻譜分量。簡(jiǎn)而言之,可認為FSK調制是可靠性更高、噪聲更少的傳輸方式。為實(shí)現成功設計,您需要更深入地了解FSK調制無(wú)線(xiàn)鏈路的需求。圖1顯示了此類(lèi)FSK調制信號的典型頻譜。

圖1:FSK調制信號的典型頻譜
收發(fā)器是既可以發(fā)送又可以接收RF數據的器件??梢酝瑫r(shí)發(fā)送和接收數據的收發(fā)器系統稱(chēng)為全雙工系統。反過(guò)來(lái),在一定時(shí)間內只能發(fā)送或接收的系統稱(chēng)為半雙工系統。因此,半雙工系統只使用一個(gè)載波頻率,且兩個(gè)終端共享同一頻率。全雙工系統使用兩個(gè)載波頻率,分別稱(chēng)為上行頻率和下行頻率。在本文中,由于遠程傳感器單元的流耗限制,我們采用半雙工方法。
晶振精度
FSK調制收發(fā)器設計所使用的晶振的精度非常重要。我們的專(zhuān)用FSK系統使用百萬(wàn)分率(parts per million,ppm)值很低的高精度晶振。晶振的精度越高,發(fā)送與接收頻率的偏移越少,偏差和基帶帶寬也就越小。如今,質(zhì)量較好的晶振的ppm值應小于等于40。晶振的ppm值說(shuō)明了其精度,ppm值越低,晶振的質(zhì)量越好。
圖2顯示了晶振精度對兩個(gè)收發(fā)器之間的發(fā)送/接收頻率的影響。晶振的精度越高,基帶濾波器的帶寬就可以配置得越窄,因此從接收器基帶中濾除的無(wú)用RF噪聲也就越多。

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

電路布線(xiàn)注意事項
對于任何RF設計,在布置印刷電路板(Printed Circuit Board,PCB)時(shí)所選擇的關(guān)鍵元件值以及設計做法是否合理,對確保實(shí)現良好的總體RF性能都起到至關(guān)重要的作用。
強烈建議使用收發(fā)器制造商推薦的PCB布線(xiàn),因為他們提供的RF設計已經(jīng)過(guò)測試和驗證。從參考晶振位置到FSK收發(fā)器的XTAL輸入引腳的PCB走線(xiàn)應盡可能短。對于TRC102收發(fā)器,從天線(xiàn)輸出端到天線(xiàn)饋線(xiàn)的走線(xiàn)也應盡可能短。
最后,在PCB上布一排過(guò)孔使正反兩面可以連接在一起。放置這些過(guò)孔的目的是提供牢固的接地連接以及使電位均衡,以免出現任何可能的自激振蕩。兩個(gè)過(guò)孔的間距應在5-6 mm左右。如果需要提供牢固的接地連接,可以放置更多過(guò)孔。
收發(fā)器初始化
在使用任何RF收發(fā)器無(wú)線(xiàn)電器件之前,都必須對其進(jìn)行初始化。通常通過(guò)向控制接口寫(xiě)入一系列串行命令來(lái)進(jìn)行器件初始化。對這些特定控制寄存器的說(shuō)明已超出本文范圍,讀者應參考所使用的RF收發(fā)器的數據手冊中的具體信息。通常,可配置的參數包括頻帶選擇、基帶頻率濾波器寬度、輸出功率管理控制、數據緩沖配置、數據傳輸速率以及先進(jìn)先出(First In First Out,FIFO)緩沖器控制。
收發(fā)器工作
收發(fā)器通過(guò)將中斷輸出線(xiàn)的電平拉低來(lái)向主機MCU發(fā)出中斷請求。這表示發(fā)生以下事件之一:
發(fā)送(TX)寄存器已準備好接收下一字節
接收(RX)FIFO已達到預編程的位數
上電復位(Power on Reset,POR)確認
發(fā)生了FIFO溢出/TX寄存器下溢
主機MCU收到來(lái)自收發(fā)器的中斷請求后,會(huì )通過(guò)讀取收發(fā)器的狀態(tài)位來(lái)確定中斷源。然后,MCU會(huì )決定所需的下一個(gè)串行命令以繼續通信或使收發(fā)器斷電。
數據緩沖
大多數收發(fā)器中都含有一個(gè)FIFO緩沖器。如果使能數據FIFO,則收到的數據流在時(shí)鐘控制下進(jìn)入16位緩沖器。收發(fā)器只在同步模式電路檢測到有效數據包后才開(kāi)始填充FIFO。這可防止隨機錯誤數據裝入FIFO。FIFO達到預定義位數后,器件的中斷輸出引腳上將發(fā)出緩沖器已滿(mǎn)信號。此引腳上的邏輯電平“1”表示RX FIFO中的位數已達到預編程限制。收發(fā)器產(chǎn)生中斷的電平可通過(guò)FIFO和復位命令設置。有關(guān)這些配置寄存器的詳細信息,請參見(jiàn)器件數據手冊。
對于我們的應用,此值已設置為8位(一個(gè)字節),這樣在發(fā)送/接收過(guò)程中可以將數據逐字節裝入FIFO。這只適用于通過(guò)配置設置命令使能的FIFO模式。SPI緩沖器的讀取操作會(huì )使RX FIFO復位已接收位數,并使中斷輸出引腳恢復到邏輯零電平。
RF協(xié)議選擇
對于本設計,我們評估了各種當前可用的RF通信協(xié)議。ZigBee?、Microchip的MiWi?和MiWi點(diǎn)對點(diǎn)(Peer to Peer,P2P)等協(xié)議均已經(jīng)過(guò)評估。但是,由于應用需要近實(shí)時(shí)的特性,因此使用了非?;镜臅r(shí)分多址(Time Divisional Multi Access,TDMA)協(xié)議方案(見(jiàn)圖3)。通過(guò)將幀中第一個(gè)時(shí)隙定義為主機控制器發(fā)出的標識,我們可以很容易地確保在整個(gè)傳感器監控系統中實(shí)現非常精確的延時(shí)。

圖3:TDMA系統

傳感器單元
對于我們的系統,我們已決定在每個(gè)數據幀中使用10個(gè)時(shí)隙,第一個(gè)時(shí)隙作為幀起始,另外九個(gè)用于多個(gè)遠程傳感器。這樣,我們最多可以近實(shí)時(shí)地監控九個(gè)傳感器。我們將主機MCU的預定義時(shí)隙設置為每秒10個(gè),即每幀持續100 ms。這樣,我們便能夠以每秒10次的速率(或10 Hz)從各個(gè)傳感器提取RF數據。通過(guò)增加每秒時(shí)隙數可輕松實(shí)現更快的輪詢(xún)方案,但這樣會(huì )影響所需數據速率以及基帶濾波器帶寬間距。
硬件
傳感器單元上使用的PIC16F688 8位閃存MCU實(shí)際上每20 ms測量一次原始模擬傳感器輸入(每秒50次采樣)。然后,它每隔100 ms會(huì )將最后五次采樣一次發(fā)送給主機控制器。這樣可獲得更高的傳感器采樣率,而不會(huì )對系統的復雜性產(chǎn)生明顯影響。這種數據緩沖方案還有助于降低傳感器的總功耗要求,因為接收和發(fā)送RF數據包消耗了大部分功率。MCU單元在大多數時(shí)間都處于低功耗休眠狀態(tài)。它會(huì )每隔20 ms喚醒一次來(lái)對模數轉換器(Analog-to-Digital Converter,ADC)或數字I/O引腳進(jìn)行采樣,然后每隔100 ms進(jìn)行一次批量RF傳送(大約持續2 ms)。
固件
PIC16F688 MCU使用內部基于RC的振蕩器來(lái)確保從休眠和低功耗狀態(tài)快速啟動(dòng)。為簡(jiǎn)化軟件,采用了基本狀態(tài)機軟件流,并將MCU配置為每隔20 ms喚醒一次。這些狀態(tài)中的一個(gè)被分配為等待主機控制器的RF幀起始(Start Of Frame,SOF)標識的傳輸。此SOF標識的接收操作用于將遠程傳感器單元與精度更高的主機單元同步,該主機單元采用晶振進(jìn)行USB通信。如果在至少150 ms內未檢測到SOF標識,則遠程傳感器將進(jìn)入低功耗非活動(dòng)狀態(tài),在此狀態(tài)下,單元每秒喚醒一次來(lái)搜索SOF標識。這樣主機便可通過(guò)打開(kāi)或關(guān)閉SOF標識的傳輸,只在需要時(shí)輪詢(xún)遠程傳感器。
如果需要同時(shí)監控更多傳感器,可以輕松地將這個(gè)非?;镜膮f(xié)議方案擴展至允許更多時(shí)隙。但總是需要在各個(gè)傳感器單元的常規反應時(shí)間(采樣傳感器)與總功耗預算之間進(jìn)行權衡。此協(xié)議方案可進(jìn)行修改以滿(mǎn)足系統以及可用電源的特定需求,例如為每個(gè)遠程傳感器供電的電池尺寸以及預期使用壽命。
主機控制器單元
對于主機控制器,我們選擇了PIC18F14K50 8位閃存MCU,它是小型20引腳封裝形式的全速USB 2.0器件。選擇此器件的原因是其成本低廉,并且我們希望主機控制器通過(guò)USB端口直接與任何PC連接,以報告有關(guān)系統中每個(gè)遠程傳感器狀態(tài)的近實(shí)時(shí)信息。也可以使用其他備用接口選項。主機單元由USB端口供電,然后以人機接口設備(Human Interface Device,HID)類(lèi)USB設備的形式注冊到PC。
硬件
使用PIC18F14K50 MCU,實(shí)際的硬件設計與遠程傳感器單元非常類(lèi)似。使用相同的RF收發(fā)器設計,但將PIC16F688 MCU換成PIC18F14K50 MCU,以提供所需的USB接口功能。此單元需要持續供電,用作簡(jiǎn)化的TDMA系統中的主節點(diǎn)。
固件
主機控制器上的固件包含配置為HID類(lèi)的Microchip標準USB協(xié)議棧;對于遠程傳感器單元使用相似的收發(fā)器初始化和數據傳輸程序;使用一臺非?;镜臓顟B(tài)機來(lái)控制RF無(wú)線(xiàn)電設備與PC間的數據傳送。如果使用運行MS Windows?的PC,由于操作系統的多任務(wù)性質(zhì),無(wú)法始終保證時(shí)序精確。此外,我們不希望PC圖形用戶(hù)界面(Graphical User Interface,GUI)軟件過(guò)于復雜。因此,使用PIC18F14K50作為RF遠程傳感器單元與PC GUI應用程序之間的數據緩沖器。PIC? MCU用于保持TDMA時(shí)隙,以便在為PC緩沖采樣數據時(shí)實(shí)現同步。PC應用程序已配置為每隔100 ms輪詢(xún)一次USB HID設備,以獲取任何可用的數據。在每個(gè)時(shí)隙/單元中增加了一個(gè)狀態(tài)/控制字節,PC應用程序可輕松確定是否有新的傳感器數據可用于屏幕更新。PIC18F14K50上的傳感器數據緩沖器已配置為可處理多個(gè)RF數據包,以防PC應用程序沒(méi)有及時(shí)讀取可用數據。
PC GUI軟件
對于本應用,傳感器數據通過(guò)GUI應用程序內的進(jìn)度條顯示,并且可以輕松記錄以對遠程傳感器進(jìn)行數據跟蹤。軟件的開(kāi)發(fā)平臺為Microsoft的Visual C#。軟件可作為多個(gè)無(wú)線(xiàn)遠程傳感器單元實(shí)時(shí)行為的可視監控器,顯示從每個(gè)無(wú)線(xiàn)傳感器收到的實(shí)時(shí)數據。GUI通過(guò)USB HID類(lèi)函數連接到主機控制器來(lái)輪詢(xún)可用數據或控制系統行為,例如啟動(dòng)RF輪詢(xún)、停止RF輪詢(xún)和請求單次數據捕獲等。
各種傳感器類(lèi)型
確定基本的RF傳感器框架后,實(shí)際的RF遠程傳感器可以是從基本的溫度監控器到加速(模擬或數字)監控器、數字輸入(高/低電平檢測)以及模擬電壓監控(通過(guò)ADC轉換為數字值)中的任何一個(gè),甚至是基本的數字輸出控制信號。通過(guò)這個(gè)簡(jiǎn)化的TDMA輪詢(xún)方案,簡(jiǎn)單的RF框架還允許使用各種不同類(lèi)型的遠程傳感器。
為傳感器單元配對
每個(gè)傳感器提供的信息都可包括一個(gè)惟一標識符、一個(gè)傳感器類(lèi)型指示符和原始傳感器數據測量值。使用每個(gè)傳感器單元的惟一標識符有助于將傳感器單元與主機控制器配對。主機標識器可以向將指示哪些時(shí)隙可用的傳感器發(fā)送各種控制命令,甚至從系統中移除傳感器。主機控制器還可以發(fā)送組標識符,這樣它將只輪詢(xún)與該特定傳感器組配對的傳感器。遺憾的是,這已超出本文范圍,但絕對可實(shí)現極其靈活易用的遠程傳感器網(wǎng)絡(luò )。
安全增強功能
如果有人進(jìn)行竊聽(tīng)并發(fā)送可對整個(gè)系統的完整性造成負面影響的虛假傳感器數據,則會(huì )很容易對RF網(wǎng)絡(luò )的安全產(chǎn)生危害。通過(guò)在RF網(wǎng)絡(luò )中添加一個(gè)安全層,可以輕松防止這種危害。有多種安全方案和算法可用于惟一傳感器驗證,例如Microchip的KEELOQ?加密算法。甚至可以與更高級的加密算法(例如擴展的微型加密算法(eXtended Tiny Encryption Algorithm,XTEA)或高級加密標準(Advanced Encryption Standard,AES)算法)結合使用,以加密從遠程傳感器傳輸到主機控制器的傳感器信息。
結論
本文介紹了如何實(shí)現可實(shí)時(shí)監控傳感器行為的基本RF遠程傳感器網(wǎng)絡(luò )。低成本RF收發(fā)器與MCU(如PIC18F14K50)的結合簡(jiǎn)化了此類(lèi)系統的開(kāi)發(fā)。遠離無(wú)線(xiàn)傳感器系統的時(shí)代無(wú)疑已成為過(guò)去。
本文所述的框架可用于近實(shí)時(shí)無(wú)線(xiàn)監控起重要作用的各種應用。如果遠程傳感器系統可以容許更大程度的延時(shí),則完全可以使用本文所列的其他RF通信協(xié)議。這些備選協(xié)議的靈活性更高,但也需要更高端的MCU資源才能實(shí)現。此外,通過(guò)添加簡(jiǎn)單的惟一網(wǎng)絡(luò )標識,基本的RF配對方案和加密算法可以使此類(lèi)無(wú)線(xiàn)網(wǎng)絡(luò )更加穩定可靠和安全。
評論