<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Windows 95下智能數據采集系統

Windows 95下智能數據采集系統

作者: 時(shí)間:2004-12-05 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:提出一種。用編程簡(jiǎn)單、定時(shí)分辨率高、工作可靠的單片機定時(shí)取代編程繁復、定時(shí)分辨率低、工作不可靠的95下的定時(shí)。解決了 95環(huán)境下短時(shí)間定時(shí)不準確的難題,又簡(jiǎn)化了用戶(hù)的應用程序。整個(gè)結構簡(jiǎn)單、高效可靠,實(shí)現了對信號的高性能采集。

關(guān)鍵詞:定時(shí)器 時(shí)鐘 并口

引言

在各行各業(yè)都有廣泛的應用。目前,已有各種各樣高速、高精度、多通道的數據采集卡問(wèn)世。計算機通過(guò)卡上的模數轉換器采入數據,然后進(jìn)行數據存儲、數據處理和圖形顯示等工作。隨著(zhù)微電子技術(shù)和計算機技術(shù)的發(fā)展, 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所示。

并口通信利用了D觸發(fā)器74HC74的預置和清零功能提供傳輸數據所需的握手信號。用八D鎖存器74HC573完成單片機傳出數據的鎖存。在單片機向PC機送數時(shí),單片機先將數據鎖存在74HC573中。74HC573的輸出端接到微機并行口的數據寄存器的輸入端。數據鎖存后,單片機將74HC74的清零端CD清零,使輸出端Q輸出低電平,Q端同時(shí)送至并行口的狀態(tài)寄存器,通知PC機可以取數。PC機檢測到這一信號后,經(jīng)控制口選通數據鎖存器,將鎖存的數據取出,并將觸發(fā)器置位端SD置1,使Q端輸出高電平,通知單片機數已取出,可以送下一個(gè)數據了。單片機檢測到觸發(fā)器Q端輸出變?yōu)楦唠娖胶?,又?個(gè)新數據鎖存至74HC573中,同時(shí)使觸發(fā)器輸出電平翻轉,通知PC機取數。如此往復,直到PC機不再需要讀數為止。值得注意的是:為了避免由于時(shí)序的不匹配造成的清零和置位端同時(shí)有效,在單片機(PC機)進(jìn)行清零(置位)前,應對PC機(單片機)的置位(清零)端進(jìn)行檢測;而為了避免數據的傳輸錯誤,每發(fā)16個(gè)數據即進(jìn)行1次累加器和與異或和校驗。PC機如發(fā)現檢驗結果錯誤,即通知單片機重發(fā)剛才的16個(gè)數。

采用這種電路進(jìn)行并口通道,電路設計簡(jiǎn)單,只需1片74HC573和1片74HC74即可實(shí)現。74HC573和74HC74的使用都很簡(jiǎn)單,使得程序編制也很容易,大大提高了傳輸速度。

2.單片機與RAM間的數據交換

在并口通信中引入RAM,是為了解決Windows下應用程序在數據采集時(shí)無(wú)法及時(shí)響應消息的問(wèn)題。RAM在系統中起到了“蓄水池”的作用:數據采集卡上單片機89C51以200Hz的采樣率在定時(shí)中斷內讀取模/數轉換器MAX126各通道轉換結果,送入外部RAM中暫存;而在主程序內,則將RAM中存儲的數據取出,通過(guò)并口通信傳給筆記本電腦。數據在RAM中以循環(huán)隊列方式存儲。這樣,在Windows響應其他消息,筆記本電腦速度較慢時(shí),采入的數據在RAM中暫存;而在筆記本電腦速度快時(shí),單片機將RAM中存儲的數據取出傳出。因為總體來(lái)講筆記本電腦的速度是足以在中斷時(shí)間內傳完RAM中存儲的數據的。所以只要RAM的存儲量足夠大(幾倍于Windows響應其他消息可能花費的最大時(shí)間),就可以保證數據的連續傳輸。單片機與RAM數據交換流程如圖4所示。

3.最高采樣率的限制

對最高采樣率的討論可以分為兩種情況:實(shí)時(shí)傳輸和非實(shí)時(shí)傳輸。

在實(shí)時(shí)傳輸時(shí),像前面提到的那樣,單片機采集到數據,在定時(shí)中斷內經(jīng)RAM暫存,在定時(shí)斷外則不斷經(jīng)并口向PC機發(fā)送。因而采集系統的最高采樣率由于受到單片機與RAM間數據交換以及與PC機并口通信指令執行時(shí)間的限制,并假設在使用89C51,12MHz晶振時(shí),采樣數據精度是單字節的,則單通道采樣率不應高于32kHz。

如果對數據處理的實(shí)時(shí)性要求不高,允許對信號進(jìn)行事后處理,則可以選擇非實(shí)時(shí)傳輸方式。即在單片機采集到數據后,放入大容量RAM中存儲,而不向PC機送數。在全部數據采集完成后,才進(jìn)行單片機與PC機的并口通信,將RAM中存儲的數據一次送入PC機。非實(shí)時(shí)傳輸方式的最高采樣率不受單片機與RAM間地址比較以及并口的數據通過(guò)率的限制,使采樣的定時(shí)分辨率可以小于(1/32)ms。

采用以上原理實(shí)現的一套生理電數據采集系統,單片機使用12MHz晶振,可以以500Hz的采樣率,進(jìn)行16通道生理電信號的實(shí)時(shí)采集和處理。如果采用更高的晶振頻率,或采用較少的通道數,這一采樣率還可以進(jìn)一步提高。

小結

本文提出了一種智能數據采集系統。用編程簡(jiǎn)單、定時(shí)分辨率高、工作可靠的單片機定時(shí)取代了編程繁復、定時(shí)分辨率低、工作不可靠的Windows95下的定時(shí)。由單片機板上RAM的“蓄水池"的作用解決了Windows 95在定時(shí)采樣時(shí)響應消息的問(wèn)題。不但解決了Windows 95環(huán)境下短消息的問(wèn)題。不但解決了Windows 95環(huán)境下短時(shí)間定時(shí)不準確的難題,又簡(jiǎn)化了用戶(hù)的應用程序。單片機還可以對采入的數據進(jìn)行預處理,節省主機處理數據的時(shí)間。使PC機的應用程序可以不考慮定時(shí)問(wèn)題,集中精力進(jìn)行數據采入后的處理工作。

在數據采集系統與主機間采用間采用并行口通信,不但解決了Windows 95下的時(shí)采樣問(wèn)題,提高了系統的數據通過(guò)率,還使整個(gè)系統結構簡(jiǎn)單、高效、可靠。同時(shí)帶來(lái)了一系列的好處:不須像目前常用的內插式數據采集卡那樣占用PC機內的一個(gè)擴展槽,而且可以和筆記本電腦相連接,攜帶方便,使用安全,對采集的信號造成的干擾小,從而實(shí)現了對信號的高性能采集。



關(guān)鍵詞: 系統 數據采集 智能 Windows

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>