<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于FIFO的VXI總線并行A/D連續(xù)采集研究

          基于FIFO的VXI總線并行A/D連續(xù)采集研究

          作者: 時間:2012-01-09 來源:網(wǎng)絡(luò) 收藏

          1 引言

          在工業(yè)領(lǐng)域的許多測試應(yīng)用中,特別是產(chǎn)品研制的調(diào)試階段需要對一組信號進行長時間的記錄,以便在事后根據(jù)這組記錄的數(shù)據(jù)進行分析,或者檢驗研制產(chǎn)品的時序是否正確。一些 A/D采集模塊,存儲容量較小,如果連續(xù)循環(huán)采集,在一次采集和下一次采集之間會丟失數(shù)據(jù),測試過程中不能實現(xiàn)實時監(jiān)控信號,也不能夠?qū)崿F(xiàn)數(shù)據(jù)。針對上述問題,本文在總線并行A/D模塊上,結(jié)合,提出了一種可以實現(xiàn)大量數(shù)據(jù)長時間的方法。

          2 總線8通道并行A/D模塊設(shè)計

          VXI總線8通道并行A/D模塊是A16的C尺寸寄存器基模塊。在A16寄存器基模塊中,其訪問空間限制在64字節(jié)內(nèi),而且每次訪問都必須對寄存器的狀態(tài)進行讀取判斷,很難滿足高速、大容量的數(shù)據(jù)傳輸要求。因此在A16空間里,實現(xiàn)高速、大容量的數(shù)據(jù)傳輸,是模塊設(shè)計的重點和難點。在該模塊的設(shè)計中,采用大容量芯片IDT7207作為內(nèi)置緩沖器,采集數(shù)據(jù)先放在的RAM中。VXI總線可以將FIFO中數(shù)據(jù)以數(shù)據(jù)塊的形式進行高速讀取,可以解決高速、大容量的數(shù)據(jù)傳輸。電路框圖如圖1所示。

          圖1 電路框圖

          數(shù)據(jù)采集時,本地微控制器首先通過通訊寄存器接收VXI發(fā)送的狀態(tài)設(shè)置命令,如采樣頻率、采樣方式、采樣點數(shù)、程控增益,然后設(shè)置相應(yīng)的寄存器后,啟動A/D,檢測A/D狀態(tài),并將轉(zhuǎn)換值寫入FIFO。AD轉(zhuǎn)換結(jié)束,設(shè)置相應(yīng)的寄存器,計算機通過判斷此寄存器的狀態(tài),進行FIFO數(shù)據(jù)的讀取。

          以上的設(shè)計中,采用大容量FIFO芯片IDT7207作為內(nèi)置緩沖器,以數(shù)據(jù)塊的形式進行高速讀取,可以實現(xiàn)高速、大容量的數(shù)據(jù)傳輸。但是如果需要長時間的連續(xù)數(shù)據(jù)采集,IDT7207的容量(32K)仍然不能滿足要求。一個長時間的采集任務(wù)需要采用多次采集的方式,每次采集都需要發(fā)送啟動命令,然后等到A/D轉(zhuǎn)換結(jié)束,最后將A/D轉(zhuǎn)換數(shù)據(jù)塊讀入計算機。在兩次采集之間要讀轉(zhuǎn)換結(jié)束的數(shù)據(jù),還需重新發(fā)送啟動命令,因此采集的數(shù)據(jù)是不連續(xù)的。

          3 基于FIFO的連續(xù)采集實現(xiàn)原理

          從上面的分析可以得出:要實現(xiàn)連續(xù)采集,就不能在兩次連續(xù)采集之間有間隔。因此一種方法是讓VXI模塊的A/D轉(zhuǎn)換和計算機的讀取A/D轉(zhuǎn)換數(shù)據(jù)并行進行。當計算機啟動AD轉(zhuǎn)換后,VXI模塊內(nèi)的A/D控制器負責不停的往存儲器中寫入轉(zhuǎn)換后的A/D數(shù)據(jù),計算機異步讀出存儲器數(shù)據(jù)。先進先出結(jié)構(gòu)FIFO能滿足這種要求。IDT72××系列中的IDT7207是IDT公司生產(chǎn)的一種高速、低功耗CMOS型FIFO雙端口RAM, 它的存儲容量為32k×9bit.,存儲時間為12ns。該芯片內(nèi)的雙端口RAM具有2套數(shù)據(jù)線,分別實現(xiàn)數(shù)據(jù)寫入和讀出功能,各自獨立的讀寫指針分別在讀、寫時鐘的控制下順序地從RAM中讀、寫數(shù)據(jù)。讀、寫指針通過RAM的最后一個單元加1回到第一個RAM單元的方式實現(xiàn)循環(huán)。比較和控制部分提供數(shù)據(jù)空標志(/EF)和數(shù)據(jù)滿標志(/FF)來防止存儲器滿時再寫入數(shù)據(jù)的溢出操作和存儲器空時的存儲器空讀操作。而半滿標志(/HF)可以用來防止數(shù)據(jù)丟失和提高數(shù)據(jù)傳送效率。其結(jié)構(gòu)如下圖2所示。

          圖2 FIFO芯片IDT7207結(jié)構(gòu)圖

          本文中要實現(xiàn)長時間的連續(xù)數(shù)據(jù)采集而不丟失數(shù)據(jù)需要利用FIFO的這個半滿標志。當啟動VXI模塊的A/D轉(zhuǎn)換后,計算機便監(jiān)視FIFO的狀態(tài),看是否半滿。如果不是半滿,不做操作;如果半滿便讀取FIFO中的一半數(shù)據(jù)。其過程見下圖3。

          圖3 連續(xù)采集時FIFO的數(shù)據(jù)讀取

          在模塊硬件電路的實現(xiàn)中,將FIFO的空標志、滿標志和半滿標志引入到VXI模塊的狀態(tài)寄存器中。從而可以通過讀地址為0X4的狀態(tài)寄存器的值來判斷FIFO的狀態(tài)。狀態(tài)寄存器的狀態(tài)字如下所示:

          D15

          D14

          D13

          D12

          D11

          D10

          D9

          D8

          D7

          D6

          D5

          D4

          D3

          D2

          D1

          D0

          其中D15為GND;D14為MODID*;D13為FIFO的滿標志,低有效;D12為FIFO的半滿標志,低有效;D11為FIFO的空標志,低有效;D9為VXI命令寫準備好標志,高有效;D8為VXI命令讀準備好標志,高有效;D3為READY;D2為PASSED;D0為DONE;D1,D4不確定。

          4 連續(xù)采集應(yīng)用程序軟件設(shè)計

          為了實現(xiàn)連續(xù)采集計算機的應(yīng)用程序需要定時查詢VXI模塊的狀態(tài)寄存器。Windows操作系統(tǒng)中提高了兩種級別的定時器:一般級別的定時器和高精度定時器。Sleep()和GetTickCount()是屬于一般級別的定時器,它們利用系統(tǒng)的“Tick”時間作為計時單元,定時精度為10ms。而本文設(shè)計VXI A/D采集模塊的最高采樣率為200kHZ, A/D采集模塊中的FIFO容量為32k,如果以高采樣頻率100kHZ八通道方式進行采集,查詢定時間隔為10ms,采用Sleep()或者GetTickCount()定時時10ms誤差會使得每次定時內(nèi)約有10/1000×100×1000×8=8k個點留在FIFO中。在采集過程中可能出現(xiàn)以下情形:第一個10ms定時,如果定時精確則轉(zhuǎn)換8k個點,由于誤差造成多轉(zhuǎn)換7999個點,總共轉(zhuǎn)換16k-1個點,F(xiàn)IFO還未半滿;然后再定時10ms,如果情形和第一次類似轉(zhuǎn)換16k-1個點,兩次轉(zhuǎn)換后FIFO中總共存在32k-2個點,此時開始讀一半FIFO數(shù)據(jù),那么由于在讀數(shù)據(jù)中模塊還要進行A/D數(shù)據(jù)的轉(zhuǎn)換和存儲,會因為FIFO中數(shù)據(jù)未及時讀走造成FIFO滿而丟失數(shù)據(jù)。

          Widows95以后的操作系統(tǒng)版本提供了QueryPerformanceCounter()函數(shù)和QueryPerformanceFrequency()函數(shù),可以實現(xiàn)更高精度的定時,并要求計算機從硬件上支持高精確計時器。在進行定時之前,首先調(diào)用QueryPerformanceFrequency()函數(shù)獲得計算機內(nèi)部時鐘計數(shù)器的時鐘頻率,然后在需要高精度定時的代碼兩端分別調(diào)用QueryPerformanceCounter()函數(shù)獲得時鐘計數(shù)器的計數(shù)值,利用兩次獲得的計數(shù)值之差及時鐘頻率,計算出定時的精確時間。其定時精度為計算機內(nèi)部的時鐘頻率,可以達到微妙級。

          因此在需要使用較高采樣率的場合中,須使用高精度定時。在實際的連續(xù)采集應(yīng)用中,可以將連續(xù)采集放到專門的工作線程中,與UI線程序分開,避免UI線程以及其他線程的操作及消息傳遞影響連續(xù)采集工作線程。實現(xiàn)流程如下圖4。

          圖4 實現(xiàn)流程

          5 連續(xù)采集的應(yīng)用

          該方法已被應(yīng)用于某裝備測控系統(tǒng)中,下圖5所示為采集完后,采集數(shù)據(jù)的回放情形。

          圖5 采集數(shù)據(jù)回放

          采樣數(shù)據(jù)放大后,如下圖6。

          圖6數(shù)據(jù)放大

          6 結(jié)束語

          在很多的測試需求中,都需要長時間的連續(xù)A/D采集和記錄。因此本文研制了帶FIFO的VXI總線A/D模塊,給出了采用該模塊實現(xiàn)長時間大容量連續(xù)A/D的有效方法,此方法已經(jīng)成功應(yīng)用到某裝備測控系統(tǒng)中。本文創(chuàng)新點:1 研制帶FIFO的VXI總線A/D模塊。2 實現(xiàn)基于FIFO的VXI總線連續(xù)數(shù)據(jù)采集。

          參考文獻:

          [1] Integrated Device Technology Inc.IDT7207 Data Sheet.2001.5

          [2] 張毅剛等.自動測試系統(tǒng).哈爾濱:哈爾濱工業(yè)大學出版社,2001

          [3] 龍姝穎等.一種基于CPLD的多通道數(shù)據(jù)采集系統(tǒng)的設(shè)計.微計算機信息,2006(07Z):203-204,136

          [4] 李愛華 王章瑞.高速FIFO存儲芯片IDT7207在虛擬邏輯分析儀設(shè)計中的應(yīng)用.儀表技術(shù)與傳感器,2003(3):39-42



          關(guān)鍵詞: VXI FIFO 連續(xù)采集

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();