- 相關推薦
Windows 95下智能數據采集系統
摘要:提出一種智能數據采集系統。用編程簡單、定時分辨率高、工作可靠的單片機定時取代編程繁復、定時分辨率低、工作不可靠的Windows95下的定時。解決了Windows 95環境下短時間定時不準確的難題,又簡化了用戶的應用程序。整個系統結構簡單、高效可靠,實現了對信號的高性能采集。關鍵詞:定時器 時鐘 并口 數據采集
引言
數據采集系統在各行各業都有廣泛的應用。目前,已有各種各樣高速、高精度、多通道的數據采集卡問世。計算機通過卡上的模數轉換器采入數據,然后進行數據存儲、數據處理和圖形顯示等工作。隨著微電子技術和計算機技術的發展,Windows 95/98平臺下的應用程序已經成為數據采集與處理軟件開發的主流。
用于數據采集的常規Windows定時順又存在著嚴重的不足。首先,常規Windows定時器的定時分辨率低。定時器每隔55ms中斷1次,相當于最高采樣頻率僅為18.2Hz。對由于Windows 95/98下的應用程序無法直接與硬件打交道,不能通過對定時中斷重新安裝的方法改變定時時間長度。如此低的采樣頻率對于絕大多數的信號采集與處理都是不適合的,必須尋找能以更高頻率采集的方法。
其次,Windows系統是一個多任務操作系統,它是基于消息來驅動事件的。定時器消息WMTIMER在串行消息隊列中的優先級別很低,往往得不到及時響應,甚至消息隊列中的幾個未及時處理的定時器消息會被合并為一個;而應用程序無法確定由于這種處理而丟失的消息數,使實際的采樣間隔不均勻。
針對以上問題,人們想出了很多方法予以解決。目前常用的方法都是在PC機上編程,一般來講有以下3種方法:
(1)在Windows應用程序中,使用普通C語言中常用的函數delay()[2,3]。
delay()是C語言中常用的延延、定時函婁。使用delay(),最高采樣率可達1kHz,但delay()與多任務的Windows操作系統不兼容。在Windows應用程序中直接使用delay()會發生編譯警告和連接錯誤。可以通過程序中顯示說明函數delay()原型并在Windows庫中包含DELAY模塊的方法去除這一錯誤,從而可以在Windows應用程序中,像普通C程序一樣使用delay()。然而,這種用軟件等待的方法,對于主機的資源來講是一個極大的浪費。
(2)使用Windows多媒體定時器的回調函數[4,5]
Windows多媒體定時器可以通過函數timeBeginPeriod來設置定時器分辨率,其分辨率最小為1ms,最大為16ms。這一分辨率代表了60~1000Hz的采樣率,可以滿足一般信號對采樣率的要求。而且多媒體定時器采用中斷完成定時服務,在中斷時刻調用1個回調函數,而不是向消息隊列發送WM_TIMER信息。在應用程序中,使用Windows多媒體定時器并不容易,必須遵循嚴格的步驟。在使用回調函數的趕集,在中斷服務程序和用戶主程序之間,要進行數據的共享,給編程和調試帶來不便。程序的穩健
[1] [2] [3] [4]
【Windows 95下智能數據采集系統】相關文章:
地震智能數據采集系統04-30
鉆探參數數據智能采集系統的研制05-02
海洋測繪內業數據采集系統04-28
VXI數據采集系統的建立及其應用04-27
無線數據采集在環境監控系統中應用04-29
塞式噴管模擬實驗及數據采集系統05-03
虛擬儀器在汽車數據采集系統中的應用05-02
關于汽車轉角數據采集系統問題的簡要探討04-27