《電子技術(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)控中心,;
 (2)在環(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è)備進行人工維護,;
 (6)數(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ù)必須聲明,但不一定需要包含代碼,。
?。?)在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é)拍中斷,。
 (4)主函數(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ù)分配堆??臻g*/
 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)考慮到按鍵的抖動等特殊情況的處理,。
?。?)溫度監(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ù):檢測電池電量,,當電池電量低于設(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)載,。