《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 數(shù)據(jù)采集監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)
數(shù)據(jù)采集監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)
來源:微型機與應(yīng)用2012年第11期
王 兵
(海軍計算技術(shù)研究所,北京 100841)
摘要: 提出了一個基于ARM架構(gòu)處理器和μC/OS-II操作系統(tǒng)的遠程數(shù)據(jù)采集監(jiān)控系統(tǒng)的系統(tǒng)組成與結(jié)構(gòu),介紹了其μC/OS-II操作系統(tǒng)的移值方法,并對數(shù)據(jù)采集/控制器的軟件系統(tǒng)進行了分析與設(shè)計。
Abstract:
Key words :

摘  要: 提出了一個基于ARM架構(gòu)處理器和μC/OS-II操作系統(tǒng)的遠程數(shù)據(jù)采集監(jiān)控系統(tǒng)的系統(tǒng)組成與結(jié)構(gòu),介紹了其μC/OS-II操作系統(tǒng)的移值方法,并對數(shù)據(jù)采集/控制器的軟件系統(tǒng)進行了分析與設(shè)計。
關(guān)鍵詞: 嵌入式系統(tǒng);遠程監(jiān)控;系統(tǒng)結(jié)構(gòu)

 嵌入式系統(tǒng)是計算機系統(tǒng)應(yīng)用的重要發(fā)展方向之一。隨著計算機技術(shù)的飛速發(fā)展,嵌入式系統(tǒng)的設(shè)計開發(fā)與應(yīng)用已步入一個全面發(fā)展的階段。由于嵌入式系統(tǒng)具有體積小、性能強、功耗低、可靠性高以及面向行業(yè)應(yīng)用的特點,目前已經(jīng)廣泛地應(yīng)用于軍事國防、消費電子、網(wǎng)絡(luò)通信、工業(yè)控制等領(lǐng)域。特別在數(shù)據(jù)采集與自動化控制領(lǐng)域,嵌入式系統(tǒng)更是顯現(xiàn)了其得天獨厚的優(yōu)勢與魅力。
 進行嵌入式系統(tǒng)應(yīng)用開發(fā),開發(fā)平臺的選擇非常重要。目前,基于ARM架構(gòu)的硬件平臺較為流行,產(chǎn)品資源非常豐富。而μC/OS-II是近年來發(fā)展迅速的開放源碼實時操作系統(tǒng),具有良好的可移植性,因此,基于ARM架構(gòu)的處理器和μC/OS-II操作系統(tǒng)是進行嵌入式應(yīng)用系統(tǒng)開發(fā)的理想平臺。
1 系統(tǒng)組成結(jié)構(gòu)
1.1 系統(tǒng)功能與組成

 利用上述平臺本文設(shè)計實現(xiàn)了一個遠程數(shù)據(jù)采集控制系統(tǒng),測量遠程設(shè)備的環(huán)境溫度變化情況和電池電量,并能啟動溫度控制器工作,在電池電量不足時,向數(shù)據(jù)采集控制中心發(fā)送報警信息。系統(tǒng)實現(xiàn)的主要功能有:
?。?)定時檢測、采集遠程設(shè)備環(huán)境溫度及供電電池電壓,并將數(shù)據(jù)發(fā)送到監(jiān)控中心;
?。?)在環(huán)境溫度超出預(yù)定范圍時,啟動溫控器工作,以保持設(shè)備環(huán)境溫度;
?。?)在電池電量不足時,向監(jiān)控中心發(fā)送報警信息;
?。?)可本地設(shè)置、修改系統(tǒng)工作參數(shù),也可由監(jiān)控中心通過短信遠程控制、設(shè)定系統(tǒng)工作參數(shù);
?。?)監(jiān)控中心將數(shù)據(jù)信息保存于數(shù)據(jù)庫中,并能對采集的數(shù)據(jù)進行統(tǒng)計分析,按預(yù)設(shè)參數(shù)決定是否需對遠程設(shè)備進行人工維護;
?。?)數(shù)據(jù)采集/控制器工作異常時,能向監(jiān)控中心發(fā)送報警信息,請求進行人工維護;
?。?)能將采集的溫度數(shù)據(jù)信息本地存儲,系統(tǒng)通信失敗時,可通過USB設(shè)備進行轉(zhuǎn)儲。
系統(tǒng)組成關(guān)系如圖1所示。其中數(shù)據(jù)庫采用SQL Server 2000,用于存儲采集到的數(shù)據(jù)信息和遠程設(shè)備工作、維護情況信息;數(shù)據(jù)采集控制中心采用工控機服務(wù)器、Windows Server2003,運行數(shù)據(jù)采集控制軟件系統(tǒng),通過串口與GSM模塊相連,采用短信通信方式完成對遠程設(shè)備的信息采集與管理控制;GSM模塊采用Siemens的TC35,通過短信實現(xiàn)遠程信息的交互,可使系統(tǒng)建設(shè)與維護投資小,工作可靠;數(shù)據(jù)采集/控制器用以實現(xiàn)數(shù)據(jù)采集以及相應(yīng)設(shè)備的控制。

 監(jiān)控器核心板集成了2 MB SRAM和4 MB Flash存儲器和4×4鍵盤,還集成了所需的外設(shè)接口模塊,包括液晶顯示接口、USB接口模塊、A/D轉(zhuǎn)換模塊、2個RS232接口以及 DC/DC轉(zhuǎn)換等模塊。外接設(shè)備有GSM模塊、128×64液晶屏,U盤、電池電源、溫度傳感控制器等,其中液晶屏和U盤為選配設(shè)備,為降低系統(tǒng)成本與功耗,只在需要時配接相應(yīng)設(shè)備。
2 數(shù)據(jù)采集/控制器軟件系統(tǒng)設(shè)計
 在目前嵌入式實時操作系統(tǒng)中,μC/OS-II源碼公開、結(jié)構(gòu)簡單、移植性好,采用C語言和匯編語言實現(xiàn),其中絕大部分使用C語言,結(jié)構(gòu)非常簡單;能很容易被移植到各種微處理器上,移植過程中,用戶只需做少量工作;支持實時多任務(wù),可裁剪、可固化,是一款優(yōu)秀的嵌入式操作系統(tǒng),以其為平臺,用戶可以快速地開發(fā)出自己的應(yīng)用系統(tǒng)。
2.1 μC/OS-II的移植
 以μC/OS-II為軟件平臺開發(fā)應(yīng)用系統(tǒng),首先,要進行ARM硬件平臺下的操作系統(tǒng)移植,對μC/OS-II與處理器有關(guān)的代碼進行修改,主要工作有:
?。?)在系統(tǒng)文件OS_CPU.H中要定義10個不依賴于編譯的數(shù)據(jù)類型,以免與處理器類型產(chǎn)生關(guān)聯(lián),從而影響移植;定義OS_STK_GROWTH常量為1,指明堆棧的生長方向為自上而下;定義兩個宏OS_ENTER_CRITICAL()、OS_EXIT_CRITICAL(),以禁止和允許中斷,系統(tǒng)代碼訪問臨界區(qū)前要先禁止中斷,訪問完畢后重新允許中斷;定義宏OS_TASK_SW(),在任務(wù)級代碼中調(diào)用,使系統(tǒng)從低優(yōu)先級任務(wù)切換到高優(yōu)先級任務(wù)。
?。?)在OS_CPU_C.C文件中編寫6個C函數(shù) OSTaskStkInit()、OSTaskCreateHook()、OSTaskDelHook()、OSTaskSwHook()、OSTaskStatHook()、OSTimeTickHook()。OSTaskStkInit()用來初始化任務(wù)的堆棧結(jié)構(gòu),OSTaskCreateHook()允許用戶及使用特定移植實例的用戶擴展μC/OS-II的功能,OSTaskDelHook()用于任務(wù)刪除時的系統(tǒng)調(diào)用,OSTaskSwHook()是發(fā)生任務(wù)切換時的調(diào)用函數(shù)。這些函數(shù)中只有OSTaskStkInit()是必需和函數(shù),其余函數(shù)必須聲明,但不一定需要包含代碼。
 (3)在OS_CPU_A.ASM文件中編寫4個匯編函數(shù):OSStartHighRdy()使就緒狀態(tài)的最高優(yōu)先級任務(wù)開始運行,OSCtxSw()用于任務(wù)級的任務(wù)切換,OSIntCtxSw()用于中斷級的任務(wù)切換,OSTickISR為內(nèi)核處理時鐘節(jié)拍的中斷處理函數(shù)。應(yīng)注意運行OSStart()后,在系統(tǒng)啟動的第一個任務(wù)中初始化節(jié)拍中斷。
?。?)主函數(shù)程序結(jié)構(gòu):在主程序中應(yīng)包含頭文件config.h,其中對最大任務(wù)數(shù)、信號量和郵箱等內(nèi)核參數(shù)進行定制和配置,分配各任務(wù)的堆??臻g,主函數(shù)main()要先后調(diào)用OSInit(),變量初始化,創(chuàng)建各任務(wù),調(diào)用OSStart(),進入實時多任務(wù)運行狀態(tài)。主程序結(jié)構(gòu)如下:
#include “config.h”
 OS_STK   TaskStk[TASK_STK_SIZE];
 OS_STK   Task_Stk1[TASK_STK_SIZE];
   … … … /*為各任務(wù)分配堆棧空間*/
 main(void)
 {
 OSInit();
 OSTaskCreate(Task1,(void*)0,&Task_Stk1[TASK_STK_SIZE-1],0);
 … … … /*創(chuàng)建各任務(wù)*/
 OSStart();
 return 0;
 }
2.2 系統(tǒng)任務(wù)劃分與功能設(shè)計

 


 數(shù)據(jù)采集/控制器的軟件系統(tǒng)共劃分為6個主要任務(wù),按優(yōu)先級順序分別為控制任務(wù)、鍵盤任務(wù)、溫度監(jiān)測任務(wù)、串口通信任務(wù)、電量監(jiān)測任務(wù)、顯示任務(wù)。
?。?)控制任務(wù):啟動系統(tǒng)各任務(wù)后,根據(jù)收到的鍵盤或短信命令,修改系統(tǒng)工作參數(shù),控制系統(tǒng)工作狀態(tài),溫度超過設(shè)定值時,控制溫度控制器工作。
?。?)鍵盤任務(wù):通過鍵盤可以輸入控制命令、設(shè)置系統(tǒng)工作參數(shù)。鍵盤任務(wù)循環(huán)讀取鍵盤,將按鍵信息發(fā)送到控制任務(wù),任務(wù)處理過程中應(yīng)考慮到按鍵的抖動等特殊情況的處理。
 (3)溫度監(jiān)測任務(wù):監(jiān)測環(huán)境溫度,按設(shè)置參數(shù)定時讀取經(jīng)過A/D轉(zhuǎn)換的溫度值,進行本地存儲,并向串口通信任務(wù)發(fā)送環(huán)境溫度信息,由串口通信任務(wù)通過GSM模塊向數(shù)據(jù)采集控制中心發(fā)送溫度數(shù)據(jù)短信,供采集控制中心儲存、統(tǒng)計和分析。該任務(wù)還要進行喂狗操作,將看門狗復(fù)位,然后進入循環(huán)等待下一次定時數(shù)據(jù)采集。
?。?)串口通信任務(wù):將采集的溫度、電量等信息緩存至規(guī)定(可設(shè)置)的條數(shù)時,通過串口發(fā)送給GSM模塊;對收到的報警信息則不進行緩存,直接通過串口發(fā)送給GSM模塊。每次發(fā)送數(shù)據(jù)完成后,讀取GSM模塊的未接收短信,若為命令短信,則發(fā)送給控制任務(wù)進行相應(yīng)控制。
?。?)電量監(jiān)測任務(wù):檢測電池電量,當(dāng)電池電量低于設(shè)定值時,向串口通信任務(wù)發(fā)送低電信息,由串口通信任務(wù)通過GSM模塊向數(shù)據(jù)采集控制中心發(fā)送低電報警短信,請求人工維護。
?。?)顯示任務(wù):顯示任務(wù)用于顯示系統(tǒng)的工作狀態(tài),包括溫度、電量、報警信息以及鍵盤輸入信息的回顯,考慮系統(tǒng)的低功耗要求,在遠程無人值守環(huán)境下,可關(guān)閉系統(tǒng)的顯示,或取消液晶顯示配置,降低硬件成本。
 本文以ARM系統(tǒng)的控制器系統(tǒng)和μC/OS-II為軟、硬件平臺,實現(xiàn)了一個遠程數(shù)據(jù)采集/控制系統(tǒng),達到了低成本、低功耗、建設(shè)實施簡便、快捷的要求,應(yīng)用效果令人滿意。本系統(tǒng)的解決方案對于相似應(yīng)用環(huán)境的遠程數(shù)據(jù)采集與控制具有一定的借鑒意義。
參考文獻
[1] 邵貝貝譯.μC/OS-II源碼公開的實時嵌入式操作系統(tǒng)[M].北京:中國電力出版社,2001.
[2] 周立功.ARM微控制器基礎(chǔ)與實戰(zhàn)[M].北京:北京航空航天大學(xué)出版社,2003.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。