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