FPGA課程設(shè)計(jì)基于FPGA的多通道采樣系統(tǒng)設(shè)計(jì)
《FPGA課程設(shè)計(jì)基于FPGA的多通道采樣系統(tǒng)設(shè)計(jì)》由會員分享,可在線閱讀,更多相關(guān)《FPGA課程設(shè)計(jì)基于FPGA的多通道采樣系統(tǒng)設(shè)計(jì)(22頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、 FPGA課程設(shè)計(jì) 題 目:基于FPGA的多通道采樣系統(tǒng)設(shè)計(jì) 院 (系):電氣工程及其自動(dòng)化學(xué)院 專 業(yè):電子信息工程12-01 學(xué)生姓名: 學(xué) 號: 指導(dǎo)教師: 2015年 12 月 8 日 20 摘 要 本論文介紹了基于FPGA的多通道采樣系統(tǒng)的設(shè)計(jì)。用FPGA設(shè)計(jì)一個(gè)多通道采樣控制器,利用VHDL語言設(shè)計(jì)有限狀態(tài)機(jī)來實(shí)現(xiàn)對AD7
2、892的控制。由于FPGA器件的特性是可以實(shí)現(xiàn)高速工作,為此模擬信號選用音頻信號。由于音頻信號的頻率是20Hz-20KHz,這樣就對AD轉(zhuǎn)換的速率有很高的要求.因?yàn)镕PGA的功能很強(qiáng)大,所以我們把系統(tǒng)的許多功能都集成到FPGA器件中,例如AD通道選擇部分,串并輸出控制模塊,這樣使得整個(gè)系統(tǒng)的外圍電路簡單、系統(tǒng)的穩(wěn)定性強(qiáng)。FPGA的配置模式選用被動(dòng)串行模式,這樣就增強(qiáng)了系統(tǒng)的可擴(kuò)展性。輸出模式可選擇性使得系統(tǒng)的應(yīng)用相當(dāng)廣泛,串行輸出可以用于通信信號的采集,方便調(diào)制后發(fā)射到遠(yuǎn)程接受端,遠(yuǎn)程接收端對采集的數(shù)據(jù)進(jìn)行解調(diào);而并行輸出模式則可以通過高速存儲器將采集的信號放到微機(jī)或者其他的處理器上,根據(jù)采集
3、的數(shù)據(jù)進(jìn)行相應(yīng)的控制。此系統(tǒng)的缺點(diǎn)是由于FPGA器件配置是基于SRAM查找表單元,編程的信息是保持在SRAM中,但SRAM在掉電后編程信息立即丟失,所以每次系統(tǒng)上電都需要重新配置芯片,這對在野外作業(yè)的工作人員很不方便,解決的方法是專用的配置器件來配置FPGA,在每次系統(tǒng)上電的時(shí)候會自動(dòng)把編程信息配置到FPGA芯片中。但設(shè)計(jì)中沒有采用到這種配置方案主要是考慮到專用配置器件的價(jià)格問題。 本文開始介紹了多通道系統(tǒng)的組成部分,然后分別介紹了各個(gè)組成部分的原理和設(shè)計(jì)方法,其中重點(diǎn)介紹了FPGA軟件設(shè)計(jì)部分。還對當(dāng)前十分流行的基于FPGA的設(shè)計(jì)技術(shù)作了簡單的闡述,最后對系統(tǒng)的調(diào)試和應(yīng)用作了簡短的說明。
4、 關(guān)鍵詞:音頻放大;濾波器;FPGA;VHDL;AD7892;有限狀態(tài)機(jī); 目 錄 摘要 2 引言3 1 題目來源3 2 研究意義3 3 多通道采樣系統(tǒng)的組成3 4 方案設(shè)計(jì)4 5 單元電路的設(shè)計(jì)4 5.1音頻放大、濾波部分4 (1)音頻放大部分 4 (2)有源濾波器的設(shè)計(jì) 4 5.2 AD采樣電路5 5.3 FPGA控制部分5 (1)通道選擇模塊 6 (2)延時(shí)模塊的設(shè)計(jì) 6 (3)串并輸出選擇控制 7 5.4 FPGA的硬件設(shè)計(jì) 8 6 軟件介紹 8 7 整機(jī)調(diào)試8
5、 7.1 硬件電路的調(diào)試步驟8 (1)音頻放大部分調(diào)試 8 (2)濾波部分調(diào)試 8 (3)FPGA硬件電路調(diào)試 9 (4)AD采樣模塊調(diào)試 9 (5) 聯(lián)機(jī)調(diào)試9 8 結(jié)論9 參考文獻(xiàn)10 附錄11 引言 FPGA(Field-Programmable Gate Array 現(xiàn)場可編程門陣列)是近年來廣泛應(yīng)用的超大規(guī)模、超高速的可編程邏輯器件,由于其具有高集成度(單片集成的系統(tǒng)門數(shù)達(dá)上千萬門)、高速(200MHz以上)、在線系統(tǒng)可編
6、程等優(yōu)點(diǎn),為數(shù)字系統(tǒng)的設(shè)計(jì)帶來了突破性變革,大大推動(dòng)了數(shù)字系統(tǒng)設(shè)計(jì)的單片化、自動(dòng)化,提高了單片數(shù)字系統(tǒng)的設(shè)計(jì)周期、設(shè)計(jì)靈活性和可靠性。在超高速信號處理和實(shí)時(shí)測控方面有非常廣泛的應(yīng)用。 硬件描述語言HDL是一種用形式化方法描述數(shù)字電路和系統(tǒng)的語言。VHDL是硬件描述語言的幾種代表性語言的一種。VHDL(Very High Speed Integrated Circuit Hardware Description Language 即超高速集成電路硬件描述語言)主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口,與其它的硬件描述語言相比,VHDL具有更強(qiáng)的行為描述能力,從而決定了它成為系統(tǒng)設(shè)計(jì)領(lǐng)域最佳
7、的硬件描述語言。用VHDL設(shè)計(jì)的程序,通過綜合工具產(chǎn)生網(wǎng)表文件,下載到目標(biāo)器件,從而生成硬件電路。VHDL還是一種仿真語言,包括行為仿真、功能仿真和時(shí)序仿真,給系統(tǒng)設(shè)計(jì)各個(gè)階段的可行性做出了決策。 1 題目來源 課程設(shè)計(jì)庫 2 研究意義 數(shù)據(jù)采集在現(xiàn)代工業(yè)生產(chǎn)以及科學(xué)研究中的重要地位日益突出,并且實(shí)時(shí)高速數(shù)據(jù)采集的要求也不斷提高,在信號測量、圖像處理,音頻信號處理等一些高速、高精度的測量中,都需要進(jìn)行高速數(shù)據(jù)采集。本次設(shè)計(jì)就是用FPGA實(shí)現(xiàn)采樣系統(tǒng),來實(shí)現(xiàn)音頻信號的數(shù)據(jù)采集。 3 多通道采樣系統(tǒng)的組成 本系統(tǒng)硬件電路包括FPGA設(shè)計(jì)的多通道采樣控制器和相應(yīng)的通道選擇電路,A/
8、D轉(zhuǎn)換電路,由于采樣音頻信號,所以需要設(shè)計(jì)音頻的放大和濾波電路。系統(tǒng)組成部分如圖2.1所示: 通道選擇部分 音頻放大、濾波部分 信號1 模擬信號輸入 信號2 AD轉(zhuǎn)換部分 控制 FPGA控制的通道選擇和AD控制部分 信號7 控制采樣
9、 信號8 數(shù)字信號存儲 輸出 圖2.1 多通道系統(tǒng)的組成 4 方案設(shè)計(jì) 用FPGA實(shí)現(xiàn)一個(gè)3位8進(jìn)制的計(jì)數(shù)器,記數(shù)脈沖是FPGA鎖存AD轉(zhuǎn)換數(shù)據(jù)的鎖存信號,計(jì)數(shù)器的輸出作為數(shù)據(jù)開關(guān)CD4051的地址。用有限狀態(tài)機(jī)來實(shí)現(xiàn)對AD7892的控制,這樣電路實(shí)現(xiàn)比較簡單,而且AD7892的采樣速率可以達(dá)到500KHz,可以實(shí)現(xiàn)8個(gè)通道同時(shí)8路音頻信號采集。同時(shí)采用FI
10、FO模塊,讓數(shù)字?jǐn)?shù)據(jù)先存到隊(duì)列中,一邊往隊(duì)列中寫數(shù)據(jù),一邊從隊(duì)列中讀數(shù)據(jù),這樣就對數(shù)字?jǐn)?shù)據(jù)起了一個(gè)高速緩存的作用,更加快了整個(gè)系統(tǒng)的運(yùn)行速度。 5 單元電路的設(shè)計(jì) 系統(tǒng)可以分為4個(gè)大部分,分別是音頻放大、濾波部分,F(xiàn)PGA控制部分,AD采樣電路,F(xiàn)PGA硬件電路的設(shè)計(jì)。其中以FPGA控制部分為主體部分,它涉及到AD采樣控制,通道選擇控制,串并輸出模式選擇模塊,延時(shí)模塊以及FIFO模塊介紹。這些模塊的實(shí)現(xiàn)是系統(tǒng)實(shí)現(xiàn)的關(guān)鍵。下面分別對系統(tǒng)的這些單元電路做詳細(xì)的闡述。 5.1 音頻放大、濾波部分 (1)音頻放大部分 音源采用普通CD輸出的音頻信號,它產(chǎn)生輸出的信號的幅度約有300mV左右
11、,根據(jù)設(shè)計(jì)AD7892的輸入電壓是10V,選擇放大器的放大倍數(shù)在10-30之間,通過一個(gè)精密可調(diào)電阻來調(diào)節(jié)放大倍數(shù)。音頻放大芯片NE5532特性是雙運(yùn)放、寬頻帶、低噪聲、轉(zhuǎn)換速率大、電源范圍廣。 (2)有源濾波器的設(shè)計(jì) 在一個(gè)實(shí)際的電子系統(tǒng)中,輸入信號往往因受干擾等原因而含有一些不必要的成份,應(yīng)設(shè)法將干擾衰減到足夠小的程度。在其他一些情況,我們需要的信號和干擾信號混在一起,如果這兩個(gè)信號在頻率成分上有較大的差別,就可以用濾波的方法將所需要的信號濾出。為了解決上述問題,可采用濾波電路。濾波器包括電抗性元件L、C構(gòu)成的無源濾波器、由集成運(yùn)算放大器組成的有源濾波器、以及晶體濾波器等。本次設(shè)計(jì)需要
12、的通帶頻率范圍是20Hz-20KHz,如果用有源帶通濾波器來實(shí)現(xiàn),考慮到該帶通濾波器的上下截止頻率之比20000/20=1000,大于一個(gè)倍頻程,為一個(gè)寬帶濾波器,所以采用一個(gè)低通濾波器和一個(gè)高通濾波器級聯(lián)來實(shí)現(xiàn)帶通濾波。 有源帶通濾波電路分成兩個(gè)部分,高通部分和低通部分,圖4.2是20HZ的高通濾波器,圖5.3是20KHZ的低通濾波器。 圖5.2 低通濾波器電路圖 圖5.3 高通濾波器電路圖 音頻信號經(jīng)過音頻放大電路放大后就進(jìn)入了上圖的電路。經(jīng)過20HZ-20KHZ的帶通濾波電路進(jìn)行濾波。 5.2 AD采樣電路 由于人的耳朵能識別的音頻的頻率范圍是20Hz-20KHz,根
13、據(jù)奈魁斯特(NYQUIST)采樣定理知道,要使采樣后的數(shù)字信號能恢復(fù)成模擬信號,采樣的頻率必須是模擬信號的頻率的兩倍,即本次采樣系統(tǒng)的采樣頻率最低要設(shè)計(jì)在40KHz,而一般CD格式的音頻信號的采樣頻率是44.1KHz,由于是8路通道的采樣,所以AD芯片的最低采樣頻率應(yīng)該是44.1KHz8=352.8KHz,所以選擇采樣頻率為500KHz的AD7892。這樣我們每個(gè)通道的采樣頻率就是500KHz/8=62.5KHz。 5.3 FPGA控制部分 (1)通道選擇模塊 通道選擇部分是一個(gè)二進(jìn)制模8的計(jì)數(shù)器,計(jì)數(shù)器的時(shí)鐘是AD數(shù)字信號的鎖存信號,每次鎖存數(shù)據(jù)后,計(jì)數(shù)器就會一次進(jìn)行加一操作,CD40
14、51選擇下一個(gè)通道的音頻信號進(jìn)行采集。在MAX+PlusⅡ中用VHDL語言設(shè)計(jì)圖形如下圖5.8所示: 圖5.8 通道選擇部分 通過CNT[0]到CNT[2]來選擇相應(yīng)的通道,CD4051的輸出就是最后要進(jìn)行AD采樣的音頻信號。例如:若CNT[0]CNT[1]CNT[2]=“000”,則選擇第一通道音頻信號進(jìn)行AD采樣。這個(gè)部分實(shí)現(xiàn)的重點(diǎn)是對數(shù)字鎖存信號記數(shù),計(jì)數(shù)器的輸出作為CD4051的通道選擇地址。 通道選擇部分的主體程序如下: 二進(jìn)制模8計(jì)數(shù)器 signal q:std_logic_vector(2 downto 0); begin counter:process(c
15、lk) begin if(clkevent and clk=1) then if q="111" then q<="000"; else q<=q+1; end if; end if; cnt<=q; end process; 通道選擇模塊的仿真圖如圖5.9所示: 圖5.9 通道模塊仿真圖 (2)延時(shí)模塊的設(shè)計(jì) 在采樣控制部分的狀態(tài)機(jī)中也加入了輸出數(shù)據(jù)編碼部分,因?yàn)槭茄h(huán)采集8路的模擬信號,而輸出為一路輸出,這樣就需要對輸出信號
16、進(jìn)行標(biāo)志,方法就是把12位數(shù)據(jù)轉(zhuǎn)換為16位數(shù)據(jù),第一位是0,第二位到第四位是標(biāo)志位,標(biāo)志是哪一通道數(shù)字信號,如果是串行輸出的時(shí)候可以讓接受方知道是第幾通道的數(shù)據(jù)。又因?yàn)閿?shù)字信號數(shù)據(jù)鎖存信號是比通道選擇信號早一個(gè)周期,所以要加一個(gè)延時(shí)模塊,這樣就可以實(shí)現(xiàn)每次鎖存了通道的標(biāo)志位和采樣的數(shù)據(jù)。通過程序來實(shí)現(xiàn)對通道選擇信號的延時(shí)。如果當(dāng)前選擇第3個(gè)通道采樣,那么通道選擇信號就是“011”,在這個(gè)通道信號采集完畢后鎖存信號就會使計(jì)數(shù)器進(jìn)行加1操作,這樣通道選擇信號就是“100”,而這個(gè)時(shí)候鎖存的數(shù)據(jù)需要“011”,所以將標(biāo)志位信號通過“100”的延時(shí)一個(gè)時(shí)鐘周期變成“011”即可。VHDL完成可以勝任。
17、 延時(shí)模塊程序主體部分 process(in1,in2,in3) begin comin<=in3&in2&in1; case comin is when "000"=> comout<="111"; when "001"=> comout<="000"; when "010"=> comout<="001"; when "011"=> comout<="010"; when "100"=> comout<="011"; when "101"=> com
18、out<="100"; when "110"=> comout<="101"; when "111"=> comout<="110"; when others=>comout<="ZZZ"; end case; out1<=comout(0);out2<=comout(1);out3<=comout(2); end process; (3)串并輸出選擇控制 從AD控制模塊輸出的數(shù)據(jù)是并行16位數(shù)據(jù)。串行輸出的原理是:通過一個(gè)16選1的數(shù)據(jù)選擇器連續(xù)選擇輸出的并行16位數(shù)據(jù),數(shù)據(jù)選擇器的選擇信號是一個(gè)
19、對系統(tǒng)時(shí)鐘記數(shù)的二進(jìn)制模16的計(jì)數(shù)器輸出,這樣就可以實(shí)現(xiàn)將并行16位數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)。通過外部輸入信號P/S可以實(shí)現(xiàn)是串行輸出還是并行輸出,如果P/S是低電平,就選通16選1的選擇器,禁止16個(gè)與門的輸出,此時(shí)為串行輸出;如果P/S為高電平,則禁止16選1的選擇器,同時(shí)打開16個(gè)與門,此時(shí)為并行16位輸出。輸出模式可選擇性使得系統(tǒng)的應(yīng)用相當(dāng)廣泛,串行輸出可以用于通信信號的采集,方便調(diào)制后發(fā)射到遠(yuǎn)程接受端,遠(yuǎn)程接收端對采集的數(shù)據(jù)進(jìn)行解調(diào);而并行輸出模式則可以通過高速存儲器將采集的信號放到微機(jī)或者其他的處理器上,根據(jù)采集的數(shù)據(jù)進(jìn)行相應(yīng)的控制。 5.4 FPGA的硬件設(shè)計(jì) 本次設(shè)計(jì)選用的FPG
20、A芯片是ALTERA公司的ACEX1K系列的EP1K30TC144-3。由于它的高密度和易于在設(shè)計(jì)中實(shí)現(xiàn)復(fù)雜宏函數(shù)和存儲器,因此可以把一個(gè)子系統(tǒng)集成在單一芯片上,EP1K30包括一個(gè)嵌入式陣列,這為設(shè)計(jì)人員提供了有效的嵌入式門陣列和靈活的可編程邏輯。嵌入式陣列是由一系列嵌入式陣列塊(EAB)組成的,它能夠用來實(shí)現(xiàn)各種存儲器和復(fù)雜邏輯功能;該器件也提供多電壓I/O接口操作。它允許器件橋架在不同電壓工作的系統(tǒng)中。比如本次系統(tǒng)設(shè)計(jì)器件的I/O輸出就是2.5V,這樣不但使FPGA芯片工作安全,也可以讓AD7892能工作安全狀態(tài)。 6 軟件介紹 在實(shí)驗(yàn)中主要使用了MAX+PlusⅡ、EWB、以及P
21、rotel99se三種軟件,其中,Max PlusⅡ主要完成對FPGA芯片的編程,仿真,芯片引腳鎖定以及編程在線配置等操作,EWB主要用于對放大、濾波電路作分析與設(shè)計(jì),并以分析為主,尤其是EWB能提供一個(gè)虛擬的實(shí)驗(yàn)室,可以對電路和系統(tǒng)進(jìn)行十分逼真的模擬;Protel99se則是整個(gè)電路設(shè)計(jì)PCB的重要工具?,F(xiàn)分別對這三種軟件進(jìn)行介紹,其中重點(diǎn)介紹使用MAX+PlusⅡ的常用基本設(shè)計(jì)方法。 7 整機(jī)調(diào)試 7.1硬件電路的調(diào)試步驟 在硬件電路中用到了音頻放大、濾波電路,電源穩(wěn)壓電路,AD采樣電路,F(xiàn)PGA控制等主要部分,由于電路連線較多而且復(fù)雜,采用的方法是分塊調(diào)試,這樣比較容易發(fā)現(xiàn)問題和
22、解決問題。這種硬件調(diào)試方法在實(shí)際應(yīng)用是比較普遍的。 在進(jìn)行硬件調(diào)試之前,首先要檢查電路板,看看電路板上的線路是否有短路、虛焊或者是斷路的情況,如果有則要修正它,如果沒有就可以進(jìn)行各個(gè)模塊的調(diào)試。 (1)音頻放大部分調(diào)試 對音頻放大部分調(diào)試需要一個(gè)函數(shù)信號發(fā)生源,一個(gè)示波器,一個(gè)萬用表和提供放大器電源的直流穩(wěn)壓電源。首先,給NE5532加上+12V的電源,使之工作起來,用萬用表檢查NE5532除了正負(fù)電源引腳的電壓,電壓接近為零,這表明放大器正常工作,在輸入端輸入頻率為1KHz,幅度為300mV的正弦波,用示波器觀察輸出端的波形,可以看到輸出幅度為5.3V的正弦波,正弦波中包含了很多高頻干
23、擾,這是由于周圍的干擾在放大器的放大作用,使得干擾成為一個(gè)明顯波形出現(xiàn)在示波器上,通過濾波器后可以濾掉這些干擾。調(diào)節(jié)可調(diào)電阻,可以觀察到輸出波形的幅度變化。接上音源,可以看到示波器有不規(guī)則波形輸出,增大音源的音量可以看到輸出波形的幅度也隨之增大,只是這不規(guī)則波形中混有很多的干擾,通過濾波器后可以濾掉這些干擾。這表明音頻放大部分工作正常,達(dá)到設(shè)計(jì)要求。 (2)濾波部分調(diào)試 對濾波部分調(diào)試需要一個(gè)函數(shù)信號發(fā)生源,一個(gè)示波器,一個(gè)萬用表和提供放大器電源的直流穩(wěn)壓電源。首先,給LM324加上+12V的電源,使之工作起來,用萬用表檢查LM324除了正負(fù)電源引腳的電壓,電壓接近為零,這表明濾波器的放大
24、器正常工作。輸入1KHZ,300mv的正弦波信號,經(jīng)過音頻放大電路放大后得到的1KHZ,5.3V的正弦波信號從輸入點(diǎn)進(jìn)入濾波電路。調(diào)試過程中發(fā)現(xiàn)示波器中的波形一直有一定高頻和低頻的干擾,檢查電路沒有錯(cuò)誤,最后判斷是電源的干擾,在電源輸入端加上一個(gè)大電容和一個(gè)小電容分別濾掉電源的高頻干擾和低頻干擾,再調(diào)試可以看到完整的正弦波波形。減少輸入信號的頻率到10HZ,可以看到當(dāng)頻率減到20HZ的時(shí)候,輸出信號的幅度逐漸變小,這表明高通濾波部分已實(shí)現(xiàn)其功能,濾掉小于20HZ的低頻干擾;然后慢慢增加輸入信號的頻率到30KZ左右,可以看當(dāng)頻率大于18KHZ的時(shí)候,輸出信號的幅度開始減小,達(dá)到20KHZ,輸出信
25、號幅度衰減到通帶內(nèi)的幅度的75%,大于20KZ后,輸出幅度小于通帶內(nèi)幅度一半,達(dá)到衰減的目的,這表明低通濾波器也實(shí)現(xiàn)了其功能。整個(gè)濾波器部分調(diào)試完畢,達(dá)到設(shè)計(jì)要求。 (3)FPGA硬件電路調(diào)試 這部分調(diào)試是整個(gè)調(diào)試的主體,包括對有源晶振的調(diào)試,配置電路的調(diào)試。 (4)AD采樣模塊調(diào)試 將實(shí)現(xiàn)AD采樣的狀態(tài)機(jī)程序單獨(dú)寫成一個(gè)文件,選擇器件和鎖定引腳后,配置到FPGA芯片中,模擬信號采用+5V電源,在調(diào)試過程中,發(fā)現(xiàn)AD采樣在工作若干次后,就會出現(xiàn)“死機(jī)”現(xiàn)象,分析知道,在采樣過程中會出現(xiàn)控制AD開始采樣的CONV信號丟失現(xiàn)象,導(dǎo)致AD無限期等待采樣開始信號CONV,而狀態(tài)機(jī)又無限期等
26、待采樣結(jié)束信號EOC,這樣就使得狀態(tài)機(jī)進(jìn)入“死機(jī)”狀態(tài)。解決的方法是加入一段“看門狗”程序,當(dāng)狀態(tài)機(jī)進(jìn)入死機(jī)狀態(tài)后,用一個(gè)變量判斷狀態(tài)機(jī)是否等待超過一個(gè)采樣周期,如果超過,就復(fù)位狀態(tài)機(jī),使?fàn)顟B(tài)機(jī)重新進(jìn)入開始狀態(tài)。這樣就可以解決狀態(tài)機(jī)的“死機(jī)”現(xiàn)象了。加入“看門狗”程序后,通過示波器可以看到12位數(shù)據(jù)的任何一位的電平信號。這樣AD采樣部分就調(diào)試完畢。 (5)聯(lián)機(jī)調(diào)試 聯(lián)機(jī)調(diào)試需要實(shí)驗(yàn)工具有:示波器,穩(wěn)壓電源,EDA實(shí)驗(yàn)臺,PC機(jī),ByteBlaster(MV)下載電纜。按照圖2.1中各模塊連接順序連接好整個(gè)采樣系統(tǒng),分別接上12V的放大器工作電壓,+5V的AD采樣電壓和+2.5V的FPGA芯
27、片工作電壓,把串并選擇端口選擇串行輸出,也即將短路帽短路,這樣輸入到器件是低電平。將示波器連接到串行輸出口,用EDA實(shí)驗(yàn)臺上的下載電路連接PC機(jī)上的打印并行口和硬件電路板上的下載口,可以看到示波器有高低的電平輸出。將串并選擇端口選為并行輸出,也即將短路帽斷開,這樣輸入到器件是高電平,任意選擇一位連接到示波器,也可以看到有高低電平輸出。通過調(diào)試可以證實(shí)整個(gè)高速多通道采樣系統(tǒng)基本實(shí)現(xiàn),聯(lián)機(jī)調(diào)試完畢。 8 結(jié)論 本次設(shè)計(jì)采用FPGA實(shí)現(xiàn)采樣系統(tǒng),從而系統(tǒng)具有高速、穩(wěn)定、低功耗等特點(diǎn),音頻模擬信號經(jīng)放大器NE5532放大后,經(jīng)過8路選擇后,進(jìn)入濾波器進(jìn)行濾波,濾掉高頻干擾信號和低頻干擾信
28、號的干擾,然后進(jìn)入AD7892進(jìn)行AD采樣,采樣后的12位數(shù)據(jù)通過一個(gè)FIFO隊(duì)列存儲,最后從FIFO中讀出數(shù)字信號,在串并輸出模式的選擇下在示波器上顯示出來。 本系統(tǒng)基本達(dá)到了預(yù)期的設(shè)計(jì),但還有一些不足之處,例如:在對FIFO隊(duì)列的讀寫操作中是通過狀態(tài)機(jī)來實(shí)現(xiàn)的,但這樣FIFO隊(duì)列就只起了一個(gè)緩存的作用。由于本人水平有限,無法實(shí)現(xiàn)其存儲后再進(jìn)行讀寫的操作,懇請各位老師多多批評指教。 多通道采樣系統(tǒng)應(yīng)用十分廣泛,特別是在控制系統(tǒng)上的應(yīng)用,比如說溫度,濕度等,通過傳感器把模擬信號采集到微機(jī)或者控制部分,根據(jù)采集的數(shù)據(jù)來對系統(tǒng)進(jìn)行相應(yīng)的控制,同時(shí)基于FPGA的多通道采樣系統(tǒng)的實(shí)現(xiàn),為一些特殊領(lǐng)
29、域的實(shí)時(shí)測控提供了一個(gè)簡單、靈活、可靠的方案. 參考文獻(xiàn) [1] 張亦華.數(shù)字電路EDA入門—VHDL程序?qū)嵗痆M].北京:北京郵電大學(xué)出版社,2003.3 [2] 李洋.EDA技術(shù)實(shí)用教程[M].北京:機(jī)械工業(yè)出版社,2004.7 [3] 肖蕙蕙.傅曉林.數(shù)字電子技術(shù)基礎(chǔ)[M].重慶:重慶大學(xué)出版社,2002.10 [4] 張凱.VHDL實(shí)例剖析[M].北京:國防工業(yè)出版社,2004.1 [5] 姜立東.VHDL語言程序設(shè)計(jì)及應(yīng)用(第2版)[M].北京:北京郵電大學(xué)出版社,2004.6
30、 附 錄 1 各模塊程序 (1)通道選擇模塊 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity count is port(clk:in std_logic; --cnt:out integer range 0 to 7; cnt : out std_logic_vector(2 downto 0)); --oc : out std_lo
31、gic); end count; architecture archcount of count is signal q:std_logic_vector(2 downto 0); begin counter:process(clk) begin if(clkevent and clk=1) then if q="111" then q<="000";--oc<=1; else q<=q+1;--oc<=0; end if; end if; cnt
32、<=q; end process; end archcount; (2)延時(shí)模塊 library ieee; use ieee.std_logic_1164.all; entity delay is port(in1,in2,in3:in std_logic; out1,out2,out3:out std_logic); end delay; architecture behav of delay is signal comin:std_logic_vector(2 downto 0); signal comout:std_logic_ve
33、ctor(2 downto 0); begin process(in1,in2,in3) begin comin<=in3&in2&in1; case comin is when "000"=> comout<="111"; when "001"=> comout<="000"; when "010"=> comout<="001"; when "011"=> comout<="010"; when "100"=> comout<="011"; when
34、 "101"=> comout<="100"; when "110"=> comout<="101"; when "111"=> comout<="110"; when others=>comout<="ZZZ"; end case; out1<=comout(0);out2<=comout(1);out3<=comout(2); end process; end behav; (3)AD采樣控制模塊 library ieee; use ieee.std_logic_1164.all; ent
35、ity adcontrol is port(D : in std_logic_vector(11 downto 0); clk,eoc : in std_logic; b0,b1,b2:in std_logic; wr_en,rd_en : out std_logic; lock0,conv,rd,cs: out std_logic; Q : out std_logic_vector(15 downto 0)); end entity; architecture behav of a
36、dcontrol is type states is(st1,st2,st3,st4,st5,st6,st7,st8); signal current_state,next_state:states:=st1; signal regl1 : std_logic_vector(11 downto 0); signal regl : std_logic_vector(15 downto 0); signal lock : std_logic; begin lock0 <= lock; com1:process(current_state,eoc) begin case
37、current_state is when st1 => next_state <= st2; when st2 => next_state <= st3; when st3 => next_state <= st4; when st4 => if (eoc=1) then next_state <= st4; else next_state <= st5; end if; when st5 => if (eoc=0)
38、then next_state <= st5; else next_state <=st6; end if; when st6 => next_state <= st7; when st7 => next_state <= st8; when st8 => next_state <= st1; when others => next_state<=st1; end case;
39、 end process com1; com2:process(current_state) begin case current_state is when st1 => conv<=1;cs<=1;rd<=1;lock<=0;wr_en<=0;rd_en<=0; when st2 => conv<=0;cs<=1;rd<=1;lock<=0;wr_en<=0;rd_en<=0; when st3 => conv<=1;cs<=1;rd<=1;lock<=0;wr_en<=0;rd_e
40、n<=0; when st4 => conv<=1;cs<=1;rd<=1;lock<=0;wr_en<=0;rd_en<=0; when st5 => conv<=1;cs<=1;rd<=1;lock<=0; wr_en<=0;rd_en<=0; when st6 => conv<=1;cs<=0;rd<=0;lock<=1; wr_en<=1;rd_en<=0; when st7 => conv<=1;cs<=1;rd<=1;lock<=0; wr_en<=0;rd_en<=1; w
41、hen st8 => conv<=1;cs<=1;rd<=1;lock<=0;wr_en<=0;rd_en<=0; when others => conv<=1;cs<=1;rd<=1;lock<=0;wr_en<=0;rd_en<=0; end case; end process com2; com3:process(clk) variable dog_count:integer range 0 to 64; variable com3_num_count:integer range 0 to 16553500; begin
42、 if(clkevent and clk=1) then current_state<=next_state; --看門狗 if(current_state=st4) then m_watchdog <= s0; end if; if(current_state=st6) then m_watchdog <= s1; dog_count:=0; end if; if(m_watchdog=s0) then dog_count:=dog_count+1;
43、 if(dog_count>40) then current_state<=st1; dog_count:=0; end if; end if; --看門狗 end if; end process com3; latch1:process(lock) begin if lock=1 and lockevent then regl1<=D; end if; end process latch1; regl<=0&b2&b1&b0&re
44、gl1; Q<=regl1; end behav; (4)串并轉(zhuǎn)換模塊部分程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity counter4 is port(clk:in std_logic; cnt4 : out std_logic_vector(3 downto 0) ); end counter4; architecture archcount of counter4 is signal q:std_logic
45、_vector(3 downto 0); begin counter:process(clk) begin if(clkevent and clk=1) then if q="1111" then q<="0000"; else q<=q+1; end if; end if; cnt4<=q; end process; end archcount; 1 FPGA頂層設(shè)計(jì)圖 3 電路設(shè)計(jì)圖 (1)音頻放大 (2)濾波器 (3)AD7892電路
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案