王韋剛,丁 良,曹祥春
(1.南京郵電大學(xué) 電子與光學(xué)工程學(xué)院 微電子學(xué)院,江蘇 南京 210046; 2.江蘇賽達電子科技有限公司,江蘇 句容 212400)
隨著城市化和村鎮(zhèn)建設(shè)的不斷發(fā)展,抄表計量日趨增加,人工抄表既損耗了大量的人力、物力和財力,也容易發(fā)生漏抄和錯抄的情況[1],傳統(tǒng)的人工抄表方式已不能滿足當(dāng)今社會的需求。遠程抄表不需要工作人員到現(xiàn)場就可以做到數(shù)據(jù)的抄取以及表端狀態(tài)的實時監(jiān)測,且相較于有線抄表需鋪設(shè)大量長距離線路、維護成本高等缺點[2],具有非常明顯的優(yōu)勢,這將會大大提高工作效率和資源利用,因此具備廣泛的應(yīng)用前景。
目前常見的無線抄表方案有:基于Zigbee的無線抄表方案和基于LoRa自組網(wǎng)的抄表方案。Zigbee技術(shù)具有高可靠性、低成本、低功耗以及安全性好等特點,因此被廣泛應(yīng)用在無線通信領(lǐng)域[3]。由于Zigbee的通信頻率高,傳輸過程中信號衰減得較快,同一頻段下還有WiFi和藍牙信號的使用,因此通信距離較短[4],且Zigbee組網(wǎng)復(fù)雜,網(wǎng)絡(luò)很容易產(chǎn)生同頻干擾進而影響傳輸,穿透障礙物的能力也差[5]。
基于LoRa自組網(wǎng)的抄表方案一般采用星型網(wǎng)絡(luò)結(jié)構(gòu),與網(wǎng)狀結(jié)構(gòu)相比,不需要采用復(fù)雜的多層網(wǎng)絡(luò)結(jié)構(gòu)因而結(jié)構(gòu)比較簡單[6]。此方案雖然彌補了Zigbee抄表的缺點,但由于其網(wǎng)絡(luò)結(jié)構(gòu)導(dǎo)致其工作效率低。為此,本文提出了一種基于LoRa的新型遠程抄表方案,該抄表系統(tǒng)工作效率高、傳輸距離遠、功耗低[7],通過中繼路由將無線信號中繼轉(zhuǎn)發(fā),建立了可靠的傳輸路徑,能夠很好地滿足無線抄表系統(tǒng)的需求。
基于LoRa的遠程抄表系統(tǒng)由普通節(jié)點、路由節(jié)點和匯聚節(jié)點組成。普通節(jié)點實現(xiàn)對表端的管理以及數(shù)據(jù)的抄讀,普通節(jié)點相互之間不能通信;路由節(jié)點只負責(zé)對周圍普通節(jié)點的管理,路由節(jié)點不負責(zé)對表端數(shù)據(jù)的直接讀?。粎R聚節(jié)點負責(zé)對所有路由節(jié)點直接管理,網(wǎng)絡(luò)數(shù)據(jù)的出口在匯聚節(jié)點。所有普通節(jié)點抄得的數(shù)據(jù)通過路由節(jié)點上傳至匯聚節(jié)點,匯聚節(jié)點可與上位機連接以實現(xiàn)整個系統(tǒng)的管理。對于距離匯聚節(jié)點較近的路由節(jié)點,路由節(jié)點可與匯聚節(jié)點直接通信,對于距離較遠且無法與匯聚節(jié)點直接通信的路由節(jié)點,路由節(jié)點與匯聚節(jié)點之間的通信可以通過近端區(qū)的路由節(jié)點中轉(zhuǎn)完成通信。網(wǎng)絡(luò)拓撲圖如圖1所示。
圖1 系統(tǒng)網(wǎng)絡(luò)的拓撲圖
本文抄表方案采用的微控制器是由意法半導(dǎo)體公司采用超低漏電工藝和優(yōu)化的體系結(jié)構(gòu)研發(fā)的超低功耗8位微控制器STM8L151C6[8]。最高工作頻率為16 MHz,擁有64 KB的大容量閃存、2 KB的E2PROM以及4 KB高速RAM[9],能滿足無線集抄系統(tǒng)對性能和功耗的要求。抄表系統(tǒng)的MCU外圍電路圖如圖2所示。
圖2 MCU芯片及外圍電路
SX1278芯片是SEMTECH公司設(shè)計開發(fā)的低功耗長序列收發(fā)芯片,工作頻段為137~525 MHz[10]。它利用了先進的擴頻調(diào)制技術(shù)和編解碼方案,增加了鏈路預(yù)算,具有更好的抗干擾性,同時對多路徑衰落和多普勒頻移具有更高的穩(wěn)定性[11-12]。最大接收靈敏度為-148 dBm,最大發(fā)送功率為+20 dBm,總的鏈路預(yù)算是168 dB[13]。LoRa在最大發(fā)射功率及開闊無遮擋的地理環(huán)境條件下,LoRa芯片的最遠通信距離為2~5 km,即使是在地形復(fù)雜、需要多次繞射的居民區(qū),也可以達到百米,正是因為LoRa的各種優(yōu)勢,才被廣泛應(yīng)用在無線抄表、自動化、農(nóng)牧業(yè)及工業(yè)檢測等領(lǐng)域。由于SX1278是半雙工收發(fā)器,因此收發(fā)數(shù)據(jù)時要進行模式切換[14],設(shè)計中使用PE4259切換發(fā)送和接收電路,Ctrl2用于控制天線接通發(fā)射和接收電路。通信開關(guān)切換電路與SX1278外圍電路如圖3和圖4所示。
圖3 通信收發(fā)切換電路
圖4 SX1278芯片與外圍電路
除了采用的晶振不同,系統(tǒng)中各種節(jié)點的硬件設(shè)計基本相同,主要通過軟件將普通節(jié)點、路由節(jié)點和匯聚節(jié)點三者區(qū)分開,在抄表系統(tǒng)運行過程中,表端與普通節(jié)點通過UART相連接,完成數(shù)據(jù)的采集以及指令的下發(fā),實現(xiàn)對整個系統(tǒng)的控制。采用符合行業(yè)標(biāo)準(zhǔn)的鋰電池給普通節(jié)點和路由節(jié)點供電。
由于系統(tǒng)的主控芯片均采用了STM8L系列,其功耗為同類中最低。該芯片共用5種工作模式:等待模式、低功耗運行模式、低功耗等待模式、活動暫停模式和暫停模式。系統(tǒng)或電源復(fù)位后,微控制器處于運行模式。器件支持5種低功耗模式的切換,以實現(xiàn)低功耗之間的最佳折衷消耗。電路板上設(shè)計了2種晶振,采用了低速振蕩器(LSI或LSE)時,閃存和數(shù)據(jù)EEPROM可及時通過電壓調(diào)節(jié)器配置為關(guān)閉狀態(tài)。
最終,系統(tǒng)的節(jié)點休眠時功耗最低在4 μA左右;在喚醒后接收功耗為16 mA左右;數(shù)據(jù)上傳時功耗約為100 mA。
系統(tǒng)采用自主研發(fā)的通信協(xié)議SD1. 0,普通節(jié)點采用休眠—喚醒—休眠的循環(huán)工作模式,有效降低了傳輸過程中的功耗。數(shù)據(jù)傳輸方式采用數(shù)據(jù)幀模式,傳輸序列為二進制字節(jié)流。為了減少無線傳輸所受到的干擾,保證數(shù)據(jù)的正確性,數(shù)據(jù)傳輸中對數(shù)據(jù)進行循環(huán)冗余校驗CRC 校驗[15]。在招測過程中,匯聚節(jié)點向路由節(jié)點發(fā)出招測指令,近端區(qū)路由節(jié)點下發(fā)至各自管理的普通節(jié)點以及遠端區(qū)的路由節(jié)點。普通節(jié)點將數(shù)據(jù)集中返回上級路由節(jié)點,再集中傳至匯聚節(jié)點。抄表系統(tǒng)的方式可分為簇抄、單抄和全抄,簇抄是指抄取某一個路由節(jié)點下所有普通節(jié)點的數(shù)據(jù),其數(shù)據(jù)幀類型值為0x01;單抄是指抄取某一路由節(jié)點下某個或者某幾個普通節(jié)點的數(shù)據(jù),其數(shù)據(jù)幀類型值為0x02;全抄則是抄取所有普通節(jié)點的數(shù)據(jù),其數(shù)據(jù)幀類型值為0x05。系統(tǒng)實現(xiàn)了一對多的映射關(guān)系,為網(wǎng)絡(luò)遠程管理提供了便利。另外,抄表報文格式統(tǒng)一,但長度不統(tǒng)一,不同抄表方式的長度可以不一樣。例如,簇抄時,除了格式中的幀頭、幀尾、類型位、數(shù)據(jù)位和校驗位以外,還需說明所抄的路由ID;而單抄時,需要另說明所抄路由ID以及普通模塊的TNI號。
普通節(jié)點通過UART與表端相連,獲取數(shù)據(jù),再由LoRa網(wǎng)絡(luò)上傳數(shù)據(jù)和接收指令。模塊上電后,首先搜尋附近的信號,普通節(jié)點在規(guī)定時隙內(nèi)收到來自路由節(jié)點的同步廣播,向路由節(jié)點回送LOGIN_ACK并等待ACK回應(yīng),路由節(jié)點收到后回應(yīng)ACK并將分配好的TNI發(fā)送給普通節(jié)點,普通節(jié)點實現(xiàn)登錄網(wǎng)絡(luò)完成。登陸后普通節(jié)點會在每個周期接收路由節(jié)點轉(zhuǎn)發(fā)的同步廣播,該廣播從匯聚節(jié)點發(fā)起。如果若干周期后都沒有接收到路由節(jié)點轉(zhuǎn)發(fā)的同步廣播,就會退回初始狀態(tài),重新搜索路由節(jié)點。如果沒有接收到招測幀,則發(fā)送時延后4個時隙睡眠。普通節(jié)點工作流程如圖5所示。
圖5 普通節(jié)點工作流程
路由節(jié)點的登錄有一定的優(yōu)先級,如果接收的同步廣播幀是來自匯聚節(jié)點,立刻將該路由節(jié)點置為一跳路由;如果接收到的廣播幀是來自其他路由節(jié)點的廣播幀,則暫時保存,繼續(xù)接收其他廣播幀;如果接收到的所有廣播幀里沒有匯聚節(jié)點的廣播幀,則選取跳數(shù)最小的路由模塊為父節(jié)點,將該路由節(jié)點的跳數(shù)加一。
路由節(jié)點的主要職責(zé)包括:
① 式在接收時隙,接收上一跳節(jié)點的同步廣播,執(zhí)行,需要時轉(zhuǎn)發(fā);接收上一跳路由的招測信令,執(zhí)行或轉(zhuǎn)發(fā),有轉(zhuǎn)發(fā)任務(wù)時,產(chǎn)生喚醒消息;有消息(數(shù)據(jù)或節(jié)點信息)要向上一跳路由發(fā)送時,立即轉(zhuǎn)發(fā)(來自下一跳路由);在睡眠監(jiān)視和睡眠操作時,如果有轉(zhuǎn)發(fā),還需處理轉(zhuǎn)發(fā)引起的喚醒,否則處理正常接收時隙睡眠。
② 在發(fā)送時隙,轉(zhuǎn)發(fā)來自上一跳路由的同步廣播或招測信令;睡眠時間處理時,如果無招測,發(fā)送后延時4個時隙睡眠;有本地招測信令時,根據(jù)命令性質(zhì),產(chǎn)生睡眠時間;接收來自下一跳路由或普通模塊發(fā)來的信息。
路由節(jié)點工作流程如圖6所示。
圖6 路由節(jié)點工作流程
匯聚節(jié)點是整個抄表網(wǎng)絡(luò)的匯聚中心,負責(zé)建立和維護抄表網(wǎng)絡(luò)[16]。它通過UART與上位機直接相連,以實現(xiàn)路由節(jié)點傳遞過來的數(shù)據(jù)入庫。匯聚節(jié)點每接收到上位機通過UART發(fā)來的指令,就會解析指令內(nèi)容,然后向下級路由節(jié)點發(fā)出解析后的命令。匯聚節(jié)點上電后,會周期的發(fā)出同步廣播幀。接收到路由節(jié)點分配請求,它會為每一個登錄的路由節(jié)點生產(chǎn)一個路由ID,ID存儲在路由表中,方便上位機查看。每次路由節(jié)點登錄時都會先檢查路由表,如果有路由節(jié)點掉線,那么該節(jié)點在路由表中的位置就會空出來,當(dāng)給新登錄的路由節(jié)點分配ID時,就會優(yōu)先分配空出來的ID。
搭建實驗測試環(huán)境,驗證該抄表方案的有效性和可行性。測試搭建了4跳網(wǎng)絡(luò),共使用匯聚節(jié)點1個、路由節(jié)點3個和普通節(jié)點12個,每個路由節(jié)點周圍放置4個普通節(jié)點??紤]到實際情況,招測的數(shù)據(jù)都是預(yù)先寫入普通節(jié)點,且每個普通節(jié)點寫入的數(shù)據(jù)都不一樣,用來驗證招測的準(zhǔn)確性。先后進行了簇招、單招和全招的測試,將簇招接收到的數(shù)據(jù)整理成簇招結(jié)果如表1所示,單招測試為隨機招測3個路由中的1~2個節(jié)點,結(jié)果返回正確,全招測試返回也正確。最后驗證系統(tǒng)的穩(wěn)定性,在3 h內(nèi)按10 min一個周期進行自動全招,對比接收數(shù)據(jù)個數(shù)和值,能夠準(zhǔn)確無誤地招回數(shù)據(jù)。
表1 簇招結(jié)果
測試結(jié)果表明,基于自主研發(fā)的通信協(xié)議SD1. 0,能準(zhǔn)確無誤地完成各種招測命令。
LoRa技術(shù)非常適合應(yīng)用于遠距離無線抄表系統(tǒng)中,系統(tǒng)采用了SD1. 0自主協(xié)議,實現(xiàn)了高效率、低功耗、自組網(wǎng)的遠距離無線抄表系統(tǒng),完成了管理中心遠程抄取表端數(shù)據(jù)的功能。本文對系統(tǒng)整體設(shè)計結(jié)構(gòu)、硬件設(shè)計、節(jié)點軟件設(shè)計和通信協(xié)議設(shè)計進行了詳細分析,從實驗結(jié)果可知,系統(tǒng)運行穩(wěn)定、通信距離遠、功耗低、組網(wǎng)快速方便,很好地滿足了無線抄表系統(tǒng)的需求。