張顯才
(空軍預(yù)警學(xué)院,湖北 武漢 430019)
按照國(guó)家電網(wǎng)公司統(tǒng)計(jì),10 kV及以上供電電壓等級(jí)的用戶側(cè)變配電所數(shù)量眾多,總數(shù)在200萬(wàn)戶以上。此類用戶側(cè)變配電所內(nèi)通常包含進(jìn)線柜、出線柜、無(wú)功功率補(bǔ)償柜等電力控制柜,利用綜合保護(hù)器等設(shè)備實(shí)時(shí)監(jiān)測(cè)斷路器的狀態(tài)、三相電壓、三相電流、有功電能、無(wú)功電能、功率因數(shù)等參數(shù)。這些數(shù)據(jù)對(duì)實(shí)時(shí)監(jiān)測(cè)、統(tǒng)計(jì)這些設(shè)備的工作狀態(tài)起著至關(guān)重要的作用。如果將片區(qū)內(nèi)所有變配電所的測(cè)量數(shù)據(jù)進(jìn)行大數(shù)據(jù)綜合統(tǒng)計(jì)分析,可以對(duì)片區(qū)內(nèi)用電情況進(jìn)行精準(zhǔn)的統(tǒng)計(jì)和預(yù)測(cè),并對(duì)故障進(jìn)行提前預(yù)警。但現(xiàn)有綜合保護(hù)器或者DTU通常采用RS 485通信,只能通過(guò)有線傳輸方式,點(diǎn)對(duì)點(diǎn)地將信息傳輸至信息處理主機(jī),無(wú)法實(shí)現(xiàn)片區(qū)內(nèi)所有測(cè)量數(shù)據(jù)的融合和匯總,無(wú)法組網(wǎng)進(jìn)行大數(shù)據(jù)分析。
2019年國(guó)家電網(wǎng)公司提出了建設(shè)范在電力物聯(lián)網(wǎng),加快推進(jìn)“三型兩網(wǎng)”戰(zhàn)略落地實(shí)施。目標(biāo)是到2021年,初步建設(shè)范在電力物聯(lián)網(wǎng),基本實(shí)現(xiàn)業(yè)務(wù)協(xié)同與數(shù)據(jù)貫通;到2024年,建成范在電力物聯(lián)網(wǎng),全面實(shí)現(xiàn)業(yè)務(wù)協(xié)同、數(shù)據(jù)貫通和統(tǒng)一物聯(lián)管理,公司級(jí)智能能源綜合服務(wù)平臺(tái)具備強(qiáng)大功能,全面形成共建共治和共享的能源互聯(lián)網(wǎng)生態(tài)圈。如今,物聯(lián)網(wǎng)技術(shù)迅猛發(fā)展,新一代的窄帶物聯(lián)網(wǎng)(NB-IoT)具有強(qiáng)鏈接、高覆蓋、低功耗和低成本的優(yōu)點(diǎn),可方便實(shí)現(xiàn)能源管理進(jìn)入萬(wàn)物互聯(lián)時(shí)代。在這樣的背景及要求下,研制一種RS 485與NB-IoT網(wǎng)絡(luò)雙向數(shù)據(jù)傳輸DTU電路,對(duì)原有電力參數(shù)測(cè)量設(shè)備進(jìn)行升級(jí),使這些設(shè)備可以快速接入物聯(lián)網(wǎng),實(shí)現(xiàn)數(shù)據(jù)貫通,具有深遠(yuǎn)的意義。
本設(shè)計(jì)電路主要由穩(wěn)壓電路、NB-IoT模組、MCU以及RS 485通信接口電路等部分組成,如圖1所示。
圖1 電路的組成
數(shù)據(jù)鏈路工作過(guò)程如圖2所示。DTU接收RS 485通信鏈路的數(shù)據(jù)幀,在MCU內(nèi)按照NB-IoT模組數(shù)據(jù)格式要求進(jìn)行數(shù)據(jù)封裝,通過(guò)NB-IoT模組發(fā)往NB-IoT基站?;窘邮盏綌?shù)據(jù)后,按照數(shù)據(jù)協(xié)議中的目的服務(wù)器地址,將數(shù)據(jù)轉(zhuǎn)發(fā)至網(wǎng)絡(luò)云服務(wù)器,完成一次數(shù)據(jù)上報(bào)過(guò)程。數(shù)據(jù)的下發(fā)過(guò)程與此正好相反。首先是網(wǎng)絡(luò)服務(wù)器將數(shù)據(jù)下發(fā)至NB-IoT基站,基站根據(jù)數(shù)據(jù)協(xié)議中的目標(biāo)地址,將數(shù)據(jù)轉(zhuǎn)發(fā)至相應(yīng)NB-IoT模組,并使模組產(chǎn)生讀請(qǐng)求信號(hào),通知電路中的MCU讀取數(shù)據(jù)。MCU將數(shù)據(jù)讀取并解析后,通過(guò)RS 485接口電路將數(shù)據(jù)發(fā)出,完成一次數(shù)據(jù)下發(fā)過(guò)程。收發(fā)過(guò)程中,數(shù)據(jù)的封裝和解析等過(guò)程均由MCU和NB-IoT基站完成,對(duì)于用戶而言是全透明的。
圖2 電路工作過(guò)程
在電路設(shè)計(jì)中,MCU對(duì)NB-IoT模組之間的控制及數(shù)據(jù)傳輸是整個(gè)設(shè)計(jì)的核心。MCU選用ST公司基于Cortex-M3內(nèi)核的單片機(jī)STM32F103C8T6。NB-IoT模組選用上海移遠(yuǎn)公司的BC26模組。
BC26是一款高性能、低功耗、支持多頻段的NB-IoT模塊。采用LCC封裝結(jié)構(gòu),典型工作電壓為3.3 V,峰值工作電流為0.5 A,支持B1、B3、B5、B8等工作頻段,內(nèi)置UDP/TCP/CoAP/LwM2M/MQTT/PPP/SNTP協(xié)議,可以連接中國(guó)移動(dòng)OneNET、中國(guó)電信IoT、華為OceanConnect和私有云等物聯(lián)網(wǎng)平臺(tái)。
BC26模組硬件上除了供電電源接口外,還包含1個(gè)USIM卡接口、3個(gè)UART接口、1個(gè)SPI接口、1個(gè)用于外部中斷喚醒的PSM_EINT接口、1個(gè)10位的ADC接口、1個(gè)天線接口,以及復(fù)位、開機(jī)、聯(lián)網(wǎng)指示接口。在其OpenCPU版本中,還包含IC接口、IS接口以及可配置的GPIO接口。3個(gè)UART接口分別為主UART、調(diào)試UART、輔助UART接口。主UART和輔助UART都可以用于與MCU間的通信。除此之外,主UART還可以用于BC26固件升級(jí)。調(diào)試UART可以輸出調(diào)試信息,用于軟件調(diào)試。本次設(shè)計(jì)采用主UART與MCU進(jìn)行數(shù)據(jù)傳輸。由于主UART的電平為1.8 V,因此與MCU進(jìn)行通信時(shí),必須外加電平轉(zhuǎn)換電路。
采用TI公司的DC/DC電源芯片TPS54202實(shí)現(xiàn)。該器件是一款輸入電壓范圍為4.5~28 V的2 A同步降壓轉(zhuǎn)換器,包含兩個(gè)集成式開關(guān)場(chǎng)效應(yīng)管,具有內(nèi)部回路補(bǔ)償和內(nèi)部軟啟動(dòng)功能。TPS54202具有較高的功率密度、較小的封裝,僅需極少的外部元件,即可實(shí)現(xiàn)穩(wěn)定的電壓輸出,非常適合于對(duì)體積有要求的電路的設(shè)計(jì)。電源電路如圖3所示。在該電路中,電容和為輸入濾波電容;和為反饋電阻,為TPS54202提供電壓基準(zhǔn),改變此電阻的比值即可改變輸出電壓。當(dāng)取值為100 kΩ、取值為22.1 kΩ時(shí),電路輸出電壓為3.3 V。電容、、為輸出濾波電容,同時(shí)也有儲(chǔ)能作用,提高電源輸出的穩(wěn)定性。
圖3 電源電路
STM32F103C8T6總計(jì)有三個(gè)串行接口。在設(shè)計(jì)中利用串口1實(shí)現(xiàn)RS 485數(shù)據(jù)的收發(fā),利用串口2與BC26的主UART之間進(jìn)行數(shù)據(jù)傳輸。BC26的主UART為1.8 V的電平標(biāo)準(zhǔn),而MCU的串口為3.3 V的電平標(biāo)準(zhǔn)。因此在設(shè)計(jì)時(shí),不能直接連接,須通過(guò)電平轉(zhuǎn)換芯片。設(shè)計(jì)中選用TI公司的NTB0102DP實(shí)現(xiàn)。
RS 485數(shù)據(jù)的收發(fā)采用SP3485實(shí)現(xiàn),其原理如圖4所示。經(jīng)過(guò)此電路,可以實(shí)現(xiàn)差分RS 485數(shù)據(jù)與單端LVTTL電平的UART數(shù)據(jù)之間的相互轉(zhuǎn)換。電路設(shè)計(jì)中,增加了熱敏電阻RV1和TVS管保證通信的安全可靠。
圖4 RS 485通信電路
軟件程序流程如圖5所示。程序開始時(shí)首先進(jìn)行系統(tǒng)初始化操作:一方面是對(duì)MCU內(nèi)部資源進(jìn)行初始化,主要是初始化STM32的UART接口的工作參數(shù)和工作模式;另一方面是BC26模組的初始化,主要是查詢模塊信息、獲取網(wǎng)絡(luò)信息、設(shè)置工作頻段、打開射頻開關(guān)、查詢模組注網(wǎng)狀態(tài)等。當(dāng)模組注網(wǎng)成功后,設(shè)置模組工作的Socket參數(shù),連接服務(wù)器,向服務(wù)器發(fā)送注冊(cè)包;然后,程序處于輪詢狀態(tài)。當(dāng)MCU串口接收緩沖區(qū)非空時(shí),表示已收到一幀RS 485數(shù)據(jù),MCU對(duì)接收的數(shù)據(jù)重新封裝,發(fā)往模組,最終上傳至服務(wù)器。如果收到模組下發(fā)的讀數(shù)據(jù)請(qǐng)求,MCU從模組緩沖區(qū)讀取數(shù)據(jù),并通過(guò)UART口發(fā)送,最終形成RS 485數(shù)據(jù)。如果一段時(shí)間無(wú)數(shù)據(jù)上傳,模組會(huì)自動(dòng)睡眠,與服務(wù)器斷開連接。因此設(shè)定一定的時(shí)間間隔,定時(shí)發(fā)送心跳包數(shù)據(jù),使模組與服務(wù)器保持實(shí)時(shí)連接。
圖5 軟件流程
STM32單片機(jī)串口具有DMA接收功能,在串口初始化時(shí)指定DMA接收的源地址和目的地址,設(shè)定源和目的地址的增長(zhǎng)方式。每接收到一個(gè)完整的字節(jié)后,DMA控制器會(huì)自動(dòng)將接收數(shù)據(jù)存入目的地址指向的緩沖區(qū),無(wú)須軟件干預(yù)。
STM32單片機(jī)的串口還有空閑線(IDLE)中斷模式。在該模式下,當(dāng)串口的接收引腳存在超過(guò)2個(gè)字節(jié)時(shí)間的空閑時(shí),單片機(jī)會(huì)產(chǎn)生空閑中斷,表明一幀數(shù)據(jù)已經(jīng)傳輸完成。該中斷與DMA數(shù)據(jù)接收功能配合使用,特別適合于不定長(zhǎng)數(shù)據(jù)幀的接收。
BC26模組的所有操作均采用AT指令實(shí)現(xiàn),其初始化流程如圖6所示。在初始化過(guò)程中,每次發(fā)送AT指令后,均需驗(yàn)證指令的返回是否正確。由于模組的IMEI碼具有唯一性,注網(wǎng)過(guò)程中將讀取的IMEI碼作為注冊(cè)包和心跳包的數(shù)據(jù)。當(dāng)查詢到模塊注網(wǎng)成功,并成功讀取PDP地址后,即可采用不同的通信協(xié)議建立與遠(yuǎn)程服務(wù)器間的通信連接。
圖6 BC26模組注網(wǎng)流程
測(cè)試中服務(wù)器為私有云服務(wù)器,模組與服務(wù)器間采用TCP協(xié)議進(jìn)行通信。模組執(zhí)行“AT+QIOPEN”指令連接遠(yuǎn)程云服務(wù)器。執(zhí)行“AT+QISEND”指令向服務(wù)器上傳數(shù)據(jù)。當(dāng)服務(wù)器有下發(fā)數(shù)據(jù)時(shí),模組會(huì)輸出“+QIURC:‘recv’,0”字符串,通知MCU進(jìn)行數(shù)據(jù)讀取。
設(shè)計(jì)的DTU電路實(shí)物如圖7所示。電路的測(cè)試方法如圖8所示。測(cè)試包含2臺(tái)電腦,左側(cè)電腦外接USB轉(zhuǎn)RS 485數(shù)據(jù)線,運(yùn)行串口調(diào)試助手,模擬RS 485數(shù)據(jù)的收發(fā);右側(cè)電腦遠(yuǎn)程登錄到服務(wù)器,服務(wù)器上運(yùn)行網(wǎng)絡(luò)調(diào)試助手,模擬服務(wù)器數(shù)據(jù)的收發(fā)。測(cè)試結(jié)果如圖9所示??梢?,該電路工作正常,實(shí)現(xiàn)了數(shù)據(jù)的透明傳輸。
圖7 DTU電路實(shí)物
圖8 電路測(cè)試方法
圖9 測(cè)試結(jié)果
本文詳細(xì)分析了RS 485與NB-IoT網(wǎng)絡(luò)雙向數(shù)據(jù)透?jìng)麟娐返墓ぷ髟?、電路設(shè)計(jì)要點(diǎn)、程序設(shè)計(jì)流程,并對(duì)電路進(jìn)行了測(cè)試。測(cè)試結(jié)果表明,該電路能夠?qū)崿F(xiàn)數(shù)據(jù)透?jìng)鞴δ芤约皞鹘y(tǒng)RS 485通信設(shè)備數(shù)據(jù)上云的功能。現(xiàn)在此電路已成功用于武漢某開閉所綜合保護(hù)器的升級(jí)改造,實(shí)現(xiàn)了本地測(cè)量數(shù)據(jù)網(wǎng)絡(luò)化以及數(shù)據(jù)的互聯(lián)互通,便于后臺(tái)對(duì)所有設(shè)備進(jìn)行統(tǒng)一的管理和監(jiān)控。