?

基于ZigBee的點到點通信質量測量儀設計

2020-09-15 05:16徐智博王銘海張劍楠吳春姬李占龍
儀表技術與傳感器 2020年8期
關鍵詞:蜂鳴器按鍵無線

徐智博,王銘海,張劍楠,吳春姬,李占龍

(1.吉林大學物理學院,吉林長春 130012;2.吉林大學大數據與網絡管理中心,吉林長春 130012)

0 引言

ZigBee協議是無線傳感器網絡的工業標準[1],具有低功耗、低成本、體積小等特點[2],廣泛應用于樓宇自動化、現場監測等領域[3]。由于節點發射功率較低,節點的安裝位置(如距離、遮擋、電磁干擾等)對通信質量會產生很大影響[4],因此對ZigBee通信質量的測量非常必要。

然而,目前大多數研究者只從NWK層的路由算法入手,對“端到端”的通信質量進行測量和優化[5],或者提出通過增加路由節點或增大發射功率的方法[6]改善通信質量,而忽略了“點到點”測量的重要性[7],導致整個網絡得不到根本優化,增加了功耗和成本。

在點到點的研究中,文獻[4]雖然從理論上推導了ZigBee點到點通信質量的估算方法,但其理論僅局限于戶外開闊環境。此外,文獻中提及的點到點測量儀器也大都是出于對物體定位的目的[8],只對RSSI這一個參數進行測量,測量參數單一,且只能測量單程的通信質量,不能滿足工程的需要。

為此,本文設計的ZigBee點到點通信質量測量儀是以ZigBee的MAC層數據幀和應答幀為基礎,通過兩點間通信的方式完成點到點通信質量的定量測量,采用多個參數對通信質量進行聯合表征,避免了單一參數的局限性,且可同時對往返路徑進行雙向測量,使測量效率提升1倍。

1 ZigBee點到點通信質量的評價指標

1.1 RSSI(接收信號強度指示)

接收數據時,對8個連續符號的接收強度取平均值即為RSSI。接收信號的強度越大則RSSI越大,通信質量可能就越好。但此參數只能表征接收到信號強度的大小,若出現高強度的噪聲干擾時可能會出現誤判,因此僅使用RSSI作為評價指標具有一定局限性。

1.2 LQI(鏈路質量指示)

由于SFD(幀定界符)具有固定的數據格式,因此可對接收到每一幀的SFD信號的前8個符號與標準格式進行數據相關性計算,得到的結果即為LQI。LQI可表征接收數據的誤碼率情況,接收誤碼率越高則LQI值越低,通信質量就越差。雖然LQI能對接收幀的誤碼率進行表征,但對于未成功接收的幀并不具有表征能力。

1.3 收幀率R

設在一段時間內發送方發出了NTx個幀,接收方在此期間收到了NRx個幀,則R=NRx/NTx×100%。收幀率是從統計的角度描述通信質量,其值越高則通信質量越好。

1.4 評價指標分析

由以上分析可知,單一參數描述通信質量具有一定局限性。因此本設計同時對上述參數進行測量,以求對通信質量進行更全面的描述。

2 系統總體設計

本設計采用2個節點間互相通信的方式進行測量。設兩節點分別為A和B,它們的軟硬件完全相同,都具有發送和接收功能。當按下其中一個節點的測量鍵時,便啟動了一輪測量。A和B上電后會記錄各自在本輪測量中接收的幀數nRx(A)、nRx(B)和發送的幀數nTx(A)、nTx(B),其值在每輪測量結束后清零。本文以A主動發送B被動接收為例,說明測量流程,如圖1所示。

圖1 系統測量流程

2.1 單程測量流程

當A的測量鍵被按下時,便會向B發送N個數據幀,每發送一幀都會更新nTx(A)的值。B收到每一幀時都會記錄此幀的RSSI和LQI,且更新nRx(B)的值。本輪測量結束后,B會計算A到B的平均RSSI、LQI和收幀率RA→B,最后蜂鳴器響以示本輪中A到B的單程測量結束。其中RA→B的計算式如下:

(1)

當A發送完本輪的N個數據幀時,B也應該立即結束本輪數據的接收,否則可能會因為B的上一輪接收還未完成,A又發起了下一輪測量,導致接收紊亂,影響測量的準確性。而B能否收到N個幀中的具體幀具有不確定性。為解決上述問題,程序約定A會以T/幀的間隔向B發送數據,且每幀中都要包含T、N和當前幀的序號i(i=1,2,…,N)等信息。當B在本輪測量中接收到第一個幀時,會記錄T、N的值以及此幀的序號i(i可能為1至N的任意整數),同時啟動一個延時時間為T(N+1-i)的定時器作為接收等待時間,超時后便認為本輪接收已完成,這樣就保證了A和B能在同一時間結束本輪測量。

2.2 返程測量流程

為實現B到A的返程測量,A向B發送的數據幀中應帶有應答請求的信息,利用B發送給A的應答幀的RSSI和LQI計算返程通信質量。具體實現如下:若B收到的數據幀中帶有應答請求,則會立即向A發送應答幀,同時更新nTx(B)的值。A接收到應答幀后同樣會記錄RSSI和LQI,同時更新nRx(A)的值。當本輪測量結束時,A會根據應答幀的接收情況計算本輪測量B到A的平均RSSI、LQI和收幀率RB→A,最后蜂鳴器響以示本輪中B到A的返程測量結束。RB→A計算式為

(2)

2.3 總收幀率的計算

在一輪測量中,B只要至少接收到N個幀中的1個,便可正確計算收幀率(此時收幀率≥1/N)。但若本輪中的N個幀全部沒有收到,則會影響收幀率的準確計算(此時收幀率<1/N)。為解決此問題,A和B同時還會記錄各自在多輪測量中發送的總幀數cntTx(A)、cntTx(B)和接收的總幀數cntRx(A)、cntRx(B),其值只有在手動按下清零鍵時才會清零,否則會一直將每輪的計數值累加。因此可根據需要手動計算A到B的總收幀率R總A→B以及B到A的總收幀率R總B→A,使測量結果更加準確。

(3)

(4)

3 硬件設計

為滿足手持式儀器低功耗、體積小等特點,在軟硬件功能上進行了精簡,節點電路原理圖如圖2所示。每個節點從功能上可分為電源模塊、MCU模塊、無線收發模塊、顯示屏、按鍵、蜂鳴器和串口等部分。

圖2 節點電路原理圖

設計所選用的控制芯片和液晶顯示模塊都使用3.3 V直流電壓進行供電,所以電源模塊使用3節5號電池作為供電源,并采用低壓差穩壓芯片MCP1700-3.3進行穩壓,為系統提供穩定的電源電壓VCC(3.3 V),MCP1700-3.3的最小壓差為178 mV,靜態電流僅1.6 μA,非常適用于電池供電的設備。

主控芯片采用CC2530單片機。CC2530是專為ZigBee協議設計的一款芯片,是ZigBee的片上系統解決方案[9],其內部集成了增強型的高速51內核和256 KB的閃存[10],且外設資源豐富。外接了2個晶振,其中32 MHz晶振可為無線收發提供準確的符號周期,32.768 kHz晶振作為休眠定時器的時鐘,使休眠時的電流僅為1 μA。無線收發模塊采用由電容和電感構成的巴倫電路,并外接50 Ω的鞭狀天線,可進行無線數據的收發。

顯示屏采用LCD5110型號的液晶模塊。該模塊為48×84的點矩陣,使用SPI協議操作,正常工作電流在0.2 mA以下,速率可達4 Mbps,具有功耗低、速率高、成本低、控制簡單等優點,適用于電池供電的場合。

按鍵采用非自鎖式獨立按鍵。將CC2530的P06和P07設為輸入模式,當無鍵按下時為高電平(懸空)狀態,有鍵按下時相應I/O口便由高電平跳轉到低電平。為實現軟件去抖,程序每隔10 ms掃描一次按鍵,若同一按鍵在相鄰兩次掃描均為低電平,則判定為該鍵按下。當按下K清零時可使變量cntTx和cntRx清零,按下K測量可啟動新一輪的測量。

蜂鳴器采用有源電磁式蜂鳴器,可在2~3.5 V之間正常工作。當P00為高電平時,三極管Q1導通,蜂鳴器發聲;當P00為低電平時,蜂鳴器不發聲。

此外,還將單片機的P02和P03口引出作為串口與PC機通信,可作為程序調試、參數配置、數據分析等功能使用。

4 軟件設計

4.1 程序狀態

程序設定每個節點有3種狀態(State):Idle(空閑)、Tx(發送)和Rx(接收)。節點在同一時刻只能處于一種狀態。Idle為上電后的默認狀態,Tx和Rx之間不能直接切換。狀態間的切換如圖3所示。

圖3 節點狀態的切換

當處于Idle狀態且檢測到K測量按下,節點會立刻切換到Tx狀態,開始發送數據幀,此時只能接收應答幀,不能接收數據幀。當發送完N個數據幀后會自動切換到Idle狀態。

當處于Idle狀態且收到數據幀時,節點會立刻切換到Rx狀態,此時只能接收數據幀,不能接收應答幀。當本輪測量結束時會自動切換到Idle狀態。

4.2 程序流程圖

程序主要由主程序和無線接收中斷服務程序(以下簡稱中斷)兩部分組成,程序流程圖分別如圖4和圖5所示。

圖4 主程序流程圖

圖5 中斷流程圖

主程序:上電初始化后,便進行系統狀態的判斷:若為Idle狀態,則進行按鍵掃描;若為Tx狀態,則開始發送數據幀,發送完后進行計算并顯示;若為Rx狀態,便啟動T(N+1-i)的延時器進行接收超時等待,之后便進行計算并顯示。

中斷:當收到無線數據幀時便立即進入中斷。中斷對收到的幀類型和系統狀態進行判斷:若收到數據幀且為Idle狀態,說明這是本輪收到的第1個幀,將狀態改為Rx,并記錄幀序號i;若收到數據幀且為Rx狀態,則查看是否有應答請求,若有則發送應答幀并更新nTx值;若收到應答幀且為Tx狀態,說明收到了請求的應答幀,則記錄RSSI和LQI,更新nRx值。

5 實驗驗證

實驗采用A主動發送、B被動接收的形式,記錄在不同條件下B的測量結果(A到B的通信質量)和A的測量結果(B到A的通信質量),數據如表1所示。

表1 不同條件下儀器的測量值

由a、b和c組數據對比可見,隨著距離和遮擋的增加,RSSI值逐漸減小,但LQI和R開始時并未有明顯變化,待距離增大到一定程度后才開始變化,因此此時RSSI更具靈敏性。由a和d組數據對比可見,存在電磁干擾時對R的影響較大,但對RSSI和LQI影響較小,因此此時R更具靈敏性。儀器實物圖如圖6所示。

圖6 儀器實物圖

6 結束語

本文設計的手持式ZigBee點到點通信質量測量儀,以CC2530模塊為控制核心,通過兩點間數據收發的方式測量ZigBee點到點的通信質量。儀器可同時測量往返路徑的通信質量,使測量效率提升1倍,且采用多參數對通信質量進行聯合表征,避免了單一參數的局限性。儀器具有測量快速、準確,操作簡單,成本低,體積小等特點,適合在ZigBee網絡設計、安裝、調試與優化等場合使用。也可擴展為多個節點同時測量,提升測量效率。

猜你喜歡
蜂鳴器按鍵無線
電動自行車產品車速提示音檢測現狀和整改技術研究(2)
基于有限狀態機的按鍵檢測程序設計
《無線互聯科技》征稿詞(2021)
掌控板制作簡易鋼琴
單片機驅動蜂鳴器的程序設計
無線追蹤3
基于ARM的無線WiFi插排的設計
一種PP型無線供電系統的分析
按鍵消抖在單片機和FPGA實驗教學中的應用
一種多方向導光按鍵結構設計
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合