大俠好,歡迎來(lái)到FPGA技術(shù)江湖,江湖偌大,相見即是緣分。大俠可以關(guān)注FPGA技術(shù)江湖,在“闖蕩江湖”、"行俠仗義"欄里獲取其他感興趣的資源,或者一起煮酒言歡?!爸缶蒲詺g”進(jìn)入IC技術(shù)圈,這里有近100個(gè)IC技術(shù)公眾號(hào)。
一.設(shè)計(jì)概述
1.1 設(shè)計(jì)目的
利用賽靈思公司 A7 系列板卡 EG01、AD9226 模塊和 DAC904 模塊, 制作一個(gè)便攜式、寬頻帶的示波器和 DDS 信號(hào)源,兩者二合一,既能產(chǎn)生信號(hào)波形又可以實(shí)現(xiàn)示波器的基本功能。1.2 應(yīng)用領(lǐng)域
DDS 信號(hào)源可以產(chǎn)生生活中用到的一些基本波形,輸出的信號(hào)具 有頻譜純度高、頻率分辨率高和頻率轉(zhuǎn)換速度快等優(yōu)點(diǎn),該系統(tǒng)可以 廣泛應(yīng)用于通信、雷達(dá)等領(lǐng)域。示波器主要功能即“示波”,把肉眼 看不到的信號(hào)顯示在屏幕上,并測(cè)量出信號(hào)的各種參數(shù),如頻率,幅 值,占空比,頻譜等。本次設(shè)計(jì)把 DDS 信號(hào)源以及示波器結(jié)合起來(lái), 既可以實(shí)現(xiàn)它們的基本功能,也具有便攜式等特點(diǎn)。1.3 適用范圍
(1)DDS 信號(hào)源可以產(chǎn)生任意頻率的方波、正弦波、三角波等基 本波形。(2)示波器具有改變時(shí)基設(shè)置采樣頻率的功能。(3)可以實(shí)現(xiàn)實(shí)時(shí)顯示波形的功能。(4)具有對(duì)波形頻率、占空比、幅值分析的功能。1.4 設(shè)計(jì)實(shí)物
二.示波器與 DDS 信號(hào)源設(shè)計(jì)
2.1 系統(tǒng)介紹
DDS 系統(tǒng)其主要元件有相位累加器、波形存儲(chǔ)器、數(shù)模轉(zhuǎn)換器、 低通濾波器。其中 DDS 關(guān)鍵部分就是相位累加器,外部時(shí)鐘控制相位 累加器讀取數(shù)據(jù)的地址值,通過查表,把地址直接轉(zhuǎn)換成為所需信號(hào) 波形的幅度數(shù)字,再經(jīng)由數(shù)模轉(zhuǎn)換器把信號(hào)波形幅度的數(shù)字序列進(jìn)一 步轉(zhuǎn)化為模擬電壓,最后傳送到低通濾波器。經(jīng)過濾波器處理,將數(shù) 模轉(zhuǎn)換器中不理想的階梯狀波形轉(zhuǎn)化為平滑的所需波形。合成信號(hào)的 正弦波、方波、三角波等波形通過特殊算法處理實(shí)現(xiàn)。示波器系統(tǒng)由 ADC 采樣信號(hào)處理模塊、FFT 頻譜計(jì)算模塊、測(cè)頻 模塊、測(cè)峰峰值模塊、VGA 顯示模塊組成。外部模擬信號(hào)輸入 ADC 采 樣模塊,轉(zhuǎn)化為數(shù)字信號(hào)進(jìn)入 FPGA 系統(tǒng)。數(shù)字信號(hào)引出三路分別給 FFT 模塊、測(cè)頻模塊、測(cè)峰峰值模塊進(jìn)行參數(shù)測(cè)量。引出一路寫進(jìn)一 片雙口 RAM 中,暫存波形數(shù)據(jù),VGA 模塊從雙口 RAM 中讀出波形數(shù)據(jù)。FFT 模塊計(jì)算出頻譜,頻譜數(shù)據(jù)寫 入一片雙口 RAM 中,VGA 模塊讀出 頻譜數(shù)據(jù)。頻率和峰峰值參數(shù)傳給 VGA 顯示模塊。最后 VGA 顯示模塊 把數(shù)據(jù)傳給顯示器顯示。
2.2 各模塊介紹
2.2.1.AD 采樣模塊
我們采用 AD9226,AD9226 是一款 12 位,最高采樣率為 65MHz 的 高速 ADC。在本設(shè)計(jì)中,我們從 FPGA 開放板引出一路 50MHz 的時(shí)鐘 驅(qū)動(dòng) AD9226,作為 AD9226 的采樣時(shí)鐘,即采樣率為 50MHz。
2.2.2.FFT 頻譜計(jì)算模塊
FFT(快速傅里葉變換)其本質(zhì)就是 DFT,只不過可以快速的計(jì) 算出 DFT 結(jié)果,要弄懂 FFT,必須先弄懂 DFT,DFT(Discrete Fourier Transform)即離散傅里葉變換。對(duì)應(yīng)于本設(shè)計(jì),x(n)為經(jīng) ADC 轉(zhuǎn)換后得到的序列, X(k)為對(duì)應(yīng)的頻譜 序列,若 ADC 采樣率為
,序列 x(n)長(zhǎng)度為N ,即采集了 N 個(gè)數(shù)據(jù)點(diǎn), 則 X(k)對(duì)應(yīng)的頻率為k *
/ N , X (0)對(duì)應(yīng)頻率為 0,即直流分量,頻率 分辨率為?f =
/ N 。公式中的x(n)可以為復(fù)信號(hào),實(shí)際當(dāng)中x(n)都是 實(shí)信號(hào),即虛部為 0,此時(shí)公式可以展開為:Magnitude 即 X(k)的幅值,Amplitude 為對(duì)頻率點(diǎn)的幅值大小, 這樣便得到了各個(gè)頻率點(diǎn)的幅度,即幅度譜。本設(shè)計(jì)我們?cè)?Vivado 開發(fā)環(huán)境下使用 Xilinx 提供的 FFT IP 核 進(jìn)行 FFT 運(yùn)算。下面簡(jiǎn)單介紹一下這個(gè) IP 核。這個(gè)IP核有兩個(gè)輸入接口:S_AXIS_DATA和S_AXIS_CONFIG,一個(gè) 輸出接口 M_AXIS_DATA,一個(gè)時(shí)鐘 aclk 和一些相關(guān)標(biāo)志信號(hào)。S_AXIS_DATA 為輸入數(shù)據(jù)接口,控制數(shù)據(jù)輸入的狀態(tài),S_AXIS_CONFIG 為配置接口,M_AXIS_DATA 數(shù)據(jù)輸出接口??刂坪媒涌诤拖嚓P(guān)標(biāo)志信 號(hào),寫 IP 的驅(qū)動(dòng)程序,IP 便可以開始工作,計(jì)算出 FFT 頻譜。驅(qū)動(dòng) 程序見附錄。要用好 FFT IP 核還必須了解它的時(shí)序圖,如下:如圖所示,輸入和輸出數(shù)據(jù)都在 AXI 總線上以流水線的的形式一 幀一幀地輸入輸出。本設(shè)計(jì)我們?cè)O(shè)計(jì)輸入序列的長(zhǎng)度為 2048,即輸 入一幀數(shù)據(jù)為 2048 個(gè),2048 個(gè)數(shù)依次輸入,每過一個(gè)時(shí)鐘周期更新 一次總線上的數(shù)據(jù)。輸出數(shù)據(jù)一幀也為 2048 個(gè),每個(gè)數(shù)據(jù)依次輸出, 每過一個(gè)時(shí)鐘周期更新一次總線上的數(shù)據(jù)。對(duì)應(yīng)于 FFT,輸入序列為 x(n),輸出序列為 X(k),長(zhǎng)度均為 2048。IP核一幀一幀地運(yùn)算,當(dāng) m_axis_data_tvalid 為 1 期間,輸出數(shù)據(jù)有效,每隔一定時(shí)間輸出 一幀有效數(shù)據(jù)。
2.2.3.測(cè)頻模塊
本設(shè)計(jì)采用等精度測(cè)量法測(cè)量輸入信號(hào)頻率。等精度測(cè)量法,主 導(dǎo)思想是利用一個(gè)閥門信號(hào)保證測(cè)量時(shí)間是被測(cè)頻率的整數(shù)倍,對(duì)被 測(cè)頻率和基準(zhǔn)頻率進(jìn)行計(jì)數(shù),利用計(jì)數(shù)值求出被測(cè)頻率,由于測(cè)量誤 差只和基準(zhǔn)頻率和閘門時(shí)間有關(guān),與被測(cè)頻率無(wú)關(guān),故稱為等精度測(cè) 頻。時(shí)序圖如下。預(yù)置閘門到實(shí)際閘門由一個(gè) D 觸發(fā)器實(shí)現(xiàn)。設(shè)標(biāo)準(zhǔn)時(shí)鐘頻率為
,被 測(cè)頻率為
,如時(shí)序圖所示,之間關(guān)系為
,則
。
2.2.4.測(cè)峰峰值模塊
我們通過檢測(cè)輸入 ADC 數(shù)據(jù)的最大值和最小值,測(cè)峰峰值,每隔一段時(shí)間測(cè)一次, 輸出一次。代碼截圖:
2.2.5.VGA 顯示模塊
首先 VGA 就是如今很多顯示器上連接主機(jī)的信號(hào)傳輸接口。有三 排每排 5 個(gè)共 15 個(gè)引腳。如下圖所示:VGA 顏色顯示是 RGB 來(lái)控制的,最高 24 位(即 RGB 各 8 位)、16 位、12 位等,本次實(shí)驗(yàn)采用的是 12 位的 RGB。顯示器的掃描方式是逐行掃描,即掃描像素點(diǎn)從屏幕最左上角開 始,從左向右,從上到下,每行結(jié)束時(shí),用行同步信號(hào)進(jìn)行同步;當(dāng) 掃描完屏幕上所有的點(diǎn),形成一幀,用場(chǎng)同步信號(hào)進(jìn)行場(chǎng)同步,并使 掃描點(diǎn)重新回到屏幕的左上方,同時(shí)進(jìn)行場(chǎng)消隱,開始下一幀。具體 的行同步時(shí)序與場(chǎng)同步時(shí)序如下圖所示:分辨率不同其同步、顯示前沿、顯示后沿、有效數(shù)據(jù)、場(chǎng)掃描周 期、行掃描周期等都有不同,本次實(shí)驗(yàn)采用的是 1024*800 的分辨率, 各個(gè)分辨率以上參數(shù)具體如下:邊框、坐標(biāo)軸、方塊的顯示實(shí)現(xiàn),核心代碼如下圖:每一個(gè)字符都為 8*16,在給定區(qū)域進(jìn)行顯示,具體代碼如下:對(duì)需要顯示的頻率數(shù)字進(jìn)行調(diào)用,代碼如下:
2.2.6 相位累加器模塊
相位累加器可以外部時(shí)鐘信號(hào)的控制下產(chǎn)生讀取數(shù)據(jù)的地址值, 然后通過查表法,把地址直接轉(zhuǎn)化為所需信號(hào)波形的數(shù)字幅度序列。
2.2.7 波形存儲(chǔ)器模塊
波形存儲(chǔ)器也被稱之為正弦查詢表,它的主要功能是在任何一個(gè) 參考時(shí)鐘周期內(nèi),都可以把從上一級(jí)傳輸過來(lái)的相位二進(jìn)制碼信息作 為地址,讀取查詢表中的相應(yīng)地址對(duì)應(yīng)的幅值二進(jìn)制碼信息。當(dāng)收到上一級(jí)相位累加器傳輸過來(lái)的相位二進(jìn)制碼信息時(shí),將其 作為地址來(lái)讀取內(nèi)部對(duì)應(yīng)的預(yù)先存好的存儲(chǔ)內(nèi)容即標(biāo)準(zhǔn)信號(hào)的幅值 二進(jìn)制碼信息,并將這個(gè)幅值信息的 D 位二進(jìn)制碼傳送給下一級(jí)。
2.2.8 低通濾波器模塊
低通濾波器(Low Pass Filter,LPF)主要是將上級(jí)(D/A 轉(zhuǎn)換 器)輸出的階梯形的正弦信號(hào)進(jìn)行平滑處理,去除混疊的、無(wú)用的雜 散分量,使輸出信號(hào)更為純凈,波形變得更為平滑。
完成情況及性能參數(shù)
3.1.DDS 信號(hào)源測(cè)試
此次設(shè)計(jì)的 DDS 信號(hào)源系統(tǒng)可以無(wú)失真穩(wěn)定產(chǎn)生波形頻率范圍為 1HZ 至 2MHZ。(頻率分辨率為 1HZ),1HZ、2KHZ、1MHZ 的正弦、方波、三角波如下圖 所示:
3.2.示波器部分
示波器的時(shí)基變換,波形的上下左右移動(dòng)因不方便截圖,在視頻中均有演示。
四、總結(jié)
4.1 主要?jiǎng)?chuàng)新點(diǎn)
本次設(shè)計(jì)完成了一個(gè)基于 FPGA 的 DDS 信號(hào)源與示波器的混合系統(tǒng),其主要?jiǎng)?chuàng)新點(diǎn)如下:1.該系統(tǒng)為便攜式 DDS 信號(hào)源與示波器的混合系統(tǒng),將 DDS 信號(hào)源與示波器整合在一起,更高效率的利用了 FPGA 片上資源。2.采用等精度測(cè)量法對(duì)頻率進(jìn)行測(cè)量,其頻率測(cè)量誤差小于0.01 %。3.自主設(shè)計(jì) FPGA 拓展板,使系統(tǒng)的體積更小,整個(gè)系統(tǒng)更加穩(wěn)定,便攜性大大提高。
4.2 可擴(kuò)展之處
由于開發(fā)時(shí)間有限,因此目前的系統(tǒng)還有許多可改進(jìn)和擴(kuò)展之處:1.此次設(shè)計(jì)的示波器功能可以增加一路或多路數(shù)據(jù)通道,可以實(shí)現(xiàn)多個(gè)波 形的顯示。2.優(yōu)化波形顯示系統(tǒng),可以對(duì)濾波算法進(jìn)行進(jìn)一步改進(jìn),從而提高波形平 滑率。3.優(yōu)化 FPGA 算法,提升片上資源利用率,比如在字符顯示模塊,占用了較多的寄存器資源,因而后期會(huì)針對(duì)性的完善這個(gè)模塊,提高資源利用率。4. DDS 信號(hào)源暫時(shí)只能產(chǎn)生頻率、幅值可調(diào)的正弦、方波、三角波等,后期會(huì)完善其功能,增加產(chǎn)生調(diào)頻、調(diào)幅波功能。【免費(fèi)】FPGA工程師招聘平臺(tái)
簡(jiǎn)談FPGA設(shè)計(jì)中系統(tǒng)運(yùn)行頻率計(jì)算方法與組合邏輯的層級(jí)
SANXIN-B01開發(fā)板verilog教程V3電子版
學(xué)員筆記連載 | FPGA Zynq 千兆以太網(wǎng)回環(huán)
求職面試 | FPGA或IC面試題最新匯總篇
FPGA項(xiàng)目開發(fā):204B實(shí)戰(zhàn)應(yīng)用-LMK04821代碼詳解(二)
項(xiàng)目合作 | 承接FPGA項(xiàng)目公告
FPGA技術(shù)江湖廣發(fā)江湖帖
無(wú)廣告純凈模式,給技術(shù)交流一片凈土,從初學(xué)小白到行業(yè)精英業(yè)界大佬等,從軍工領(lǐng)域到民用企業(yè)等,從通信、圖像處理到人工智能等各個(gè)方向應(yīng)有盡有,QQ微信雙選,F(xiàn)PGA技術(shù)江湖打造最純凈最專業(yè)的技術(shù)交流學(xué)習(xí)平臺(tái)。
FPGA技術(shù)江湖微信交流群
加群主微信,備注姓名+公司/學(xué)校+崗位/專業(yè)進(jìn)群
FPGA技術(shù)江湖QQ交流群
備注姓名+公司/學(xué)校+崗位/專業(yè)進(jìn)群