3.1 總體架構
軟件設計基于μC/OS-Ⅱ嵌入式操作系統的多任務設計,整體架構如圖2所示。
系統軟件包括:主任務、上行任務、下行任務、模擬串口任務、事件處理任務和控制處理任務。
3.1.1 主任務
實現全局變量初始化,硬件環境初始化,信號量和消息隊列的建立、其他任務的創建和啟動、鍵盤掃描、系統時間和定時處理、復位處理等功能。
3.1.2 上行任務
上行任務實現GPRS通信鏈路的建立、維護及與主站的數據交換,包括鏈路維護、數據收發、協議解析等功能。
3.1.3 下行任務
實現對基表數據定時抄讀、數據處理、數據存儲、數據的轉發等功能。
3.1.4 模擬串口管理任務
由于系統必須實現上行通信端口、下行通信端口、RS 485通信端口、RS 232通信端口和紅外通信端口5個串行通信口,而LPC2138內部只有兩個串行口,所以必須對串口進行擴展。在此,用軟件來模擬串口通信,以實現串口擴展。建立一個模擬串口管理任務,專門管理下行抄表模擬串口、紅外通信模擬串口和調試模擬串口。
3.1.5 事件處理任務
事件處理任務處理系統發生的各類事件,包括事件記錄、事件上報等。
3.1.6 控制任務
控制任務執行一些控制操作,包括預購電控制、保電控制、告警控制等。
3.1.7 任務間的通信
任務與任務之間數據傳遞通過消息發送和接收來實現,消息結構為:
消息傳遞函數定義為:
3.2 軟件模塊實現流程
軟件采用模塊化設計,每個任務包含不同的功能模塊,由于系統包含模塊較多,在此只給出主任務模塊流程圖及上行任務中的GPRS鏈路維護模塊流程圖。
3.2.1 主任務流程
主任務程序流程如圖3所示。
3.2.2 GPRS鏈路維護流程
上行任務中的鏈路維護模塊包括:GPRS網絡登陸、鏈路狀態檢測以及心跳維護等。其中,GPRS網絡登陸程序流程如圖4所示。在GPRS通信鏈路建立后,如果長時間無數據傳輸,則GPRS網絡連接將被斷開,所以必須在一定時間間隔內發一個心跳幀至主站,確認主站應答后說明鏈路狀態正常。不同品牌GPRS模塊的AT指令集不同,因此在編程前須熟悉相關GPRS模塊的指令集,以實現鏈路的建立和維護。
4 結語
介紹了GPRS網絡電能表的功能和GPRS無線通信模塊的軟硬件設計,它是對GPRS網絡電能表開發項目的總結。系統軟件移植了μC/OS-Ⅱ嵌入式操作系統,采用多任務設計,提高了系統的實時性,對實現遠程無線抄表具有積極意義,設計的產品已在國家電網公司成功應用,且運行穩定,應用效果良好。
用戶評論
共 0 條評論