波形發(fā)生器設(shè)計

時間:2022-03-12 02:22:00

導(dǎo)語:波形發(fā)生器設(shè)計一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

波形發(fā)生器設(shè)計

1系統(tǒng)設(shè)計

本系統(tǒng)采用TI公司生產(chǎn)的TMS320VC54X系列DSP作為核心控制器件,并采用Cypress工司生產(chǎn)的CY7C1021V(64K×16位RAM)來擴充DSP的外部數(shù)據(jù)存儲空間。在DSP與ADC及RAM之間的數(shù)據(jù)接口加入74LVC16245(16位總線變換器)以增加DSP的驅(qū)動能力,并用來隔斷器件間的干擾。DSP與DAC之間的邏輯控制采用CPLD實現(xiàn),這樣可以方便系統(tǒng)的設(shè)計與調(diào)試,本文中采用的CPLD為Altera公司的EPM7064SLC84-10。

整個系統(tǒng)的方框圖如圖1所示。

2器件簡介

本系統(tǒng)所采用的數(shù)模轉(zhuǎn)換器為AD7846,它是美國AD(AnalogDevice)公司基于LC2MOS工藝生產(chǎn)的16位數(shù)模轉(zhuǎn)換器。它有VREF+和VREF-兩個參考電平輸入端以及一個片內(nèi)放大器。標(biāo)準情況下可以將其配置為單極性輸出(0~+5V,0~+10V)或雙極性輸出(±5V,±10V)。當(dāng)然,改變VREF+VREF-兩個參考電平輸入端的電平,也可以改變其輸出的動態(tài)范圍。如本文中的采用高精度電壓參考芯片AD434提供參考電平,使D/A的動態(tài)范圍設(shè)置為±4.096V。

AD7846采用分段式結(jié)構(gòu)。DAC鎖存器的高4位選通16個電阻串中的一段,段的兩端接有運放作為緩沖,運放的輸出反饋至12位的模數(shù)變換電路,并由該電路提供后12位分辨率。這種結(jié)構(gòu)可以確保16位單調(diào)性,兩個緩沖運放間輸入失調(diào)電壓的高度匹配還確保了優(yōu)良的積分非線性。

除了優(yōu)良的精度指標(biāo)外,AD7846與微處理器的連接也非常方便。它有16位數(shù)據(jù)I/O以及4根控制線(CS,R/W,LDAC以及CLR)。R/W與CS用來控制對I/O鎖存器的讀寫,LDAC信號用于多DAC系統(tǒng)中同步更新多片DAC數(shù)據(jù),CLR用于將DAC的輸出復(fù)位至0V。

3AD7846參考電壓的設(shè)計

為了使系統(tǒng)的輸出波形在幅度上能夠精確到1mV,本文采用AD434為AD7846提供參考電壓。ADR434為AD公司生產(chǎn)的低噪聲、高精度、低溫漂的電壓參考芯片。它采用了AD公司的溫漂曲率修正專利技術(shù),可以使其電壓對溫度的非線性達到最小。二者的具體連接如圖2所示。

圖2所示的連接方式使AD7846工作在雙極性輸出狀態(tài)下。AD434為D/A提供+4.096V的參考電平,D/A根據(jù)此電平經(jīng)過雙極十六位線性分解,所得的最低可調(diào)電壓為4.096V/215=125μV。具體的編碼表如表1所列。

表1AD7846編碼表

DAC鎖存器中的二進制數(shù)

模擬輸出VOUT/V

1111111111111111+4.096C(32767/32768)=+4.0958751000000000001000+1.096V(8/32768)=+0.0011000000000000001+4.096V(1/32768)=+0.0001251000000000000000+4.096V(0/32768)=00111111111111111-4.096V(1/32768)=-0.0001250000000000000000-4.096V(32768/32768)=-4.096

4邏輯控制及軟件實現(xiàn)

本文使用CPLD作為DSP控制D/A映射在DSP的I/O口,地址為4000H~7FFFH。AD7846一共有4根控制線,它們組成的控制邏輯如表2所列。

表2AD7846控制邏輯真值表

CSR/WLDACCLR

功能

1XXX使DAC的I/O鎖存器呈高阻態(tài)00XX數(shù)據(jù)(DB1~5DB0)裝入I/O鎖存器01XXI/O鎖存器中的數(shù)據(jù)輸出到數(shù)據(jù)線上XX01I/O鎖存器中的數(shù)據(jù)裝入DAC鎖存器X0X0DAC鎖存器裝入數(shù)據(jù)000...000X1X0DAC鎖存器裝入數(shù)據(jù)100...000

CPLD中燒入的邏輯圖如圖3所示。

對于波形的產(chǎn)生,通常有兩種方法。一種方法為使用算法計算輸出波形某點的幅度編碼值(如正弦波可通過泰勒級數(shù)展開得到),這種方法可直接精確地計算出每個角度的波形值,所占用的存儲空間小,但對于任意波形的輸出,所需的算法較為復(fù)雜,系統(tǒng)實時性也會受到影響。另一種方法為查表法,該方法可能需要占用較大的存儲空間,但軟件控制卻非常方便,實時性也更高。采用查表法的軟件控制可由如下代碼實現(xiàn)。

egs

.globalmain

main:nop

ori:stm#SINtable,ar2;將數(shù)據(jù)表頭地址送入ar2

ld#13H,a;循環(huán)輸出20個樣點值

JUMP:portw*ar2+,4000h;AD4846被配置在I/O口的4000H~7FFFFH處

Rpt#1fffh;改變rpt的值可以改變正弦波的頻率

Nop

Sub#1d,a

BcJUMP,aneq

bori

SINtable;正弦波幅度編碼表

.word7FFFH.word0A78DH.word0CB3CH.word0EF8DH

.word0F9BCH.word0FFFFH.word0F9BCH.word0E78DH

.word0cB3CH.word0A78DH.word8000H.word5872H

.word34C3H.word1872H.word0643H.word0000H

.word0643H.word1872H.word34C3H.word5872H

.end

該段程序可使AD7846輸出標(biāo)準正弦波,幅度范圍為±4.096V,頻率可通過改變rpt的值加以調(diào)節(jié)。若提供大量采樣點,可使其實時輸出高精度的任意波形。當(dāng)然,利用DSP強大的運算處理能力,也可用軟件計算出所需波形的各點采樣值,這樣可以節(jié)省存儲空間,降低系統(tǒng)硬件成本。

結(jié)語

本系統(tǒng)已經(jīng)過實際測量,系統(tǒng)各部分工作正常,AD7846可精確穩(wěn)定地輸出所需波形。該方案不僅達到了很高的精度與系統(tǒng)實時性,還具有控制靈活方便等特點,是一種很好的波形發(fā)生器。