新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于ARM9和GPRS的實時電力負控管理系統(tǒng)的設(shè)計

基于ARM9和GPRS的實時電力負控管理系統(tǒng)的設(shè)計

作者: 時間:2012-05-21 來源:網(wǎng)絡(luò) 收藏

2.2 軟件

2.2.1 負控管理終端的軟件

在負控管理終端的整體流程是終端上電后,初始化串口,啟動撥號,建立TCP連接成功后,主站向負控管理終端發(fā)送登陸幀,負控管理終端監(jiān)聽到登陸幀后(主站和負控管理終端建立通信前,主站要知道負控管理終端中模塊的SIM卡號),發(fā)出確認幀,主站與負控管理終端就可以開始通信。負控管理終端接收到數(shù)據(jù)時,先判斷是不是主站發(fā)送過來的控制命令,如果是,將該命令透明傳輸給電能表,電能表通過解析判斷其要是采集數(shù)據(jù)命令,就將相應(yīng)的電能數(shù)據(jù)返回給負控管理終端,負控管理終端收到數(shù)據(jù)后通過TCP發(fā)送給主站;如果不是控制命令,說明是電能表的返回數(shù)據(jù),同樣通過TCP協(xié)議發(fā)送給主站。在沒有任何命令時,負控管理終端進入低功耗模式,間隔一定時間發(fā)送心跳包,以確定它與主站沒有斷開連接。每隔15 min,負控管理終端會定時采集電能數(shù)據(jù),并將其存儲在NANDFLASH中,等待主站隨時調(diào)用。此外,當(dāng)負控管理終端處于異常狀態(tài),或者發(fā)生一些特殊事件時,比如事故報警信息,負控管理終端通過遙信控制主動上報給主站,以做出適當(dāng)處理。

負控管理終端的應(yīng)用軟件主要包括數(shù)據(jù)采集及處理程序和網(wǎng)絡(luò)通信程序。數(shù)據(jù)采集及處理程序完成電能表數(shù)據(jù)采集,并進行處理。網(wǎng)絡(luò)通信程序完成將處理后的數(shù)據(jù)傳送到主站。另外,網(wǎng)絡(luò)通信程序還要發(fā)送主站的控制指令。

該部分的軟件編寫采用自上而下的思路,以模塊化設(shè)計為原則,采用C語言編程,通過建立數(shù)據(jù)采集與處理線程、網(wǎng)絡(luò)通信線程、按鍵控制線程,使其相互協(xié)調(diào)地運行。

結(jié)合上面給出的設(shè)計思路,下面重點介紹如何利用多進程技術(shù)和管道技術(shù)來實現(xiàn)抄表和發(fā)送數(shù)據(jù)的功能。

在進行網(wǎng)絡(luò)通信之前,先設(shè)定網(wǎng)絡(luò)端口最大允許接入的客戶端數(shù)、父進程和子進程設(shè)定的2個狀態(tài)變量。

c.JPG

進入主函數(shù),創(chuàng)建管道和子進程,分別啟動父進程和子進程,開始數(shù)據(jù)采集和網(wǎng)絡(luò)傳輸,function_farther()函數(shù)和function_child()函數(shù)分別為父進程和子進程的主函數(shù)。

d.JPG
e.JPG


tcp/ip相關(guān)文章:tcp/ip是什么


電能表相關(guān)文章:電能表原理


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉