<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設計應用 > 基于Flash型FPGA的信號源卡設計

          基于Flash型FPGA的信號源卡設計

          作者: 時間:2011-09-13 來源:網絡 收藏

          摘要:介紹了一種基于的多路模擬重設計方法,該系統以ACTEL公司的A3P125VQ100芯片為核心,實現了系統的軟硬件結合。它包括數模轉換單元、電源模塊、多路模擬開關模塊以及運算放大單元等,實現了電源獨立的、頻率可調的、不同波形的多路模擬量。該系統通過編寫程序可以產生正弦波、三角波、方波以及直漉波并實現1~500 Hz頻率可調。研究的核心內容主要是通過控制D/A和多路模擬開關,通過D/A產生波形從多路模擬開關中送出,通過撥碼開關在1~500 Hz的頻率范圍內控制選擇,并且能夠通過示波器觀測到相應的頻率的波形。
          關鍵詞:;卡;多路選通;數模轉換

          0 引言
          信號源廣泛應用于電子電路、自動控制和科學試驗等領域。它是一種為電子測量和計量工作提供符合嚴格技術要求的電信號設備。該設計可以模擬各種復雜信號,還可對頻率進行動態(tài)、及時的控制。作為激勵源,仿真各種測試信號,提供給被測電路,以滿足測量或各種實際需要,并能夠與其它模塊,組成自動測試系統。該系統的設計,完整的實現了一個物理信號的產生,同時也包括信號發(fā)生器硬件的設計和軟件的設計。

          1 系統構成
          系統工作原理如圖1所示,通過JTAG接口把程序燒進芯片中后通過電源模塊給所有芯片供電使得它們可以正常工作。FPGA上電后自動復位,通過撥動撥碼開關選擇需要輸出的波形和波形的頻率,FPGA通過接收到的命令不斷的從RAM中讀出數據給D/A轉化器使其把數字信號轉化成模擬信號,同時FPGA也控制多路模擬開關在確定的四路中進行不斷的選通使得D/A轉換完的模擬信號在肉眼無法識別的情況下感覺是同時從四路輸出的信號,最后信號經過電壓跟隨器完整的輸出,我們用示波器在對應的插針上就能夠檢測到相應的信號。

          本文引用地址:http://www.ex-cimer.com/article/191010.htm

          a.jpg



          2 硬件設計
          FPGA采用的是ACTEL公司A3P125-VQ100,該芯片是一歙型的芯片,有30k個系統門,多達81個用戶I/O口,350 MHz的系統性能。FPGA模塊是由晶振電路、復位電路和下載電路這幾部分組成。晶振為FPGA提供一個外接的CLK,復位電路是由一個電容和一個電阻組成,只要電源一給芯片上電就會自動復位,下載電路就是JTAG接口,通過該接口把下載的程序燒入到FPCA中。通過這幾個外接電路組成一個FPGA模塊。
          控制電路模塊是由撥碼開關實現的,一部分用于信號選擇,另一部分用于頻率控制。該系統中一共有4種信號供選擇,撥碼開關只有0和1,所以只需用兩個開關就能控制選擇四種信號,在這里00表示直流,01表示正弦波,10表示三角波,11表示方波。那么撥碼開關的1到9位是用來控制頻率的,因為設計的要求是要控制1~500 Hz頻率可調,而500用二進制表示為111110100共9位,所以頻率可調就是通過控制撥碼開關把需要的頻率用二進制表示出來,通過一定的運算法則使得輸出的波形頻率為所要的頻率。


          上一頁 1 2 3 下一頁

          關鍵詞: Flash FPGA 信號源

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();