《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的高速A/D轉(zhuǎn)換控制器設(shè)計(jì)
基于FPGA的高速A/D轉(zhuǎn)換控制器設(shè)計(jì)
楊培善,許忠仁,,付貴增,,趙新雨
摘要: 采用FPGA器件EP1C12Q240C8實(shí)現(xiàn)對(duì)高速A/D轉(zhuǎn)換芯片ADC08200的實(shí)時(shí)采樣控制,解決了傳統(tǒng)方法的速度問(wèn)題,。使用VHDL語(yǔ)言采用自頂向下的設(shè)計(jì)方法編寫出源程序,;結(jié)合FIFO存儲(chǔ)器的設(shè)計(jì)實(shí)現(xiàn)了高速A/D采集轉(zhuǎn)換和轉(zhuǎn)換后的數(shù)據(jù)存儲(chǔ),并給出了采樣存儲(chǔ)電路原理圖,。數(shù)據(jù)處理可通過(guò)與SoPC技術(shù)結(jié)合實(shí)現(xiàn),。
Abstract:
Key words :

  摘 要: 采用FPGA器件EP1C12Q240C8實(shí)現(xiàn)對(duì)高速A/D轉(zhuǎn)換芯片ADC08200的實(shí)時(shí)采樣控制,解決了傳統(tǒng)方法的速度問(wèn)題,。使用VHDL語(yǔ)言采用自頂向下的設(shè)計(jì)方法編寫出源程序,;結(jié)合FIFO存儲(chǔ)器的設(shè)計(jì)實(shí)現(xiàn)了高速A/D采集轉(zhuǎn)換和轉(zhuǎn)換后的數(shù)據(jù)存儲(chǔ),并給出了采樣存儲(chǔ)電路原理圖,。數(shù)據(jù)處理可通過(guò)與SoPC技術(shù)結(jié)合實(shí)現(xiàn),。
  關(guān)鍵詞: FPGA;ADC08200,;FIFO,;VHDL

   對(duì)A/D轉(zhuǎn)換器進(jìn)行采樣控制,傳統(tǒng)方法一般是用 CPU或單片機(jī)完成的,。其優(yōu)點(diǎn)是編程簡(jiǎn)單,、控制靈活,但缺點(diǎn)是控制周期長(zhǎng)、速度慢,。例如 MCS-51系列單片機(jī)最高時(shí)鐘頻率為12 MHz,,AT89C2051單片機(jī)為24 MHz,這樣當(dāng)A/D本身的采樣速度比較快時(shí),,CPU或單片機(jī)的慢速工作時(shí)序?qū)O大地限制A/D高速性能的利用,。當(dāng)采用FPGA對(duì)其進(jìn)行控制時(shí),由于FPGA的時(shí)鐘頻率可達(dá) 100 MHz以上,,從而可實(shí)現(xiàn)數(shù)據(jù)的高速采集,,還可以把采樣數(shù)據(jù)實(shí)時(shí)存入FPGA內(nèi)部的高速RAM中。本設(shè)計(jì)是利用FPGA直接控制高速ADC08200對(duì)模擬信號(hào)進(jìn)行采樣,,采集速度可達(dá)200 MS/s,,然后將轉(zhuǎn)換好的8位二進(jìn)制數(shù)據(jù)迅速存儲(chǔ)到FPGA內(nèi)部的FIFO存儲(chǔ)器中。在完成對(duì)模擬信號(hào)一個(gè)周期的采樣后,,由外部電路系統(tǒng)將存儲(chǔ)器中的采樣數(shù)據(jù)讀出處理,。采用自頂向下的設(shè)計(jì)方法可將本設(shè)計(jì)分為控制器模塊和FIFO緩沖模塊。
1 控制器模塊設(shè)計(jì)
1.1 ADC08200芯片功能介紹

  ADC08200[1]是美國(guó)國(guó)家半導(dǎo)體(NS)公司生產(chǎn)的單通道,、低功耗,、高速8位模數(shù)轉(zhuǎn)換器。它具有成本低,、功耗低,、體積小和易于使用等優(yōu)點(diǎn)。最高采樣頻率達(dá)200 MS/s,。在掉電模式下ADC0820僅消耗1 mW,。獨(dú)特的結(jié)構(gòu)在50 MHz標(biāo)準(zhǔn)信號(hào)的輸入情況下可達(dá)到7.3有效采樣位。單電源3 V或2.5 V的供電,,內(nèi)帶高質(zhì)量參考源和高性能采樣保持電路,。
  主要端口:
  CLK:時(shí)鐘輸入端;
  VIN:模擬信號(hào)輸入端,;
  PD:掉電保護(hù),,當(dāng)PD為低時(shí),D0~D7正常輸出,,當(dāng)PD為高時(shí),,D0~D7輸出保持;
  D0~D7:數(shù)據(jù)輸出端口,。D0為數(shù)據(jù)最低位,,D7為最高位;
  圖1,、圖2分別為ADC08200的工作時(shí)序圖和外圍接口電路圖,。

 

 

1.2 基于VHDL控制器的軟件設(shè)計(jì)
  VHDL是一種硬件描述語(yǔ)言,,它可以對(duì)電子電路和系統(tǒng)的行為進(jìn)行描述?;谶@種描述,,結(jié)合相關(guān)的軟件工具,可以得到所期望的實(shí)際電路與系統(tǒng),。根據(jù)ADC08200的特點(diǎn),,可通過(guò)硬件描述語(yǔ)言(VHDL)設(shè)計(jì)一個(gè)狀態(tài)機(jī),最后下載到FPGA芯片上,通過(guò)FPGA芯片控制ADC08200的工件,。時(shí)鐘由外部引入,,由分頻模塊得到想要的時(shí)鐘。設(shè)計(jì)過(guò)程為編寫VHDL[2]代碼,,然后在QuartusⅡ[3]平臺(tái)下進(jìn)行編譯,、仿真,最后下載到FPGA芯片中,。仿真圖代碼如圖3所示,。

 

 


LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL,;
ENTITY adc08200 IS
PORT (RST :IN STD_LOGIC;
     CLK :IN STD_LOGIC,;
     D :IN STD_LOGIC_VECTOR(7 DOWNTO 0),;
     CTLOE:IN STD_LOGIC;
     ADCLK:OUT STD_LOGIC,;
     ADPD  :OUT STD_LOGIC,;
     DATA  :OUT
STD_LOGIC_VECTOR(7 DOWNTO 0);
     DCLK  :OUT STD_LOGIC),;
END ENTITY adc08200,;
ARCHITECTURE BEHAVIOURAL OF adc08200 IS
TYPE ADS_STATES IS(STATE0_TYPE,STATE1_
TYPE),;
SIGNAL STA_G_CURRENTSTATE : ADS_STATES,;
SIGNAL STA_G_NEXTSTATE   :   ADS_STATES;
SIGNAL CTL_GP_LATCHFLAG :   STD_LOGIC,;
SIGNAL CTL_GP_CHIPSELECT :   STD_LOGIC,;
BEGIN
COM:PROCESS(STA_G_CURRENTSTATE)
  BEGIN
      CASE STA_G_CURRENTSTATE IS
         WHEN STATE0_TYPE =>ADCLK<=′1′;
CTL_GP_LATCHFLAG<=′1′,;
  DCLK<=′0′,;
STA_G_NEXTSTATE<=STATE1_TYPE;
  WHEN STATE1_TYPE =>ADCLK<=′0′,;
CTL_GP_LATCHFLAG<=′0′,;
  DCLK<=′1′,;
STA_G_NEXTSTATE<=STATE0_TYPE;
  WHEN OTHERS=>ADCLK<=′0′,;
CTL_GP_LATCHFLAG<=′0′,;
  DCLK<=′1′;
STA_G_NEXTSTATE<=STATE1_TYPE,;
  END CASE,;
      END PROCESS COM;
REG:PROCESS(CLK,RST)
  BEGIN
     IF RST=′0′ THEN STA_G_CURRENTSTATE<=
STATE0_TYPE,;
     ELSIF(CLK′EVENT AND CLK=′1′) THEN
STA_G_CURRENTSTATE<=STA_G_NEXTSTATE,;
  END IF;
    END PROCESS REG,;
  LATCH:PROCESS(CTL_GP_LATCHFLAG)
  BEGIN
     IF RST=′0′ THEN DATA<=(OTHERS=>′0′),;
  ELSIF(CTL_GP_LATCHFLAG'EVENT AND
CTL_GP_LATCHFLAG =′1′) THEN DATA<=D;
  END IF,;
  END PROCESS LATCH,;
CTL_GP_CHIPSELECT<=CTLOE;
ADPD<=NOT CTL_GP_CHIPSELECT,;
END ARCHITECTURE BEHAVIOURAL,;

2 高速存儲(chǔ)模塊的設(shè)計(jì)與功能仿真
  FIFO是一種存儲(chǔ)器參數(shù)可設(shè)置模塊庫(kù),在高速數(shù)字系統(tǒng)中常用作緩存,。在高速數(shù)據(jù)傳輸和實(shí)時(shí)顯示領(lǐng)域中,,需要對(duì)數(shù)據(jù)進(jìn)行快速儲(chǔ)存和發(fā)送,要實(shí)現(xiàn)快速的數(shù)據(jù)采集,、順序儲(chǔ)存和傳送,,傳統(tǒng)的RAM型存儲(chǔ)器已經(jīng)無(wú)法滿足要求。目前許多高速系統(tǒng)都采用FIFO作為緩存體,。因?yàn)镕IFO的寫入(讀出)時(shí)間只需要一個(gè)時(shí)鐘周期,,不需要對(duì)地址進(jìn)行加1操作,大大提高了存儲(chǔ)速度,。
 利用LPM中的宏功能塊LPM_FIF0+,,在QuartusⅡ平臺(tái)下定制一個(gè)高速的先進(jìn)先出FIFO,根據(jù)需要對(duì)所使用的宏功能塊的參數(shù)進(jìn)行適當(dāng)調(diào)整,,由此生成一個(gè)滿足自己特定需要的模塊,。最后,利用例化語(yǔ)句,,在頂層設(shè)計(jì)中調(diào)用該模塊,。參數(shù)如下:
LPM_W lDTH=>8,LPM_NIJM W ORDS=>1024,,LPM _SHOW AHEAD=>“OFF”,,LPM_HIN=>“USE_EAB=ON”
  圖4為模塊 FIFO時(shí)序圖和例化后的模塊,。

 

3 系統(tǒng)的模塊設(shè)計(jì)與功能仿真
  A/D轉(zhuǎn)換模塊與高速存儲(chǔ)模塊結(jié)合調(diào)理電路與數(shù)據(jù)處理電路就構(gòu)成了一個(gè)完整的系統(tǒng)。調(diào)理電路和模擬信號(hào)經(jīng)由A/D轉(zhuǎn)換器ADC08200轉(zhuǎn)換模塊后變?yōu)閿?shù)字信號(hào),,傳給同樣由FPGA控制的先進(jìn)先出存儲(chǔ)器FIFO,。這樣就彌補(bǔ)了由單片機(jī)控制帶來(lái)的速度低的缺點(diǎn)。FIFO存儲(chǔ)的數(shù)字信號(hào)可由單片機(jī)系統(tǒng)來(lái)讀取和處理,。在QuartusⅡ平臺(tái)下使用原理圖輸入方式可以使設(shè)計(jì)得到簡(jiǎn)化,。系統(tǒng)的連接圖如圖5所示。其中CLK為時(shí)鐘信號(hào),;RST為復(fù)位信號(hào),;D[7..0]為轉(zhuǎn)換后的數(shù)字信號(hào),接A/D的輸出,;WR/RD為讀寫控制,;RDCLK為讀時(shí)鐘;ACLR為清零信號(hào),;ADCLK接A/D轉(zhuǎn)換器的時(shí)鐘CLK,;ADPD接ADC08200的PD;WRFULL,,RDEMPTY為寫滿,,讀空顯示信號(hào);Q[7..0]為輸出數(shù)據(jù),。


  帶FIFO的功能仿真圖如圖6,。

 


  采用EP1C12Q240C8芯片實(shí)現(xiàn)對(duì)高速A/D轉(zhuǎn)換器ADC08200的實(shí)時(shí)采樣控制,充分利用了FPGA器件的高速高效優(yōu)勢(shì),,解決了傳統(tǒng)方法使用CPU或單片機(jī)控制速度慢的問(wèn)題,,發(fā)揮了ADC08200高速采樣的性能(最高采樣頻率達(dá) 200 MS/s),,實(shí)現(xiàn)簡(jiǎn)單,,可以廣泛用于實(shí)際電路的控制系統(tǒng)。該電路的數(shù)據(jù)處理可以由CPU或單片機(jī)進(jìn)行,,由SoPC技術(shù)進(jìn)行數(shù)據(jù)的處理效果更好,。


參與文獻(xiàn)
[1] National Semiconductor.ADC08200 8-Bit,20 Msps to 200 Msps,,Low Power A/D Converter with Internal Sample-
and-Hold[P].2008,,2.
[2] 喬廬峰,王志功.VHDL數(shù)字電路設(shè)計(jì)教程[M].北京:電子工業(yè)出版社,,2005.
[3] 鄭亞民,,董曉舟.可編程邏輯器件開發(fā)軟件QuartusⅡ[M].北京:國(guó)防工業(yè)出版社,2006.
[4] 潘松,,黃繼業(yè).EDA技術(shù)實(shí)用教程(第2版)[M].北京:科學(xué)出版社,,2005.
[5] 昊繼華,,王誠(chéng).AheraFPGA/CPLD設(shè)計(jì)(高級(jí)篇)[M].北京:人民郵電出版社,2007.
[6] 潘松,,王國(guó)棟.VHDL實(shí)用教程[M].成都:電子科技大學(xué)出版社,,1999.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。