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