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