1. <code id="ya7qu"><span id="ya7qu"><label id="ya7qu"></label></span></code>

    <b id="ya7qu"><bdo id="ya7qu"></bdo></b>
    <wbr id="ya7qu"><optgroup id="ya7qu"><strike id="ya7qu"></strike></optgroup></wbr>
  2. <u id="ya7qu"><bdo id="ya7qu"></bdo></u>
    現在位置:范文先生網>理工論文>電子通信論文>Windows 95下智能數據采集系統

    Windows 95下智能數據采集系統

    時間:2023-02-20 23:35:13 電子通信論文 我要投稿
    • 相關推薦

    Windows 95下智能數據采集系統

    摘要:提出一種智能數據采集系統。用編程簡單、定時分辨率高、工作可靠的單片機定時取代編程繁復、定時分辨率低、工作不可靠的Windows95下的定時。解決了Windows 95環境下短時間定時不準確的難題,又簡化了用戶的應用程序。整個系統結構簡單、高效可靠,實現了對信號的高性能采集。

        關鍵詞:定時器 時鐘 并口 數據采集

    引言

    數據采集系統在各行各業都有廣泛的應用。目前,已有各種各樣高速、高精度、多通道的數據采集卡問世。計算機通過卡上的模數轉換器采入數據,然后進行數據存儲、數據處理和圖形顯示等工作。隨著微電子技術和計算機技術的發展,(范文先生網www.baimashangsha.com收集整理)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多媒體定時器并不容易,必須遵循嚴格的步驟。在使用回調函數的趕集,在中斷服務程序和用戶主程序之間,要進行數據的共享,給編程和調試帶來不便。程序的穩健性也會受到影響。在定時時間較短時,主機負荷過重。

    (3)實時鐘定時[6]

    實時鐘芯片在基準頻率作用下驅動內部時鐘電路工作,同時可通過對內部寄存器A(D3~D0)編程,選擇22分頻輸出信號頻率。實時鐘周期性地輸出方波和周期中斷請求信號(該中斷請求連到IRQ8),從而為程序中實現時間控制提供了另一條途徑。同時,在Windows機制中,使用優先級高于一般的任務級,而等于系統級的VxD編制驅動程序,可以保證驅動程序在運行時享有最高優先權,在進行硬件設備的管理、控制時不會被其他任務所中斷,充分保證了驅動程序返還給用戶的數據是完全真實的值。而且可以直接對硬件進行訪問,因而通過編寫VxD直接管理實時鐘中斷,定時分辨率更高。但VxD對調試者的編程水平要求較高,稍有不慎,很容易出現異常錯誤或死機。

    不難看出,直接在PC機上編程解決定時問題要求調試者有較高的編程水平,程序調試困難,可靠性差。

    為此,我們設計了一套智能數據采集系統。用單片機89C51作為中央處理單元,控制模/數據轉換、外部數據存儲器等外圍設備,進行數據的定時采集和預處理。通過絕大多數電腦都具備的并行口作為數據采集系統與計算機的接口,與PC機進行數據傳輸。由單片機管理定時采樣和進行部分信號預

    處理工作,解決了Windows 95下定時采樣的問題,減徑了PC機方面編程的工作量,使應用程序可以精力進行數據采集后的處理工作。

    智能數據采集系統

    智能數據采集系統的框圖如圖1所示。信源信號經放大濾波后進入A/D轉換器。單片機以一定的采集率在定時中斷內讀取A/D轉換器的輸出,送入RAM中暫存,在定時斷外則將RAM中存儲的數據不斷經并口送入PC機。PC機中的應用程序由并口接收單片機發送的數據,并對其進行數據處理和顯示。

    1.單片機與主機間的并口通信

    隨著計算機技術的發展,微機的并行口發生了很大的變化,由原來的只能打印,即只能向外設傳輸數據,發展成為可以在微機與外設之間進行雙向、快速交換數據的雙向并行接口。利用雙向并行口使得PC機能與數據采集系統的單片機之間以異步的、全互鎖的雙向并行方式通信。它能減少用戶交互地操作外部設備的次數,以更高的傳輸速率完成數據傳送。

    并口通信硬件部分原理如圖2所示,軟件部分流程圖如圖3所示。

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

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

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

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

    3.最高采樣率的限制

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

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

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

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

    小結

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

    在數據采集系統與主機間采用間采用并行口通信,不但解決了Windows 95下的時采樣問題,提高了系統的數據通過率,還使整個系統結構簡單、高效、可靠。同時帶來了一系列的好處:

    不須像目前常用的內插式數據采集卡那樣占用PC機內的一個擴展槽,而且可以和筆記本電腦相連接,攜帶方便,使用安全,對采集的信號造成的干擾小,從而實現了對信號的高性能采集。


    【Windows 95下智能數據采集系統】相關文章:

    基于USB接口的數據采集系統設計08-06

    具有故障保護功能的數據采集系統08-06

    基于USB總線的高速數據采集系統08-06

    基于DSP的USB口數據采集分析系統08-06

    基于Verilog HDL設計的自動數據采集系統04-12

    采用USBN9602的數據采集系統設計08-06

    基于DSP的 USB 口數據采集分析系統08-06

    低軾耗數據采集系統的USB接口設計08-06

    CPLD在遠程多路數據采集系統中的應用08-06

    国产福利萌白酱精品tv一区_日韩亚洲中字无码一区二区三区_亚洲欧洲高清无码在线_全黄无码免费一级毛片
    1. <code id="ya7qu"><span id="ya7qu"><label id="ya7qu"></label></span></code>

      <b id="ya7qu"><bdo id="ya7qu"></bdo></b>
      <wbr id="ya7qu"><optgroup id="ya7qu"><strike id="ya7qu"></strike></optgroup></wbr>
    2. <u id="ya7qu"><bdo id="ya7qu"></bdo></u>
      亚洲韩国日本一区 | 日韩不卡在线视频 | 中文字幕免费观看一区 | 亚洲色精品一区二区三区四区 | 日韩欧美亚洲中文乱码 | 亚洲欧美日韩中文字幕在线 |