劉羽軒 ,蔡高琰 ,梁炳基 ,駱德漢 ,何家峰
(1.廣東工業(yè)大學(xué) 信息工程學(xué)院,廣東 廣州 510000;2.廣東浩迪創(chuàng)新科技有限公司,廣東 佛山 528000)
當(dāng)前新型智能電表普遍采用無線通信方案,無線通信技術(shù)有 GPRS、ZigBee、LoRa 等。 在無線通信技術(shù)中,遠(yuǎn)程(Long Range,LoRa)是一種采用擴(kuò)頻技術(shù)的無線傳輸方案,具有遠(yuǎn)距離傳輸、抗干擾能力強(qiáng)、低功耗等特點(diǎn)[1-2],其特性適合用于智能電表的通信。但其也存在著可靠性低、容量過少的問題[3-5]。因此,本文研究一種基于LoRa 的使用新型組網(wǎng)協(xié)議的通信方案,致力于消除LoRa 的不足,使其更加適合于智能電表通信。
本方案的總體構(gòu)架如圖1 所示。 在通信系統(tǒng)中分為采集器節(jié)點(diǎn)和電表節(jié)點(diǎn),基于LoRa 的智能電表節(jié)點(diǎn)中搭載了LoRa 功能的傳感器,電力數(shù)據(jù)通過LoRa 無線通信單元經(jīng)過中繼多跳網(wǎng)絡(luò)發(fā)送到采集器節(jié)點(diǎn)的接收模塊,采集器節(jié)點(diǎn)通過GPRS 將數(shù)據(jù)發(fā)送至服務(wù)器[6-7]。 其中電表節(jié)點(diǎn)和采集器節(jié)點(diǎn)數(shù)據(jù)傳輸使用的中繼多跳組網(wǎng)協(xié)議,可有效解決當(dāng)采集器和電表節(jié)點(diǎn)過遠(yuǎn)時出現(xiàn)的問題。
圖1 總體架構(gòu)
LoRa 模塊的傳輸方式分為透明傳輸和定向傳輸[7-8]。 其中透明傳輸采用的是 LoRa 擴(kuò)頻技術(shù)來進(jìn)行,同時提供 RS485 和 RS232 串口,為用戶提供全透明數(shù)據(jù)傳輸模式,也為建立中級多跳網(wǎng)絡(luò)提供了便利。 本文設(shè)計(jì)的中繼多跳組網(wǎng)協(xié)議即在透明傳輸?shù)幕A(chǔ)上實(shí)現(xiàn)。
中繼多跳通信時需要兩電表節(jié)點(diǎn)之間進(jìn)行通信,所以兩電表的LoRa 模塊配置也應(yīng)設(shè)置相同[9-11]。電表節(jié)點(diǎn)基于LoRa 透傳的數(shù)據(jù)幀結(jié)構(gòu)設(shè)置見表1。
表1 數(shù)據(jù)幀結(jié)構(gòu)
中繼多跳傳輸協(xié)議執(zhí)行步驟如圖2 所示。
具體步驟如下:
(1)判斷電表節(jié)點(diǎn)接收的數(shù)據(jù)幀中的CA 與其本地地址是否相同。 若相同,執(zhí)行第(2)步;否則執(zhí)行第(5)步。
圖2 協(xié)議幀執(zhí)行步驟
(2)判斷接收的數(shù)據(jù)幀中的 CA 是不是為 TL 中電表節(jié)點(diǎn)詳細(xì)地址表中最后一個地址。 若不是,執(zhí)行第(3)步;若是,則執(zhí)行第(4)步。
(3)將TL 的電表節(jié)點(diǎn)詳細(xì)地址表中的下一個傳輸?shù)刂诽畛涞絺鬏敂?shù)據(jù)幀結(jié)構(gòu)中的CA,然后廣播進(jìn)行發(fā)送。
(4)若數(shù)據(jù)幀中的CA 是電表節(jié)點(diǎn)詳細(xì)地址表最后一個地址,則說明中繼通信完成,該電表節(jié)點(diǎn)可以進(jìn)行數(shù)據(jù)內(nèi)容解析并做出相應(yīng)操作。 響應(yīng)數(shù)據(jù)時,需要將接收到的數(shù)據(jù)幀中的TL 進(jìn)行反轉(zhuǎn),隨后重新配置CA。
(5)若電表節(jié)點(diǎn)接收的數(shù)據(jù)幀中的CA 與電表節(jié)點(diǎn)的本地地址不一致,則不響應(yīng)。
(6)若電表節(jié)點(diǎn)接收的數(shù)據(jù)幀中的CA 是十六進(jìn)制,那么判斷電表節(jié)點(diǎn)的本地地址是否在電表節(jié)點(diǎn)詳細(xì)地址表中。 如果在,則表示該數(shù)據(jù)幀被當(dāng)前電表節(jié)點(diǎn)中繼過,可以不作響應(yīng);如果不在,則表示此數(shù)據(jù)幀是廣播數(shù)據(jù)幀,對數(shù)據(jù)幀的內(nèi)容進(jìn)行解析并做出相應(yīng)操作。
將本協(xié)議移植到電表節(jié)點(diǎn)中,即可實(shí)現(xiàn)電表節(jié)點(diǎn)的數(shù)據(jù)中繼多跳傳輸,其組網(wǎng)鏈路模型如圖3所示。
圖3 組網(wǎng)鏈路模型
圖 3 中,A 表示采集器節(jié)點(diǎn),B~K 表示 LoRa 電表節(jié)點(diǎn),其組網(wǎng)鏈路過程如下:
(1)節(jié)點(diǎn)A 通過廣播發(fā)出十六進(jìn)制的數(shù)據(jù)幀,對各個電表節(jié)點(diǎn)設(shè)備標(biāo)號進(jìn)行獲取。
(2)收到廣播的數(shù)據(jù)幀后,B~K 電表節(jié)點(diǎn)將自己設(shè)備標(biāo)號中繼發(fā)送至A,A 對各電表節(jié)點(diǎn)的本地地址進(jìn)行分配。
(3)B、C、D 即為一級電表節(jié)點(diǎn)設(shè)備,由 A 直接分配地址。
(4)已經(jīng)分配好地址的 B、C、D 等一級電表節(jié)點(diǎn)設(shè)備繼續(xù)進(jìn)行中繼廣播;E、F、G、H、I 即為二級電表節(jié)點(diǎn)設(shè)備,通過已經(jīng)分配地址的一級電表進(jìn)行地址分配,如 B 給 E、F 進(jìn)行分配地址,以此類推,直到整個中繼多跳網(wǎng)絡(luò)形成。
在智能電表通信系統(tǒng)中,為實(shí)現(xiàn)本文設(shè)計(jì)的基于LoRa 透明傳輸?shù)闹欣^多跳網(wǎng)絡(luò),保證系統(tǒng)通信過程中的狀態(tài)監(jiān)測以及數(shù)據(jù)的實(shí)時處理,需要分別對電表節(jié)點(diǎn)和采集器節(jié)點(diǎn)進(jìn)行硬件設(shè)計(jì)。
電表節(jié)點(diǎn)的主要功能是對用電量進(jìn)行實(shí)時采集,并將采集的數(shù)據(jù)發(fā)送給采集器,實(shí)現(xiàn)與采集器之間的通信[12]。 其硬件框圖如圖 4 所示。
圖4 電表節(jié)點(diǎn)硬件框圖
本文選取HD-TB01 單相電表作為基表,使用STM32 系列芯片作為 LoRa 模塊的主控 MCU,射頻收發(fā)芯片選用SX1278 芯片。其中,MCU 電路為整個模塊的大腦,主要對射頻芯片進(jìn)行控制,支撐其完成數(shù)據(jù)的接收/發(fā)送;射頻芯片則實(shí)現(xiàn)數(shù)據(jù)的無線發(fā)送和接收;接口電路完成LoRa 模塊與基表之間的通信,使用 RS232 串口通信。
采集器節(jié)點(diǎn)是中繼多跳網(wǎng)絡(luò)與遠(yuǎn)程通信網(wǎng)絡(luò)(GPRS)的中間環(huán)節(jié)[13-14],主要負(fù)責(zé)采集電表節(jié)點(diǎn)的數(shù)據(jù)并進(jìn)行數(shù)據(jù)的上傳與下發(fā)。 其硬件結(jié)構(gòu)如圖5所示。
圖5 采集器節(jié)點(diǎn)硬件框圖
本文選用C121-GL 云終端采集器作為采集器基表,與電表節(jié)點(diǎn)相同,使用 STM32 系列芯片作為LoRa 模塊的主控 MCU,射頻收發(fā)芯片選用 SX1278芯片,采用RS232 串口通信與采集器基表進(jìn)行通信,其主要流程為:通過射頻收發(fā)模塊采集電表節(jié)點(diǎn)的數(shù)據(jù),然后經(jīng)過MCU 模塊處理,再通過GPRS 模塊發(fā)送至服務(wù)器。
本文設(shè)計(jì)的通信協(xié)議,遵循智能電表DL/T645-2007 規(guī)約以及GBDW-1375 系列協(xié)議,設(shè)計(jì)基于 LoRa透明傳輸?shù)闹欣^多跳組網(wǎng)方式來進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)。 其軟件設(shè)計(jì)包括組網(wǎng)的功能設(shè)計(jì)和電表節(jié)點(diǎn)、采集器節(jié)點(diǎn)的軟件設(shè)計(jì)。
LoRa 采集器節(jié)點(diǎn)使用中級多跳網(wǎng)絡(luò)協(xié)議前必須進(jìn)行采集器節(jié)點(diǎn)和電表節(jié)點(diǎn)無線組網(wǎng),其組網(wǎng)設(shè)計(jì)流程如下:
(1)采集器上電后發(fā)送啟動注冊的廣播幀。
(2)電表收到廣播幀后,如幀內(nèi) LoRa 參數(shù)與電表一致,則上報(bào)帶表號的注冊幀。
(3)采集器收到電表上報(bào)的注冊幀后,若該電表在采集器的配置表上,則回應(yīng)確認(rèn)幀;如電表不在采集器配置表上,則回應(yīng)拒絕注冊幀。 電表收到拒絕幀,且?guī)瑑?nèi) LoRa 參數(shù)與電表一致,立即跳到下一頻段等待注冊。
(4)電表收到確認(rèn)幀,且?guī)瑑?nèi) LoRa 參數(shù)與電表一致,則認(rèn)為是注冊成功,無需再返回應(yīng)答幀,保持在當(dāng)前通信頻率等待采集器抄讀,不再響應(yīng)廣播幀。
(5)采集器 5 s 內(nèi)未收到電表上報(bào)幀,則重發(fā)廣播幀。
(6)當(dāng)采集器判斷配置表內(nèi)所有表均已上報(bào)或已抄到過數(shù)據(jù),或者5 s 內(nèi)無電表上報(bào)且注冊流程已超過20 s,則結(jié)束注冊流程,繼續(xù)抄表。
(7)如果采集器上一次注冊流程未完成所有電表注冊,因超時而結(jié)束,則等待其他抄表任務(wù)結(jié)束后繼續(xù)啟動注冊流程。
(8)電表長時間(暫定30 min)未收到采集器的廣播幀或?qū)υ撾姳淼某x幀,則重新進(jìn)入注冊狀態(tài),嘗試跳頻以確定對應(yīng)采集器的通信頻率。
基于LoRa 的電表節(jié)點(diǎn)軟件設(shè)計(jì)流程如圖6所示。
在電表節(jié)點(diǎn)中,LoRa 模塊首先會通過RS232 串口與智能電表基表進(jìn)行第一輪交互,以獲取基表的自身信息并進(jìn)行自身信息的初始化和網(wǎng)絡(luò)初始化,然后請求加入由采集器節(jié)點(diǎn)構(gòu)建的中繼多跳網(wǎng)絡(luò)。成功加入后,當(dāng)電表接收到來自采集器發(fā)送的信息后,首先會使用校驗(yàn)來檢查接收到的數(shù)據(jù),如果確認(rèn)無誤,就提取數(shù)據(jù)報(bào)文中相關(guān)系列報(bào)文并進(jìn)行數(shù)據(jù)記錄,隨后將數(shù)據(jù)通過RS232 接口傳送給智能電表基表。 智能電表基表解析后,又通過 RS232 接口獲取返回的響應(yīng)數(shù)據(jù),隨后將數(shù)據(jù)通過中繼多跳組網(wǎng)協(xié)議打包發(fā)送到采集器節(jié)點(diǎn),至此完成了一輪數(shù)據(jù)采集。
與電表節(jié)點(diǎn)相比,采集器節(jié)點(diǎn)功能更加復(fù)雜,因?yàn)槠洳粌H需要與電表節(jié)點(diǎn)進(jìn)行通信,還需要通過GPRS網(wǎng)絡(luò)將數(shù)據(jù)傳輸給服務(wù)器[15]。 采集器節(jié)點(diǎn)軟件設(shè)計(jì)流程如圖 7 所示。
圖6 電表節(jié)點(diǎn)軟件設(shè)計(jì)流程圖
在采集器節(jié)點(diǎn)中,LoRa 模塊首先會通過RS232串口與采集器基表進(jìn)行第一輪的交互,以獲取采集器的表號等自身信息以及網(wǎng)絡(luò)參數(shù),并進(jìn)行自身的初始化,然后掃描信道,若信道沒有阻塞則建立本地通信網(wǎng)絡(luò)即中繼多跳網(wǎng)絡(luò)。 待組網(wǎng)成功后進(jìn)入監(jiān)聽模式。
監(jiān)聽的內(nèi)容分為服務(wù)器的消息和電表節(jié)點(diǎn)的入網(wǎng)請求,其處理如下:
圖7 采集器節(jié)點(diǎn)軟件設(shè)計(jì)流程圖
(1)當(dāng)監(jiān)聽到服務(wù)器通過GPRS 網(wǎng)絡(luò)傳送過來的采集信息時,需要先對數(shù)據(jù)進(jìn)行校驗(yàn)。 若為正常數(shù)據(jù), 則按照協(xié)議對服務(wù)器傳送的數(shù)據(jù)進(jìn)行解析,通過數(shù)據(jù)內(nèi)容判斷采集器節(jié)點(diǎn)應(yīng)該采取的動作,是將采集器節(jié)點(diǎn)本身的信息上傳還是對電表節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行采集。 若為上傳本身數(shù)據(jù)的指令,則將數(shù)據(jù)記錄的同時通過RS232 串口向采集器基表傳送該指令,采集器基表對數(shù)據(jù)進(jìn)行響應(yīng)后,通過GPRS公網(wǎng)將數(shù)據(jù)傳送至服務(wù)器;若接收到的信息為抄讀電表節(jié)點(diǎn)的電力數(shù)據(jù),則首先以中繼多跳協(xié)議所組成的LoRa 網(wǎng)絡(luò)進(jìn)行索引,找到該電表,與該電表建立通信后,將數(shù)據(jù)包按照自定義的中繼多跳協(xié)議進(jìn)行封裝和打包,并在對數(shù)據(jù)進(jìn)行記錄后由中繼多跳網(wǎng)絡(luò)傳送給指定電表節(jié)點(diǎn)進(jìn)行數(shù)據(jù)查詢。 完成操作后繼續(xù)監(jiān)聽。
(2)當(dāng)監(jiān)聽到的消息為電表節(jié)點(diǎn)入網(wǎng)請求時,則讀取申請者的設(shè)備信息,并將其關(guān)聯(lián),允許其加入網(wǎng)絡(luò)并繼續(xù)監(jiān)聽。
為了驗(yàn)證本文設(shè)計(jì)的智能電表通信方案比普通LoRa 網(wǎng)絡(luò)是否有顯著提升,本文根據(jù)實(shí)用場景,設(shè)計(jì)了兩種測試方式,分別是空曠環(huán)境和樓房環(huán)境下的通信測試,并與普通LoRa 模塊通信的智能電表進(jìn)行對比,將采集的成功率作為衡量方案可行性的依據(jù)。
首先在服務(wù)器中對參與實(shí)驗(yàn)的仿真環(huán)境中的采集器節(jié)點(diǎn)和電表節(jié)點(diǎn)進(jìn)行建檔,然后讓服務(wù)器下發(fā)指令,使得采集器對智能電表的電量信息進(jìn)行輪抄,重復(fù)采集3 次。 其在空曠環(huán)境下的結(jié)果對比如表2 所示,樓房環(huán)境下的結(jié)果對比如表3 所示。
表2 空曠環(huán)境下的對比
表3 樓房環(huán)境下的對比
通過采集器對各個電表節(jié)點(diǎn)的電力數(shù)據(jù)進(jìn)行400 次重復(fù)采集,能夠完整采集電力數(shù)據(jù)即為采集成功,通過采集成功次數(shù)獲得采集成功率。
通過對比,發(fā)現(xiàn)本文設(shè)計(jì)的基于LoRa 的新型通信方案在智能電表通信中有更好的表現(xiàn),使用中繼多跳網(wǎng)絡(luò)時,即使樓層較高或距離較遠(yuǎn),采集成功率仍能保持較高水平,并且隨著距離和樓層的增加,成功率降低的速度也較小。 因?yàn)楫?dāng)需要抄讀更遠(yuǎn)距離的電表數(shù)據(jù)時,本文設(shè)計(jì)方案會通過中繼多跳的方式將較遠(yuǎn)距離的電表數(shù)據(jù)先傳輸給近距離的電表,隨后進(jìn)行上傳以保證數(shù)據(jù)采集的成功率。
隨著智能電網(wǎng)的日益成熟,對更智能化的電力數(shù)據(jù)采集系統(tǒng)的需求也更加迫切,本文設(shè)計(jì)了智能電表新型通信方案,并進(jìn)行了相關(guān)實(shí)驗(yàn)驗(yàn)證,雖由于不可控原因存在較小誤差,但實(shí)驗(yàn)結(jié)果還是較好地證明了該方案的可行性。