《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > SSPA電源工作狀態(tài)遠程監(jiān)測系統(tǒng)設計
SSPA電源工作狀態(tài)遠程監(jiān)測系統(tǒng)設計
來源:微型機與應用2013年第18期
李長春,,武 麗
(西南科技大學 信息工程學院,,四川 綿陽621000)
摘要: 設計了一種功率放大器電源工作狀態(tài)遠程監(jiān)測系統(tǒng),,實現(xiàn)了137路電源的監(jiān)測,。該系統(tǒng)以ARM7處理器,、μC/OS-II實時操作系統(tǒng)和uIP協(xié)議棧為核心,,并在PC上設計了上位機監(jiān)控軟件,。經驗證,,系統(tǒng)能正確接收多點監(jiān)測,,可以及時反映電源工作情況,并提供報警信息,。
Abstract:
Key words :

摘  要: 設計了一種功率放大器電源工作狀態(tài)遠程監(jiān)測系統(tǒng),,實現(xiàn)了137路電源的監(jiān)測。該系統(tǒng)以ARM7處理器,、μC/OS-II實時操作系統(tǒng)和uIP協(xié)議棧為核心,,并在PC上設計了上位機監(jiān)控軟件。經驗證,系統(tǒng)能正確接收多點監(jiān)測,,可以及時反映電源工作情況,,并提供報警信息。
關鍵詞: 電源監(jiān)測,;ARM7,;μC/OS-II;uIP協(xié)議,;VC

    固態(tài)功率放大器SSPA(Solid State Power Amplifier)具有體積小,、重量輕、工作電壓低,、穩(wěn)定性高等優(yōu)點,,被廣泛用于各個領域中,在通信系統(tǒng)中也占據(jù)著越來越重要的地位,。固態(tài)功率放大器需要將多路功率器件進行合成,,這就需要多路電源進行穩(wěn)定供電,在工作中需要對每一路電源的工作狀態(tài)進行監(jiān)測,,主要監(jiān)測電源的工作電流,。對固態(tài)功率放大器工作時的電源工作狀態(tài)進行監(jiān)測,并通過網(wǎng)絡發(fā)送至遠程主機進行分析和處理,,以確保系統(tǒng)能夠正常工作,。
1 系統(tǒng)硬件結構
    SSPA遠程監(jiān)測系統(tǒng)由電源模塊、模擬開關,、嵌入式處理器AT91SAM7X256和DM9161網(wǎng)卡等構成,。多路電源的工作電流經過電路轉換為電壓,輸入到系統(tǒng)中,,系統(tǒng)通過模擬開關的切換實現(xiàn)分時采樣,,得到137路電源的工作電流數(shù)據(jù),并將數(shù)據(jù)打包,,然后DM9161通過網(wǎng)絡將數(shù)據(jù)發(fā)送至遠程主機,,實現(xiàn)了遠程采集和監(jiān)測功能,當采集的工作參數(shù)超過設定值時實現(xiàn)報警,,確保系統(tǒng)工作正常,。監(jiān)測系統(tǒng)構成如圖1所示。

2 系統(tǒng)軟件設計
2.1
μC/OS-II系統(tǒng)移植
    μC/OS-II是一個優(yōu)秀的嵌入式實時操作系統(tǒng),,應用中首先應完成系統(tǒng)的移植,。所謂移植,就是使一個實時內核運行在某個微控制器或微處理器上,,并對與處理器相關的代碼進行修改,。系統(tǒng)移植主要包括以下幾個內容:
    (1)在OS_CPU.H頭文件中完成配置和定義,。其中主要包括與編譯無關的數(shù)據(jù)類型的定義;OS_ENTER_CRI-TICAL,、OS_EXIT_CRITICAL,、OS_TASK_SW 3個宏的定義,這3個宏定義分別表示進入中斷,、退出中斷和任務切換,;還需要完成堆棧生長方向的定義[1]。
    (2)編寫OS_CPU_C.C,,其中主要的工作是編寫6個C語言的函數(shù),。其中OSTaskStkInit()是任務堆棧初始化函數(shù),這是進行移植時必須重視的函數(shù),,其他5個函數(shù)都是Hook函數(shù),,供系統(tǒng)內核擴展。
    (3)編寫OS_CPU_A.ASM,,主要需要編寫3個匯編語言函數(shù),,分別是高優(yōu)先級就緒任務啟動函數(shù)OSStartHighRdy()、任務級的切換函數(shù)OSCtxSw()和中斷下的任務切換函數(shù)OSIntCtxSw()[2],。
2.2 uIP網(wǎng)絡協(xié)議移植
    uIP由瑞典計算機科學學院(網(wǎng)絡嵌入式系統(tǒng)小組)的Adam Dunkels開發(fā),,是一種免費的、可實現(xiàn)的,、極小的TCP/IP協(xié)議棧,。它可以看作是一個代碼庫,通過一系列函數(shù)為系統(tǒng)底層和應用程序之間提供通信,,對于系統(tǒng)本身,,它內部的協(xié)議是透明的,提高了協(xié)議的適用性[3],。
    uIP使用前需要進行移植,,移植的主要內容就是修改網(wǎng)絡驅動部分的內容,包括以下幾個步驟:
    (1)編寫EMAC網(wǎng)絡接口庫,,該庫文件中主要提供了一系列對ARM控制器中EMAC接口進行操作的函數(shù),,控制器對網(wǎng)卡的操作都是通過該接口進行,包括了EMAC模塊的初始化工作以及與網(wǎng)卡芯片的通信函數(shù)等,。
    EMAC_Init(AT91C_ID_EMAC,MacAddress.addr,EMAC_CAF_ENABLE, EMAC_NBC_DISABLE);//初始化EMAC接口
    ……
    (2)編寫網(wǎng)卡芯片DM9161的驅動程序,,包括了DM9161的芯片初始化以及數(shù)據(jù)發(fā)送和數(shù)據(jù)接收操作等,。
    MACB_Init(pMacb, BOARD_EMAC_PHY_ADDR);
//初始化DM9161
    ……
    (3)完成本系統(tǒng)uIP的配置選項,包括數(shù)據(jù)存儲方式,、緩存區(qū)大小,、IP地址,、MAC地址、默認路由,、子網(wǎng)掩碼,、uIP 1 s時間所需要的中斷數(shù)和一些基本數(shù)據(jù)類型的定義,以及最大連接數(shù),、數(shù)據(jù)包長度以及應用層協(xié)議的支持等[4],。
    (4)編寫應用層函數(shù)UIP_APPCALL,uIP協(xié)議在接收到底層數(shù)據(jù)之后,,需要上層函數(shù)處理時,,會調用函數(shù)UIP_APPCALL。本系統(tǒng)中通過使用宏定義#define UIP_
APPCALL sample_appcall將該函數(shù)定向到sample_appcall,。該函數(shù)通過查詢當前狀態(tài)來實現(xiàn)各種處理機制,。當遠程主機建立一個連接后,初始化緩存區(qū)給當前連接使用,;有新數(shù)據(jù)到達時讀取數(shù)據(jù)包,,分析數(shù)據(jù)包的信息后,返回給遠程主機所需要的信息,。當連接輪詢次數(shù)達到設定值時,,中止當前連接,當遠程主機發(fā)出斷開連接命令或連接超時后,,斷開當前連接[5],。uIP協(xié)議棧通過調用該函數(shù)實現(xiàn)網(wǎng)絡數(shù)據(jù)的收發(fā)。
2.3 系統(tǒng)任務設計
    系統(tǒng)的實際任務有啟動任務AppStartTask(),、AD采集任務AD_sampleTask(),、網(wǎng)絡主任務Network_MainTask()、網(wǎng)絡周期任務Network_PerioTask()及網(wǎng)絡數(shù)據(jù)包接收任務Network_PollTask(),,其優(yōu)先級從高到低,。
    AppStartTask()是在開始時啟動其他任務以及在系統(tǒng)運行時通過LED燈指示系統(tǒng)是否正常工作。AD_sample-
Task()是采樣任務,,負責各監(jiān)測點數(shù)據(jù)的獲取和處理工作,。Network_PollTask()、Network_MainTask()和Network_PerioTask() 3個任務是網(wǎng)絡部分的內容,,并且使用一個信號量pNetwork_newdata來實現(xiàn)任務之間的通信,。
    數(shù)據(jù)包接收任務Network_PollTask()是3個網(wǎng)絡任務中優(yōu)先級最低的一個,負責監(jiān)聽在指定的端口上是否有連接請求或數(shù)據(jù)請求,,當一個新的請求到達該監(jiān)聽端口后,,該任務將收到的數(shù)據(jù)包緩存到uip_buf中,設置數(shù)據(jù)長度變量uip_len,,然后該任務會發(fā)送一個信號量pNetwork_newdata給網(wǎng)絡主任務Network_MainTask(),。
    網(wǎng)絡主任務Network_MainTask()是網(wǎng)絡任務中優(yōu)先級最高的,,完成網(wǎng)絡數(shù)據(jù)處理并向應用層分發(fā)。平時一直處于掛起的狀態(tài),,當收到數(shù)據(jù)包發(fā)送任務發(fā)送的信號量之后,,該任務調用函數(shù)uip_process()處理數(shù)據(jù)包信息,根據(jù)不同信息完成數(shù)據(jù)包的發(fā)送,然后繼續(xù)被掛起,。
    Network_PerioTask()則是周期性運行的任務,,其優(yōu)先級處于另兩個任務之間,用于對連接的管理,,處理連接超時數(shù)據(jù)包重發(fā),。這3個任務互相協(xié)作,實現(xiàn)了網(wǎng)絡的通信[6],。
3 上位機設計
    上位機部分是基于VC6.0編寫的,,主要運用網(wǎng)絡套接字和多線程編程技術等實現(xiàn)。上位機運行時,,首先讀取注冊表中保存的設定值,,然后對保存的指定IP的指定端口發(fā)送連接請求,連接建立后,,向下位機發(fā)送數(shù)據(jù)請求包,,并且在主線程之外創(chuàng)建一個接收線程,接收線程通過Socket套接字接收上傳的網(wǎng)絡數(shù)據(jù),,主線程中實現(xiàn)各個監(jiān)測點的數(shù)據(jù)顯示以及報警信息等,,并可以發(fā)送相應的功能命令給下位機,以達到一些簡單的控制功能,。上位機運行界面如圖2所示,。

 

 

    本系統(tǒng)實現(xiàn)了μC/OS-II操作系統(tǒng)和uIP網(wǎng)絡協(xié)議的結合,并運用到電源監(jiān)測系統(tǒng)中,。本系統(tǒng)經調試,,軟硬
件工作均正常。實際運行結果證明,,本監(jiān)測系統(tǒng)在穩(wěn)定性和實時性方面都有很好的表現(xiàn),,完全適用于實際系統(tǒng)的應用。隨著嵌入式技術以及網(wǎng)絡技術的發(fā)展,,未來數(shù)據(jù)監(jiān)測系統(tǒng)的發(fā)展和應用將會有更大的空間,。
參考文獻
[1] 邵貝貝.μC/OS-II—源代碼公開的實時嵌入式操作系統(tǒng) [M].北京:中國電力出版社,2001.
[2] 趙偉國,,李文軍,,梁國偉.實時嵌入式操作系統(tǒng)μC/OS-II  在AT91上的移植[J].中國計量學院學報,2005,,16(2):137-139.
[3] DUNKELS A.The uIP 1.0 reference manual[D].Swedish:Swedish Institute of Computer Science,,2006.
[4] DUNKELS A.uIP-A free small TCP/IP stack[Z].2004.
[5] 張永濤,黃丹丹,,李歐.uIP協(xié)議分析及其應用[J].信息工程大學學報,,2006,7(2):147-149.
[6] 劉春風,,張代遠.?滋C/OS-II下協(xié)議棧uIP的移植與應用[J].計算機技術與發(fā)展,,2012,22(9):143-145.

此內容為AET網(wǎng)站原創(chuàng),,未經授權禁止轉載,。