在測(cè)控系統(tǒng)中用IP核實(shí)現(xiàn)D/A轉(zhuǎn)換
摘要:采用數(shù)字化技術(shù)、在測(cè)控系統(tǒng)中用IP核實(shí)現(xiàn)D/A轉(zhuǎn)換,并且在1片可編程邏輯器件中實(shí)現(xiàn)。它不受溫度的影響,既可保持高分辨率,又可降低對(duì)電路精度和穩(wěn)定度的要求,并減少元件的數(shù)量。 關(guān)鍵詞:IP D/A VHDL 可編程邏輯器件 在各類(lèi)電子系統(tǒng)中,數(shù)字電路所占比重越來(lái)越大。這主要是因?yàn)閿?shù)字電路相對(duì)于模擬電路有一些突出的優(yōu)點(diǎn),例如: *數(shù)字電路中的有源器件工作在飽和區(qū)與截止區(qū),工作狀態(tài)穩(wěn)定; *數(shù)字電路處理的是二值信號(hào),易于存儲(chǔ)和再生; *數(shù)字電路是由大量相同的基本單元,如門(mén)、觸發(fā)器等所組成,易于大規(guī)模集成,易于自動(dòng)化設(shè)計(jì)工具的應(yīng)用等。 由于數(shù)字電路的以上特點(diǎn),再加上數(shù)字計(jì)算機(jī)和數(shù)字信號(hào)處理技術(shù)的迅速發(fā)展,使得數(shù)字電路從集成規(guī)模、應(yīng)用范圍及設(shè)計(jì)自動(dòng)化程度等方面大大超過(guò)了模擬電路,越來(lái)越多的由模擬電路實(shí)現(xiàn)的功能轉(zhuǎn)由數(shù)字電路實(shí)現(xiàn),進(jìn)入了電子系統(tǒng)數(shù)字化的時(shí)代。 在測(cè)控系統(tǒng)采用數(shù)字化技術(shù),將原來(lái)由模擬電路實(shí)現(xiàn)的D/A由數(shù)字電路實(shí)現(xiàn)。 IP(知識(shí)產(chǎn)權(quán))核將一些在數(shù)字電路中常用,但比較復(fù)雜的功能塊,如FIR濾波器、SDRAM控制器、PCI接口等設(shè)計(jì)成可修改參數(shù)的模塊。IP核的重用是設(shè)計(jì)人員贏得迅速上市時(shí)間的主要策略。隨著CPLD/FPGA的規(guī)模越來(lái)越大,設(shè)計(jì)越來(lái)越復(fù)雜(IC的復(fù)雜度以每年55%的速率遞增,而設(shè)計(jì)能力每年僅提高21%),設(shè)計(jì)者的主要任務(wù)是在規(guī)定的時(shí)間周期內(nèi)完成復(fù)雜的設(shè)計(jì)。調(diào)用IP核能避免重復(fù)勞動(dòng),大大減輕工程師的負(fù)擔(dān),因此使用IP核是一個(gè)發(fā)展趨勢(shì)。 IP核包括硬IP與軟IP??膳渲肐P是參數(shù)化后的可重定目標(biāo)IP,其優(yōu)點(diǎn)是可以對(duì)功能加以裁剪,以符合特定的應(yīng)用。這些參數(shù)包括總線(xiàn)寬度、存儲(chǔ)器容量、使能或禁止功能塊。 硬IP最大的優(yōu)點(diǎn)是確保性能,如速度、功耗等。然而,硬IP難以轉(zhuǎn)移到新工藝或集成到新結(jié)構(gòu)中,是不可重配置的。 軟IP是以綜合形式交付的,因而必須在目標(biāo)工藝中實(shí)現(xiàn),并由系統(tǒng)設(shè)計(jì)者驗(yàn)證。其優(yōu)點(diǎn)是源代碼靈活,可重定目標(biāo)于多種制作工藝,在新功能級(jí)中重新配置。 不過(guò)目前大多數(shù)庫(kù)是收費(fèi)的,但也可以從網(wǎng)上下載一些免費(fèi)的IP核。 2 用IP核實(shí)現(xiàn)的D/A轉(zhuǎn)換器的功能及特點(diǎn) 數(shù)字到模擬轉(zhuǎn)換器(DACs)將一個(gè)二進(jìn)制數(shù)轉(zhuǎn)換為與之對(duì)應(yīng)的電壓值,目前常用的D/A轉(zhuǎn)換器都是由電阻或電容加權(quán)網(wǎng)絡(luò)、受碼元控制的開(kāi)關(guān)和基準(zhǔn)電壓或電流源組成。當(dāng)D/A轉(zhuǎn)換器需要轉(zhuǎn)換的信號(hào)每次取樣字長(zhǎng)很長(zhǎng)時(shí),對(duì)這些電路的精度要求很高,并且還必須在整個(gè)溫度范圍和整個(gè)使用壽命期間內(nèi)保持電路參數(shù)的穩(wěn)定。例如,一個(gè)16位的D/A轉(zhuǎn)換器,其MSB的精度必須在1/2 16以?xún)?nèi),這是很困難的。所以,需尋求一種中保持高分辨率又可降低對(duì)電路精度和穩(wěn)定度要求的方法。 可綜合的Delta-Sigma DAC(術(shù)語(yǔ)Delta-Sigma分別指算術(shù)差與和,即Δ-∑DAC),是Xilinx公司提供的免費(fèi)IP核,可從網(wǎng)上下載得到。 Delta-Sigma DAC使用數(shù)字技術(shù),因而它不溫度的影響,并且能在一片可編程邏輯器件中實(shí)現(xiàn)。避免在D/A轉(zhuǎn)換器中使用匹配電阻,不僅能更便宜,而且,其轉(zhuǎn)換是線(xiàn)性的。Delta-Sigma DAC實(shí)際上是高速單個(gè)位的DAC,用數(shù)字反饋技術(shù),在輸出端產(chǎn)生一串脈沖。脈沖串中信號(hào)為高電平的時(shí)間部分與二進(jìn)制輸入成比例,當(dāng)這個(gè)脈沖串通過(guò)一個(gè)模擬低通濾波器后就得到一個(gè)模擬輸出信號(hào)。 圖1是一個(gè)典型的可編程邏輯器件實(shí)現(xiàn)的DAC的頂層電路圖,輸入信號(hào)有復(fù)位信號(hào)、時(shí)鐘信號(hào)以及二進(jìn)制數(shù)據(jù)總線(xiàn)。輸出DACoutDrvr驅(qū)動(dòng)一個(gè)外部的低通濾波器Vout能從0V~Vcco。這里Vcco是FPGA I/O塊的供電電壓。輸入/輸出詳細(xì)說(shuō)明如表1所列。
DAC的二進(jìn)制輸入是一個(gè)無(wú)符號(hào)數(shù)?!?”代表最低電壓,輸出的模擬電壓也只有正的?!?”輸入產(chǎn)生0V輸出,輸入端全“1”,則輸出近似達(dá)到Vcco。 圖2是Delta-Sigma DAC的原理框圖,二進(jìn)制輸入的位寬是可變的。為簡(jiǎn)單起見(jiàn),電路原理圖描述了一個(gè)8位二進(jìn)制輸入的DAC。 在這個(gè)器件中,二進(jìn)制加法器用來(lái)產(chǎn)生和,也用來(lái)產(chǎn)生差。盡管Delta Adder的輸入是無(wú)符號(hào)數(shù),兩個(gè)加法器的輸出卻都是有符號(hào)數(shù)。Delta Adder計(jì)算DAC輸入和當(dāng)前DAC輸出的差,并用一個(gè)二進(jìn)制數(shù)表示。因?yàn)镈AC的輸出是一個(gè)單個(gè)的位,因此它不是1就是0。如圖2所示,當(dāng)輸入加上由Sigma Latch的輸出的兩個(gè)拷貝與0構(gòu)成的10位數(shù),就產(chǎn)生差值,這也補(bǔ)償了DACIN是無(wú)符號(hào)數(shù)的事實(shí)。Sigma Adder將它原來(lái)的輸出(保存在Sigma Latch中)與當(dāng)前的Delta Adder的輸出相加。 圖1中輸出電壓與輸入電壓的關(guān)系為 VOUT=(DACIN/(2MSBI+1))VCCO 式中單位為V。 例如,對(duì)于一個(gè)8位DAC(MSBI=7),最后的輸出是這樣:DACIN輸入是0,則輸出也是0;DACIN輸入是十六進(jìn)制數(shù)FF時(shí),輸出值為最大(255/256)Vcco。 阻容低通濾波器適合多數(shù)應(yīng)用需要,一個(gè)簡(jiǎn)單的阻容低通濾波器就能工作得很好。 Vs的定義是:DAC輸入增加或減少時(shí),在Vout端產(chǎn)生變化的絕對(duì)值。對(duì)一個(gè)8位DAC,Vs等于(1/256)Vcco。 Vout能夠產(chǎn)生在0V~Vcco之間可變的電壓,具體的值由DACIN的位寬和輸入的數(shù)值決定。 Delta-Sigma DAC適合需要相對(duì)高精度的低頻應(yīng)用。在這種應(yīng)用中,電壓不會(huì)很快地變化,因此,RC的時(shí)間常數(shù)可以很大,以減小噪聲。 這種DAC最廣泛的應(yīng)用就是產(chǎn)生通常直流電壓。這包括電壓控制振蕩器、電壓控制運(yùn)算放大器、I/O參數(shù)電壓、可編程電壓源、波形發(fā)生器(正弦、三角等)、A/D轉(zhuǎn)換中的參考電壓等。 Delta-Sigma DAC是一個(gè)例子,說(shuō)明高速可編程邏輯器件能用于混合信號(hào)系統(tǒng),以減少元件的數(shù)量??删幊踢壿嬈骷乃俣群兔芏仁顾鼈兂蔀槟M信號(hào)產(chǎn)生和處理方面理想的元件。 library ieee; use ieeestd_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity dac_ds is port(reset :in std_logic; clk :in std_logic; din :in std_logic_vector(7 downto 0);--Signed integer dout :out std_logic; ); end dac_ds; architecture arch_dac_ds of dac_ds is signal error :std_logic_vector(9 downto 0);--Error accumulator is 2 bits larger constant zeros:std_logic_vector(7 downto 0):=(others=>'0'); begin process(reset,clk,din) variable val :std_logic_vector(9 downto 0); begin if reset='1'then error=(others=>'0'); dout='0'; elsif clk'event and clk='1' then --val:=din+error;din is sign extended to nbits+2 val:=(din(din'high)din(din'high)din)+error; if val(val'high)='0'then dout='1'; error=val+("11" zeros); else dout='0'; error=val+("01"zeros); end if; end if; end process; end arch_dac_ds; 4 芯片的選擇和配置 選擇MAX7000S系列可編程邏輯器件,編譯后由MAX+PLUS II軟件自動(dòng)配置進(jìn)EMP7032SLC44芯片,將生成的目標(biāo)文件通過(guò)編程電纜對(duì)器件進(jìn)行編程。 將該IP核實(shí)現(xiàn)的D/A轉(zhuǎn)換器用于新型智能電阻爐溫度控制儀中,因?yàn)檎{(diào)節(jié)爐溫的信號(hào)不要求變化很快,因此DAC的輸入二進(jìn)制信號(hào)為緩變信號(hào)。對(duì)于這種低頻應(yīng)用,可以將RC時(shí)間常數(shù)取得較大,以減小噪聲。這樣,可綜合的VHDL語(yǔ)言Delta-Sigma DAC模塊配置進(jìn)EMP7032芯片后,達(dá)到了預(yù)期的效果。 |
評(píng)論