《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業界動態 > 利用FPGA實現的多通道同步數據采集卡

利用FPGA實現的多通道同步數據采集卡

2008-12-11
作者:田多華, 邱宏安, 陸宇鵬, 邵

  摘 要: 介紹了一種基于PC104總線的多通道高速同步采集卡" title="采集卡">采集卡" title="數據采集卡" title="數據采集卡">數據采集卡">數據采集卡的設計方法, 硬件上采用FPGA進行控制邏輯設置和數據緩存" title="數據緩存">數據緩存的實現, 簡化了硬件電路, 同時也提高了其使用的簡易性和配置的靈活性, 具有準確和快速的特點。
  關鍵詞: 數據采集; 現場可編程門陣列; 模數轉換

?

  PC104 作為一種國際標準的控制總線, 在測試和控制中得到了廣泛應用, 但目前市場上與之配套的同步數據采集卡還很少。基于PC104總線的高精度數據采集卡的主要功能是把外界模擬信號的電壓參量經過A/D" title="A/D">A/D轉換器轉換成數字量,并把轉換結果存儲以便分析處理。本文所述采集卡采用了AD公司推出的高速、低功耗、四通道同步采樣12位并行接口的A/D轉換器AD7864,用FPGA進行邏輯功能控制和數據緩存,使得該數據采集卡硬件電路極為簡單。
1 數據采集卡的原理及組成
  采集卡包括模擬輸入、A/D 采集、數據緩存及基于PC104 接口的數據傳輸四部分,其核心設計是A/D采集、數據緩存部分。數據采集卡系統結構框圖如圖1所示。

?


  該采集卡采用LM324對模擬輸入信號進行隔離,它的功能實現是在濾波器MAX274的每個輸入端前設計一個跟隨器,使輸入信號在被濾波之前先經過隔離,A/D采集模塊主要采用三片AD7864-1來實現12通道的同步采樣。邏輯控制及數據緩存模塊是在FPGA內部編程實現的。在數據送入PC104總線時,74LS245在PC104總線與FPGA之間也起驅動的作用。在PC104總線與FPGA不進行數據傳輸時,74LS245呈高阻狀態,這樣可以防止主機與采集卡間的數據相互干擾。
2 硬件電路設計
  整個系統硬件是把12通路的A/D同步采集設計在一塊電路板上,包括濾波、A/D轉換、數據緩存、FPGA邏輯控制以及總線接口,本文主要介紹A/D采集電路和FPGA內部電路的設計與實現。
2.1 A/D采集模塊
  AD7864是AD公司推出的高速、低功耗、四通道同步采樣12位并行接口的A/D轉換器,它可以用于馬達控制、非中斷電源控制、數據采集和通訊等。
  該器件內部具有一個轉換時間1.65μs的逐次逼近式A/D轉換器,4路跟蹤/保持放大器,2.5V參考電源,片內時鐘震蕩器,信號調整電路及一個高速并行接口。AD7864可對四個通道的模擬輸入信號同步采樣,并將四個通道之間的相對相位和大小信息保存下來,這使得它特別適合于交流電機控制、三相電網電壓檢測等場合。
  A/D采集模塊采用三片AD7864-1同時采樣,以滿足12位同步采樣的要求。在A/D轉換電路中,三片AD7864-1使用同一個啟動信號/convst,在/convst的上升沿" title="上升沿">上升沿轉換開始。無需外部設置采樣保持電路、參考基準和極性轉換電路。在信號/convst的上升沿,BUSY信號被觸發高電平并一直保持到四個通道都轉換結束,同時所有跟蹤保持器開始工作,將濾波電路輸入的12路模擬信號相位信息保持一致,達到同步的要求。為了提高整個系統的采樣速率,AD7864-1的采集模式是在轉換過程中,每通道轉換結束時(/EOC變為地電平)開始讀出數據,轉換由/convst的上升沿啟動,轉換結束由/EOC的下降沿來表示。此時片選信號/CS端接地,由讀信號/RD讀出數據。當讀信號/RD和片選信號/CS同時保持低電平時才可讀數據,讀操作在工作時要確保寫信號/WR處于高電平。每次讀數據操作增加輸出數據寄存器指針,讀完最后一個轉換數據時,將輸出數據寄存器指針復位。寫操作主要完成工作模式的設置,一般只在初始化或轉換通道切換時進行。而進行數據采集的操作只要給出啟動命令,啟動設置的通道進行同步采集,待所有的數據轉換結束后自動發出中斷請求信號,然后進行相應通道的數據讀取即可。
2.2? FPGA內部電路設計
  隨著現場可編程門陣列(FPGA)技術的飛速發展,FPGA的應用日益廣泛,它具有更高的密度、更快的工作速度和更大的編程靈活性,被廣泛應用于各種電子類產品中。系統通過FPGA來實現高速數據緩存及邏輯控制。采用的器件是FLEX1K 系列的EP1K30TC144-1器件,其最大工作頻率為40MHz,消耗1 533 個LC,平均編碼時間為20個時鐘周期。FPGA 除了要滿足相應的時序要求外, 還要求控制數據的位數和A/D轉換器的位數相匹配。數據緩存區要求既要有與A/D芯片的接口,又要有與系統主機的接口以提高數據吞吐率,因此通過EP1K30TC144-1芯片內置的先進先出(FIFO)緩沖存儲器實現數據高速傳輸。為此設計了地址譯碼、讀/寫數據寄存器、控制通道寄存器、啟動觸發器和中斷響應寄存器,所有的操作都是通過讀寫相應的寄存器實現。下面將介紹FPGA內部的各個設計模塊。
2.2.1 向FIFO寫數據的電路
  首先是六片FIFO,分為三組,即每片A/D對應兩個FIFO,本文只以第一片AD7864-1為例來說明FIFO對數據的存儲過程,在FPGA內部電路圖中截取一組FIFO來進行描述,如圖2所示。

?


  圖中in1[11..0]表示第一片A/D轉換后的12位數據線,分別與兩片FIFO的data[]連接,因為是把A/D轉換的數據寫入FIFO,A/D的轉換模式是轉換完一路就向FIFO寫數據,所以將FIFO 的寫時鐘wrclock與A/D的/eoc連接,當/eoc為低時,表明有一路轉換結束,開始向FIFO寫入數據。每片AD7864-1對應兩片FIFO A和B,wrfull1a、wrreq1a、rdeq1a、rdemptyla、wrfulllb、wrreq1b、rdreq1b、rdempty1b分別是a和b的寫滿標志位、寫請求信號、讀請求信號、讀空標志位。通過74139譯碼器,使wrfull1a、wrfull1b、rdempty1a、rdempty1b聯合作用控制FIFO的讀寫操作。譯碼器作用的結果是只要A的wrfull1a為低,數據就一直寫入A中,當wrfull1a為高時,切換數據流向,開始向B寫數據。當wrfull標志為高電平時,表明FIFO達到半滿,向系統申請中斷,總線響應中斷,立即啟動讀FIFO中的數據,當讀到空時,Empty標志有效,停止讀入操作。
2.2.2 中斷請求發生電路
  在寫數據的過程中,當三個FIFO都出現半滿標志時,就需要對主機發送讀請求信號,在FPGA內部通過一組或門、與門組合來產生該請求信號irq9,圖3所示為中斷請求的產生電路。

?

  圖3中wrfull1a和 wrfull1b相或, wrfull2a和wrfull2b相或, wrfull3a和wrfull3b相或,這三組相或的結果通過一個與門之后產生讀請求信號irq9。設計思想是:只要三組FIFO中每組有一個FIFO的寫滿標志為高,發送讀請求信號,一旦主機響應了該請求,則需要將三片已達到半滿狀態的FIFO依次讀數。這里使用一個中斷請求而不是三個中斷請求的原因是由于三個中斷請求會由于優先級問題發生沖突等待,使讀數據混亂,不利于數據的讀取存儲,還有可能因為等待時間過長而影響了采集速率。
2.2.3 主機讀取數據電路
  當主機響應了讀中斷請求之后,就會開始從FIFO中取數,但是六個FIFO的工作基本保持一致,所以存在主機先從哪一個FIFO中讀取數據的問題,因此需要設計一個數據選擇讀取電路,如圖4所示。

?


  圖中數據選擇電路通過三位地址a0、a1、a2來對六個FIFO的六路數據選擇輸出。
2.2.4 A/D轉換啟動信號發生電路
  在本電路中還有一個A/D轉換啟動信號/convst的產生電路,三片AD7864-1使用同一個啟動信號/convst,在/convst的上升沿轉換開始。在第一次啟動A/D芯片時,需要分配一個地址來啟動A/D芯片,一旦啟動成功,下一次的/convst主要由三片AD7864-1的BUSY信號來產生,因為在A/D轉換過程中,busy信號都為高電平,當轉換結束后,busy變低電平。所以只要三片AD7864-1的busy信號都為低電平時,表明12路轉換結束,需要再次啟動轉換。該局部電路如圖5所示。

?


  本設計的大量工作都是在FPGA內部實現的,簡化了硬件電路, 同時也提高了其使用的簡易性和配置的靈活性, 具有準確和快速的特點。
3 仿真結果
  FPGA內部電路的設計采用VHDL 硬件描述語言實現,并在ALTERA 公司的MAX+plusⅡ軟件上編譯仿真。采用全局同步時鐘,避免了毛剌的產生,保證了信號的穩定性, 本文介紹的兩個FIFO工作原理為乒乓式存儲的原理,采用這種存儲方式,主要是考慮到由于轉換通路比較多,若每片A/D只對應一片FIFO,當主機不能及時讀走FIFO中的數據時,A/D轉換就不能正常進行,這就會影響數據的傳輸速度,也很容易使數據丟失。而采用兩片FIFO的乒乓式存儲之后,寫滿一片FIFO,在主機來不及讀走數據時,可以將數據打入第二片FIFO,這樣可以起到一個緩沖作用,不會由于數據的讀取而影響整個系統的正常工作。該電路的設計是利用寫滿標志、讀空標志通過74193譯碼進行兩片FIFO的讀寫切換的,其仿真結果分別如圖6、圖7、圖8所示。

?

?


  通過時序仿真證明,采用74193譯碼來控制兩片FIFO的切換是可行的。設計中采用六片相同規格的FIFO,它們對數據的緩存是同步進行的。所以本設計中FIFO的讀請求都是由半滿標志產生的,從FIFO向外讀數據時,只要rdempty1a不為高就一直保持從FIFO A中讀數,當rdempty1a為高且rdempty1b為低時,開始讀FIFO B中的數據。當FIFO的寫滿標志為高時,開始向主機發送請求。其他兩組的工作原理和第一組相似,這里就不再敘述。
  根據上述原理設計的12通道數據采集卡,其結構完全遵循PC104 總線標準,它可對多達12通道的模擬量進行A/D轉換,并對轉換的數據進行存儲 ,可直接作為PC104 的標準板卡使用。


參考文獻
[1]?張載鴻. 微型機(PC系列)接口控制教程. 北京:清華大學出版社, 1992.
[2]?孫肖子,張企民. 模擬電子技術基礎. 西安:西安電子科技大學出版社,2001.
[3]?丁玉美,高西全. 數字信號處理(第二版). 西安:西安電子科技大學出版社, 2001.
[4]?高鵬,安濤,寇懷成. Protel 99入門與提高.北京:人民郵電出版社,2000.
[5]?朱明程,董爾令. 可編程邏輯器件原理及應用. 西安:西安電子科技大學出版社,2004.
[6]?楮振勇,翁木云. FPGA設計及應用.西安:西安電子科技大學出版社, 2002.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:[email protected]
主站蜘蛛池模板: 亚洲成人黄色在线观看 | 欧美高清性色生活 | 美女张开腿让男人桶的动态图 | 99久久精品国产国产毛片 | 俄罗斯黄色一级片 | 91九色国产| 欧美一级高清视频在线播放 | 日韩欧美一区二区三区不卡在线 | 国产一区二区三区在线看 | 免费小视频在线观看 | 中国内地毛片免费高清 | 91网站国产 | 欧美日本一区视频免费 | 亚洲成a人片在线观看中文 亚洲成a人片在线观看中文!!! | 成人免费大片黄在线观看com | 欧美 在线 成 人怡红院 | 亚洲欧美精品久久 | 亚洲国产www | 日韩久久中文字幕 | 性生活视频网 | 亚洲美女视频网 | 亚洲国产精品一区二区三区 | 国产成人精品男人免费 | 美日韩一级| 国产精品高清视亚洲一区二区 | 亚洲爽妇网 | 中文乱码字幕午夜无线观看 | 亚洲精品免费在线 | 亚洲成网站 | 成人欧美视频在线观看 | 国产成人a视频在线观看 | 91久久亚洲精品国产一区二区 | 成年人三级视频 | 久久精品国产亚洲综合色 | 国产成人av性色在线影院 | 黄色美女视频免费看 | 日韩在线专区 | 香蕉网影院在线观看免费 | 亚洲综合精品成人 | 欧美色大成网站www永久男同 | 国产99视频精品一区 |