李 波, 王 坤, 王彥本
(西安郵電大學 通信與信息工程學院, 陜西 西安 710121)
隨著無線通信與傳感器技術的發(fā)展,低成本無線傳感器網(wǎng)絡逐漸成為研究熱點。LoRa[1-2]、ZigBee[3]和藍牙[4]等無線技術,將無線傳感器網(wǎng)絡帶進了諸多生活和生產(chǎn)領域[5-7],同時也促進了物聯(lián)網(wǎng)技術的發(fā)展[8]。無線傳感器網(wǎng)絡和物聯(lián)網(wǎng)技術具有多節(jié)點的特性,無法避免組網(wǎng)通信,必須解決各節(jié)點間的通信沖突。
時分多址(time division multiple access, TDMA)是無線網(wǎng)絡普遍采用的一種接入方法,它把系統(tǒng)中所有可供使用的資源按時間分配給系統(tǒng)中多個設備,設計簡單,實現(xiàn)方便,是防碰撞算法最常用的技術?;赥DMA技術的防沖突算法有ALOHA算法和二進制樹算法兩大類[9]。ALOHA算法是基于競爭的隨機接入算法,數(shù)據(jù)發(fā)送端可以在任意時間段隨機發(fā)送數(shù)據(jù)信息,一旦產(chǎn)生沖突,發(fā)送端須隨機等待一段時間后再重新發(fā)送直至發(fā)射成功。在競爭和隨機發(fā)送的的基礎上,ALOHA算法又有新的改進[10-11]。二進制樹算法[12-13]的設計采用了分配思想,在執(zhí)行過程,數(shù)據(jù)匯聚端多次發(fā)命令給數(shù)據(jù)采集端,每次命令都把采集端分成兩組,多次分組后將得到一個唯一的采集端。
ALOHA算法設計簡單,實現(xiàn)方便,但采用競爭的方式會導致信道使用率低,存在“標簽餓死”(tag starvation)[14]現(xiàn)象。二進制樹算法防沖突效果好,識別精確,但是實現(xiàn)過程復雜,算法等待時延長。另外,這兩種算法在實現(xiàn)過程中,都必須進行多次迭代,其復雜性不適合直接應用于硬件實現(xiàn)。
本文擬設計一種應用于硬件環(huán)境的組網(wǎng)算法,仍在TDMA的基礎上采用劃分時隙方法,但在劃分時隙前,先進行設備掃描,從而動態(tài)分配時隙,并借助加入控制和命令信息的特殊格式數(shù)據(jù)幀,通過通信實現(xiàn)網(wǎng)絡同步,以優(yōu)化時鐘精度。
TDMA技術通過劃分時間避免通信系統(tǒng)的多設備沖突,實際設計中即將時間劃分為更小更具體的幀或時隙。幀用于傳輸數(shù)據(jù),由時隙組成;而時隙又由一段特定的時間間隔構成,與系統(tǒng)用戶(或設備)具有相互對應的關系。通過區(qū)分時隙就可以達到區(qū)分用戶(或設備)的目的。
實際上,系統(tǒng)各設備都擁有唯一序列號,以便區(qū)分。系統(tǒng)中的基站設備在無沖突的時隙發(fā)送一個確認信號,為系統(tǒng)中的所有終端節(jié)點分配唯一的時隙號,使各終端節(jié)點只能工作于固定的時隙中,從而實現(xiàn)防沖突操作。
時隙算法在使用中要求有精確的時鐘定時,以保證系統(tǒng)用戶(或設備)間時隙劃分的準確性。這可通過高精度時鐘或衛(wèi)星授時獲得解決,但實現(xiàn)成本較高。結合幀與時隙的關系,通過特殊格式的數(shù)據(jù)幀對時隙進行校準,是優(yōu)化單時隙算法時鐘精度的一種可行方法。
在多用戶通信系統(tǒng)中,數(shù)據(jù)發(fā)送端發(fā)送數(shù)據(jù)時必須指明數(shù)據(jù)的接收端以防止沖突,故將數(shù)據(jù)信息和控制信息相結合的數(shù)據(jù)幀格式獲得廣泛應用。主流的幀格式如圖1所示。
圖1 數(shù)據(jù)幀結構
在數(shù)據(jù)幀的結構中,起始位是組網(wǎng)中傳輸數(shù)據(jù)的起始字節(jié),通過它可以確定收到的數(shù)據(jù)是否為本網(wǎng)絡中的傳輸數(shù)據(jù);數(shù)據(jù)類型明確發(fā)送數(shù)據(jù)的類型,如上行數(shù)據(jù)或下行數(shù)據(jù);源地址給出組網(wǎng)中數(shù)據(jù)發(fā)送端節(jié)點的地址;數(shù)據(jù)體包含組網(wǎng)中發(fā)端要發(fā)給接收端的數(shù)據(jù);目的地址是指組網(wǎng)中數(shù)據(jù)接收端節(jié)點的地址;校驗位包含組網(wǎng)中傳輸數(shù)據(jù)除去起始位和結束位外其他部分通過校驗算法計算出的校驗數(shù)據(jù);結束位是組網(wǎng)中傳輸數(shù)據(jù)的結束字節(jié),通過判斷結束位可以判斷數(shù)據(jù)的正確性。
LoRa同頻組網(wǎng)中,為避免通信沖突,要求在同一時間系統(tǒng)中只能有一個設備發(fā)送數(shù)據(jù)。系統(tǒng)中各設備根據(jù)功能可以分為終端節(jié)點和基站,數(shù)據(jù)主要是來自終端節(jié)點的上行數(shù)據(jù),基站的下行數(shù)據(jù)相對較少,故可用基站來控制網(wǎng)絡中時隙的分配和選擇。
整個算法可以分成3部分。
(1) 開機組網(wǎng)
系統(tǒng)開機初始化后,基站通過下發(fā)掃描幀,使終端節(jié)點上報節(jié)點信息進行組網(wǎng)。設置基站的ID號碼為0x00,終端節(jié)點的ID號碼從0x01起增加至與系統(tǒng)容量同。終端節(jié)點在收到基站發(fā)送的掃描幀時,根據(jù)ID號碼從小到大依次上報節(jié)點信息。終端節(jié)點采用中心式和分布式相結合的方案上報節(jié)點信息,具體實現(xiàn)過程如圖2所示。
圖2 組網(wǎng)流程
若基站在時間閾值之內(nèi)未收到上報信息,則認為上報過程結束。為保證掃描的準確性,可進行多次掃描,若連續(xù)多次掃描結果相同,則認為掃描過程結束。掃描結束后,基站將所掃描的終端節(jié)點情況存入數(shù)組。
(2) 分配時隙
進行LoRa通信時的模塊設置主要包括LoRa模式設置、數(shù)據(jù)包設置和射頻設置[15-16],相關具體內(nèi)容如表1所示?;玖私獾较到y(tǒng)中各終端節(jié)點的情況后,為它們分配時隙。時隙大小根據(jù)LoRa模式設置和數(shù)據(jù)包設置中的參數(shù)決定,包括擴頻因子(spreading factor,SF)、帶寬(band width,BW)、編碼率(coding rate,CR)、負載長度和前導碼等。而射頻設置中的參數(shù)中心頻點發(fā)射功率決定著發(fā)射信號的載波情況。
表1 模塊設置信息
(3) 設備通信
基站為終端節(jié)點分配時隙后,即刻進入上報模式。此模式中,基站開始先下發(fā)同步幀,其目的是使組網(wǎng)中的所有設備進行時間同步,方便后續(xù)時隙操作。所有終端節(jié)點在收到同步幀后,便可根據(jù)系統(tǒng)預設的上報優(yōu)先級進行上報,其優(yōu)先級可以為終端節(jié)點的ID號或終端節(jié)點上報數(shù)據(jù)的重要性。所謂以終端節(jié)點ID號碼為上報數(shù)據(jù)的優(yōu)先級,是指ID號碼小的終端節(jié)點優(yōu)先上報。ID號碼為0x01的終端節(jié)點上報完信息后,ID號碼為0x02的終端節(jié)點收到消息,并在保護間隔后開始上報自己節(jié)點的信息。如此,系統(tǒng)中各終端節(jié)點收到ID號碼比自己小1的終端節(jié)點的消息,在一個保護間隔后,上報自己的節(jié)點信息。
一個完整的LoRa組網(wǎng)系統(tǒng)如圖3所示。終端節(jié)點上集成著傳感器用來采集數(shù)據(jù),并將采集到的數(shù)據(jù)上報;而基站則將多個終端節(jié)點上報的數(shù)據(jù)匯總,同時上報給后臺控制端;后臺控制器會根據(jù)各終端節(jié)點上報的數(shù)據(jù)內(nèi)容,下發(fā)對應的控制命令。在此重點討論終端節(jié)點和基站之間的通信。
圖3 LoRa組網(wǎng)系統(tǒng)
基站和終端之間的算法流程圖如圖4所示。算法的具體步驟可描述如下。
(1)基站掃描終端節(jié)點。進行3次掃描,并將結果分別存入數(shù)組Data1、Data2、Data3中,當3個數(shù)組值相同時,掃描結束,否則重復此步驟,直至掃描出正常結果。
(2)基站下發(fā)同步幀,使組網(wǎng)中各設備進行時間同步。
(3)根據(jù)基站掃描結果所分配的時隙,終端節(jié)點在各自相應時隙上報數(shù)據(jù)。
(4)當終端節(jié)點上報數(shù)據(jù)時,其他未上報數(shù)據(jù)的節(jié)點根據(jù)上報節(jié)點數(shù)據(jù)幀中的控制與同步信息進行時隙校準。
(5)在各終端節(jié)點進行上報的時隙之后,預留多余時隙,基站在此預留時隙發(fā)送下行命令。
(6)終端節(jié)點根據(jù)基站在下發(fā)時隙的命令進行相應操作。
圖4 算法實現(xiàn)流程
硬件測試模塊由主控電路、射頻電路和外圍電路組成。主控電路的主控芯片采用TI公司的MSP430F149,射頻電路中的射頻芯片采用Semtech公司的SX1278 LoRa;外圍電路由電源和晶振等組成。硬件結構如圖5所示。
圖5 硬件結構
系統(tǒng)主控芯片與射頻芯片間的傳輸接口為全雙工SPI總線。主控芯片的主要功能在于初始化和控制射頻芯片,并進行數(shù)據(jù)存儲和計算,而射頻芯片LoRa則負責數(shù)據(jù)收發(fā)。
基于LoRa硬件模塊在空曠環(huán)境對所給算法進行有效性分析。測試頻率采用470 MHz,其他測試參數(shù)如表2所示。在測試中對比采用單時隙防沖突算法和所給防沖突算法在同一測試環(huán)境和同一測試參數(shù)下的組網(wǎng)情況。
表2 配置參數(shù)
在網(wǎng)絡系統(tǒng)中,網(wǎng)絡容量、網(wǎng)絡穩(wěn)定性和網(wǎng)絡丟包率是評估網(wǎng)絡性能的重要指標。測試實驗中的網(wǎng)絡容量即指整個網(wǎng)絡所容納的終端節(jié)點數(shù)。網(wǎng)絡穩(wěn)定性主要為時間穩(wěn)定性,指實測的網(wǎng)絡上報時延與算法設計中的網(wǎng)絡上報時延的偏離情況。網(wǎng)絡上報時延為基站收到首個終端節(jié)點上報數(shù)據(jù)到最末終端節(jié)點上報數(shù)據(jù)之間的間隔。實測網(wǎng)絡容量和網(wǎng)絡上報時延情況如圖6所示,其中的“理想情況”指算法設計中根據(jù)節(jié)點傳輸時間與保護間隔預分配的時隙網(wǎng)絡時延隨著網(wǎng)絡容量的增加而增加。當網(wǎng)絡容量為較小時,單一時隙算法和本文所給算法的時延與理想情況基本一致,均滿足設計要求;但在網(wǎng)絡容量為較大時,單一時隙算法的測試結果相比于理想情況和本文所給算法偏差也大,而且單一時隙算法相比于其他兩種算法波動也大。
圖6 網(wǎng)絡容量與上報時延
系統(tǒng)在相同條件下分別采用兩種算法連續(xù)工作1小時,網(wǎng)絡容量和丟包率的實測結果如圖7所示。從中可見,網(wǎng)絡丟包率隨著網(wǎng)絡容量的增加而增加。對比單一時隙算法和本文所給算法,當網(wǎng)絡容量相同時,后者在丟包率上的表現(xiàn)優(yōu)于前者,且隨著網(wǎng)絡容量的增加,兩者的丟包率差異會更大。
圖7 容量與丟包率
提出一種基于時隙與數(shù)據(jù)幀相結合的LoRa同頻組網(wǎng)算法:通過掃描幀對組網(wǎng)中的所有設備進行掃描,根據(jù)組網(wǎng)中的設備情況有目的地劃分時隙,以避免發(fā)生同頻通信沖突;各設備在各自分配的時隙發(fā)送帶有控制信息的數(shù)據(jù)幀,實現(xiàn)網(wǎng)絡同步,同時完成對時隙的校準功能。實際仿真分析結果顯示,所給算法相比于單一時隙算法具有較好網(wǎng)絡穩(wěn)定性,可降低網(wǎng)絡傳輸過程中的數(shù)據(jù)丟包率。所給算法設計簡單,實現(xiàn)方便,可以緩解多種組網(wǎng)通信中的沖突。