- 相關推薦
Windows 95下智能數(shù)據(jù)采集系統(tǒng)
摘要:提出一種智能數(shù)據(jù)采集系統(tǒng)。用編程簡單、定時分辨率高、工作可靠的單片機定時取代編程繁復、定時分辨率低、工作不可靠的Windows95下的定時。解決了Windows 95環(huán)境下短時間定時不準確的難題,又簡化了用戶的應用程序。整個系統(tǒng)結構簡單、高效可靠,實現(xiàn)了對信號的高性能采集。引言
數(shù)據(jù)采集系統(tǒng)在各行各業(yè)都有廣泛的應用。目前,已有各種各樣高速、高精度、多通道的數(shù)據(jù)采集卡問世。計算機通過卡上的模數(shù)轉(zhuǎn)換器采入數(shù)據(jù),然后進行數(shù)據(jù)存儲、數(shù)據(jù)處理和圖形顯示等工作。隨著微電子技術和計算機技術的發(fā)展,Windows 95/98平臺下的應用程序已經(jīng)成為數(shù)據(jù)采集與處理軟件開發(fā)的主流。
用于數(shù)據(jù)采集的常規(guī)Windows定時順又存在著嚴重的不足。首先,常規(guī)Windows定時器的定時分辨率低。定時器每隔55ms中斷1次,相當于最高采樣頻率僅為18.2Hz。對由于Windows 95/98下的應用程序無法直接與硬件打交道,不能通過對定時中斷重新安裝的方法改變定時時間長度。如此低的采樣頻率對于絕大多數(shù)的信號采集與處理都是不適合的,必須尋找能以更高頻率采集的方法。
其次,Windows系統(tǒng)是一個多任務操作系統(tǒng),它是基于消息來驅(qū)動事件的。定時器消息WMTIMER在串行消息隊列中的優(yōu)先級別很低,往往得不到及時響應,甚至消息隊列中的幾個未及時處理的定時器消息會被合并為一個;而應用程序無法確定由于這種處理而丟失的消息數(shù),使實際的采樣間隔不均勻。
針對以上問題,人們想出了很多方法予以解決。目前常用的方法都是在PC機上編程,一般來講有以下3種方法:
(1)在Windows應用程序中,使用普通C語言中常用的函數(shù)delay()[2,3]。
delay()是C語言中常用的延延、定時函婁。使用delay(),最高采樣率可達1kHz,但delay()與多任務的Windows操作系統(tǒng)不兼容。在Windows應用程序中直接使用delay()會發(fā)生編譯警告和連接錯誤?梢酝ㄟ^程序中顯示說明函數(shù)delay()原型并在Windows庫中包含DELAY模塊的方法去除這一錯誤,從而可以在Windows應用程序中,像普通C程序一樣使用delay()。然而,這種用軟件等待的方法,對于主機的資源來講是一個極大的浪費。
(2)使用Windows多媒體定時器的回調(diào)函數(shù)[4,5]
Windows多媒體定時器可以通過函數(shù)timeBeginPeriod來設置定時器分辨率,其分辨率最小為1ms,最大為16ms。這一分辨率代表了60~1000Hz的采樣率,可以滿足一般信號對采樣率的要求。而且多媒體定時器采用中斷完成定時服務,在中斷時刻調(diào)用1個回調(diào)函數(shù),而不是向消息隊列發(fā)送WM_TIMER信息。在應用程序中,使用Windows多媒體定時器并不容易,必須遵循嚴格的步驟。在使用回調(diào)函數(shù)的趕集,在中斷服務程序和用戶主程序之間,要進行數(shù)據(jù)的共享,給編程和調(diào)試帶來不便。程序的穩(wěn)健性也會受到影響。在定時時間較短時,主機負荷過重。
(3)實時鐘定時[6]
實時鐘芯片在基準頻率作用下驅(qū)動內(nèi)部時鐘電路工作,同時可通過對內(nèi)部寄存器A(D3~D0)編程,選擇22分頻輸出信號頻率。實時鐘周期性地輸出方波和周期中斷請求信號(該中斷請求連到IRQ8),從而為程序中實現(xiàn)時間控制提供了另一條途徑。同時,在Windows機制中,使用優(yōu)先級高于一般的任務級,而等于系統(tǒng)級的VxD編制驅(qū)動程序,可以保證驅(qū)動程序在運行時享有最高優(yōu)先權,在進行硬件設備的管理、控制時不會被其他任務所中斷,充分保證了驅(qū)動程序返還給用戶的數(shù)據(jù)是完全真實的值。而且可以直接對硬件進行訪問,因而通過編寫VxD直接管理實時鐘中斷,定時分辨率更高。但VxD對調(diào)試者的編程水平要求較高,稍有不慎,很容易出現(xiàn)異常錯誤或死機。
不難看出,直接在PC機上編程解決定時問題要求調(diào)試者有較高的編程水平,程序調(diào)試困難,可靠性差。
為此,我們設計了一套智能數(shù)據(jù)采集系統(tǒng)。用單片機89C51作為中央處理單元,控制模/數(shù)據(jù)轉(zhuǎn)換、外部數(shù)據(jù)存儲器等外圍設備,進行數(shù)據(jù)的定時采集和預處理。通過絕大多數(shù)電腦都具備的并行口作為數(shù)據(jù)采集系統(tǒng)與計算機的接口,與PC機進行數(shù)據(jù)傳輸。由單片機管理定時采樣和進行部分信號預處理工作,解決了Windows 95下定時采樣的問題,減徑了PC機方面編程的工作量,使應用程序可以精力進行數(shù)據(jù)采集后的處理工作。
智能數(shù)據(jù)采集系統(tǒng)
智能數(shù)據(jù)采集系統(tǒng)的框圖如圖1所示。信源信號經(jīng)放大濾波后進入A/D轉(zhuǎn)換器。單片機以一定的采集率在定時中斷內(nèi)讀取A/D轉(zhuǎn)換器的輸出,送入RAM中暫存,在定時斷外則將RAM中存儲的數(shù)據(jù)不斷經(jīng)并口送入PC機。PC機中的應用程序由并口接收單片機發(fā)送的數(shù)據(jù),并對其進行數(shù)據(jù)處理和顯示。
1.單片機與主機間的并口通信
隨著計算機技術的發(fā)展,微機的并行口發(fā)生了很大的變化,由原來的只能打印,即只能向外設傳輸數(shù)據(jù),發(fā)展成為可以在微機與外設之間進行雙向、快速交換數(shù)據(jù)的雙向并行接口。利用雙向并行口使得PC機能與數(shù)據(jù)采集系統(tǒng)的單片機之間以異步的、全互鎖的雙向并行方式通信。它能減少用戶交互地操作外部設備的次數(shù),以更高的傳輸速率完成數(shù)據(jù)傳送。
并口通信硬件部分原理如圖2所示,軟件部分流程圖如圖3所示。
【W(wǎng)indows 95下智能數(shù)據(jù)采集系統(tǒng)】相關文章:
高性能數(shù)據(jù)采集系統(tǒng)芯片LM12H458及其應用05-28
局域網(wǎng)數(shù)據(jù)庫環(huán)境下數(shù)據(jù)采集及處理05-08
crm中的決策支持系統(tǒng)與貿(mào)易智能02-23
制造產(chǎn)品智能集成報價系統(tǒng)研究08-26
Windows05-28
如何在 Windows操作系統(tǒng)中改變文件打開方式05-30
構件化的航天用數(shù)據(jù)傳輸處理系統(tǒng)構建05-02