引言
隨著工業(yè)自動化與信息化的不斷發(fā)展。數(shù)據(jù)采集已經成為了計算機與外部物理世界連接的橋梁。數(shù)據(jù)采集系統(tǒng)廣泛地應用于工業(yè)生產中設備工作狀況的監(jiān)測、控制領域中的閉環(huán)控制系統(tǒng)及仿真領域的半實物仿真系統(tǒng)。
傳統(tǒng)的數(shù)據(jù)采集裝置通常由單片機及采集卡組成。其采集通道數(shù)較少、單任務的軟件結構及實時性差等不足之處已無法滿足人們的需求。ARM(Advanced RISC Machines)是基于RSIC架構的數(shù)據(jù)寬為32位可嵌入操作系統(tǒng)的微處理器。由于其體積小、價格低、可靠性高、低功耗等特點在工業(yè)自動化、國防、運輸?shù)阮I域得到了廣泛的應用。
本文設計并實現(xiàn)了基于ARM的多通道實時數(shù)據(jù)采集監(jiān)控系統(tǒng),能夠保證采集過程中數(shù)據(jù)的可靠性及實時性,并通過計算機軟件對數(shù)據(jù)進行監(jiān)控顯示,整個系統(tǒng)實現(xiàn)了數(shù)據(jù)采集、模擬量的輸出及數(shù)據(jù)存儲功能。
1 系統(tǒng)工作原理
如圖1所示,數(shù)據(jù)采集監(jiān)控系統(tǒng)包括上位計算機及下位機系統(tǒng)。下位機由ARM工控開發(fā)平臺,數(shù)據(jù)采集板、模擬量輸出板、LCD液晶顯示屏及SD存儲卡組成,使用μC/OSⅡ實時多任務操作系統(tǒng),對任務進行調度與管理,實現(xiàn)數(shù)據(jù)采集板對外界模擬量的多通道采集功能,將數(shù)據(jù)存儲于SD卡,并通過USB或以太網傳送至上位計算機;在上位機的控制下,下位機接收模擬最輸出指令,完成模擬量輸出功能;LCD液晶顯示屏用于顯示下位機的工作狀態(tài)信息。
圖1 數(shù)據(jù)采集監(jiān)控系統(tǒng)組成圖
上位計算機通過USB或以太網與下位機進行通訊,接收下位機的采集數(shù)據(jù)進行實時監(jiān)控,圖形化顯示數(shù)據(jù)變化曲線,并可對模擬量輸出進行設置,從而控制下位機模擬量輸出功能。
2 下位機硬件組成
根據(jù)系統(tǒng)的工作原理,采用周立功公司的Smart 2400ARM7工控開發(fā)板,其ARM為LPC2478,開發(fā)板內嵌μC/OSⅡ實時多任務操作系統(tǒng),集成10/1OOM以太網PHY芯片、以太網接口、USB接口、98KB SRAM、SD卡插槽、STN和TFT液晶接口、512KB Flash及MiniI SA總線,通過MiniI SA總線可以直接掛載不同功能的擴展板。開發(fā)板組成如圖2所示。
圖2 開發(fā)板組成示意圖
圖2 開發(fā)板組成示意圖使用周立功公司的MiniISA-8208BT數(shù)據(jù)采集板及MiniISA8204CT模擬量輸出板,均基于MiniISA總線結構,通過總線與工控開發(fā)平臺進行通訊。MiniISA8208BT 為12位的A/D轉換設備,包含8路差分或者16路單端隔離模擬信號輸入;MiniISA8204CT是4通道12位的模擬量輸出板,這兩款擴展板的性能指標均符合系統(tǒng)的需要。
3 軟件設計
將軟件系統(tǒng)分成下位機軟件及上位機監(jiān)控軟件分別進行設計。
3.1下位機軟件設計
下位機采用μC/OSⅡ實時多任務操作系統(tǒng),μC/OSⅡ是一個源碼公開、可移植、可固化、可裁剪、搶占式的實時多任務操作系統(tǒng),完全基于優(yōu)先級來管理任務,總是使處于就緒態(tài)的優(yōu)先級最高的任務運行。不支持時間片輪轉調度,所以必須按照任務的重要性和實時性要求程度,將系統(tǒng)功能合理的分解為若干不同優(yōu)先級的任務,任務及優(yōu)先級劃分的合理性將直接影響軟件設計的質量。
對系統(tǒng)功能進行任務劃分時,首先要使所有任務滿足實時性要求,即使在最壞的情況下,系統(tǒng)中所有對實時性有要求的功能都能夠正常實現(xiàn);并且任務數(shù)目要合理,簡化軟件系統(tǒng)以降低對資源的需求。根據(jù)數(shù)據(jù)采集監(jiān)控系統(tǒng)的工作原理及任務劃分的原則,將下位機系統(tǒng)任務劃分為USB通訊任務、以太網通訊任務、SD卡寫數(shù)據(jù)文件任務、數(shù)據(jù)采集任務、LCD液晶屏顯示任務、模擬量輸出任務。此外,賦予緊迫性、執(zhí)行快捷性任務較高優(yōu)先級,人機接口顯示任務實時性要求低,賦予較低優(yōu)先級。優(yōu)先級劃分如下所示。
①TASK1任務,優(yōu)先級1,USB通訊任務;
②TASK2任務,優(yōu)先級2,以太網通訊任務;
③TASK3任務,優(yōu)先級3,SD卡寫數(shù)據(jù)文件任務;
④TASK4任務,優(yōu)先級4,數(shù)據(jù)采集任務;
⑤TASK5任務,優(yōu)先級5,模擬量輸出任務;
⑥TASK6任務,優(yōu)先級6,LCD液晶屏顯示任務。
下位機軟件系統(tǒng)中,任務間的通訊主要是通過消息郵箱來完成的。消息郵箱是用來在任務之間或中斷與任務之間傳遞一個指針,以便任務可以通過指針發(fā)送和接收任意類型的數(shù)據(jù)。定義3個消息郵箱,消息郵箱1用于數(shù)據(jù)采集任務向通訊發(fā)送任務傳遞數(shù)據(jù);消息郵箱2用于通訊接收任務與模擬量輸出任務之間的通信;消息郵箱3用于數(shù)據(jù)采集任務向SD卡寫數(shù)據(jù)文件任務發(fā)送數(shù)據(jù)。如以下程序語句所示,使用消息郵箱必須先定義消息郵箱指針,再創(chuàng)建消息郵箱,最后等待其它任務發(fā)送郵箱或者發(fā)送郵箱至其它任務。
OS_EVENT*mbox;//定義消息郵箱指針
mbox=OSMboxCreate(NULL);//創(chuàng)建消息郵箱
OSMboxPend(mbox,0,&err);//等待消息郵箱數(shù)據(jù)
OSMboxPost(mbox,Buf);//發(fā)送消息郵箱,數(shù)據(jù)為緩沖區(qū)Buf中數(shù)據(jù)
應用程序運行時,首先調用OSInit()初始化μC/OSⅡ,接著通過調用OSTaskCreate()依次創(chuàng)建任務,隨后執(zhí)行OSStart()啟動多任務環(huán)境,從而進行多任務管理調度。下位機程序模塊及流程如圖3所示。
圖3 下位機程序模塊及流程圖
圖3下位機程序模塊及流程圖數(shù)據(jù)采集任務中,板卡初始化完成后,使用定時器周期定時啟動采集功能,以查詢方式讀取各個采集端口的數(shù)據(jù),并且進行算術平均濾波處理,連續(xù)讀取5次采樣值進行算術平均運算,然后通過消息郵箱將數(shù)據(jù)傳遞給通訊任務及SD卡寫數(shù)據(jù)文件任務。
使用ADS1.2開發(fā)下位機應用程序,利用LPC2400系列專用工程模板,由于Smart2400開發(fā)板內嵌μC/OSⅡ操作系統(tǒng),所以開發(fā)過程中不必進行移植操作系統(tǒng)工作,只需將μC/OSⅡ源文件加載到工程中,對程序所用到的源文件、驅動文件、頭文件等進行相應的修改、加載,編譯鏈接成功后,即可通過仿真器燒寫至Flash中。
3.2上位機軟件設計
上位機數(shù)據(jù)采集監(jiān)控軟件使用VC++6.0開發(fā)。當USB與以太網均連通時,使用USB進行通訊。主要實現(xiàn)以下幾個功能:
①通過USB及以太網與下位機進行通訊;
②創(chuàng)建數(shù)據(jù)接收線程,通過通訊接口接收下位機采集的數(shù)據(jù),實時顯示于監(jiān)控界面上,同時繪制數(shù)據(jù)變化曲線圖;
③通過上位機軟件設定相應的模擬量輸出值,控制下位機進行模擬量輸出工作;
④顯示通訊接口的連接狀態(tài)及下位機工作狀況信息。上位機軟件流程如圖4所示。
圖4 上位機軟件流程圖
4 實驗驗證
為了驗證數(shù)據(jù)采集監(jiān)控系統(tǒng),將模擬量輸出板的4個輸出通道分別與數(shù)據(jù)采集板的采集通道1、2、3、4連接,使用上位機軟件控制模擬量輸出板輸出模擬電壓,初始值為1.5V,經過一段延遲時間后線性減少至1.0V,最終保持在1.0V,延遲時間由數(shù)據(jù)采集監(jiān)控軟件設置,設置為100s.下位機IP地址設為192 168 1.2, 上位機IP地址設為192 168 1.3,使兩者位于同一局域網內。數(shù)據(jù)采集監(jiān)控系統(tǒng)工作時,上位機軟件運行情況如圖5所示。
圖5 數(shù)據(jù)采集監(jiān)控軟件運行界面
上位機軟件"設置"按鈕按下后,下位機模擬量輸出板開始輸出4通道模擬電壓,輸出值從1.5V經過100s線性減至1.0V,數(shù)據(jù)采集板采集模擬電壓并將數(shù)據(jù)傳送至上位機及儲存至SD卡。上位機軟件對采集數(shù)據(jù)進行實時監(jiān)控,并繪制數(shù)據(jù)變化曲線。通過實驗驗證,此系統(tǒng)成功實現(xiàn)了數(shù)據(jù)采集監(jiān)控功能,完成了數(shù)據(jù)的采集、監(jiān)控、存儲及模擬量的輸出,系統(tǒng)運行過程中具有良好的實時性及穩(wěn)定性。
5 結論
本文對基于ARM的多通道實時數(shù)據(jù)采集監(jiān)控系統(tǒng)進行設計與實現(xiàn)。下位機采用μC/OSⅡ實時多任務操作系統(tǒng),實現(xiàn)了數(shù)據(jù)的采集、存儲及模擬量的輸出,具有人機接口顯示功能;上位機軟件成功完成了對采集數(shù)據(jù)的實時監(jiān)控顯示及對模擬量輸出的控制。整個系統(tǒng)具有精度高、運行穩(wěn)定、實時性好、抗干擾能力強等特點,能夠有效地應用于一般的系統(tǒng)監(jiān)控和武器系統(tǒng)中。
作者:薛源 劉衛(wèi)東 來源:《計算機測量與控制》