版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 PAGE14 / NUMPAGES14 基于FPGA數(shù)據(jù)采集系統(tǒng)一引言 傳統(tǒng)的數(shù)據(jù)采集系統(tǒng), 通常采用單片機(jī)或DSP 作為主要控制模塊, 控制ADC、存儲(chǔ)器和其他外圍電路的工作。隨著數(shù)據(jù)采集對速度性能的要求越來越高,傳統(tǒng)采集系統(tǒng)的弊端就越來越明顯。單片機(jī)的時(shí)鐘頻率較低且需用軟件實(shí)現(xiàn)數(shù)據(jù)采集, 這使得采集速度和效率降低, 此外軟件運(yùn)行時(shí)間在整個(gè)采樣時(shí)間中也占很大的比例。而FPGA(現(xiàn)場可編程門陣列)有單片機(jī)無法比擬的優(yōu)勢。FPGA 時(shí)鐘頻率高, 部延時(shí)小, 全部控制邏輯由硬件完成, 速度快、效率高。在此技術(shù)基礎(chǔ)上, 為了滿足數(shù)據(jù)采集對速度的要求, 本文就著重介紹了一種基于FPGA, 采用VHD
2、L硬件描述語言設(shè)計(jì)實(shí)現(xiàn)的高速數(shù)據(jù)采集系統(tǒng)。二設(shè)計(jì)思路本設(shè)計(jì)采用FPGA器件EP1C12Q240C8實(shí)現(xiàn)對高速A/D轉(zhuǎn)換芯片ADC08200的采樣控制,解決了傳統(tǒng)方法的速度問題。使用VHDL語言采用電路結(jié)構(gòu)圖為頂層向下的方法;結(jié)合FIFO存儲(chǔ)器的設(shè)計(jì)實(shí)現(xiàn)了高速A/D采集轉(zhuǎn)換和轉(zhuǎn)換后數(shù)據(jù)存儲(chǔ),并給出了采樣系統(tǒng)框圖與FPGA部設(shè)計(jì)框圖。 圖1 系統(tǒng)框圖 圖2 FPGA部結(jié)構(gòu)一硬件設(shè)計(jì)對A/D轉(zhuǎn)換器進(jìn)行采樣控制,傳統(tǒng)方法一般是用CPU或單片機(jī)完成的。其優(yōu)點(diǎn)是編程簡單、控制靈活,但缺點(diǎn)是控制周期長、速度慢,例如MCS51系列單片機(jī)最高時(shí)鐘頻率為12MHZ,AT89C2051單片機(jī)為24MHZ,這樣當(dāng)A/
3、D本身的采樣速度比較快時(shí),CPU或單片機(jī)的慢速工作時(shí)序?qū)O限制A/D高速性能的利用。當(dāng)采用FPGA對其進(jìn)行控制時(shí),由于FPGA的時(shí)鐘頻率可達(dá)100MHZ以上,從而可實(shí)現(xiàn)數(shù)據(jù)的高速采集,還可以把采樣數(shù)據(jù)實(shí)時(shí)存入FPGA部的高速RAM中。本設(shè)計(jì)是利用FPGA直接控制高速ADC08200對模擬信號(hào)進(jìn)行采樣,采集速度可達(dá)200MS/s,然后將轉(zhuǎn)換好的8位二進(jìn)制數(shù)據(jù)迅速存儲(chǔ)到FPGA部的FIFO存儲(chǔ)器中。在完成對模擬信號(hào)一個(gè)周期的采樣后,由外部電路系統(tǒng)將存儲(chǔ)器中的采樣數(shù)據(jù)讀出處理。采用自頂向下的設(shè)計(jì)方法可將本設(shè)計(jì)分為控制器模塊和FIFO緩沖模塊。1.系統(tǒng)的模塊設(shè)計(jì)與功能仿真 ad轉(zhuǎn)換模塊與高速存儲(chǔ)模塊結(jié)
4、合調(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ī)控制帶來的速度低的缺點(diǎn).fpga存儲(chǔ)的數(shù)字信號(hào)可由單片機(jī)系統(tǒng)來讀取和處理.在quartus2平臺(tái)下使用原理圖輸入方式可以使設(shè)計(jì)得到簡化.系統(tǒng)的連接圖如圖4所示.其中clk為時(shí)鐘信號(hào);rst為復(fù)位信號(hào);d7.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為寫滿,
5、讀空顯示信號(hào);q7.0為輸出數(shù)據(jù).2.控制器模塊設(shè)計(jì)2.1 ADC08200芯片功能介紹ADC08200是美國國家半導(dǎo)體公司生產(chǎn)的單通道、低功耗、高速8位模數(shù)轉(zhuǎn)換器。它具有成本低、功耗低、體積小和易于使用等優(yōu)點(diǎn)。最高采樣頻率達(dá)200MS/s。在掉電模式下ADC08200僅消耗1mw。獨(dú)特的結(jié)構(gòu)在50MHZ標(biāo)準(zhǔn)信號(hào)的輸入情況下可達(dá)到7.3有效采樣位。單電源3v或2.5v的供電,帶高質(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為
6、最高位;圖3為ADC08200的工作時(shí)序圖和外圍接口電路圖。 圖3 ADC08200接口電路圖2.2 基于VHDL控制器設(shè)計(jì)VHDL是一種硬件描述語言,它可以對電子電路和系統(tǒng)的行為進(jìn)行描述?;谶@種描述,結(jié)合相關(guān)的軟件工具,可以得到所期望的實(shí)際電路與系統(tǒng)。根據(jù)ADC08200的特點(diǎn),可通過硬件描述語言設(shè)計(jì)一個(gè)狀態(tài)機(jī),最后下載到FPGA芯片上,通過FPGA芯片控制ADC08200的工件。時(shí)鐘由外部引入,由分頻模塊得到想要的時(shí)鐘。設(shè)計(jì)過程為編寫VHDL代碼,然后在Quartus II平臺(tái)下進(jìn)行編譯,仿真。最后下載到FPGA芯片中。2.3高速存儲(chǔ)模塊的設(shè)計(jì)FIFO是一種存儲(chǔ)器參數(shù)可設(shè)置模塊庫,在高速
7、數(shù)字系統(tǒng)中常用作緩存。在高速數(shù)據(jù)傳輸和實(shí)時(shí)顯示領(lǐng)域中,需要對數(shù)據(jù)進(jìn)行快速儲(chǔ)存和發(fā)送,要實(shí)現(xiàn)快速的數(shù)據(jù)采集、順序儲(chǔ)存和傳送,傳統(tǒng)的RAM型存儲(chǔ)器已經(jīng)無法滿足要求。目前許多高速系統(tǒng)都采用FIFO作為緩存體。因?yàn)镕IFO的寫入(讀出)時(shí)間只需要一個(gè)時(shí)鐘周期,不需要對地址進(jìn)行加1操作,大大提高了存儲(chǔ)速度。利用LPM中的宏功能塊LPM_FIFO,在Quartus II平臺(tái)下定制一個(gè)高速的先進(jìn)先出FIFO根據(jù)需要對所使用的宏功能塊的參數(shù)進(jìn)行適當(dāng)調(diào)整,由此生成一個(gè)滿足自己特定需要的模塊。二VHDL軟件設(shè)計(jì)1.主控制模塊VHDL程序library ieee;use ieee.std_logic_1164.al
8、l;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 bhv of adc08200 istype ad_states is (state0_type,s
9、tate1_type);signal sta_g_currentstate:ad_states;signal sta_g_nextstate:ad_states;signal ctl_gp_latchflag:std_logic;signal chipselect:std_logic;begin:process(sta_g_currentstate)begincase sta_g_currentstate iswhen state0_type=adclk=1;ctl_gp_latchflag=1;dclk=0;sta_g_nextstateadclk=0;ctl_gp_latchflag=0;
10、dclk=1;sta_g_nextstateadclk=0;ctl_gp_latchflag=0;dclk=1;sta_g_nextstate=state1_type;end case;end process ;reg:process(clk,rst)begin if rst=0then sta_g_currentstate=state0_type;elsif(clkevent and clk=1)thensta_g_currentstate=sta_g_nextstate;end if;end process reg;latch:process(ctl_gp_latchflag)begini
11、f rst=0 then data0);elsif(ctl_gp_latchflagevent and ctl_gp_latchflag=1)then data=d;end if;end process latch;chipselect=ctloe;adpd=not chipselect;end architecture bhv;LPM-FIFO宏模塊的調(diào)用 1.1在設(shè)計(jì)數(shù)據(jù)采集系統(tǒng)前,必須首先完成對采集轉(zhuǎn)換數(shù)據(jù)緩存和存放的設(shè)計(jì)。利用MegaWizardPlug-In Manager 定制FIFO宏功能塊。設(shè)計(jì)步驟如下: (1)打開MegaWizard Plug-In Manager 初始對話
12、框。在Tools 菜單中選擇MegaWizardPlug-In Manager,產(chǎn)生如圖7-5 所示的界面,選擇Create a new custom 項(xiàng)(如果要修改一個(gè)已編輯好的LPM 模塊,則選擇Edit an existing custom 項(xiàng)),即定制一個(gè)新的模塊。單擊Next 按鈕后,產(chǎn)生如圖7-6 所示的對話框,在左欄選擇memory compiler項(xiàng)下的LPM_FIFO,再選擇Cyclone 器件和VHDL 語言方式;最后輸入FIFO文件存放的路徑和文件名:F:adc08200fifo(定制的fifo元件文件名),單擊Next按鈕。 (2)選擇ROM 控制線、地址線和數(shù)據(jù)線。在
13、如圖7-7 和圖7-8 所示的對話框中選擇地址線位寬和ROM 中數(shù)據(jù)數(shù)分別為6 和64;選擇地址鎖存控制信號(hào)inclock。單擊Next按鈕后出現(xiàn)圖7-9的界面。在“What should the fifo”欄選擇默認(rèn)的“Auto”。在適配中,Quartus II將根據(jù)選中的目標(biāo)器件系列,自動(dòng)確定嵌入fifo模塊的類型。生成FIFO模塊如下:1.2其FIFO部VHDL語言程序:LIBRARY ieee;USE ieee.std_logic_1164.all;LIBRARY altera_mf;USE altera_mf.all;ENTITY fifo ISPORT(clock: IN STD_
14、LOGIC ;data: IN STD_LOGIC_VECTOR (7 DOWNTO 0);rdreq: IN STD_LOGIC ;wrreq: IN STD_LOGIC ;empty: OUT STD_LOGIC ;full: OUT STD_LOGIC ;q: OUT STD_LOGIC_VECTOR (7 DOWNTO 0);usedw: OUT STD_LOGIC_VECTOR (9 DOWNTO 0);END fifo;ARCHITECTURE SYN OF fifo ISSIGNAL sub_wire0: STD_LOGIC_VECTOR (9 DOWNTO 0);SIGNAL
15、sub_wire1: STD_LOGIC ;SIGNAL sub_wire2: STD_LOGIC_VECTOR (7 DOWNTO 0);SIGNAL sub_wire3: STD_LOGIC ;COMPONENT scfifoGENERIC (add_ram_output_register: STRING;intended_device_family: STRING;lpm_numwords: NATURAL;lpm_showahead: STRING;lpm_type: STRING;lpm_width: NATURAL;lpm_widthu: NATURAL;overflow_chec
16、king: STRING;underflow_checking: STRING;use_eab: STRING);PORT (usedw: OUT STD_LOGIC_VECTOR (9 DOWNTO 0);rdreq: IN STD_LOGIC ;empty: OUT STD_LOGIC ;clock: IN STD_LOGIC ;q: OUT STD_LOGIC_VECTOR (7 DOWNTO 0);wrreq: IN STD_LOGIC ;data: IN STD_LOGIC_VECTOR (7 DOWNTO 0);full: OUT STD_LOGIC );END COMPONENT;BEGINusedw = sub_wire0(9 DOWNTO 0);empty = sub_wire1;q = sub_wire2(7 DOWNTO 0);full OFF,intended_device_family = Cyclone,lpm_numwords = 1024,lpm_showahead = OFF,lpm_type = scfifo,lpm_width = 8,lpm_wi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度知識(shí)產(chǎn)權(quán)保護(hù)合同咨詢及代理服務(wù)協(xié)議3篇
- 二零二五版古董家具修復(fù)、安裝與展覽服務(wù)合同3篇
- 二零二五年服裝店轉(zhuǎn)讓合同書附帶品牌形象重塑及宣傳推廣服務(wù)3篇
- 二零二五版噪聲污染檢測與控制合同3篇
- 二零二五年度智能家居代理出租房租賃合同2篇
- 二零二五年杭州二手房買賣合同貸款與還款指導(dǎo)合同3篇
- 二零二五年金融科技公司股份代持與金融信息服務(wù)合同3篇
- 二零二五版房地產(chǎn)開發(fā)項(xiàng)目施工許可證報(bào)建代理合同3篇
- 二零二五版餐飲企業(yè)食品安全責(zé)任承包合同范本3篇
- 二零二五版古建筑保護(hù)監(jiān)理服務(wù)增補(bǔ)合同2篇
- 危險(xiǎn)性較大分部分項(xiàng)工程及施工現(xiàn)場易發(fā)生重大事故的部位、環(huán)節(jié)的預(yù)防監(jiān)控措施
- 繼電保護(hù)試題庫(含參考答案)
- 《榜樣9》觀后感心得體會(huì)四
- 2023事業(yè)單位筆試《公共基礎(chǔ)知識(shí)》備考題庫(含答案)
- 《水下拋石基床振動(dòng)夯實(shí)及整平施工規(guī)程》
- 化學(xué)-廣東省廣州市2024-2025學(xué)年高一上學(xué)期期末檢測卷(一)試題和答案
- 2025年云南大理州工業(yè)投資(集團(tuán))限公司招聘31人管理單位筆試遴選500模擬題附帶答案詳解
- 風(fēng)電危險(xiǎn)源辨識(shí)及控制措施
- 《教師職業(yè)道德與政策法規(guī)》課程教學(xué)大綱
- 營銷策劃 -麗亭酒店品牌年度傳播規(guī)劃方案
- 兒童傳染病預(yù)防課件
評(píng)論
0/150
提交評(píng)論