基于GPRS通信和uC/OS-ii的網(wǎng)絡(luò)電能表設(shè)計(jì)
摘 要:為了實(shí)現(xiàn)無(wú)線遠(yuǎn)程抄表的目的, 采用GPRS 通信技術(shù)和uC/ OS-ii嵌入式操作系統(tǒng)的多任務(wù)模塊化設(shè)計(jì)方法,設(shè)計(jì)基于GPRS 通信的網(wǎng)絡(luò)電能表。其中通信模塊硬件由ARM 微處理器及相關(guān)外設(shè)組成, 實(shí)現(xiàn)GPRS 通信、RS 232 串行通信、RS 485 串行通信及紅外通信等多種通信方式; 系統(tǒng)軟件采用硬件驅(qū)動(dòng)層、操作系統(tǒng)層、應(yīng)用接口層和應(yīng)用層四層結(jié)構(gòu),任務(wù)間通信由應(yīng)用接口層實(shí)現(xiàn)消息接收和分發(fā), 具有各任務(wù)相互獨(dú)立、無(wú)直接耦合的特點(diǎn)。
隨著技術(shù)的發(fā)展, 抄表方式也從現(xiàn)場(chǎng)人工抄表到遠(yuǎn)程自動(dòng)抄表轉(zhuǎn)變, 目前用于抄表的技術(shù)有多種, 如RS 485總線、紅外和電力線載波等, 這些抄表技術(shù)相對(duì)比較成熟, 但應(yīng)用卻各有其局限性, 如RS 485 總線抄表需要布線而增加投資, 且傳輸距離不能超過(guò)1 200 m,紅外抄表需要人工現(xiàn)場(chǎng)抄表, 電力載波抄表由于電磁干擾等的影響傳輸距離受限。GPRS 通信技術(shù)成熟, 網(wǎng)絡(luò)覆蓋廣, 可以永久在線, 按流量計(jì)費(fèi), 費(fèi)用低廉, 且不受距離和空間的限制, 使得在抄表行業(yè)的應(yīng)用非常適合。
1 GPRS 網(wǎng)絡(luò)電能表
GPRS 網(wǎng)絡(luò)電能表就是GPRS 通信技術(shù)和電表技術(shù)的結(jié)合體, 他將三相多功能電能表和GPRS 通信模塊相結(jié)合, 形成具有無(wú)線網(wǎng)絡(luò)通信能力的電能計(jì)量裝置。GPRS 網(wǎng)絡(luò)電能表由基表和GPRS 無(wú)線通信模塊兩部分組成。
1. 1 基表
基表可實(shí)現(xiàn)普通三相多功能電能表的基本功能, 在未接入GPRS 通信模塊的情況下, 不影響其作為普通多功能電能表的使用。它對(duì)交流模擬量進(jìn)行實(shí)時(shí)采樣、處理和存儲(chǔ), 實(shí)現(xiàn)電能計(jì)量、需量測(cè)量、復(fù)費(fèi)率、負(fù)荷曲線計(jì)算和存儲(chǔ)、數(shù)據(jù)凍結(jié)、事件記錄、復(fù)費(fèi)率等, 可實(shí)現(xiàn)用戶(hù)預(yù)購(gòu)電控制、負(fù)荷控制、遠(yuǎn)程控制等功能。具備RS 485通信接口、紅外通信接口、GPRS 通信模塊接口,以實(shí)現(xiàn)數(shù)據(jù)的抄讀和設(shè)置; 基表還具有本地液晶顯示,可支持本地巡顯和鍵顯功能。
1. 2 GPRS 通信模塊
GPRS 通信模塊是GPRS 網(wǎng)絡(luò)電能表的數(shù)據(jù)上傳的關(guān)鍵節(jié)點(diǎn), 作為網(wǎng)絡(luò)電能表的一個(gè)獨(dú)立模塊, 在不影響基表計(jì)量的情況下, 滿(mǎn)足用戶(hù)抄表系統(tǒng)的技術(shù)要求和傳輸規(guī)約, 實(shí)現(xiàn)數(shù)據(jù)的可靠傳輸。GPRS 通信模塊與基表的下行通信滿(mǎn)足DT / L645 多功能電能表通信協(xié)議,與主站的上行通信滿(mǎn)足《電力用戶(hù)用電信息采集系統(tǒng)通信協(xié)議》( Q / GDW 376. 1-2009) 標(biāo)準(zhǔn)。
在此著重描述GPRS 通信模塊的軟硬件設(shè)計(jì)。
2 GPRS 通信模塊硬件結(jié)構(gòu)
2. 1 系統(tǒng)框圖
GPRS 無(wú)線通信模塊的系統(tǒng)框圖如圖1 所示。系統(tǒng)包括: ARM 微處理器( LPC2138 ) 、GPRS 模塊、FLASH 和鐵電存儲(chǔ)器、紅外收發(fā)、RS 232 串行調(diào)試接口、RS 485 通信接口、JT AG 仿真接口、LED 指示及電源轉(zhuǎn)換等。
圖1 GPRS 網(wǎng)絡(luò)電能表系統(tǒng)框圖
2. 2 模塊功能
2. 2. 1 微處理器
采用基于ARM7TDMI??S 內(nèi)核的32 位微處理器LPC2138, 其內(nèi)嵌了512 KB 的高速FLASH 存儲(chǔ)器和32 KB 的RAM, 具有豐富的外設(shè)資源, 如: 2 個(gè)32 位定時(shí)器( 帶捕獲、比較通道) ; 2 個(gè)10 位8 路ADC; 1 個(gè)10 位DA C; PWM 通道; 47 路GPIO; 9 個(gè)邊沿或電平觸發(fā)的外部中斷; 具有獨(dú)立電源和時(shí)鐘的RTC; 多個(gè)串行接口( UART, I2 C, SPI, SSP) ; 內(nèi)含向量中斷控制器, 可配置中斷優(yōu)先級(jí)和向量地址; 片內(nèi)Boot 裝載程序, 可以實(shí)現(xiàn)在系統(tǒng)/ 在應(yīng)用編程( ISP/ IAP) , 通過(guò)片內(nèi)PLL 可實(shí)現(xiàn)60 MH z 的CPU 操作頻率, 具有空閑和掉電2 種低功耗模式, 并且可通過(guò)外部中斷喚醒。
2. 2. 2 GPRS 模塊
采用深圳有方科技出品的M580z 模塊, 其內(nèi)部集成了T CP/ IP 協(xié)議棧, 具有兩個(gè)通信鏈路, 一路標(biāo)準(zhǔn)TT L 串行通信端口, 精簡(jiǎn)的AT 指令集, 通過(guò)AT 命令可實(shí)現(xiàn)模塊的參數(shù)設(shè)置和數(shù)據(jù)發(fā)送。M580 與CPU 通過(guò)一個(gè)TT L 電平的串行口連接。
2. 2. 3 存儲(chǔ)器
由于與主站的上行通信應(yīng)滿(mǎn)足 電力用戶(hù)用電信息采集系統(tǒng)通信協(xié)議!, 需要存儲(chǔ)規(guī)約要求的一類(lèi)數(shù)據(jù)( 實(shí)時(shí)數(shù)據(jù)) 、二類(lèi)數(shù)據(jù)( 曲線數(shù)據(jù)、統(tǒng)計(jì)數(shù)據(jù)) 和三類(lèi)數(shù)據(jù)( 事件) , 特別是曲線數(shù)據(jù)要求存儲(chǔ)的數(shù)據(jù)量大, 因此采用大容量的FLA SH 存儲(chǔ)器來(lái)存儲(chǔ)二類(lèi)和三類(lèi)數(shù)據(jù)。
由于鐵電存儲(chǔ)器可無(wú)限制的擦寫(xiě), 所以用來(lái)存儲(chǔ)需要經(jīng)常更新的實(shí)時(shí)數(shù)據(jù)和設(shè)置參數(shù)。存儲(chǔ)器與MPU 的接口為SPI 接口。
2. 2. 4 串行接口和JTAG 仿真端口
利用RS 232 串行口、紅外通信口可實(shí)現(xiàn)模塊參數(shù)的本地設(shè)置和維護(hù)。其中, RS 232 串口可實(shí)現(xiàn)對(duì)GPRS 模塊狀態(tài)的監(jiān)測(cè), 通過(guò)RS 485 串行口可抄讀滿(mǎn)足 電力用戶(hù)用電信息采集系統(tǒng)通信協(xié)議!的數(shù)據(jù); JTAG 仿真端口可對(duì)ARM 處理器進(jìn)行仿真和程序燒寫(xiě)。
2. 2. 5 LED 指示
LED 指示燈用來(lái)指示模塊的電源狀態(tài)、模塊登陸狀態(tài)、網(wǎng)絡(luò)通信狀態(tài)及保電狀態(tài)等。
2. 2. 6 三相電能表
三相電能表實(shí)現(xiàn)電能量及電壓電流等數(shù)據(jù)的采集與計(jì)算。它與MPU 通過(guò)一個(gè)串行口連接, 通信規(guī)約滿(mǎn)足DT / L645 協(xié)議, 模塊定時(shí)抄讀三相表數(shù)據(jù), 包括電量、需量、電壓、電流等實(shí)時(shí)數(shù)據(jù), 并將抄讀到的數(shù)據(jù)進(jìn)行轉(zhuǎn)換和存儲(chǔ), 以滿(mǎn)足主站對(duì)模塊的訪問(wèn)要求。
3 軟件設(shè)計(jì)
3. 1 總體架構(gòu)
軟件設(shè)計(jì)基于uC/ OS-ii嵌入式操作系統(tǒng)的多任務(wù)設(shè)計(jì), 整體架構(gòu)如圖2 所示。
圖2總體架構(gòu)框圖
系統(tǒng)軟件包括: 主任務(wù)、上行任務(wù)、下行任務(wù)、模擬串口任務(wù)、事件處理任務(wù)和控制處理任務(wù)。
3. 1. 1 主任務(wù)
實(shí)現(xiàn)全局變量初始化, 硬件環(huán)境初始化, 信號(hào)量和消息隊(duì)列的建立、其他任務(wù)的創(chuàng)建和啟動(dòng)、鍵盤(pán)掃描、系統(tǒng)時(shí)間和定時(shí)處理、復(fù)位處理等功能。
3. 1. 2 上行任務(wù)
上行任務(wù)實(shí)現(xiàn)GPRS 通信鏈路的建立、維護(hù)及與主站的數(shù)據(jù)交換, 包括鏈路維護(hù)、數(shù)據(jù)收發(fā)、協(xié)議解析等功能。
3. 1. 3 下行任務(wù)
實(shí)現(xiàn)對(duì)基表數(shù)據(jù)定時(shí)抄讀、數(shù)據(jù)處理、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)的轉(zhuǎn)發(fā)等功能。
3. 1. 4 模擬串口管理任務(wù)
由于系統(tǒng)必須實(shí)現(xiàn)上行通信端口、下行通信端口、RS 485 通信端口、RS 232 通信端口和紅外通信端口5 個(gè)串行通信口, 而LPC2138 內(nèi)部只有兩個(gè)串行口, 所以必須對(duì)串口進(jìn)行擴(kuò)展。在此, 用軟件來(lái)模擬串口通信, 以實(shí)現(xiàn)串口擴(kuò)展。建立一個(gè)模擬串口管理任務(wù), 專(zhuān)門(mén)管理下行抄表模擬串口、紅外通信模擬串口和調(diào)試模擬串口。
3. 1. 5 事件處理任務(wù)
事件處理任務(wù)處理系統(tǒng)發(fā)生的各類(lèi)事件, 包括事件記錄、事件上報(bào)等。
3. 1. 6 控制任務(wù)
控制任務(wù)執(zhí)行一些控制操作, 包括預(yù)購(gòu)電控制、保電控制、告警控制等。
3. 1. 7 任務(wù)間的通信
任務(wù)與任務(wù)之間數(shù)據(jù)傳遞通過(guò)消息發(fā)送和接收來(lái)實(shí)現(xiàn), 消息結(jié)構(gòu)為:
消息傳遞函數(shù)定義為:
3. 2 軟件模塊實(shí)現(xiàn)流程
軟件采用模塊化設(shè)計(jì), 每個(gè)任務(wù)包含不同的功能模塊, 由于系統(tǒng)包含模塊較多, 在此只給出主任務(wù)模塊流程圖及上行任務(wù)中的GPRS 鏈路維護(hù)模塊流程圖。
3. 2. 1 主任務(wù)流程
主任務(wù)程序流程如圖3 所示。
圖3 主程序流程圖
3. 2. 2 GPRS 鏈路維護(hù)流程
上行任務(wù)中的鏈路維護(hù)模塊包括: GPRS 網(wǎng)絡(luò)登陸、鏈路狀態(tài)檢測(cè)以及心跳維護(hù)等。其中, GPRS 網(wǎng)絡(luò)登陸程序流程如圖4 所示。在GPRS 通信鏈路建立后,如果長(zhǎng)時(shí)間無(wú)數(shù)據(jù)傳輸, 則GPRS 網(wǎng)絡(luò)連接將被斷開(kāi),所以必須在一定時(shí)間間隔內(nèi)發(fā)一個(gè)心跳幀至主站, 確認(rèn)主站應(yīng)答后說(shuō)明鏈路狀態(tài)正常。不同品牌GPRS 模塊的AT 指令集不同, 因此在編程前須熟悉相關(guān)GPRS 模塊的指令集, 以實(shí)現(xiàn)鏈路的建立和維護(hù)。
圖4 GPRS 鏈路維護(hù)流程圖
4 結(jié) 語(yǔ)
介紹了GPRS 網(wǎng)絡(luò)電能表的功能和GPRS 無(wú)線通信模塊的軟硬件設(shè)計(jì), 它是對(duì)GPRS 網(wǎng)絡(luò)電能表開(kāi)發(fā)項(xiàng)目的總結(jié)。系統(tǒng)軟件移植了C/ OS嵌入式操作系統(tǒng), 采用多任務(wù)設(shè)計(jì), 提高了系統(tǒng)的實(shí)時(shí)性, 對(duì)實(shí)現(xiàn)遠(yuǎn)程無(wú)線抄表具有積極意義, 設(shè)計(jì)的產(chǎn)品已在國(guó)家電網(wǎng)公司成功應(yīng)用, 且運(yùn)行穩(wěn)定, 應(yīng)用效果良好。