王敏,葉顯
(華中師范大學(xué) 物理科學(xué)與技術(shù)學(xué)院,湖北 武漢 430079)
D/A轉(zhuǎn)換器接收數(shù)字編碼信號(hào),并以電流或電壓形式提供模擬輸出信號(hào)。它是數(shù)字控制器件和模擬信號(hào)之間的接口[1]。
在儀器、儀表和自動(dòng)控制領(lǐng)域中,經(jīng)常需要高精度模擬量的輸出,例如儀器、儀表中參考電壓,偏置電壓等,因而要求分辨率較高的D/A輸出[2]。而高精度DAC芯片的價(jià)格一般比較昂貴,并且D/A轉(zhuǎn)換器不像A/D轉(zhuǎn)換器那樣通過模擬開關(guān)就可以實(shí)現(xiàn)A/D轉(zhuǎn)換器的多路擴(kuò)展。當(dāng)一個(gè)項(xiàng)目中需要多路D/A轉(zhuǎn)換時(shí),設(shè)計(jì)者一般會(huì)使用多個(gè)D/A轉(zhuǎn)換芯片來(lái)進(jìn)行轉(zhuǎn)換得到,這樣無(wú)形中增加了產(chǎn)品的成本,而且多個(gè)D/A轉(zhuǎn)換模塊也會(huì)增加PCB板的布線難度和布板面積,導(dǎo)致信號(hào)噪聲的增加,不利于高頻小信號(hào)的輸出。同時(shí)大量的DA轉(zhuǎn)換模塊也將占用MCU大量的I/O口,浪費(fèi)MCU資源,不利于產(chǎn)品的再升級(jí)。
針對(duì)上述問題,文中提出了一種基于單路DAC多路復(fù)用的設(shè)計(jì)方案,利用軟件和硬件結(jié)合的方式,對(duì)一個(gè)串行D/A轉(zhuǎn)換器進(jìn)行操作,打破傳統(tǒng)的一個(gè)串行D/A轉(zhuǎn)換器只控制一路模擬輸出的慣例,實(shí)現(xiàn)DAC的多路復(fù)用。
我們利用MCU分時(shí)傳給DAC芯片不同的數(shù)據(jù)[3],傳送數(shù)據(jù)的同時(shí),控制模擬開關(guān)的通道選擇,使得各模擬電平獨(dú)立的輸出,進(jìn)過RC濾波器后,輸出信號(hào)達(dá)到穩(wěn)定,從而實(shí)現(xiàn)單路DAC的多路復(fù)用,系統(tǒng)的總體設(shè)計(jì)框圖如圖1所示。
圖1 系統(tǒng)設(shè)計(jì)框圖Fig.1 The diagram of the system
假設(shè)最終需要n路模擬輸出,則在MCU中分時(shí)給DAC傳送數(shù)據(jù),同時(shí)DAC芯片需要連通一個(gè)n選一的模擬開關(guān),來(lái)控制選通每路信號(hào),當(dāng)其中一個(gè)通路有信號(hào)輸出時(shí),其他通路輸出為零,所以通過模擬開關(guān)后的每路輸出信號(hào)為一個(gè)脈沖波。通過MCU控制DAC按固定時(shí)間更新數(shù)據(jù),則每路脈沖信號(hào)的脈寬都相等,設(shè)為τ,信號(hào)幅度分別為A1,A2,A3……An,進(jìn)過DAC轉(zhuǎn)換模塊后,可以得到一個(gè)周期為nτ的準(zhǔn)階梯波,設(shè)n=5,則DAC的輸出波形如圖2所示。
其中ti-ti-1=τ。
控制模擬開關(guān)的通道選擇,在0~t1時(shí)刻選通通道一,在t1~t2時(shí)刻選通通道二……使各路電平分別從對(duì)應(yīng)的通道輸出,如果不接入濾波電路,那么通過模擬開關(guān)后,通道i輸出波形為一個(gè)幅度為Ai,周期為nτi,占空比為1/n的脈沖波。以圖1.2DAC的輸出波形為例,通過模擬開關(guān)后各路輸出波形如圖3所示。
圖2 在n=5時(shí)DAC的輸出波形圖Fig.2 The output waveform of the DAC when n=5
圖3 模擬開關(guān)各通道的輸出波形Fig.3 Each channel's output waveform of the analog switch
為了將上述脈沖波轉(zhuǎn)化為我們所需要的穩(wěn)定信號(hào),此時(shí)我們需要引入RC濾波電路,利用RC電路的充放電特性,使充電速度快,放電速度慢[4],經(jīng)過若干個(gè)周期后,使得輸出信號(hào)達(dá)到穩(wěn)定。為滿足這一要求,我們利用模擬開關(guān)的輸出電阻小,電壓型運(yùn)算放大器的同向輸入端的輸入電阻大的特性[5],將模擬開關(guān)的輸出電阻作為充電電阻,將運(yùn)算放大器的輸入電阻作為放電電阻。
設(shè)模擬開關(guān)的輸出電阻為R1,運(yùn)算放大器同向端輸入電阻為R2,濾波電容的容值為C,則其充、放電回路的等效電路如圖4,5所示。
圖4 充電回路Fig.4 Charge circuit
圖5 放電回路Fig.5 Discharge circuit
設(shè)脈沖信號(hào)的幅度為Us,電容兩端的電壓為uc(t),對(duì)于充電回路,電容兩端的電壓為uc(t)=Us(1,時(shí)間常數(shù)τ=R1C,由公式可知,電容兩端的電壓隨時(shí)間按指數(shù)的規(guī)律增長(zhǎng),增長(zhǎng)的快慢由時(shí)間常數(shù)τ決定,τ越小,增長(zhǎng)越快,τ越大,增長(zhǎng)越慢,當(dāng)t→∞時(shí),達(dá)到穩(wěn)態(tài)值Us。 在t=4τ時(shí),uc已增長(zhǎng)到穩(wěn)態(tài)值的98%以上,在工程上一般認(rèn)為,t=4τ時(shí),電路已近似達(dá)到穩(wěn)態(tài)了,uc(t)的波形如圖6所示。
圖6 充電回路 的波形Fig.6 The output waveform of the charge circuit
對(duì)于放電回路,電容兩端的電壓為uc(t)=Us(1-,時(shí)間常數(shù)τ=R2C,由公式可知電容兩端的電壓隨時(shí)間呈指數(shù)衰減,衰減的快慢由τ決定,τ越大衰減越慢,τ越小衰減越快,當(dāng)t=4τ時(shí),uc(t)已下降為初始值的1.8%,在工程中認(rèn)為此時(shí)已放電完畢,uc(t)的波形如圖7所示。
圖7 放電回路的波形Fig.7 The output waveform of the discharge circuit
在本設(shè)計(jì)中需要使R1盡可能的小,R2盡量大,從而使充電常數(shù)τ1=R1×C很小,而放電常數(shù)τ2=R2×C比較大。當(dāng)脈沖信號(hào)為高電平時(shí),由于τ1很小,電容快速充滿電,達(dá)到脈沖的幅度值;在脈沖信號(hào)為低電平時(shí),由于τ2比較大,所以電容緩慢釋放電量。經(jīng)過RC濾波電路后,得到穩(wěn)定的輸出電壓。 各路脈沖信號(hào)經(jīng)過上述濾波后得到對(duì)應(yīng)的穩(wěn)定輸出電壓,從而實(shí)現(xiàn)了單路DAC的多路復(fù)用。
DAC的分辨率是指輸入數(shù)字量的最低有效位 (LSB)發(fā)生變化時(shí),所對(duì)應(yīng)的輸出模擬量(電壓或電流)的變化量。它反映了輸出模擬量的最小變化值,與DAC的位數(shù)及參考電壓有關(guān)。在本設(shè)計(jì)中,DAC的輸入位數(shù)及參考電壓都不發(fā)生改變,所以用改方法擴(kuò)展DAC的多路輸出不會(huì)降低DAC的分辨率。
DAC的轉(zhuǎn)換速度是指DAC更新數(shù)據(jù)所需要的時(shí)鐘數(shù),在DAC轉(zhuǎn)換器的工作時(shí)鐘一定的前提下,通過本設(shè)計(jì)的方法實(shí)現(xiàn)DAC的多路擴(kuò)展,在一路信號(hào)輸出時(shí),其他路信號(hào)都是無(wú)法更新數(shù)據(jù)的,如果擴(kuò)展路數(shù)為N,則更新一次數(shù)據(jù)所需要的時(shí)間為原來(lái)的N倍,所以本擴(kuò)展方法只適合數(shù)據(jù)更新速度要求不高的場(chǎng)合。
DAC的精度(簡(jiǎn)稱精度)是指在整個(gè)刻度范圍內(nèi),任一輸入數(shù)碼所對(duì)應(yīng)的模擬量實(shí)際輸出值與理論值之間的最大誤差。是由DAC的增益誤差(當(dāng)輸入數(shù)碼為全1時(shí),實(shí)際輸出值與理想輸出值之差)、零點(diǎn)誤差(數(shù)碼輸入為全0時(shí),DAC的非零輸出值)、非線性誤差和噪聲等引起的。在沒有對(duì)DAC進(jìn)行擴(kuò)展時(shí),DAC的精度只由DAC本身決定。在本設(shè)計(jì)中由于引入了運(yùn)放,所以其精度還與運(yùn)放的偏執(zhí)電壓有關(guān)。為提高精度,我們需要在軟件中對(duì)DAC進(jìn)行校準(zhǔn),盡可能低的降低運(yùn)放的偏置電壓對(duì)系統(tǒng)精度的影響。
為驗(yàn)證上述設(shè)計(jì)方案的可行性,本文采用FPGA來(lái)作為微處理器,串行數(shù)模轉(zhuǎn)換芯片AD1851,模擬開關(guān)74HC4051,RC濾波器以及運(yùn)算放大器TL072來(lái)實(shí)現(xiàn)單路DAC的多路復(fù)用,具體電路如圖8所示。
圖8 AD1851實(shí)現(xiàn)4路擴(kuò)展電路Fig.8 Use AD1851 to achieve 4-way expansion
在本設(shè)計(jì)中,采用FPGA來(lái)控制數(shù)字部分電路,利用Verilog HDL編程語(yǔ)言來(lái)編寫代碼,將FPGA的強(qiáng)大邏輯和計(jì)算功能與Verilog的簡(jiǎn)單、直觀和高效的特點(diǎn)相結(jié)合,以便更好的完成設(shè)計(jì)要求[6-7]。FPGA傳送給AD1851的工作時(shí)鐘為10 MHz,小于它的最大工作時(shí)鐘12.5 M,在程序中依次按照DAC1,DAC2,DAC3,DAC4所對(duì)應(yīng)的值給AD1851循環(huán)賦值,每20 μs更新一次輸入數(shù)據(jù),賦值的同時(shí)控制模擬開關(guān)的選通,使上述4種電平分別從對(duì)應(yīng)的通道輸出,得到4路周期性的脈沖波,然后通過濾波得到相應(yīng)的穩(wěn)定信號(hào)。經(jīng)查手冊(cè)可知HC4051的輸出電阻記為R1=120 Ω,TL072的同向輸入端輸入電阻為R2=1×1012Ω,濾波電容取值100 nF,對(duì)于充電回路的充電常數(shù)τ1=R1C=12 μs,對(duì)于放電回路的放電常數(shù)τ2=R2C=105s,由于τ1很小,而τ2很大,所以電容很很快充滿電,而且一旦充滿電后就可以基本保持不變,得到所需的穩(wěn)定電平,從而現(xiàn)實(shí)的單路DAC的4路擴(kuò)展輸出。
通過對(duì)四路輸出電壓的實(shí)際測(cè)量,并記錄測(cè)量值,將測(cè)量值與實(shí)際輸出值進(jìn)行對(duì)比,驗(yàn)證實(shí)驗(yàn)的可靠性,測(cè)試數(shù)據(jù)如表1、表2、表3、表4所示。
表1 通道1的實(shí)際測(cè)量值與理論值對(duì)比Tab.1 The error between measurement value and theoretical value of channel 1
表2 通道2的實(shí)際測(cè)量值與理論值對(duì)比Tab.2 The error between measurement value and theoretical value of channel 2
表3 通道3的實(shí)際測(cè)量值與理論值對(duì)比Tab.3 The error between measurement value and theoretical value of channel 3
表4 通道4的實(shí)際測(cè)量值與理論值對(duì)比Tab.4 The error between measurement value and theoretical value of channel 4
從以上數(shù)據(jù)可以看出,實(shí)際測(cè)量值與理論值都非常接近,最大誤差不超過2%,由此可見將單路串行DAC1851進(jìn)行4路輸出擴(kuò)展取得了成功。
文中給出了一種將單路DAC實(shí)現(xiàn)多路輸出的設(shè)計(jì)方案,并成功應(yīng)用于與江蘇綠揚(yáng)電子儀器集團(tuán)有限公司合作項(xiàng)目:任意波形發(fā)生器。這種方法不僅能在占用CPU資源較少的情況下,有效解決了實(shí)際項(xiàng)目中需要多路高分辨率D/A輸出問題,而且可以簡(jiǎn)化接口電路,減少對(duì)高精度DAC的需要,大幅度的減小電路板的面積,降低設(shè)計(jì)成本,讓公司產(chǎn)品更加具有競(jìng)爭(zhēng)力。本設(shè)計(jì)方案是一種易于被開發(fā)者接受的高性價(jià)比,實(shí)用的設(shè)計(jì)方案。
[1]張紅,李紅寶,陳海燕.一種串行逐次逼近10位DA轉(zhuǎn)換器[J].微電子學(xué),2006,36(6):798-801.
[2]牛春平,張文學(xué),任哲平.基于軟件的多路PWM式D/A轉(zhuǎn)換技術(shù)[J].裝甲兵工程學(xué)院學(xué)報(bào),2002,16(1):83-86.
[3]李群芳,肖看.單片機(jī)原理、接口及應(yīng)用——嵌入式系統(tǒng)技術(shù)基礎(chǔ)[M].北京:清華大學(xué)出版社,2005.
[4]田化梅,李玲遠(yuǎn).電路測(cè)試與電工基礎(chǔ)實(shí)驗(yàn)[M].北京:科學(xué)出版社,2006.
[5]華成英,童詩(shī)白.模擬電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2006.
[6]王敬華,林萍,陳靜.C語(yǔ)言程序設(shè)計(jì)教程[M].北京:清華大學(xué)出版社,2005.
[7]劉福奇.FPGA嵌入式項(xiàng)目開發(fā)實(shí)戰(zhàn)[M].北京:電子工業(yè)出版社,2009.