99在线精品免费视频九九视-99在线精品视频-99在线精品视频免费观里-99在线精品视频在线观看-99在线免费播放



官方論壇
官方淘寶
官方博客
微信公眾號(hào)
點(diǎn)擊聯(lián)系吳工 點(diǎn)擊聯(lián)系周老師
您的當(dāng)前位置:主頁 > 高級(jí)實(shí)訓(xùn)案例 >

【至簡(jiǎn)設(shè)計(jì)案例系列】波形相位頻率可調(diào)DDS信號(hào)發(fā)生器

發(fā)布時(shí)間:2020-03-25   作者:admin 瀏覽量:
  本文為明德?lián)P原創(chuàng)及錄用文章,轉(zhuǎn)載請(qǐng)注明出處

1.1 總體設(shè)計(jì)

      1.1.1 概述

     學(xué)習(xí)了明德?lián)P至簡(jiǎn)設(shè)計(jì)法和明德?lián)P設(shè)計(jì)規(guī)范,本人設(shè)計(jì)了一個(gè)基于FPGA的可調(diào)頻調(diào)相而且可以輸出不同波形的DDS信號(hào)發(fā)生器。該信號(hào)發(fā)生器實(shí)現(xiàn)了通過按鍵控制輸出不同類型的波形,并可以通過按鍵改變波形頻率和初始相位。將此設(shè)計(jì)與明德?lián)P的波形采集設(shè)計(jì)相結(jié)合,可以實(shí)現(xiàn)示波器功能,并且還可拓展實(shí)現(xiàn)波形頻率計(jì)算、峰峰值計(jì)算、頻譜分析等功能,有很大的設(shè)計(jì)空間。同時(shí)本設(shè)計(jì)以及其擴(kuò)展功能在現(xiàn)實(shí)生活中也具有比較廣泛的應(yīng)用。在本案例的設(shè)計(jì)過程中,包含了按鍵定義和消抖、計(jì)數(shù)器、ROMIP的應(yīng)用等技術(shù)。經(jīng)過逐步改進(jìn)、調(diào)試等一系列操作之后,完成了此設(shè)計(jì),下面將完整的設(shè)計(jì)記錄與大家分享。

      1.1.2 設(shè)計(jì)目標(biāo)

      此設(shè)計(jì)可以通過按鍵進(jìn)行波形類型的切換,并且波形的頻率還可以進(jìn)行改變,具體需求如下:

1)按鍵1按下時(shí)可以改變波形的類型,實(shí)現(xiàn)波形的切換,順序?yàn)檎也ā忼X波、三角波;
2)按鍵2按下時(shí)可以改變波形的頻率,每按下一次,頻率增大2倍,達(dá)到一定值后跳回初始頻率值,以此循環(huán);
3)按鍵3按下時(shí)可以改變波形的初始相位,每按下一次,初始相位加30,達(dá)到一定值后跳回初始相位值,以此循環(huán)。

      1.1.3 系統(tǒng)結(jié)構(gòu)框圖

   系統(tǒng)結(jié)構(gòu)框圖如下所示:

      1.1.4 模塊功能
  • 按鍵模塊實(shí)現(xiàn)功能
  • 將外來異步信號(hào)打兩拍處理,將異步信號(hào)同步化;
實(shí)現(xiàn)20ms按鍵消抖功能,并輸出有效按鍵信號(hào)。

  • DDS模塊實(shí)現(xiàn)功能
  • 通過有效按鍵信號(hào)實(shí)現(xiàn)切換波形類型、改變波形頻率、調(diào)整波形初始相位;
從ROM中讀取波形數(shù)據(jù)并輸出按鍵控制下的波形數(shù)據(jù)。

    1.1.5 信號(hào)定義
  • 頂層模塊mdy_DDS.v
信號(hào)
定義
clk
系統(tǒng)時(shí)鐘
rst_n
低電平復(fù)位信號(hào)
key_in
按鍵輸入
dadata
波形數(shù)據(jù)


  • 按鍵模塊key_delay.v

信號(hào)
定義
clk
系統(tǒng)時(shí)鐘
rst_n
低電平復(fù)位信號(hào)
key_in
按鍵輸入
key_done
有效按鍵

  • DDS模塊DDS.v
信號(hào)
定義
clk
系統(tǒng)時(shí)鐘
rst_n
低電平復(fù)位信號(hào)
key_done
有效按鍵
dadata
波形數(shù)據(jù)
i
頻率控制字
phase
相位控制字

      1.1.6 工作原理



          在系統(tǒng)整體結(jié)構(gòu)中,通過按鍵控制輸出波形類型,并通過按鍵改變波形頻率控制字和初始相位控制字,得到ROM的讀地址。ROM為只讀存儲(chǔ)器,只要給它一個(gè)地址,就能讀出該地址中相應(yīng)的數(shù)據(jù),從已經(jīng)初始化好的ROM讀取相應(yīng)的波形數(shù)據(jù)。

     DDS的原理如下圖,累加器每次累加一個(gè)頻率控制字,調(diào)節(jié)頻率控制字的數(shù)值,可以改變累加器的累加速度,進(jìn)而可以調(diào)節(jié)從ROM查找表中讀取波形數(shù)據(jù)的速度。即頻率控制字越大,頻率越高。相位控制字可以用來調(diào)節(jié)初始相位,即ROM地址自加的初始值。

   1.2 按鍵電路


       1.2.1 按鍵電路









     獨(dú)立式按鍵工作原理如上圖所示,4條輸入線接到FPGA的IO口上,當(dāng)按鍵K1按下時(shí),VCC通過電阻R1再通過按鍵K1最終進(jìn)入GND形成一條通路,這條線路的全部電壓都加在R1上,則引腳P14是低電平。當(dāng)松開按鍵后,線路斷開,就不會(huì)有電流通過,P14和VCC就應(yīng)該是等電位,為高電平。我們可以通過P14這個(gè)IO口的高低電平狀態(tài)來判斷是否有按鍵按下。其它按鍵原理與K1一致。

     從圖中可以看出,如果我們按下按鍵,那么按鍵就會(huì)接通并連接到低電平GND,如果我們沒有按下,那么按鍵就會(huì)斷開并接到VCC,因此按鍵為低電平有效。通常的按鍵所用開關(guān)為機(jī)械彈性開關(guān),當(dāng)機(jī)械觸點(diǎn)斷開或者閉合時(shí),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)按鍵開關(guān)在閉合時(shí)不會(huì)馬上穩(wěn)定地接通,在斷開時(shí)也不會(huì)一下子斷開。因而機(jī)械式按鍵在閉合及斷開的瞬間均伴隨有一連串的抖動(dòng),如果不進(jìn)行處理,會(huì)使系統(tǒng)識(shí)別到抖動(dòng)信號(hào)而進(jìn)行不必要的反應(yīng),導(dǎo)致模塊功能不正常,為了避免這種現(xiàn)象的產(chǎn)生,需要進(jìn)行按鍵消抖的操作。

     1.2.2 按鍵消抖
      
      按鍵消抖主要分為硬件消抖和軟件消抖。兩個(gè)“與非”門構(gòu)成一個(gè)RS觸發(fā)器為常用的硬件消抖。軟件方法消抖,即檢測(cè)出鍵閉合后執(zhí)行一個(gè)延時(shí)程序,抖動(dòng)時(shí)間的長短由按鍵的機(jī)械特性決定,一般為5ms~20ms,讓前沿抖動(dòng)消失后再一次檢測(cè)鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,則確認(rèn)按下按鍵操作有效。當(dāng)檢測(cè)到按鍵釋放后,也要給5ms~20ms的延時(shí),待后沿抖動(dòng)消失后才能轉(zhuǎn)入該鍵的處理程序。經(jīng)過按鍵消抖的行人優(yōu)先按鍵,判斷按鍵有效后,按鍵信號(hào)傳遞給控制系統(tǒng),控制系統(tǒng)再進(jìn)入相應(yīng)的處理程序。如還不明白之處,見實(shí)驗(yàn)的PDF。







圖5.1.2按鍵消抖示意圖

      1.2.3 按鍵消抖代碼實(shí)現(xiàn)

      
      使用明德?lián)P的計(jì)數(shù)器模板,可以很快速很熟練地寫出按鍵消抖模塊。

      每20ms掃描一次按鍵輸入key_in,可以達(dá)到消抖的目的,再用寄存器緩存一下,按鍵為低電平有效;所以檢測(cè)當(dāng)檢測(cè)到按鍵有下降沿變化時(shí),代表該按鍵被按下,按鍵有效,輸出1。

代碼如下:

  



   1.3 DDS模塊設(shè)計(jì)



           1.3.1 控制波形類型

      消抖過后的按鍵輸入到本模塊,同樣使用明德?lián)P至簡(jiǎn)設(shè)計(jì)法和計(jì)數(shù)器模板,可以秒速寫出控制波形類型的代碼。按鍵1每按下一次,即key_done[0]有效時(shí),wave_cnt加1,加到3時(shí)歸0,否則保持不變。wave_cnt為0時(shí)輸出正弦波,1時(shí)輸出三角波,2時(shí)輸出鋸齒波,默認(rèn)時(shí)輸出正弦波;至簡(jiǎn)設(shè)計(jì)法和計(jì)數(shù)器模板有多好用,越用越絕精妙。

完整代碼如下:

     
     1.3.2 改變波形頻率
      
      話不多說,反手又是一個(gè)明德?lián)P計(jì)數(shù)模板。按鍵2每按下一次,即key_done[1]有效時(shí),i乘以2,加到64時(shí)歸0,否則保持不變。這里通過i可以改變頻率的原理是ROM中512個(gè)數(shù)據(jù)為一個(gè)周期,i等于1的話,采集一個(gè)周期需要512次,clk/512即為頻率,i為2時(shí),只需要采集256次即完成一個(gè)周期,頻率為clk/256。

      當(dāng)然也可以直接通過分頻改變clk,從而達(dá)到改變頻率的效果。

      完整代碼如下:


     1.3.3 改變波形相位

      依舊是百用不厭的計(jì)數(shù)器模板,按鍵3每按下一次,即key_done[2]有效時(shí),初始相位加30,加到360時(shí)歸0,否則保持不變。達(dá)到改變相位的目的。

      因此,通過至簡(jiǎn)設(shè)計(jì)法、計(jì)數(shù)器模板,可以輕松達(dá)到設(shè)計(jì)目標(biāo)。

完整代碼如下:


     1.3.4 mif文件的生成

      程序中我們會(huì)用到一個(gè)ROM用于存儲(chǔ)512個(gè)8位的波形數(shù)據(jù),首先我們需要準(zhǔn)備ROM的初始化文件(mif文件)。以下為生成正弦波數(shù)據(jù)mif文件的方法:首先打開Guagle_wave工具,選擇菜單"查看"->”全局參數(shù)設(shè)置”,設(shè)置參數(shù)如下:



       調(diào)用ROMIP核,并將mif導(dǎo)入ROM,其他波形同理。


     1.4 在線邏輯分析儀查看波形數(shù)據(jù)


  • 不同頻率正弦波:




  • 三角波


  • 鋸齒波


      觀看上面的現(xiàn)象,可以發(fā)現(xiàn),各項(xiàng)功能正常,可以通過按鍵改變波形類型、頻率、相位,成功完成設(shè)計(jì)目標(biāo)。

      在這個(gè)設(shè)計(jì)案例中,至簡(jiǎn)設(shè)計(jì)法和明德?lián)P計(jì)數(shù)器模板發(fā)揮了至關(guān)重要的作用,使我能夠快速準(zhǔn)確完成設(shè)計(jì)。本設(shè)計(jì)拓展加上ADDA采集和VGA顯示,可以實(shí)現(xiàn)基于FPGA的示波器設(shè)計(jì),之前明德?lián)P論壇已經(jīng)發(fā)布了波形采集并VGA顯示的案例,希望有興趣的同學(xué)可以運(yùn)用至簡(jiǎn)設(shè)計(jì)法和明德?lián)P模板嘗試一下拓展設(shè)計(jì)哦。

感興趣的朋友也可以訪問明德?lián)P論壇(http://www.fpgabbs.cn/)進(jìn)行FPGA相關(guān)工程設(shè)計(jì)學(xué)習(xí),也歡迎大家在評(píng)論與我進(jìn)行討論!


  •   
  •   
  •   
  •  
  • FPGA教育領(lǐng)域第一品牌
  • 咨詢熱線:020-39002701
  • 技術(shù)交流Q群:544453837
主站蜘蛛池模板: 欧美小younv 欧美性xxxxx极品老少 | 成人啪啪免费视频 | 亚洲一级毛片在线播放 | 国产欧美日韩第一页 | 国产噜噜噜精品免费 | 国内精品91久久久久 | 亚洲日韩男人网在线 | 日韩一级欧美一级一级国产 | 9l国产精品久久久久麻豆 | 中文字幕在线观看不卡 | 看片日韩 | 亚洲天堂婷婷 | 特别黄的免费视频大片 | 国产尤物在线播放 | 欧美三茎同入 | 香蕉视频99 | 岛国毛片在线观看 | 欧美亚洲国产一区二区三区 | 国产亚洲精品福利在线 | 国产98色在线| 99av在线| 免费观看一级黄色片 | 一级特级欧美aa毛片免费 | 国内视频一区 | 亚洲国产综合第一精品小说 | 加勒比一本一道在线 | 久久视频一区 | 99九九影院理论片在线 | 亚州精品一区中文字幕乱码 | 亚洲欧美国产精品久久久 | 精品日本亚洲一区二区三区 | 亚洲乱码中文字幕久久 | 欧美成人777| 国产精品不卡在线 | 欧美在线第一二三四区 | 欧美日韩一区二区中文字幕视频 | 一级做a爰性色毛片 | 午夜精品影院 | 操操综合 | 亚洲女人毛片 | 尤物视频在线观看入口 |