新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于單片機(jī)、EDA技術(shù)的波形發(fā)生器的設(shè)計

基于單片機(jī)、EDA技術(shù)的波形發(fā)生器的設(shè)計

作者: 時間:2009-03-04 來源:網(wǎng)絡(luò) 收藏

 該(MCS8031)為中心控制單元,由鍵盤輸入模塊、數(shù)碼管顯示模塊、D/A發(fā)生模塊、幅值調(diào)整模塊組成。采用,先將要求的數(shù)據(jù)存儲于EEPROM中,這樣可以保證掉電以后波形數(shù)據(jù)不丟失。

本文引用地址:http://m.butianyuan.cn/article/173886.htm

  為了達(dá)到所要求的高速度,采用(ALTEAR 公司的 EPF10K10LC84-4, 晶振頻率可達(dá) 40MHz)來實現(xiàn)波形的發(fā)生,通過(直接數(shù)字頻率合成)、語言和匯編語言編程技術(shù)的完美結(jié)合實現(xiàn)了對正弦波、方波和三角波三種波形的頻率、幅值的設(shè)置和發(fā)生。

  隨著深亞微米半導(dǎo)體技術(shù)的進(jìn)步,可編程邏輯器件及技術(shù)的應(yīng)用已經(jīng)相當(dāng)普及。可編程邏輯器件的高頻性質(zhì)和強(qiáng)大的數(shù)據(jù)處理功能,二者結(jié)合的技術(shù)也有相當(dāng)?shù)挠绊懥?。?a class="contentlabel" href="http://m.butianyuan.cn/news/listbylabel/label/設(shè)計">設(shè)計中涉及到單片機(jī)匯編語言、語言的運(yùn)用,充分地利用了二者的優(yōu)點,制作了一套系統(tǒng)。

  1 系統(tǒng)

  整體由三大模塊組成:單片機(jī)控制部分、可編程邏輯器件()部分、模擬電路部分。其系統(tǒng)方框原理圖如下所示:

采用DDS技術(shù),可以很方便地產(chǎn)生各種高質(zhì)量的波形,DDS的基本原理是:先將要產(chǎn)生的波形數(shù)據(jù)存入波形,然后通過改變參考脈沖的頻率,將波形數(shù)據(jù)傳送給D/A轉(zhuǎn)換器,濾波處理后便可以輸出光滑的合成波形。為了提高所產(chǎn)生的波形頻率,采用高頻率特性的(ALTERA公司的 EPF10K10LC84-4),后級電路采用有較高的轉(zhuǎn)換速度的DAC0832作為D/A轉(zhuǎn)換。

  1.1 單片機(jī)部分

  在設(shè)計中,采用MCS8031為處理器,P2.7作為8279的片選端,P2.6作為FPGA的片選端, P2.5為DAC0832(a)的片選端。P0口作為三者的低8位地址和數(shù)據(jù)線。單片機(jī)控制DAC0832(a),使其輸出為0~5V可變電壓,作為 DAC0832(b)的參考電壓,于是可控制輸出波形的幅值。由于采用7位數(shù)據(jù)控制,精度可達(dá)到0.039V。

  1.2 FPGA模塊

  設(shè)計中我使用了ALTRA公司的MAXPLUSⅡ 10.0系統(tǒng),采用原理圖和語言編程相結(jié)合的形式,充分地發(fā)揮了FPGA的高速和現(xiàn)場可編程的能力。

  在FPGA中通過編程片內(nèi)實現(xiàn)比例乘法器(cc14527),在單片機(jī)的控制下,F(xiàn)PGA接收單片機(jī)傳送過來的用戶要求的波形數(shù)據(jù)及其頻率數(shù)據(jù),并送到比例乘法器以產(chǎn)生所需要的輸出頻率值。頂層圖如下:

其中:P20作為FPGA的片選端,低電平有效,高電平時保持現(xiàn)有狀態(tài),與單片機(jī)的P2.6相連。WR為FPGA的寫信號,與單片機(jī)的寫端口相連。當(dāng)P20為低電平時,單片機(jī)可向FPGA寫數(shù)據(jù),以達(dá)到傳送命令以及數(shù)據(jù)的目的。ALE為輸入信號,與單片機(jī)的ALE信號相連,用于FPGA片內(nèi)鎖存地址,配合WR信號進(jìn)行單片機(jī)與FPGA的通訊。P0[7..0]共8條數(shù)據(jù)線,為單片機(jī)P0口的接口,用于地址和數(shù)據(jù)的傳送。CLK為FPGA的基準(zhǔn)頻率(16MHz)。WR0832用于控制DAC0832(b),與其WR端相連,在其下跳沿時DAC0832(b)可以取到存儲器中相應(yīng)給定地址的數(shù)據(jù)。 CE:用于控制EEPROM28C64,與其片選端CE相連。CE1用于控制DAC0832(b),與其片選端CE相連。ADDRESS[9..0]為 EEPROM28C64的地址信號,用于取址。

  EEPROM28C64中存有波形數(shù)據(jù),單片機(jī)通過控制FPGA使其輸出的頻率為用戶所需頻率的128倍,用于控制EEPROM28C64的輸出值的頻率,于是DAC0832(b)的輸出波形頻率也相應(yīng)地改變。在FPGA內(nèi)主要完成比例乘法器的功能,用于頻率的控制。

  單片機(jī)與FPGA通訊接口原理如下圖所示:

其中:SEL信號,用于控制波形的形狀,共有三種波形(正弦波、方波、三角波)。Q0[3..0]~Q5[3..0]用于6級級聯(lián)比例乘法器的置數(shù)輸入。ST為級聯(lián)比例乘法器的片選端,低有效。

  FPGA片內(nèi)實現(xiàn)寄存器,可對單片機(jī)傳輸?shù)臄?shù)據(jù)和命令進(jìn)行寄存,具體如下:

 ?、琶罴拇嫫?/p>

  入口地址:FFH 命令字:FFH(ST有效),00H(ST無效)
入口地址:00H 命令字:E0H(顯示正弦波,sel為00),E1H(顯示方波,sel為01),E2H(顯示三角波,sel為10)。

 ?、?數(shù)據(jù)寄存器

  入口地址:01H,02H,03H分別存儲單片機(jī)傳送的6位10進(jìn)制數(shù)。這些數(shù)據(jù)是用戶要求的頻率數(shù)通過單片機(jī)乘8處理后傳送過來的,為乘法器提供頻率數(shù)據(jù)。

  FPGA對DAC0832及EEPROM28C64控制接口如下圖所示:

WR0832為DAC0832讀信號,下跳沿讀取數(shù)據(jù)。CE、CE1分別為DAC0832、EEPROM28C64片選端。ADDRESS[9..0]為 EEPROM28C64地址信號。ADDRESS[9..0]的高兩位為SEL[1..0],時鐘信號CLK上升沿時ADDRESS[6..0]:自增 1,EEPROM28C64輸出相應(yīng)的波形數(shù)據(jù)。同時CLK下降沿時,DAC0832讀取波形數(shù)據(jù)。


  3 模擬部分

  DAC0832與單片機(jī)采用單緩沖方式接口電路,由于DAC0832內(nèi)部含有鎖存器,具有鎖存功能,所以不必通過373鎖存。DAC0832的模擬電壓輸出電路如下:

濾波部分采用帶通濾波,使低于1HZ的頻率信號和高于100KHZ的頻率信號被濾掉,增加波形的平滑度。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉