趙永志
(上海電力大學(xué) 電子與信息工程學(xué)院,上海,201306)
近年來,隨著我國(guó)電子技術(shù)和網(wǎng)絡(luò)通信技術(shù)的高速發(fā)展,越來越多的新技術(shù),特別是無線數(shù)據(jù)傳輸技術(shù),已經(jīng)應(yīng)用于自動(dòng)抄表系統(tǒng)中[1]。在老舊小區(qū)升級(jí)改造中,采用無線數(shù)據(jù)傳輸技術(shù)進(jìn)行遠(yuǎn)程抄表可有效降低重新布線升級(jí)成本過高的問題。目前市面上大多數(shù)無線遠(yuǎn)程抄表方案大多使用4G、NBIoT、Lora方式,在電表中內(nèi)置無線通訊模塊,升級(jí)改造時(shí)需更換電表,成本較高。且上述無線通信方式需繳納一定的網(wǎng)絡(luò)通信資費(fèi),電表數(shù)量較多時(shí)網(wǎng)絡(luò)維護(hù)費(fèi)用較高[2]。并且根據(jù)遠(yuǎn)程抄表工作特點(diǎn),抄表時(shí)同一區(qū)域內(nèi)大量通信模塊需要并發(fā)通信,存在網(wǎng)絡(luò)阻塞的問題,降低集抄成功率。
2017年藍(lán)牙技術(shù)聯(lián)盟發(fā)布了新的藍(lán)牙Mesh網(wǎng)絡(luò)協(xié)議。全新的Mesh網(wǎng)絡(luò)打破了傳統(tǒng)的一對(duì)一、一對(duì)多的連接方式,以廣播中繼的方式提供設(shè)備間多對(duì)多傳輸,最大可容納65535個(gè)設(shè)備節(jié)點(diǎn)。并特別提高構(gòu)建大范圍網(wǎng)絡(luò)覆蓋的通信能力,適用于樓宇自動(dòng)化、無線傳感器網(wǎng)絡(luò)等需要讓數(shù)以萬(wàn)計(jì)個(gè)設(shè)備在可靠、安全的環(huán)境下傳輸?shù)奈锫?lián)網(wǎng)解決方案[3]。窄帶物聯(lián)網(wǎng)(Narrow Band Internet of Things, NBIoT)是物聯(lián)網(wǎng)(IoT)領(lǐng)域一個(gè)新興的技術(shù),具有低成本低功耗的特點(diǎn),可降低通訊方面維護(hù)成本,已成為支撐用電信息采集系統(tǒng)數(shù)據(jù)采集的另一種技術(shù)方案[4]。基于Ble Mesh和NB-IoT網(wǎng)絡(luò)技術(shù),設(shè)計(jì)了一個(gè)遠(yuǎn)程抄表系統(tǒng),采用免費(fèi)的藍(lán)牙Mesh網(wǎng)絡(luò)傳輸數(shù)據(jù),僅保留一個(gè)NB-IoT模塊進(jìn)行數(shù)據(jù)上傳,降低了網(wǎng)絡(luò)資費(fèi),避免了抄表時(shí)并發(fā)導(dǎo)致的網(wǎng)絡(luò)阻塞的問題和傳統(tǒng)抄表方式的輪詢時(shí)延。實(shí)驗(yàn)表明,該系統(tǒng)的單跳有效通信距離達(dá)到150m,能夠很好地滿足實(shí)際需要。
本系統(tǒng)的硬件組成主要包括采集節(jié)點(diǎn)、中繼節(jié)點(diǎn)、帶NB-IoT的匯聚節(jié)點(diǎn)和配網(wǎng)設(shè)備4個(gè)部分。
配網(wǎng)設(shè)備用于組建Mesh網(wǎng)絡(luò)。配網(wǎng)設(shè)備可為安裝特定APP的智能手機(jī)或其他類似功能的嵌入式設(shè)備,用以認(rèn)證設(shè)備入網(wǎng),設(shè)置網(wǎng)絡(luò)密鑰、應(yīng)用密鑰、TTL值和模型發(fā)布/訂閱地址等內(nèi)容。
匯聚節(jié)點(diǎn)負(fù)責(zé)接收和下發(fā)抄表指令并收集Mesh網(wǎng)絡(luò)內(nèi)數(shù)據(jù)并上傳。在成功建立網(wǎng)絡(luò)后,通過NB-IoT模塊接收管理中心抄表指令并在網(wǎng)絡(luò)內(nèi)向采集節(jié)點(diǎn)訂閱的組地址發(fā)布查詢命令,等待采集節(jié)點(diǎn)返回收集的用電數(shù)據(jù),并將用電數(shù)據(jù)校驗(yàn)、壓縮,通過NB-IoT網(wǎng)絡(luò)將數(shù)據(jù)回傳到管理中心。利用免費(fèi)的藍(lán)牙Mesh網(wǎng)絡(luò)去傳輸用電信息,并在每個(gè)區(qū)域內(nèi)只使用一個(gè)NB-IoT模塊對(duì)抄表指令和用電數(shù)據(jù)進(jìn)行傳輸,和以往在每個(gè)電表上安裝NB-IoT模塊的抄表方案,能有效降低網(wǎng)絡(luò)運(yùn)行費(fèi)用,降低成本[5]。
中繼節(jié)點(diǎn)用來擴(kuò)展網(wǎng)絡(luò)的覆蓋范圍,增加網(wǎng)絡(luò)傳輸?shù)姆€(wěn)定性。雖然新版本的藍(lán)牙協(xié)議已經(jīng)支持上百米的傳輸距離,但在一些節(jié)點(diǎn)間距過大、信號(hào)阻隔的場(chǎng)景下,如地下室、天井等,匯聚節(jié)點(diǎn)的單跳廣播傳輸半徑無法囊括所有采集節(jié)點(diǎn),此時(shí)就需要中繼節(jié)點(diǎn)進(jìn)行數(shù)據(jù)包的中繼和轉(zhuǎn)發(fā),保證抄表指令和用電數(shù)據(jù)能夠準(zhǔn)確到達(dá)。同時(shí),藍(lán)牙Mesh網(wǎng)絡(luò)采用采用洪泛機(jī)制進(jìn)行數(shù)據(jù)傳輸,即使某個(gè)節(jié)點(diǎn)出現(xiàn)問題,數(shù)據(jù)還可通過其他路徑到達(dá)目標(biāo)節(jié)點(diǎn),保證了抄表系統(tǒng)的穩(wěn)定性。
采集節(jié)點(diǎn)用來采集用戶電表數(shù)據(jù)。通過M-Bus協(xié)議對(duì)用戶的電表數(shù)據(jù)進(jìn)行讀取,并將用電數(shù)據(jù)打包發(fā)送至匯聚節(jié)點(diǎn)單播地址,經(jīng)中繼節(jié)點(diǎn)轉(zhuǎn)發(fā)后,最終傳輸至匯聚節(jié)點(diǎn)。為保障采集節(jié)點(diǎn)的長(zhǎng)時(shí)間工作,采用定時(shí)中斷喚醒機(jī)制,在收到中繼節(jié)點(diǎn)轉(zhuǎn)發(fā)的抄表指令后,進(jìn)行用電數(shù)據(jù)采集和上傳。
系統(tǒng)整體框圖如圖 1 所示。
圖1 系統(tǒng)整體框圖
Mesh 模型是藍(lán)牙 Mesh 協(xié)議中基礎(chǔ)業(yè)務(wù)單元,定義了特定功能的實(shí)現(xiàn)及交互流程。在本系統(tǒng)中,采用標(biāo)準(zhǔn)Sensor模型用來傳輸數(shù)據(jù),儀表數(shù)據(jù)作為Sensor模型數(shù)據(jù),通過標(biāo)準(zhǔn)模型指令進(jìn)行讀取控制。采用客戶端、服務(wù)端架構(gòu),其中匯聚節(jié)點(diǎn)作為Sensor Client,用來發(fā)布查詢指令。Mesh網(wǎng)絡(luò)內(nèi)的采集節(jié)點(diǎn)作為Sensor Server,用來響應(yīng)查詢信息。
藍(lán)牙Mesh網(wǎng)絡(luò)中支持三種地址,分別為單播地址、組地址和虛擬地址。在本系統(tǒng)中,每個(gè)節(jié)點(diǎn)都有其自身單播地址,整個(gè)抄表系統(tǒng)設(shè)置一個(gè)抄表組地址。在配網(wǎng)時(shí),匯聚節(jié)點(diǎn)發(fā)布地址設(shè)置為抄表組地址,采集節(jié)點(diǎn)訂閱地址為抄表組地址,保證下發(fā)采集指令時(shí),網(wǎng)內(nèi)采集節(jié)點(diǎn)都可以接收到采集指令。同時(shí)采集節(jié)點(diǎn)發(fā)布地址為匯聚節(jié)點(diǎn)單播地址,保證電表數(shù)據(jù)僅能由擁有對(duì)應(yīng)APP Key的匯聚節(jié)點(diǎn)進(jìn)行解析,保證用戶數(shù)據(jù)的隱私性。
在硬件節(jié)點(diǎn)的設(shè)計(jì)過程中,藍(lán)牙模塊選用了Nordic公司推出的低功耗片上系統(tǒng)nRF52833藍(lán)牙芯片。nRF52833是業(yè)界領(lǐng)先的nRF52系列SoC系列中的第五款產(chǎn)品,圍繞帶有浮點(diǎn)運(yùn)算單元(FPU)的64MHz Arm Cortex-M4而構(gòu)建,并具有512KB Flash、128KB RAM內(nèi)存和+8dBm輸出功率,適用于需要強(qiáng)大覆蓋范圍的先進(jìn)智能家居應(yīng)用。
匯聚節(jié)點(diǎn)主要目的是接收管理中心的抄表指令、下發(fā)和收集采集節(jié)點(diǎn)數(shù)據(jù)上傳至管理中心。其主要結(jié)構(gòu)包括nRF52833藍(lán)牙模塊、NB-IoT模塊、電源模塊。nRF52833藍(lán)牙模塊為節(jié)點(diǎn)控制和數(shù)據(jù)處理核心,運(yùn)行BLE Mesh協(xié)議棧,作為Mesh網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)用來收發(fā)網(wǎng)內(nèi)數(shù)據(jù)。NB-IoT模塊采用有人物聯(lián)網(wǎng)的WH-NB75-BA模塊,最大數(shù)據(jù)長(zhǎng)度512字節(jié),內(nèi)嵌了CoAP協(xié)議,提供透?jìng)髂J?,易于開發(fā),并支持PSM模式自動(dòng)切換,降低功耗。在本系統(tǒng)中用以接收電力管理平臺(tái)的指令,和藍(lán)牙模塊間通過UART串口進(jìn)行連接,通過AT指令進(jìn)行數(shù)據(jù)交互,用來收取管理中心指令和將匯聚節(jié)點(diǎn)收集到的儀表數(shù)據(jù)上傳至管理中心。其硬件結(jié)構(gòu)如圖2所示。
圖2 匯聚節(jié)點(diǎn)硬件框圖
采集節(jié)點(diǎn)用來讀取電表數(shù)據(jù)并上傳。目前大多數(shù)電表都預(yù)留485接口,支持M-Bus協(xié)議進(jìn)行數(shù)據(jù)交互。而藍(lán)牙芯片所用電平為TTL電平,與電表進(jìn)行交互需進(jìn)行電平轉(zhuǎn)換。采用MAX485驅(qū)動(dòng)電路完成電平轉(zhuǎn)換,并通過M-bus協(xié)議進(jìn)行數(shù)據(jù)交換,將收集到的電表數(shù)據(jù)作為Sensor Server模型數(shù)據(jù),待收到抄表指令后,將模型數(shù)據(jù)發(fā)送至匯聚節(jié)點(diǎn)對(duì)應(yīng)的Sensor Client模型中。其硬件結(jié)構(gòu)如圖3所示。
圖3 采集節(jié)點(diǎn)硬件框圖
中繼節(jié)點(diǎn)用來將收到的數(shù)據(jù)包進(jìn)行廣播中繼,擴(kuò)大傳輸范圍。硬件方面結(jié)構(gòu)較為簡(jiǎn)單,即在采集節(jié)點(diǎn)的基礎(chǔ)上去除電平轉(zhuǎn)換接口。另靠近匯聚節(jié)點(diǎn)的中繼節(jié)點(diǎn)將會(huì)進(jìn)行大量的廣播中繼,能量損耗較高,電源模塊采用雙供電模式,即采用3.7V鋰電池供電和市電供電,其中市電供電為主供電,若市電供電故障,則自動(dòng)切換至鋰電池供電。
配網(wǎng)設(shè)備負(fù)責(zé)組建BLE-Mesh網(wǎng)絡(luò),認(rèn)證設(shè)備入網(wǎng)、保存網(wǎng)絡(luò)的配置信息和刪除節(jié)點(diǎn)等。以nRF mesh APP為例,通用流程包括網(wǎng)絡(luò)密鑰和應(yīng)用密鑰的分發(fā)、設(shè)備的認(rèn)證入網(wǎng),節(jié)點(diǎn)的單播地址分配等內(nèi)容。在本系統(tǒng)中,還需新建抄表組地址,并將匯聚節(jié)點(diǎn)的Sensor Client模型的發(fā)布地址、采集節(jié)點(diǎn)Sensor Server模型的訂閱地址設(shè)置為該組地址,并且將采集節(jié)點(diǎn)Sensor Server模型的發(fā)布地址設(shè)置為匯聚節(jié)點(diǎn)單播地址。
當(dāng)配網(wǎng)設(shè)備構(gòu)建Mesh網(wǎng)絡(luò)成功后,管理平臺(tái)通過NBIoT網(wǎng)絡(luò)下發(fā)抄表指令,匯聚節(jié)點(diǎn)通過NB-IoT模塊接收對(duì)應(yīng)指令,并根據(jù)指令向Mesh網(wǎng)絡(luò)內(nèi)組地址發(fā)布抄表指令。當(dāng)采集節(jié)點(diǎn)數(shù)據(jù)返回后,匯聚節(jié)點(diǎn)將采集到的本區(qū)域的儀表數(shù)據(jù)打包,采用“AT+NMGS+數(shù)據(jù)長(zhǎng)度+用電數(shù)據(jù)”的AT指令傳輸至NB-IOT模塊,通過NB-IoT網(wǎng)絡(luò)將其發(fā)送到管理中心。若成功發(fā)送則會(huì)收到“OK”指令回復(fù),若在發(fā)送后2s內(nèi)未收到回復(fù)指令,且重發(fā)次數(shù)小于3次,則會(huì)重新發(fā)送采集數(shù)據(jù),保證用電數(shù)據(jù)的準(zhǔn)確到達(dá)。匯聚節(jié)點(diǎn)程序設(shè)計(jì)流程如圖4所示。
圖4 匯聚節(jié)點(diǎn)程序流程圖
中繼節(jié)點(diǎn)經(jīng)配網(wǎng)設(shè)備配置入網(wǎng)后,便會(huì)周期性地偵聽無限電收發(fā)范圍內(nèi)的數(shù)據(jù)包,并解析數(shù)據(jù)包的目的地址、序列號(hào)和TTL值。若收到目的地址非本節(jié)點(diǎn)的數(shù)據(jù)包,則根據(jù)緩存序列號(hào)判斷是否為已中繼信息,若未中繼且TTL值大于1,則將此數(shù)據(jù)包進(jìn)行廣播中繼,并將其TTL值減1。中繼節(jié)點(diǎn)程序設(shè)計(jì)流程如圖5所示。
圖5 中繼節(jié)點(diǎn)程序流程圖
采集節(jié)點(diǎn)經(jīng)配網(wǎng)設(shè)備配置入網(wǎng)后,等待中繼節(jié)點(diǎn)轉(zhuǎn)發(fā)的數(shù)據(jù)采集指令,根據(jù)指令向電表發(fā)送查詢命令,等待電表返回用電數(shù)據(jù)。信息交互遵循M-Bus協(xié)議,通過約定波特率向電表查詢特定地址的寄存器信息,包括瞬時(shí)電壓、瞬時(shí)電流、有功總電能等數(shù)據(jù)。采用接收中斷方式等待返回?cái)?shù)據(jù),并進(jìn)行CRC校驗(yàn),判斷數(shù)據(jù)的準(zhǔn)確性。當(dāng)采集數(shù)據(jù)完成以后,將用電數(shù)據(jù)發(fā)送到匯聚節(jié)點(diǎn)的單播地址,完成本次數(shù)據(jù)采集過程。采集程序設(shè)計(jì)流程如圖 6 所示。
圖6 采集節(jié)點(diǎn)程序流程圖
為驗(yàn)證系統(tǒng)的可靠性,設(shè)置1個(gè)匯聚節(jié)點(diǎn)、2個(gè)中繼節(jié)點(diǎn)和4個(gè)采集節(jié)點(diǎn),所用電表為正泰DDSU666單相式485電能表。通過BLE Mesh網(wǎng)絡(luò)傳輸采集的用電數(shù)據(jù),并由NB-IoT網(wǎng)絡(luò)發(fā)送至管理平臺(tái)。經(jīng)測(cè)試,單跳傳輸距離可達(dá)100米,Mesh網(wǎng)絡(luò)中抄表四個(gè)節(jié)點(diǎn)時(shí)延在200ms以內(nèi),時(shí)延瓶頸主要在NB-IoT網(wǎng)絡(luò)傳輸時(shí),在網(wǎng)絡(luò)穩(wěn)定情況下,一次集抄時(shí)延約在5s左右。經(jīng)測(cè)試,第一次集抄成功率為98%,第二次集抄成功率達(dá)到99.9%。
本文提出并設(shè)計(jì)了一種基于BLE-Mesh與NB-IoT技術(shù)的遠(yuǎn)程抄表系統(tǒng)。該系統(tǒng)提供了一種資費(fèi)低、容量高、延時(shí)短的遠(yuǎn)程抄表方案,具有一定的實(shí)用價(jià)值和經(jīng)濟(jì)價(jià)值。但是,實(shí)驗(yàn)所用的節(jié)點(diǎn)數(shù)量過少,無法評(píng)估在大節(jié)點(diǎn)數(shù)量場(chǎng)景中的表現(xiàn),且BLE-Mesh采用泛洪方式進(jìn)行數(shù)據(jù)傳輸,存在數(shù)據(jù)包重復(fù)、資源浪費(fèi)等情況[6],在今后的研究中會(huì)致力于解決這些問題。