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

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

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

 利用上述平臺本文設(shè)計實(shí)現(xiàn)了一個遠(yuǎn)程數(shù)據(jù)采集控制系統(tǒng),測量遠(yuǎn)程設(shè)備的環(huán)境溫度變化情況和電池電量,,并能啟動溫度控制器工作,,在電池電量不足時,向數(shù)據(jù)采集控制中心發(fā)送報警信息,。系統(tǒng)實(shí)現(xiàn)的主要功能有:
?。?)定時檢測、采集遠(yuǎn)程設(shè)備環(huán)境溫度及供電電池電壓,,并將數(shù)據(jù)發(fā)送到監(jiān)控中心,;
 (2)在環(huán)境溫度超出預(yù)定范圍時,,啟動溫控器工作,,以保持設(shè)備環(huán)境溫度;
?。?)在電池電量不足時,,向監(jiān)控中心發(fā)送報警信息,;
 (4)可本地設(shè)置,、修改系統(tǒng)工作參數(shù),,也可由監(jiān)控中心通過短信遠(yuǎn)程控制、設(shè)定系統(tǒng)工作參數(shù),;
?。?)監(jiān)控中心將數(shù)據(jù)信息保存于數(shù)據(jù)庫中,并能對采集的數(shù)據(jù)進(jìn)行統(tǒng)計分析,,按預(yù)設(shè)參數(shù)決定是否需對遠(yuǎn)程設(shè)備進(jìn)行人工維護(hù),;
 (6)數(shù)據(jù)采集/控制器工作異常時,,能向監(jiān)控中心發(fā)送報警信息,,請求進(jìn)行人工維護(hù);
?。?)能將采集的溫度數(shù)據(jù)信息本地存儲,,系統(tǒng)通信失敗時,可通過USB設(shè)備進(jìn)行轉(zhuǎn)儲,。
系統(tǒng)組成關(guān)系如圖1所示,。其中數(shù)據(jù)庫采用SQL Server 2000,用于存儲采集到的數(shù)據(jù)信息和遠(yuǎn)程設(shè)備工作,、維護(hù)情況信息,;數(shù)據(jù)采集控制中心采用工控機(jī)服務(wù)器、Windows Server2003,,運(yùn)行數(shù)據(jù)采集控制軟件系統(tǒng),,通過串口與GSM模塊相連,采用短信通信方式完成對遠(yuǎn)程設(shè)備的信息采集與管理控制,;GSM模塊采用Siemens的TC35,,通過短信實(shí)現(xiàn)遠(yuǎn)程信息的交互,可使系統(tǒng)建設(shè)與維護(hù)投資小,,工作可靠,;數(shù)據(jù)采集/控制器用以實(shí)現(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è)計
 在目前嵌入式實(shí)時操作系統(tǒng)中,,μC/OS-II源碼公開、結(jié)構(gòu)簡單,、移植性好,,采用C語言和匯編語言實(shí)現(xiàn),,其中絕大部分使用C語言,,結(jié)構(gòu)非常簡單;能很容易被移植到各種微處理器上,,移植過程中,,用戶只需做少量工作;支持實(shí)時多任務(wù),,可裁剪,、可固化,是一款優(yōu)秀的嵌入式操作系統(tǒng),,以其為平臺,,用戶可以快速地開發(fā)出自己的應(yīng)用系統(tǒng)。
2.1 μC/OS-II的移植
 以μC/OS-II為軟件平臺開發(fā)應(yīng)用系統(tǒng),,首先,,要進(jìn)行ARM硬件平臺下的操作系統(tǒng)移植,對μC/OS-II與處理器有關(guān)的代碼進(jìn)行修改,,主要工作有:
?。?)在系統(tǒng)文件OS_CPU.H中要定義10個不依賴于編譯的數(shù)據(jù)類型,以免與處理器類型產(chǎn)生關(guān)聯(lián),,從而影響移植,;定義OS_STK_GROWTH常量為1,指明堆棧的生長方向?yàn)樽陨隙?;定義兩個宏OS_ENTER_CRITICAL(),、OS_EXIT_CRITICAL(),以禁止和允許中斷,,系統(tǒng)代碼訪問臨界區(qū)前要先禁止中斷,,訪問完畢后重新允許中斷;定義宏OS_TASK_SW(),在任務(wù)級代碼中調(diào)用,,使系統(tǒng)從低優(yōu)先級任務(wù)切換到高優(yōu)先級任務(wù),。
 (2)在OS_CPU_C.C文件中編寫6個C函數(shù) OSTaskStkInit(),、OSTaskCreateHook(),、OSTaskDelHook()、OSTaskSwHook(),、OSTaskStatHook(),、OSTimeTickHook()。OSTaskStkInit()用來初始化任務(wù)的堆棧結(jié)構(gòu),,OSTaskCreateHook()允許用戶及使用特定移植實(shí)例的用戶擴(kuò)展μ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ù)開始運(yùn)行,OSCtxSw()用于任務(wù)級的任務(wù)切換,,OSIntCtxSw()用于中斷級的任務(wù)切換,,OSTickISR為內(nèi)核處理時鐘節(jié)拍的中斷處理函數(shù)。應(yīng)注意運(yùn)行OSStart()后,,在系統(tǒng)啟動的第一個任務(wù)中初始化節(jié)拍中斷,。
 (4)主函數(shù)程序結(jié)構(gòu):在主程序中應(yīng)包含頭文件config.h,,其中對最大任務(wù)數(shù),、信號量和郵箱等內(nèi)核參數(shù)進(jìn)行定制和配置,分配各任務(wù)的堆??臻g,,主函數(shù)main()要先后調(diào)用OSInit(),變量初始化,,創(chuàng)建各任務(wù),,調(diào)用OSStart(),進(jìn)入實(shí)時多任務(wù)運(yùn)行狀態(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ù),。
 (1)控制任務(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)換的溫度值,,進(jìn)行本地存儲,,并向串口通信任務(wù)發(fā)送環(huán)境溫度信息,由串口通信任務(wù)通過GSM模塊向數(shù)據(jù)采集控制中心發(fā)送溫度數(shù)據(jù)短信,,供采集控制中心儲存,、統(tǒng)計和分析。該任務(wù)還要進(jìn)行喂狗操作,,將看門狗復(fù)位,,然后進(jìn)入循環(huán)等待下一次定時數(shù)據(jù)采集。
?。?)串口通信任務(wù):將采集的溫度,、電量等信息緩存至規(guī)定(可設(shè)置)的條數(shù)時,通過串口發(fā)送給GSM模塊;對收到的報警信息則不進(jìn)行緩存,,直接通過串口發(fā)送給GSM模塊,。每次發(fā)送數(shù)據(jù)完成后,讀取GSM模塊的未接收短信,,若為命令短信,,則發(fā)送給控制任務(wù)進(jìn)行相應(yīng)控制。
?。?)電量監(jiān)測任務(wù):檢測電池電量,,當(dāng)電池電量低于設(shè)定值時,向串口通信任務(wù)發(fā)送低電信息,,由串口通信任務(wù)通過GSM模塊向數(shù)據(jù)采集控制中心發(fā)送低電報警短信,,請求人工維護(hù)。
?。?)顯示任務(wù):顯示任務(wù)用于顯示系統(tǒng)的工作狀態(tài),,包括溫度、電量,、報警信息以及鍵盤輸入信息的回顯,,考慮系統(tǒng)的低功耗要求,在遠(yuǎn)程無人值守環(huán)境下,,可關(guān)閉系統(tǒng)的顯示,,或取消液晶顯示配置,降低硬件成本,。
 本文以ARM系統(tǒng)的控制器系統(tǒng)和μC/OS-II為軟,、硬件平臺,實(shí)現(xiàn)了一個遠(yuǎn)程數(shù)據(jù)采集/控制系統(tǒng),,達(dá)到了低成本,、低功耗、建設(shè)實(shí)施簡便,、快捷的要求,,應(yīng)用效果令人滿意。本系統(tǒng)的解決方案對于相似應(yīng)用環(huán)境的遠(yuǎn)程數(shù)據(jù)采集與控制具有一定的借鑒意義,。
參考文獻(xiàn)
[1] 邵貝貝譯.μC/OS-II源碼公開的實(shí)時嵌入式操作系統(tǒng)[M].北京:中國電力出版社,,2001.
[2] 周立功.ARM微控制器基礎(chǔ)與實(shí)戰(zhàn)[M].北京:北京航空航天大學(xué)出版社,2003.

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