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