摘 要: 提出了一個基于ARM架構處理器和μC/OS-II操作系統(tǒng)的遠程數據采集監(jiān)控系統(tǒng)的系統(tǒng)組成與結構,介紹了其μC/OS-II操作系統(tǒng)的移值方法,并對數據采集/控制器的軟件系統(tǒng)進行了分析與設計。
關鍵詞: 嵌入式系統(tǒng);遠程監(jiān)控;系統(tǒng)結構
嵌入式系統(tǒng)是計算機系統(tǒng)應用的重要發(fā)展方向之一。隨著計算機技術的飛速發(fā)展,嵌入式系統(tǒng)的設計開發(fā)與應用已步入一個全面發(fā)展的階段。由于嵌入式系統(tǒng)具有體積小、性能強、功耗低、可靠性高以及面向行業(yè)應用的特點,目前已經廣泛地應用于軍事國防、消費電子、網絡通信、工業(yè)控制等領域。特別在數據采集與自動化控制領域,嵌入式系統(tǒng)更是顯現(xiàn)了其得天獨厚的優(yōu)勢與魅力。
進行嵌入式系統(tǒng)應用開發(fā),開發(fā)平臺的選擇非常重要。目前,基于ARM架構的硬件平臺較為流行,產品資源非常豐富。而μC/OS-II是近年來發(fā)展迅速的開放源碼實時操作系統(tǒng),具有良好的可移植性,因此,基于ARM架構的處理器和μC/OS-II操作系統(tǒng)是進行嵌入式應用系統(tǒng)開發(fā)的理想平臺。
1 系統(tǒng)組成結構
1.1 系統(tǒng)功能與組成
利用上述平臺本文設計實現(xiàn)了一個遠程數據采集控制系統(tǒng),測量遠程設備的環(huán)境溫度變化情況和電池電量,并能啟動溫度控制器工作,在電池電量不足時,向數據采集控制中心發(fā)送報警信息。系統(tǒng)實現(xiàn)的主要功能有:
?。?)定時檢測、采集遠程設備環(huán)境溫度及供電電池電壓,并將數據發(fā)送到監(jiān)控中心;
?。?)在環(huán)境溫度超出預定范圍時,啟動溫控器工作,以保持設備環(huán)境溫度;
?。?)在電池電量不足時,向監(jiān)控中心發(fā)送報警信息;
?。?)可本地設置、修改系統(tǒng)工作參數,也可由監(jiān)控中心通過短信遠程控制、設定系統(tǒng)工作參數;
?。?)監(jiān)控中心將數據信息保存于數據庫中,并能對采集的數據進行統(tǒng)計分析,按預設參數決定是否需對遠程設備進行人工維護;
?。?)數據采集/控制器工作異常時,能向監(jiān)控中心發(fā)送報警信息,請求進行人工維護;
?。?)能將采集的溫度數據信息本地存儲,系統(tǒng)通信失敗時,可通過USB設備進行轉儲。
系統(tǒng)組成關系如圖1所示。其中數據庫采用SQL Server 2000,用于存儲采集到的數據信息和遠程設備工作、維護情況信息;數據采集控制中心采用工控機服務器、Windows Server2003,運行數據采集控制軟件系統(tǒng),通過串口與GSM模塊相連,采用短信通信方式完成對遠程設備的信息采集與管理控制;GSM模塊采用Siemens的TC35,通過短信實現(xiàn)遠程信息的交互,可使系統(tǒng)建設與維護投資小,工作可靠;數據采集/控制器用以實現(xiàn)數據采集以及相應設備的控制。
監(jiān)控器核心板集成了2 MB SRAM和4 MB Flash存儲器和4×4鍵盤,還集成了所需的外設接口模塊,包括液晶顯示接口、USB接口模塊、A/D轉換模塊、2個RS232接口以及 DC/DC轉換等模塊。外接設備有GSM模塊、128×64液晶屏,U盤、電池電源、溫度傳感控制器等,其中液晶屏和U盤為選配設備,為降低系統(tǒng)成本與功耗,只在需要時配接相應設備。
2 數據采集/控制器軟件系統(tǒng)設計
在目前嵌入式實時操作系統(tǒng)中,μC/OS-II源碼公開、結構簡單、移植性好,采用C語言和匯編語言實現(xiàn),其中絕大部分使用C語言,結構非常簡單;能很容易被移植到各種微處理器上,移植過程中,用戶只需做少量工作;支持實時多任務,可裁剪、可固化,是一款優(yōu)秀的嵌入式操作系統(tǒng),以其為平臺,用戶可以快速地開發(fā)出自己的應用系統(tǒng)。
2.1 μC/OS-II的移植
以μC/OS-II為軟件平臺開發(fā)應用系統(tǒng),首先,要進行ARM硬件平臺下的操作系統(tǒng)移植,對μC/OS-II與處理器有關的代碼進行修改,主要工作有:
?。?)在系統(tǒng)文件OS_CPU.H中要定義10個不依賴于編譯的數據類型,以免與處理器類型產生關聯(lián),從而影響移植;定義OS_STK_GROWTH常量為1,指明堆棧的生長方向為自上而下;定義兩個宏OS_ENTER_CRITICAL()、OS_EXIT_CRITICAL(),以禁止和允許中斷,系統(tǒng)代碼訪問臨界區(qū)前要先禁止中斷,訪問完畢后重新允許中斷;定義宏OS_TASK_SW(),在任務級代碼中調用,使系統(tǒng)從低優(yōu)先級任務切換到高優(yōu)先級任務。
?。?)在OS_CPU_C.C文件中編寫6個C函數 OSTaskStkInit()、OSTaskCreateHook()、OSTaskDelHook()、OSTaskSwHook()、OSTaskStatHook()、OSTimeTickHook()。OSTaskStkInit()用來初始化任務的堆棧結構,OSTaskCreateHook()允許用戶及使用特定移植實例的用戶擴展μC/OS-II的功能,OSTaskDelHook()用于任務刪除時的系統(tǒng)調用,OSTaskSwHook()是發(fā)生任務切換時的調用函數。這些函數中只有OSTaskStkInit()是必需和函數,其余函數必須聲明,但不一定需要包含代碼。
?。?)在OS_CPU_A.ASM文件中編寫4個匯編函數:OSStartHighRdy()使就緒狀態(tài)的最高優(yōu)先級任務開始運行,OSCtxSw()用于任務級的任務切換,OSIntCtxSw()用于中斷級的任務切換,OSTickISR為內核處理時鐘節(jié)拍的中斷處理函數。應注意運行OSStart()后,在系統(tǒng)啟動的第一個任務中初始化節(jié)拍中斷。
?。?)主函數程序結構:在主程序中應包含頭文件config.h,其中對最大任務數、信號量和郵箱等內核參數進行定制和配置,分配各任務的堆棧空間,主函數main()要先后調用OSInit(),變量初始化,創(chuàng)建各任務,調用OSStart(),進入實時多任務運行狀態(tài)。主程序結構如下:
#include “config.h”
OS_STK TaskStk[TASK_STK_SIZE];
OS_STK Task_Stk1[TASK_STK_SIZE];
… … … /*為各任務分配堆棧空間*/
main(void)
{
OSInit();
OSTaskCreate(Task1,(void*)0,&Task_Stk1[TASK_STK_SIZE-1],0);
… … … /*創(chuàng)建各任務*/
OSStart();
return 0;
}
2.2 系統(tǒng)任務劃分與功能設計
數據采集/控制器的軟件系統(tǒng)共劃分為6個主要任務,按優(yōu)先級順序分別為控制任務、鍵盤任務、溫度監(jiān)測任務、串口通信任務、電量監(jiān)測任務、顯示任務。
?。?)控制任務:啟動系統(tǒng)各任務后,根據收到的鍵盤或短信命令,修改系統(tǒng)工作參數,控制系統(tǒng)工作狀態(tài),溫度超過設定值時,控制溫度控制器工作。
(2)鍵盤任務:通過鍵盤可以輸入控制命令、設置系統(tǒng)工作參數。鍵盤任務循環(huán)讀取鍵盤,將按鍵信息發(fā)送到控制任務,任務處理過程中應考慮到按鍵的抖動等特殊情況的處理。
?。?)溫度監(jiān)測任務:監(jiān)測環(huán)境溫度,按設置參數定時讀取經過A/D轉換的溫度值,進行本地存儲,并向串口通信任務發(fā)送環(huán)境溫度信息,由串口通信任務通過GSM模塊向數據采集控制中心發(fā)送溫度數據短信,供采集控制中心儲存、統(tǒng)計和分析。該任務還要進行喂狗操作,將看門狗復位,然后進入循環(huán)等待下一次定時數據采集。
?。?)串口通信任務:將采集的溫度、電量等信息緩存至規(guī)定(可設置)的條數時,通過串口發(fā)送給GSM模塊;對收到的報警信息則不進行緩存,直接通過串口發(fā)送給GSM模塊。每次發(fā)送數據完成后,讀取GSM模塊的未接收短信,若為命令短信,則發(fā)送給控制任務進行相應控制。
?。?)電量監(jiān)測任務:檢測電池電量,當電池電量低于設定值時,向串口通信任務發(fā)送低電信息,由串口通信任務通過GSM模塊向數據采集控制中心發(fā)送低電報警短信,請求人工維護。
?。?)顯示任務:顯示任務用于顯示系統(tǒng)的工作狀態(tài),包括溫度、電量、報警信息以及鍵盤輸入信息的回顯,考慮系統(tǒng)的低功耗要求,在遠程無人值守環(huán)境下,可關閉系統(tǒng)的顯示,或取消液晶顯示配置,降低硬件成本。
本文以ARM系統(tǒng)的控制器系統(tǒng)和μC/OS-II為軟、硬件平臺,實現(xiàn)了一個遠程數據采集/控制系統(tǒng),達到了低成本、低功耗、建設實施簡便、快捷的要求,應用效果令人滿意。本系統(tǒng)的解決方案對于相似應用環(huán)境的遠程數據采集與控制具有一定的借鑒意義。
參考文獻
[1] 邵貝貝譯.μC/OS-II源碼公開的實時嵌入式操作系統(tǒng)[M].北京:中國電力出版社,2001.
[2] 周立功.ARM微控制器基礎與實戰(zhàn)[M].北京:北京航空航天大學出版社,2003.