基于FPGA的數(shù)字示波器_第1頁
基于FPGA的數(shù)字示波器_第2頁
基于FPGA的數(shù)字示波器_第3頁
基于FPGA的數(shù)字示波器_第4頁
基于FPGA的數(shù)字示波器_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、論文題目:基于FPGA的數(shù)字示波器1.摘要32.原理33.系統(tǒng)方案對(duì)比及分析43.1.以FPGA來實(shí)現(xiàn)整個(gè)系統(tǒng)43.2.采用DSP與FPGA來實(shí)現(xiàn)整個(gè)系統(tǒng)43.3.采用FPGA與單片機(jī)來實(shí)現(xiàn)整個(gè)系統(tǒng)44.系統(tǒng)設(shè)計(jì)方案45.系統(tǒng)框圖56.系統(tǒng)技術(shù)指標(biāo)57.AD模塊簡(jiǎn)介58.頻率測(cè)量模塊及方案比較68.1.測(cè)周期法68.2.測(cè)頻率法68.3.方法選擇及使用68.4.Verilog設(shè)計(jì)結(jié)構(gòu)89.數(shù)據(jù)處理模塊810.FIFO存儲(chǔ)模塊810.1.FIFO_1910.2.FIFO_2911.Nios II軟核模塊912.VGA顯示1013.系統(tǒng)軟件構(gòu)架設(shè)計(jì)1213. Nios II軟件實(shí)現(xiàn)1214.1.D

2、MA傳輸1214.2.1.PIO中斷1414.系統(tǒng)的測(cè)試和分析1415.總結(jié)2216.參考文獻(xiàn)221.摘要隨著信息技術(shù)的發(fā)展,對(duì)信號(hào)的測(cè)量技術(shù)要求越來越高,示波器的使用越來越廣泛。數(shù)字示波器是模擬示波器技術(shù)、數(shù)字化測(cè)量技術(shù)、計(jì)算機(jī)技術(shù)的綜合產(chǎn)物,他主要以微處理器、數(shù)字存儲(chǔ)器、A/D轉(zhuǎn)換器和D/A轉(zhuǎn)換器為核心,輸入信號(hào)首先經(jīng)A/D轉(zhuǎn)換器轉(zhuǎn)換成數(shù)字信號(hào),然后存儲(chǔ)在RAM中,需要時(shí)再將RAM中的內(nèi)容讀出,經(jīng)D/A轉(zhuǎn)換器恢復(fù)為模擬信號(hào)顯示在示波器上,或者通過接口與計(jì)算機(jī)相連對(duì)存儲(chǔ)的信號(hào)作進(jìn)一步處理,這樣可大大改進(jìn)顯示特性,增強(qiáng)功能,便于控制和智能化。這種數(shù)字示波器中看到的波形是由采集到的數(shù)據(jù)經(jīng)過重構(gòu)后

3、得到的波形,而不是加到輸入端上信號(hào)的波形。設(shè)計(jì)提出一個(gè)經(jīng)過優(yōu)化的數(shù)據(jù)采集方法,輔以FPGA為主控制器和必備的外圍電路完成了基于FPGA的數(shù)字存儲(chǔ)示波器的設(shè)計(jì)。系統(tǒng)最大限度地利用了FPGA的高速數(shù)字信號(hào)處理能力以及眾多硬核和軟核內(nèi)嵌的特性,降低了成本和開發(fā)難度,且性能優(yōu)良。2.原理數(shù)字示波器具有存儲(chǔ)數(shù)據(jù)的能力,數(shù)字存儲(chǔ)就是在示波器中以數(shù)字編碼的形式來貯存信號(hào)。當(dāng)信號(hào)進(jìn)入數(shù)字存儲(chǔ)示波器,或稱 DSO 以后,在信號(hào)到達(dá)CRT 的偏轉(zhuǎn)電路之前,示波器將按一定的時(shí)間間隔對(duì)信號(hào)電壓進(jìn)行采樣。然后用一個(gè)模/數(shù)變換器(ADC)對(duì)這些采樣值進(jìn)行變換從而生成代表每一個(gè)采樣電壓的二進(jìn)制字。這個(gè)過程稱為數(shù)字化。獲得的

4、二進(jìn)制數(shù)值貯存在存儲(chǔ)器中,對(duì)輸入信號(hào)進(jìn)行采樣的速率稱為采樣速率。采樣速率由采樣時(shí)鐘控制。對(duì)于一般使用情況來說,采樣速率的范圍從每秒 20 兆次(20MS/s)到 200MS/s。存儲(chǔ)器中貯存的數(shù)據(jù)用來在示波器的屏幕上重建信號(hào)波形。所以,在DSO中的輸入信號(hào)接頭和示波器 CRT 之間的電路不只是僅有模擬電路。輸入信號(hào)的波形在 CRT 上獲得顯示之前先要存貯到存儲(chǔ)器中,我們?cè)谑静ㄆ髌聊簧峡吹降牟ㄐ慰偸怯伤杉綌?shù)據(jù)重建的波形,而不是輸入連接端上所加信號(hào)的直接波形顯示。示波器原理框圖如下:3.系統(tǒng)方案對(duì)比及分析3.1.以FPGA來實(shí)現(xiàn)整個(gè)系統(tǒng)以可編程器件FPGA為主控來實(shí)現(xiàn)整個(gè)系統(tǒng),設(shè)計(jì)時(shí)電路相對(duì)簡(jiǎn)

5、潔,因?yàn)镕PGA的可編程性適用于模塊化設(shè)計(jì),內(nèi)部集成大量電路模塊,如A/D轉(zhuǎn)換器,鎖相環(huán),甚至有些FPGA內(nèi)部嵌入ARM相關(guān)處理器,DSP模塊,電源模塊,所以FPGA可以實(shí)現(xiàn)DSP相關(guān)算法,可以做大量運(yùn)算,并且它的處理速度由于其并行性,在協(xié)調(diào)多個(gè)模塊的工作時(shí)候非常方便,控制能力強(qiáng)。在整個(gè)數(shù)值示波器的設(shè)置中,通過采樣數(shù)據(jù)然后存儲(chǔ),再做相應(yīng)的數(shù)據(jù)處理,執(zhí)行相關(guān)任務(wù),完全可以實(shí)現(xiàn)示波器的基本功能,設(shè)計(jì)可行性非常高。輔助一些外圍電路模塊,基本能實(shí)現(xiàn)設(shè)計(jì)期望達(dá)到的功能和參數(shù)。3.2.采用DSP與FPGA來實(shí)現(xiàn)整個(gè)系統(tǒng)采用DSP和FPGA開發(fā)起來比較靈活,升級(jí)也容易,通用性強(qiáng),在以FPGA為主控的同時(shí)輔以

6、DSP作為信號(hào)處理,提高系統(tǒng)的效率。但是DSP在與外圍電路接口的時(shí)候,比如說LCD顯示和鍵盤進(jìn)行通信時(shí)候,因?yàn)镈SP速度非常快,而LCD顯示器和鍵盤電路比較慢,會(huì)造成資源浪費(fèi)。3.3.采用FPGA與單片機(jī)來實(shí)現(xiàn)整個(gè)系統(tǒng)采用FPGA與單片機(jī)來實(shí)現(xiàn),主要是利用單片機(jī)進(jìn)行一些外部接口的監(jiān)控,對(duì)鍵盤電路和顯示電路實(shí)時(shí)更新,減輕FPGA主控的任務(wù)。且單片機(jī)控制比較簡(jiǎn)單,現(xiàn)在大多單片機(jī)內(nèi)設(shè)比較豐富,能很好地勝任工作。但是這里使用單片機(jī)進(jìn)行控制,增加了一些額外開銷,且單片機(jī)任務(wù)比較簡(jiǎn)單,而且不多,本身FPGA集成一些內(nèi)核可以進(jìn)行比普通單片機(jī)更快的處理,再另外使用單片機(jī)有點(diǎn)多余。綜上,直接采用FPGA為主控芯

7、片,資源足夠豐富,就能很好地滿足設(shè)計(jì)需求,不需要再多的控制器,因此直接選用方案一。4.系統(tǒng)設(shè)計(jì)方案當(dāng)信號(hào)進(jìn)入數(shù)字存儲(chǔ)示波器時(shí),首先對(duì)信號(hào)進(jìn)行前置處理,然后將按一定的時(shí)間間隔對(duì)信號(hào)電壓進(jìn)行采樣,之后對(duì)這些采樣值進(jìn)行數(shù)字化,即通過AD轉(zhuǎn)換器變換得到代表每一個(gè)實(shí)際電壓的二進(jìn)制數(shù)字,進(jìn)一步把這些數(shù)字貯存在存儲(chǔ)器中,最終根據(jù)數(shù)字大小按一定比例把每一個(gè)采樣點(diǎn)重現(xiàn)在顯示器上,這樣就能看到清晰的波形。整個(gè)系統(tǒng)由高速采樣電路、FIFO存儲(chǔ)器、 時(shí)鐘分時(shí)電路、控制器FPGA和顯示電路構(gòu)成。數(shù)字示波器系統(tǒng)框圖如圖所示,其中FPGA構(gòu)成控制器,信號(hào)從探頭輸入,一路送入高速AD轉(zhuǎn)換器對(duì)信號(hào)進(jìn)行采樣,采樣所得的數(shù)據(jù)通過處

8、理后存入FIFO存儲(chǔ)器中,F(xiàn)IFO模塊有兩個(gè),前者FIFO1通過開關(guān)來控制數(shù)據(jù)采樣頻率,后者FIFO2通過脈沖來控制其工作狀態(tài);當(dāng)FIFO2存滿后通知Nios II軟核處理器 , Nios II從FIFO存儲(chǔ)器中通過DMA形式接受數(shù)據(jù)進(jìn)行處理,然后將波形和頻率等數(shù)據(jù)通過VGA顯示在顯示器上。時(shí)鐘電路為高速AD轉(zhuǎn)換器和FIFO存儲(chǔ)器提供不同的頻率信號(hào),作為不同水平掃描時(shí)的采樣時(shí)鐘頻率。輸入信號(hào)第二路送入FPGA板的一個(gè)串口,通過頻率計(jì)算模塊計(jì)算該信號(hào)的頻率。FPGA以被測(cè)信號(hào)的頻率數(shù)據(jù)作為頻率、水平掃描、靈敏度和峰峰值計(jì)算、顯示的依據(jù)。5.系統(tǒng)框圖整個(gè)系統(tǒng)框圖大概如上圖所示,通過FPGA硬件設(shè)計(jì)

9、和軟件設(shè)計(jì)相結(jié)合,以NIOS為主控,配合上外部硬件設(shè)計(jì),實(shí)現(xiàn)功能。首先數(shù)據(jù)經(jīng)過AD轉(zhuǎn)換后變成14位數(shù)據(jù),直接進(jìn)入數(shù)據(jù)處理模塊,數(shù)據(jù)會(huì)進(jìn)行相應(yīng)的伸縮變化,并且轉(zhuǎn)換為16位數(shù)據(jù)。處理后的數(shù)據(jù)進(jìn)入FIFO,這塊FIFO用來做一級(jí)緩沖,一直在采樣,采樣滿會(huì)直接溢出,就是說FIFO一直都會(huì)存在數(shù)據(jù),接著數(shù)據(jù)會(huì)傳到第二塊FIFO,這塊FIFO有一個(gè)觸發(fā)電路控制,控制進(jìn)行數(shù)據(jù)采樣。這里的FIFO是nios的外設(shè),已經(jīng)掛載到總線,傳入的數(shù)據(jù)會(huì)在DMA通道的作用下直接傳輸?shù)絻?nèi)部的ram,再由nios控制顯示輸出。其中頻率測(cè)量模塊或者峰值模塊均有NIOS內(nèi)核監(jiān)控,并實(shí)時(shí)顯示。6.系統(tǒng)技術(shù)指標(biāo)a) 帶寬:4MHz(

10、根據(jù)五倍準(zhǔn)則,示波器的誤差不會(huì)超過±2)b) 測(cè)量頻率范圍:04MHzc) 電壓檢測(cè):0-2Vp-pd) 水平靈敏度:e) 垂直靈敏度:0.05 v/div 、0.15v/div 、1v/divf) AD采樣率:65MHzg) 存儲(chǔ)深度:512h) 通道:雙通道7.AD模塊簡(jiǎn)介 高速A/D采集經(jīng)過模擬信號(hào)調(diào)理電路后的信號(hào),采樣值送入FPGA內(nèi)緩存,經(jīng)過相應(yīng)數(shù)據(jù)處理后,ARM把數(shù)據(jù)取走。設(shè)計(jì)采用terasic公司的信號(hào)轉(zhuǎn)換子板(THDB_ADA)Terasic-高速數(shù)字模擬轉(zhuǎn)換子板。該AD板塊用于樣本模擬信號(hào),根據(jù)子接口的不同,可以分為GPIO 0 header和GPIO 1 head

11、er兩種。AD9248是一款雙核、3 V、14位、20/40/65 MSPS模數(shù)轉(zhuǎn)換器(ADC),集成了兩個(gè)高性能采樣保持放大器和一個(gè)基準(zhǔn)電壓源。AD9248采用多級(jí)差分流水線架構(gòu),內(nèi)置輸出糾錯(cuò)邏輯,在最高65 MSPS數(shù)據(jù)速率時(shí)可提供14位精度,并保證在整個(gè)工作溫度范圍內(nèi)無失碼。AD9248的模擬電壓的輸入范圍為1Vp-p 至2Vp-p,其帶寬可以達(dá)到500MHz 3dB。8.頻率測(cè)量模塊及方案比較頻率測(cè)量是能夠測(cè)量和顯示信號(hào)頻率的電路。所謂頻率,就是周期性信號(hào)在單位時(shí)間內(nèi)變化的次數(shù)。常用的直接測(cè)頻法有兩種,一種是測(cè)周期法,一種是測(cè)頻率法。8.1.測(cè)周期法測(cè)周期

12、法如下圖所示,需要有基準(zhǔn)系統(tǒng)時(shí)鐘頻率Fs,在待測(cè)信號(hào)一個(gè)周期Tx內(nèi),記錄基準(zhǔn)系統(tǒng)時(shí)鐘頻率的周期數(shù)Ns,則被測(cè)頻率可表示為: Fx=Fs/Ns8.2.測(cè)頻率法測(cè)頻率法就是在一定時(shí)間間隔Tw(該時(shí)間定義為閘門時(shí)間)內(nèi),測(cè)得這個(gè)周期性信號(hào)的重復(fù)變換次數(shù)為Nx,則其頻率可表示為: Fx=Nx/Tw8.3.方法選擇及使用這兩種方法的計(jì)數(shù)值會(huì)產(chǎn)生正負(fù)一個(gè)字的誤差,并且被測(cè)精度與計(jì)數(shù)器中記錄的數(shù)值Ns或Nx有關(guān),為保證測(cè)試精度,一般對(duì)于低頻信號(hào)采用測(cè)周期法,對(duì)于高頻信號(hào)采用測(cè)頻率法。模擬信號(hào)分成兩路,其中一路未經(jīng)直接處理直接輸入FPGA開發(fā)板中的IO引腳,系統(tǒng)為測(cè)量頻率提供了一專用的模塊

13、。該模塊采用直接測(cè)頻法對(duì)信號(hào)的周期進(jìn)行檢測(cè),在精確規(guī)定計(jì)數(shù)允許周期T內(nèi)使能計(jì)數(shù)器,對(duì)被測(cè)信號(hào)的周期(脈沖)數(shù)進(jìn)行計(jì)數(shù),計(jì)數(shù)允許周期T的長(zhǎng)度決定了被測(cè)信號(hào)頻率的范圍。較長(zhǎng)的計(jì)數(shù)允許周期T對(duì)低頻信號(hào)而言有利于改善測(cè)量精度,但對(duì)于高頻信號(hào)來說,則會(huì)產(chǎn)生溢出;較短的計(jì)數(shù)允許周期T對(duì)低頻信號(hào)的測(cè)量,雖然精度降低,但能測(cè)量的最大頻率較高,且不會(huì)產(chǎn)生溢出。波形圖理論計(jì)算:1.被測(cè)頻率:2.測(cè)量誤差:考慮最大誤差為1,則由于閾值閘門時(shí)間為1s,為使測(cè)量誤差盡量小,設(shè)計(jì)時(shí)選Fc=1MHz。8.4.Verilog設(shè)計(jì)結(jié)構(gòu)SyncRst_nSys_ClkGateFxCounterRst_nSys_ClkSync_G

14、ateFxFcNx31:0Nc31:0Data_DoneFx_Data16.0ComputeRst_nSys_ClkEnNx31:0Nc31:0CLOCKRst_nSys_ClkGateFc頻率測(cè)量模塊9.數(shù)據(jù)處理模塊該模塊將AD轉(zhuǎn)換出來的14位數(shù)據(jù)處理成16位的數(shù)據(jù)以匹配FIFO的數(shù)據(jù)位,否則FIFO隊(duì)列的數(shù)據(jù)輸出將會(huì)不完整,導(dǎo)致最后波形還原的失真。因?yàn)閷?duì)于16位寬的FIFO隊(duì)列,輸入數(shù)據(jù)位為十四位,當(dāng)棧滿輸出時(shí),第一個(gè)16位輸出數(shù)據(jù)將是第一個(gè)14位輸入數(shù)據(jù)與第二個(gè)輸入數(shù)據(jù)中的高兩位。為了我們采取的處理是對(duì)數(shù)據(jù)進(jìn)行伸縮變換,輸出十六位的數(shù)值。通過兩個(gè)撥馬開關(guān),可以控制四種不同的壓縮比例的轉(zhuǎn)換

15、。10.FIFO存儲(chǔ)模塊FIFO存儲(chǔ)器是系統(tǒng)的緩沖環(huán)節(jié),是系統(tǒng)的關(guān)鍵部分,如果沒有FIFO存儲(chǔ)器,整個(gè)系統(tǒng)就不可能正常工作。FIFO是First -In/First-Out的縮寫,是先入先出的意思。FIFO存儲(chǔ)器分為寫入專用區(qū)和讀取專用區(qū)。讀操作與寫操作可以異步進(jìn)行,寫入?yún)^(qū)上寫入的數(shù)據(jù)按照寫入的順序從讀取端的區(qū)中讀出,類似于吸收寫入端與讀出端速度差的一種緩沖器。本系統(tǒng)使用了兩個(gè)深度位512的16位FIFO存儲(chǔ)器:10.1.FIFO_1FIFO1與數(shù)據(jù)處理模塊連接,主要功能用于存儲(chǔ)通過處理后的16位AD數(shù)據(jù),起到一級(jí)緩沖作用。AD的數(shù)據(jù)通過處理后形成連續(xù)不斷的數(shù)據(jù)流,F(xiàn)IFO存儲(chǔ)器對(duì)連續(xù)的數(shù)據(jù)流

16、進(jìn)行緩存,防止在進(jìn)機(jī)和存儲(chǔ)操作時(shí)丟失數(shù)據(jù);同時(shí),因?yàn)锳D芯片產(chǎn)生的數(shù)據(jù)頻率達(dá)到了65MHz,需要將處理的數(shù)據(jù)的頻率降低,才能用于后續(xù)的處理。該模塊通過3位撥馬開關(guān)來控制數(shù)據(jù)流的頻率,可以使用9種頻率來采集數(shù)據(jù)。FIFO一直不斷地讀入數(shù)據(jù),根據(jù)下一級(jí)的請(qǐng)求信號(hào)輸出數(shù)據(jù),滿則溢出。10.2.FIFO_2FIFO2接于FIFO1之后,用來進(jìn)一步加強(qiáng)數(shù)據(jù)采集的控制,用于數(shù)據(jù)交換,作為二級(jí)緩沖連接NIOS與外設(shè),通過FIFO2可以靈活地選擇數(shù)據(jù)流的流動(dòng)速度。允許系統(tǒng)進(jìn)行DMA操作,提高數(shù)據(jù)的傳輸速度。這是至關(guān)重要的一點(diǎn),如果不采用DMA操作,數(shù)據(jù)傳輸將達(dá)不到傳輸要求,而且大大增加CPU的負(fù)擔(dān),無法同時(shí)完

17、成數(shù)據(jù)的存儲(chǔ)工作。FIFO2通過DMA的方式將數(shù)據(jù)傳輸給顯示控制處理器,同時(shí)可以釋放CPU,使CPU能夠騰出空閑處理其他數(shù)據(jù)。11.Nios II軟核模塊Nios II軟核處理器,Nios II系列軟核處理器是Altera的第二代FPGA嵌入式處理器,其性能超過200DMIPS。Nios 處理器核 Nios 處理器系列由三個(gè)不同的內(nèi)核組成,可以靈活地控制成本和性能,從而擁有廣泛的應(yīng)用空間。JTAG調(diào)試模塊 JTAG調(diào)試模塊提供了通過遠(yuǎn)端PC主機(jī)實(shí)現(xiàn)Nios 處理器的在芯片控制、調(diào)試和通訊功能,這是Nios 處理器的一個(gè)極具競(jìng)爭(zhēng)力的特性。用戶指令 開發(fā)人員可以在Nios CPU 核內(nèi)增加硬件,用

18、以執(zhí)行復(fù)雜運(yùn)算任務(wù),為時(shí)序要求緊張的軟件提供加速算法。Avalon交換式總線 Avalon交換式總線在處理器、外圍設(shè)備和接口電路之間實(shí)現(xiàn)網(wǎng)絡(luò)連接,并提供高帶寬數(shù)據(jù)路徑、多路和實(shí)時(shí)處理能力。Avalon交換式總線可以通過調(diào)用SOPC Builder設(shè)計(jì)軟件自動(dòng)生成。通過這些總線,系統(tǒng)可以通過Nios 的Avalon總線來進(jìn)行控制系統(tǒng)的運(yùn)行。啟動(dòng)方案的軟件設(shè)計(jì)目標(biāo)是當(dāng)系統(tǒng)復(fù)位后,在外部處理器向Nios 程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器傳輸數(shù)據(jù)的過程中,Nios 處理器運(yùn)行要受到外部處理器的控制。當(dāng)一切就緒后,外部處理器發(fā)出一條釋放Nios 處理器的命令,接下來Nios 處理器就可以正常運(yùn)行了。軟件部分主要就

19、是存放在啟動(dòng)延遲模塊中ROM的代碼,此代碼主要是檢測(cè)啟動(dòng)延遲模塊中控制寄存器2的第0位是否為1。若為1,則跳轉(zhuǎn)到控制寄存器1中所存儲(chǔ)的地址處執(zhí)行。Nios 處理器通過與FIFO2的通信、使用DMA的方式接受FIFO2存儲(chǔ)器的數(shù)據(jù)并存儲(chǔ)在內(nèi)置RAM中。在接受數(shù)據(jù)之后,我們的系統(tǒng)對(duì)Nios II軟核進(jìn)行編程實(shí)現(xiàn)對(duì)數(shù)據(jù)復(fù)雜的運(yùn)算任務(wù),如頻率,幅值以及采樣頻率的計(jì)算。Nios II軟核在對(duì)數(shù)據(jù)進(jìn)行處理后,送入VGA顯示的RAM中。12.VGA顯示設(shè)計(jì)設(shè)計(jì)中的顯示部分采用了680*460的的顯示器直接顯示通過VGA傳輸?shù)南袼財(cái)?shù)據(jù)。 由于學(xué)校提供的DE2-115 開發(fā)板包含一個(gè)用于 VGA 視頻輸出的 1

20、5 引腳 D-SUB 接頭。故選用板上硬件資源ADV7123芯片。VGA 同步信號(hào)直接由 Cyclone IV E FPGA 所驅(qū)動(dòng),Analog Device 公司的 ADV7123 三通道 10 位(僅高八位連接到 FPGA)高速視頻 DAC 芯片用來將輸出的數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào)(R,G,B)。芯片可支持的分辨率為 SVGA 標(biāo)準(zhǔn)(1280*1024),帶寬達(dá) 100MHz。 設(shè)計(jì)選擇美國(guó)AD公司的ADV7123作為視頻DA轉(zhuǎn)換器。ADV7123是三路高速、10位輸入的視頻DA轉(zhuǎn)換器,具有330MHz的最大采樣速度,與多種高精度的顯示系統(tǒng)兼容,包括RS2343A和RS-170可以廣泛應(yīng)用

21、于如HDTV、數(shù)字視頻系統(tǒng)(1600×1200100Hz)、高分辨率的彩色圖片圖像 處理、視頻信號(hào)再現(xiàn)等,因此能夠滿足我們多方面應(yīng)用需求。下圖是VGA顯示終端接口硬件設(shè)計(jì)原理圖,通過ADV7123產(chǎn)生三路模擬輸出,同時(shí)結(jié)合行場(chǎng)同步信號(hào)完成圖像的顯示。經(jīng)過AD取樣處理后的數(shù)據(jù)會(huì)被存入FPGA的存儲(chǔ)器中,在信號(hào)出現(xiàn)觸發(fā)脈沖之后,就可以開始對(duì)所存儲(chǔ)的數(shù)據(jù)進(jìn)行處理,數(shù)據(jù)處理模塊將采集的數(shù)據(jù)進(jìn)行數(shù)學(xué)運(yùn)算、反相、頻域分析、濾波等處理,及重建波形等。并輸出相應(yīng)顯示的數(shù)字信號(hào)點(diǎn),經(jīng)過ADV7123轉(zhuǎn)換后在顯示屏上相應(yīng)的位置上顯示。13.系統(tǒng)軟件構(gòu)架設(shè)計(jì) 1. Avalon總線Nios系統(tǒng)的所有外設(shè)都

22、是通過Avalon總線與Nios CPU相接的,Avalon總線是一種協(xié)議較為簡(jiǎn)單的片內(nèi)總線,Nios通過Avalon總線與外界進(jìn)行數(shù)據(jù)交換。可分為兩類:Slave和Master。slave是一個(gè)從控接口,而master是一個(gè)主控接口。slave和master主要的區(qū)別是對(duì)于Avalon總線控制權(quán)的把握。master接口具有相接的Avalon總線控制權(quán),而slave接口是被動(dòng)的。常見的Avalon的傳輸結(jié)構(gòu)有:Avalon總線從讀(slave read),Avalon總線帶一個(gè)延遲狀態(tài)從讀,Avalon總線從寫(slave write),Avalon總線帶一個(gè)延遲狀態(tài)從寫。2. nios自定義

23、外設(shè)自定義外設(shè)是SOPC系統(tǒng)靈活性的重要體現(xiàn),是SOPC系統(tǒng)中極其重要的一種設(shè)計(jì)方法。在大量的數(shù)據(jù)常需要處理時(shí),利用自定義外設(shè)由具體的硬件來實(shí)現(xiàn),可以極大程度地提高系統(tǒng)運(yùn)行的速度,同時(shí)便于系統(tǒng)的模塊化與集成化,是SOPC系統(tǒng)設(shè)計(jì)的重中之重。定制的用戶外設(shè)能夠以“硬件加速器”的形式實(shí)現(xiàn)各種各樣用戶要求的功能。典型的Avalon外設(shè)的開發(fā)步驟如下:(1)規(guī)劃元件的硬件功能。若采用微控制器控制該元件,則規(guī)劃訪問該硬件的應(yīng)用程序接口(API);(2)在硬件和軟件要求的基礎(chǔ)上,定義一個(gè)恰當(dāng)?shù)慕涌?一般為Avalon Slave端口);(3)使用硬件描述語言描述硬件邏輯。一個(gè)典型元件的硬件架構(gòu)一般由接口模

24、塊、寄存器文件模塊和行為模塊3部分組成。接口模塊作為頂層模塊,定義總線接口信號(hào);寄存器文件模塊完成該元件與外部信號(hào)的通信,提供訪問與控制元件的邏輯界面;行為模塊實(shí)現(xiàn)元件的硬件功能。我們這里使用的自定義外設(shè)有FIFO,VGA,為了通過NIOS控制外設(shè),必須把它搭載到總線上,這里的總線需要遵循一定時(shí)序。3. sopc builder構(gòu)建內(nèi)核片上可編程系統(tǒng),是Altera公司提出來的一種靈活的,高效的SOC解決方案,它將處理器、存儲(chǔ)器(ROM、RAM等)、總線和總線控制器、IO口、DSP、鎖相環(huán)等集成到一片F(xiàn)PGA中。它具有靈活的設(shè)計(jì)方式,可裁剪,可擴(kuò)充,可升級(jí),并具備軟硬件在系統(tǒng)可編程功能。這里我

25、們使用sopc來構(gòu)建NIOS內(nèi)核,時(shí)間FPGA的軟硬件結(jié)合開發(fā),更能提高項(xiàng)目整體功能。4.軟件設(shè)計(jì)流程可編程邏輯器件FPGA是一種半定制的ASIC,它允許電路設(shè)計(jì)者自行編程實(shí)現(xiàn)特定應(yīng)用的功能。本設(shè)計(jì)采用原理圖輸入和Verilog語言輸入兩種不同的方法,控制單元承載了大部分控制任務(wù),為各個(gè)功能模塊提供相應(yīng)的控制信號(hào)以確保整個(gè)系統(tǒng)工作的正確性。采集存儲(chǔ)系統(tǒng)的作用是將A/D變換后的數(shù)據(jù)存儲(chǔ)到內(nèi)部RAM中,其控制邏輯包括接口、功能控制模塊、采集存儲(chǔ)控制模塊及輸出顯示模塊等。軟件流程圖大致如下:13. Nios II軟件實(shí)現(xiàn)14.1.DMA傳輸DMA方式主要適用于一些高速的I/O設(shè)備。這些設(shè)備傳輸字節(jié)或

26、字的速度非??臁?duì)于這類高速I/O設(shè)備,如果用輸入輸出指令或采用中斷的方法來傳輸字節(jié)信息,會(huì)大量占用CPU的時(shí)間,同時(shí)也容易造成數(shù)據(jù)的丟失。而DMA方式能使I/O設(shè)備直接和存儲(chǔ)器進(jìn)行成批數(shù)據(jù)的快速傳送,而不需CPU干預(yù)。由于CPU根本不參加傳送操作,因此就省去了CPU取指令、取數(shù)、送數(shù)等操作。在數(shù)據(jù)傳送過程中,沒有保存現(xiàn)場(chǎng)、恢復(fù)現(xiàn)場(chǎng)之類的工作。內(nèi)存地址修改、傳送字 個(gè)數(shù)的計(jì)數(shù)等等,也不是由軟件實(shí)現(xiàn),而是用硬件線路直接實(shí)現(xiàn)的。所以DMA方式能滿足高速I/O設(shè)備的要求,也有利于CPU效率的發(fā)揮。本項(xiàng)目中我們只是用到DMA的接收功能,即僅僅打開接收通道,從FIFO的地址不斷傳輸數(shù)據(jù)到內(nèi)部存儲(chǔ)器進(jìn)行存

27、儲(chǔ)。14.1.1.存儲(chǔ)器到存儲(chǔ)器這種情況下需要同時(shí)打開發(fā)送通道和接收通道,而且源地址和目標(biāo)地址都是自增的。tx = alt_dma_txchan_open("/dev/dma_0");/打開發(fā)送通道dma_res = alt_dma_txchan_send(tx, tx_buf, 32, NULL, NULL); / tx_buf是源地址rx = alt_dma_rxchan_open("/dev/dma_0");/打開接收通道dma_res = alt_dma_rxchan_prepare(rx, rx_buf, 32, dma_done, NULL)

28、; / rx_buf是目標(biāo)地址,dma_done()是DMA完成后被調(diào)用的回調(diào)函數(shù)。14.1.2.存儲(chǔ)器到外設(shè)這種情況下只要打開發(fā)送通道,而且源地址是自增的,目標(biāo)地址是固定的。tx = alt_dma_txchan_open("/dev/dma_0"); / 打開發(fā)送通道alt_dma_txchan_ioctl(tx, ALT_DMA_TX_ONLY_ON, (void *)dst_addr); / dst_addr是目標(biāo)地址dma_res = alt_dma_txchan_send(tx, tx_buf, 32, dma_done, NULL); / tx_buf是源地址

29、14.1.3.外設(shè)到存儲(chǔ)器這種情況下只要打開接收通道,而且源地址是固定的,目標(biāo)地址是自增的。rx = alt_dma_rxchan_open("/dev/dma_0"); / 打開接收通道alt_dma_rxchan_ioctl(rx, ALT_DMA_RX_ONLY_ON, (void *)source_addr); / source_addr是源地址dma_res = alt_dma_rxchan_prepare(rx, rx_buf, 32, dma_done, NULL); / rx_buf是目標(biāo)地址其中通過alt_dma_txchan_ioctl,alt_dma_

30、rxchan_ioctl還可以設(shè)置每次發(fā)送和接收的字節(jié)數(shù)。14.2.1.PIO中斷nios的IO中斷用來檢測(cè)水平或垂直靈敏度的開關(guān)狀態(tài),當(dāng)開關(guān)變化,就會(huì)產(chǎn)生一個(gè)上升沿的脈沖,所以IO配置為上升沿捕獲,產(chǎn)生中斷。還有就是用來產(chǎn)生VGA刷新的標(biāo)志。通過alt_irq_register()函數(shù)可以實(shí)現(xiàn)中斷注冊(cè),其函數(shù)原型如下所示:Int alt_irq_register(alt_u32 id, Void* context, Void(*handler)(void*,alt_u32);Id:中斷優(yōu)先級(jí),即表明所注冊(cè)的ISR是為哪個(gè)中斷優(yōu)先級(jí)的中斷服務(wù)的,中斷優(yōu)先級(jí)在SOPC BUILDER中分配。Co

31、ntext:為所注冊(cè)的ISR傳遞參數(shù),可以是NULLHandler:中斷服務(wù)函數(shù)ISR的指針返回值:返回值是0時(shí),表示中斷注冊(cè)成功,為負(fù)數(shù)時(shí),表明中斷注冊(cè)失敗。注意:如果第三個(gè)參數(shù)不是NULL,則該優(yōu)先級(jí)中斷在注冊(cè)成功后自動(dòng)使能。中斷服務(wù)子程序ISR是專門為硬件中斷服務(wù)的子程序。它與普通函數(shù)的定義沒有什么區(qū)別,只是對(duì)ISR的函數(shù)原型有特定的要求:Void ISR_handler(void* context,alt_u32 id);ISR沒有返回值,有兩個(gè)輸入?yún)?shù):Context:可能是要傳遞給ISR的形參,可能是NULL;Id:中斷優(yōu)先級(jí)14.系統(tǒng)的測(cè)試和分析圖(一)單通道、通道一輸入500k

32、Hz的正弦波信號(hào),幅值1.8Vpp圖(二)打開雙通道、顯示通道一輸入500kHz、幅值位1Vp-p的正弦波信號(hào)圖(三)通道一輸入500kHz、幅值位0.25Vp-p的正弦波信號(hào)通道二輸入500kHz、幅值位1Vp-p的正弦波信號(hào)圖(三)通道一輸入500kHz、幅值位1Vp-p的正弦波信號(hào)通道二輸入500kHz、幅值位0.47Vp-p的正弦波信號(hào)圖(四)兩個(gè)通道分別輸入正弦波和三角波的情況圖(五)輸入正弦波和方波的情況 15. 總結(jié) FPGA是一個(gè)極其強(qiáng)大能力的芯片,如同一塊白板,展現(xiàn)設(shè)計(jì)者所想,在這次課設(shè)中也深刻感受到他的魅力。我們團(tuán)隊(duì)拿到的由老師提供的terasic 的DE2-115學(xué)習(xí)開發(fā)

33、板,開發(fā)板性能強(qiáng)悍,價(jià)格也不菲。其配件資源也機(jī)器豐富,在課程的學(xué)習(xí)下,我們決定以設(shè)計(jì)數(shù)字示波器為我們這次的課程設(shè)計(jì)的內(nèi)容,需用到A/D轉(zhuǎn)換功能,即便價(jià)格不低,老師還是提供了給我們相應(yīng)配套開發(fā)板的AD轉(zhuǎn)換板,方便直接使用和學(xué)習(xí)。 在這次隊(duì)伍合作制作示波器的課設(shè)中,也遇到不少的麻煩。但很慶幸課上老師的講解和基礎(chǔ)實(shí)驗(yàn)的訓(xùn)練下,我們對(duì)FPGA開發(fā)板有了個(gè)感性的認(rèn)識(shí),學(xué)會(huì)使用IP核、使用內(nèi)嵌的軟核、基于NIOS的編程系統(tǒng)等。加上老師提供的開發(fā)板的學(xué)習(xí)資料和康奈爾大學(xué)的學(xué)生項(xiàng)目參考,及大便利我們做示波器的課程設(shè)計(jì)。在對(duì)老師給的參考項(xiàng)目了解下,選擇較為合適的設(shè)計(jì)方式,基于我們學(xué)過嵌入式編程課程和實(shí)踐鍛煉,我們決定使用軟硬結(jié)合設(shè)計(jì)此次課設(shè),合理分工,利用Verilog編程建立相應(yīng)的硬件模塊,進(jìn)行信號(hào)的檢測(cè)存儲(chǔ)和處理。創(chuàng)建NIOSII軟核,利用Ecelipe軟件進(jìn)行相應(yīng)的C語言

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論