• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于DDS技術和FPGA的高精度任意波形發(fā)生器設計

    2022-06-10 04:50:12陳華敏
    南陽理工學院學報 2022年2期
    關鍵詞:示波器上位串口

    曹 婷, 陳華敏

    (南陽理工學院信息工程學院 河南 南陽 473000)

    0 引言

    信號發(fā)生器是一種可以產(chǎn)生重復或者不重復頻率電子信號的設備儀器,廣泛用于日常科研、醫(yī)療、通信、機械、航天工程以及各種維修工程,是一種常見的信號產(chǎn)生源。類似功能的還有數(shù)字型采樣器、訊號產(chǎn)生器、影像信號產(chǎn)生器[1]。自20世紀60年代以來,信號發(fā)生器得到迅速的發(fā)展,無論是國內(nèi)還是國外,均對此進行了大量的研究,相繼出現(xiàn)了掃描類信號發(fā)生器、程控信號發(fā)生器、合成信號發(fā)生器等新型種類[2]。

    傳統(tǒng)的信號發(fā)生器因含有較多模擬器件,結構復雜,體積重量龐大,功耗很高,同時普遍存在精度不高、頻率切換速度低等缺點。隨著通信技術、衛(wèi)星定位系統(tǒng)、精密機械控制以及航空航天測控等領域對測控技術要求不斷提高,對信號發(fā)生器的穩(wěn)定度、精確度和頻率帶寬等要求越來越高,而傳統(tǒng)振蕩器由于產(chǎn)生的頻率信號精度不高、太單一或者只能在較小范圍內(nèi)調(diào)節(jié)頻率,不能滿足要求。利用頻率合成技術就是解決該問題的最好方法之一。直接數(shù)字頻率合成技術 DDS ( Direct Digital Synthesizer) 是把一系列數(shù)字信號通過 D/A 轉換器轉換為模擬信號的合成技術,能夠在頻率帶寬比較寬的范圍內(nèi)實現(xiàn)比較高的頻率分辨率,不僅可以實現(xiàn)快速頻率切換,并且在頻率改變時能夠保持相位的連續(xù),比較容易實現(xiàn)頻率、相位和幅度的數(shù)控調(diào)制[3,4]。本文利用直接數(shù)字合成技術,結合FPGA的IP核心優(yōu)勢,設計了一個可以產(chǎn)生任意波形的信號發(fā)生器。

    1 系統(tǒng)總體設計

    1.1 系統(tǒng)分析

    DDS的基本工作原理是以基準頻率源對相位進行等間隔的采樣。其波形存儲器(即ROM查詢表)必須提前生成該波形對應的ROM儲存塊,并且不能在使用過程中切換任意波形[5]。一般的DDS整體框架如圖1所示。這種設計方法使用的波形是DDS事先儲存好的波形,并不能實現(xiàn)真正意義上的比如像隨機數(shù)噪聲波的類似波形,局限性很大。

    圖1 常見DDS信號發(fā)生器原理框圖

    1.2 方案設計

    如果要實現(xiàn)在使用過程中任意更改波形,就應該使用IP核中的RAM而且是雙口RAM,因為它具有在讀寫時可進行異步分離,兩者互不相干的特點,極大地方便了設計。這種設計方法核心控制由FPGA操控,復雜數(shù)據(jù)運算由上位系統(tǒng)運算結束后,再由串行接口回發(fā)至FPGA,F(xiàn)PGA根據(jù)接收到的回發(fā)數(shù)據(jù)與指令來進行頻率和波形的具體調(diào)控。理論上,只要給出需要顯示的波形周期數(shù)據(jù),在一定頻率范圍內(nèi),對任意波形的實現(xiàn)是完全可調(diào)控的。

    根據(jù)采樣定理,所能得到的最大不失真頻率應當是采樣頻率的0.5倍[6]。為了即時生成波形數(shù)據(jù)并寫入至FPGA的RAM中,可以在上位系統(tǒng)中即時根據(jù)波形方程直接計算數(shù)據(jù)寫入RAM中,因為控制臺接收的數(shù)據(jù)是一系列字符串,可以采用Mathematica Kernel將字符串轉化為函數(shù),利用外部平臺調(diào)用內(nèi)核計算并返回給上位機系統(tǒng),PC上位軟件解析框圖如圖2所示。

    圖2 PC上位軟件解析框圖

    2 波形發(fā)生器設計

    2.1 上位機設計

    2.1.1 串口編程軟件的選擇

    開發(fā)上位機有多種選擇,可以用Matlab、Mathematica、Python、Labview開發(fā),或者采用編程語言C/C++、VB、C#開發(fā)。每種開發(fā)方式都有自身的優(yōu)勢,本設計采用C#開發(fā)上位機。

    2.1.2 頻率控制字計算

    如果直接使用FPGA計算頻率控制字,無論是VHDL還是Verilog HDL均不存在直接計算浮點除法的方法,且整數(shù)除法運算時間長,一個周期內(nèi)不一定計算完畢。FPGA的優(yōu)勢在于并行計算,故應充分利用FPGA的核心優(yōu)勢,模塊的頻率控制字由上位軟件負責計算,再借由C#將數(shù)據(jù)進行分割處理。

    由于串口無法一次接收32位數(shù)據(jù),所以需要對數(shù)據(jù)進行分割,之后利用FPGA在內(nèi)部接收后對其整合即可得到一個完整的頻率控制字。

    2.1.3 波形方程回調(diào)設計

    上位機核心設計是由上位機提供方程給內(nèi)核,由內(nèi)核代為計算,計算完畢回調(diào)給上位機,上位機將數(shù)據(jù)處理后再利用串口發(fā)送至下位機。

    本模塊設計使用的是Mathematica內(nèi)核,并采用C#調(diào)用。利用Mathematica實現(xiàn)多種波形諸如正弦波、方波、階梯波、三角波等,還可利用隨機數(shù)產(chǎn)生隨機噪聲波,給出任意方程均可轉換為對應的波形數(shù)據(jù)。

    2.1.4 上位機各模塊設計

    上位機模塊由波形生成模塊、調(diào)節(jié)頻率模塊、DDS狀態(tài)顯示模塊、波形狀態(tài)顯示模塊組成。使用WPF技術,采用XAML擴展標記語言來制作界面,利用C#編寫后臺邏輯,借助WPF技術致使界面與后臺完全分離。

    上位機程序的核心操作有狀態(tài)接收和頻率寫入兩種。狀態(tài)接收模塊主要接收下位機指令,在本設計中0x01是寫波形模式,0x10是寫頻率模式。頻率寫入模塊存在兩種頻率調(diào)節(jié)方式,范圍調(diào)節(jié)與精確調(diào)節(jié)。波形生成模塊是借由內(nèi)核計算,用于生成各類波形所準備。頻率調(diào)節(jié)模塊用于將實際頻率轉化為FPGA可進行相位累加的32位頻率控制字,具有在一個確定范圍調(diào)節(jié)抑或是給定頻率兩種方式。狀態(tài)顯示模塊用于顯示當前設備的狀態(tài),包括但不限于DDS狀態(tài)、波形頻率、波形類型等。

    2.2 下位機設計

    2.2.1 串行端口模塊

    串行端口模塊主要包括發(fā)送模塊和接收模塊兩部分。發(fā)送模塊是利用FPGA向串口發(fā)送測試數(shù)據(jù)。為了便于觀察結果,將發(fā)送模塊與接收模塊連接測試,baud_set即為波特率選擇輸入,默認空載波特率為9600 bps,產(chǎn)生4種常用波特率,為了便于觀察結果,將發(fā)送模塊與接收模塊連接測試,這樣發(fā)送的數(shù)據(jù)可以直接利用RX端接收,測試方法如圖3所示,在串口調(diào)試助手中測試結果如圖4所示。

    圖3 串口短接原理圖

    圖4 串口短接測試

    2.2.2 DDS控制模塊

    DDS控制模塊是本設計的核心,包括核心控制模塊、相位累加模塊以及雙口RAM讀寫模塊[7]。

    所謂直接數(shù)字頻率合成技術,即結合相位累加概念,利用相位累加特性生成所需使用波形的一種新型頻率合成技術,利用該技術可以方便地調(diào)控頻率、幅值和相位[8]。DDS輸出信號的頻率計算公式為

    (1)

    Fout為輸出頻率,B為頻率控制字,F(xiàn)dk為時鐘頻率。

    如果時鐘頻率Fdk=50 MHz,N= 8,B= 1,ROM所得到的輸出波形頻率Fout為195.3125 kHz。

    頻率控制字由PC上位機計算,計算后利用串口回發(fā)至FPGA,F(xiàn)PGA將其儲存在一個32位寄存器內(nèi)部。根據(jù)RS232協(xié)議,所以需要將頻率控制字轉化為32位16進制數(shù)再將其分割為4個8位16進制數(shù),按照順序依次發(fā)送至FPGA的寄存器內(nèi)部,寄存器根據(jù)數(shù)據(jù)接收先后將其整合為32位16進制數(shù),再傳輸至DDS控制核心,接收成功后再利用此數(shù)據(jù)進行相位累加位[9]。對頻率控制字的測試電路原理圖如圖5所示。

    圖5 頻率控制字測試電路

    使用串口助手對該測試電路進行測試,如圖6所示。

    圖6 利用助手向串口發(fā)送4個8位16進制數(shù)

    為了檢驗數(shù)據(jù)是否接收成功,在實際使用之前,可采用邏輯分析儀與Modelsim進行仿真。本設計仿真測試均采用SignalTap II測試,測試結果如圖7所示。

    圖7 邏輯分析儀采樣結果

    從圖7中可以看出程序正確讀取了從串口接收到的數(shù)據(jù),并將其整合為32位16進制數(shù)據(jù)。

    2.2.3 雙口RAM讀寫模塊

    傳統(tǒng)的DDS波形儲存一般使用的是ROM,無法實現(xiàn)在器件運行期間更改波形,雙口RAM可以解決這個問題,因其具有異步讀寫的功能。

    使用quartus提供的IP核,例化一個擁有256數(shù)據(jù)深度,異步數(shù)據(jù)讀寫,8位地址寬度,M9K儲存類型的雙口RAM。雙口RAM用于接收來自PC發(fā)送的數(shù)據(jù),利用RAM將波形數(shù)據(jù)儲存在其內(nèi)部,再使用相位累加將其從RAM中都取出來,經(jīng)過D/A轉化就可以生成一個完整的波形位[10]。

    2.2.4 下位機頂層設計

    下位機主程序采用模塊化設計,模塊利用Rx輸入端口接收來自上位機發(fā)送的數(shù)據(jù),若接收到的是0x01則開啟DDSEND模塊的RAM功能,0x10則開啟UARTD的頻率控制字接收功能;Tx輸出端口負責發(fā)送指令通知上位機,SIMG模塊負責動態(tài)掃描顯示,接收到0x01時數(shù)碼管顯示01,接收到0x10時數(shù)碼管顯示10,初始化與復位時數(shù)碼管顯示0F,且功能切換是利用兩個key_fitler按鍵掃描模塊所實現(xiàn)。

    3 實時數(shù)據(jù)采樣波形分析

    3.1 常用輸出波形

    仿真測試采用邏輯分析儀Signal Tap Logic對系統(tǒng)進行采樣分析,為了觀察波形,應將采樣數(shù)據(jù)轉化為無符號的線性圖,這樣就可以將采樣的數(shù)據(jù)轉化為圖形。設置邏輯分析儀的數(shù)據(jù)采樣深度為1024個采樣點,采樣頻率為板載頻率50 MHz。為了觀察到完整的波形,首先在頻率控制寄存器內(nèi)部寫入檢測頻率0.25 MHz,之后再寫需要顯示的波形,采用邏輯分析儀Signal Tap II對系統(tǒng)進行采樣分析,得到的典型的正弦波如圖8所示。

    圖8 正弦波 Signal Tap II 實時數(shù)據(jù)采樣波形圖

    由圖9可以觀察到,邏輯分析儀清晰地顯示了輸出端口的波形,本設計選擇0.25 MHz作為典型頻率是因為邏輯分析儀采樣點數(shù)有限且采樣頻率取決于使用的采樣時鐘,若典型頻率過低則1024個點會采集不到完整的一個波形,頻率過高波形又太密集,所以就使用一個觀察采樣點效果較好的頻率,為了分析本設計的性能,利用邏輯分析儀采集常用的幾類波形,生成的正弦波光滑整潔,幾乎沒有毛刺,無論是正弦波、方波、三角波還是階梯波均顯示效果良好。

    3.2 復合函數(shù)式輸出波形

    圖9 由三角波與正弦波合成的波形

    采用上位機的任意波形生成模式,生成一個由方波與三角波合成的復合型函數(shù)式波形如圖10所示,函數(shù)方程為

    3.3 任意輸出波形

    除了常用的基礎波形,大多數(shù)波形均不具備函數(shù)表達式。如手動編輯的波形、隨機數(shù)波形、音頻波形、自然波形等。這時就需要借用波形數(shù)據(jù)來產(chǎn)生對應波形。

    圖10 由方波與三角波合成的波形

    本文設計思路是利用函數(shù)表達式生成固定的256個波形周期數(shù)據(jù)再發(fā)送至DDS用于顯示波形,最終得到的波形取決于波形數(shù)據(jù)而非方程。利用Wolfram的隨機數(shù)發(fā)生函數(shù),產(chǎn)生256個隨機數(shù)并發(fā)送至FPGA,使用Signal Tap II采集數(shù)據(jù)如圖11所示。

    圖11 隨機數(shù)波形

    3.4 手繪波形

    手繪波形也是產(chǎn)生波形的一種方式,本設計通過FPGA的ROM工具MifMake手繪出波形,利用生成的*.mif文件作處理后提取出相應的數(shù)據(jù)發(fā)送至FPGA用于顯示,顯示結果如圖12所示。

    圖12 手繪波形 Signal Tap II 實時數(shù)據(jù)采樣波形圖

    可以看出,手繪波形的顯示效果很好,因為DDS的D/A模塊處理的數(shù)據(jù)范圍為0~255,故可以直接利用波形數(shù)據(jù)的上下限來調(diào)節(jié)波形的幅值。

    3.5 示波器顯示

    為了查看實際效果,用示波器來查看輸出波形。實際性能除了與采樣深度有一定的聯(lián)系外,實際使用時還應當結合D/A轉換器以及高通濾波器。

    本設計使用D/A芯片是AD公司所生產(chǎn)的AD9708,濾波器是帶寬為40 MHz的七階巴特沃斯濾波器。AD9708擁有128 MSPS的采樣頻率,實測在保證波形不失真的情況下,頻率最大可達到1.95313 MHz。且波形頻率在0~2 MHz時示波器顯示效果良好,未出現(xiàn)明確失真。經(jīng)過計算得數(shù)字頻率誤差率小于1.2%。且經(jīng)過濾波器過濾高頻信號,整體波形顯示平滑,顯示效果很好,截止頻率優(yōu)良,帶寬高,且具有優(yōu)良的抗干擾特性。信號發(fā)生器連接示波器顯示效果如圖13所示。

    圖13 信號發(fā)生器連接示波器示意圖

    為了檢測各種頻率下波形的顯示效果,使用數(shù)字示波器檢測各類波形的結果如圖14至圖16所示。

    圖14 頻率為500 KHz的三角波

    圖15 頻率為3.8 MHz的正弦波

    圖16 頻率為1200 Hz的復合式波形

    從示波器中可以看出,無論是基礎波形還是復合波形,整體波形顯示平滑,波形均未出現(xiàn)失真,帶寬高,具有優(yōu)良的抗干擾特性,顯示效果很好。表1是各種波形理論值和實測值對比及誤差率統(tǒng)計。

    理論上波形的輸出范圍在-5~5 V(10 Vpp),但由于模塊使用的5 K電位器精度不足,故在頻率過高時會出現(xiàn)消頂誤差,誤差率小于3.5%,且只有在頻率超過37 MHz時才會出現(xiàn)。串口的通訊速度為9600 bps,根據(jù)計算,在該速度下切換一次頻率所需要的時間為4.58 ms,切換一次波形所需要的時間為0.29 s。

    表1 各種波形理論值和實測值對比及誤差率

    與普通的信號發(fā)生器相比,基于FPGA的以DDS為核心技術的信號發(fā)生器能夠靈活產(chǎn)生更加精準穩(wěn)定、更寬頻率范圍的正弦波、方波、三角波和鋸齒波等信號。

    4 結論

    本設計彌補了DDS芯片的短板,利用RAM代替ROM。配合專用的上位機,可實現(xiàn)高帶寬,高精度的任意波形,結合D/A模塊可以方便地進行幅度調(diào)節(jié),且在示波器上顯示效果直觀,信號純度好。使用FPGA芯片,結合它的并行運算,高執(zhí)行速度,豐富的IP軟核等優(yōu)勢來設計的信號發(fā)生器無論是速度,性能還是在易用性上均優(yōu)于使用MCU所制作的信號發(fā)生器。

    猜你喜歡
    示波器上位串口
    淺談AB PLC串口跟RFID傳感器的通訊應用
    特斯拉 風云之老阿姨上位
    車迷(2018年12期)2018-07-26 00:42:22
    一款教學示波器的Y通道設計與實現(xiàn)
    電子制作(2017年13期)2017-12-15 09:00:08
    可攜帶式虛擬雙蹤示波器
    電子制作(2017年20期)2017-04-26 06:57:46
    “三扶”齊上位 決戰(zhàn)必打贏
    基于ZigBee和VC上位機的教室智能監(jiān)測管理系統(tǒng)
    USB接口的多串口數(shù)據(jù)并行接收方法探索
    基于藍牙串口適配器的GPS接收機與AutoCAD的實時無線通信
    地礦測繪(2015年3期)2015-12-22 06:27:26
    以新思路促推現(xiàn)代農(nóng)業(yè)上位
    學習月刊(2015年3期)2015-07-09 03:51:04
    基于并行控制的FPGA多串口拓展實現(xiàn)
    乌什县| 北宁市| 林周县| 湘潭市| 邹平县| 兴安盟| 潞西市| 渑池县| 河津市| 遵义市| 榆树市| 元谋县| 泗洪县| 平阳县| 长顺县| 罗源县| 乌兰县| 南城县| 毕节市| 新营市| 铅山县| 贞丰县| 宽城| 克东县| 苍溪县| 和田市| 长治县| 英山县| 沾益县| 阿坝| 南宫市| 葫芦岛市| 淮阳县| 平原县| 淮滨县| 九江市| 平江县| 河源市| 瓦房店市| 蕉岭县| 滨州市|