在各類電子系統中,數字電路所占比重越來越大。這主要是因為數字電路相對于模擬電路有一些突出的優點,例如: *數字電路中的有源器件工作在飽和區與截止區,工作狀態穩定; *數字電路處理的是二值信號,易于存儲和再生; *數字電路是由大量相同的基本單元,如門、觸發器等所組成,易于大規模集成,易于自動化設計工具的應用等。 由于數字電路的以上特點,再加上數字計算機和數字信號處理技術的迅速發展,使得數字電路從集成規模、應用范圍及設計自動化程度等方面大大超過了模擬電路,越來越多的由模擬電路實現的功能轉由數字電路實現,進入了電子系統數字化的時代。 在測控系統采用數字化技術,將原來由模擬電路實現的D/A由數字電路實現。 1 IP核介紹 IP(知識產權)核將一些在數字電路中常用,但比較復雜的功能塊,如FIR濾波器、SDRAM控制器、PCI接口等設計成可修改參數的模塊。 IP核的重用是設計人員贏得迅速上市時間的主要策略。隨著CPLD/FPGA的規模越來越大,設計越來越復雜(IC的復雜度以每年55%的速率遞增,而設計能力每年僅提高21%),設計者的主要任務是在規定的時間周期內完成復雜的設計。調用IP核能避免重復勞動,大大減輕工程師的負擔,因此使用IP核是一個發展趨勢。 IP核包括硬IP與軟IP。可配置IP是參數化后的可重定目標IP,其優點是可以對功能加以裁剪,以符合特定的應用。這些參數包括總線寬度、存儲器容量、使能或禁止功能塊。 硬IP最大的優點是確保性能,如速度、功耗等。然而,硬IP難以轉移到新工藝或集成到新結構中,是不可重配置的。 軟IP是以綜合形式交付的,因而必須在目標工藝中實現,并由系統設計者驗證。其優點是源代碼靈活,可重定目標于多種制作工藝,在新功能級中重新配置。 不過目前大多數庫是收費的,但也可以從網上下載一些免費的IP核。 2 用IP核實現的D/A轉換器的功能及特點 數字到模擬轉換器(DACs)將一個二進制數轉換為與之對應的電壓值,目前常用的D/A轉換器都是由電阻或電容加權網絡、受碼元控制的開關和基準電壓或電流源組成。當D/A轉換器需要轉換的信號每次取樣字長很長時,對這些電路的精度要求很高,并且還必須在整個溫度范圍和整個使用壽命期間內保持電路參數的穩定。例如,一個16位的D/A轉換器,其MSB的精度必須在1/2 16以內,這是很困難的。所以,需尋求一種中保持高分辨率又可降低對電路精度和穩定度要求的方法。 可綜合的Delta-Sigma DAC(術語Delta-Sigma分別指算術差與和,即Δ-∑DAC),是Xilinx公司提供的免費IP核,可從網上下載得到。 Delta-Sigma DAC使用數字技術,因而它不溫度的影響,并且能在一片可編程邏輯器件中實現。避免在D/A轉換器中使用匹配電阻,不僅能更便宜,而且,其轉換是線性的。 Delta-Sigma DAC實際上是高速單個位的DAC,用數字反饋技術,在輸出端產生一串脈沖。脈沖串中信號為高電平的時間部分與二進制輸入成比例,當這個脈沖串通過一個模擬低通濾波器后就得到一個模擬輸出信號。 圖1是一個典型的可編程邏輯器件實現的DAC的頂層電路圖,輸入信號有復位信號、時鐘信號以及二進制數據總線。輸出DACoutDrvr驅動一個外部的低通濾波器Vout能從0V~Vcco。這里Vcco是FPGA I/O塊的供電電壓。輸入/輸出詳細說明如表1所列。 表 1 輸入輸出描述表
DAC的二進制輸入是一個無符號數。“0”代表最低電壓,輸出的模擬電壓也只有正的。“0”輸入產生0V輸出,輸入端全“1”,則輸出近似達到 Vcco。 圖2是Delta-Sigma DAC的原理框圖,二進制輸入的位寬是可變的。為簡單起見,電路原理圖描述了一個8位二進制輸入的DAC。 在這個器件中,二進制加法器用來產生和,也用來產生差。盡管Delta Adder的輸入是無符號數,兩個加法器的輸出卻都是有符號數。Delta Adder計算DAC輸入和當前DAC輸出的差,并用一個二進制數表示。因為DAC的輸出是一個單個的位,因此它不是1就是0。如圖2所示,當輸入加上由 Sigma Latch的輸出的兩個拷貝與0構成的10位數,就產生差值,這也補償了DACIN是無符號數的事實。Sigma Adder將它原來的輸出(保存在Sigma Latch中)與當前的Delta Adder的輸出相加。 圖1中輸出電壓與輸入電壓的關系為 VOUT=(DACIN/(2MSBI+1))×VCCO 式中單位為V。 例如,對于一個8位DAC(MSBI=7),最后的輸出是這樣:DACIN輸入是0,則輸出也是0;DACIN輸入是十六進制數FF時,輸出值為最大(255/256)×Vcco。 阻容低通濾波器適合多數應用需要,一個簡單的阻容低通濾波器就能工作得很好。 Vs的定義是:DAC輸入增加或減少時,在Vout端產生變化的絕對值。對一個8位DAC,Vs等于(1/256)×Vcco。 Vout能夠產生在0V~Vcco之間可變的電壓,具體的值由DACIN的位寬和輸入的數值決定。 Delta-Sigma DAC適合需要相對高精度的低頻應用。在這種應用中,電壓不會很快地變化,因此,RC的時間常數可以很大,以減小噪聲。 這種DAC最廣泛的應用就是產生通常直流電壓。這包括電壓控制振蕩器、電壓控制運算放大器、I/O參數電壓、可編程電壓源、波形發生器(正弦、三角等)、A/D轉換中的參考電壓等。 Delta-Sigma DAC是一個例子,說明高速可編程邏輯器件能用于混合信號系統,以減少元件的數量。可編程邏輯器件的速度和密度使它們成為模擬信號產生和處理方面理想的元件。 3 用VHDL語言編寫的程序 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軟件自動配置進EMP7032SLC44芯片,將生成的目標文件通過編程電纜對器件進行編程。 將該IP核實現的D/A轉換器用于新型智能電阻爐溫度控制儀中,因為調節爐溫的信號不要求變化很快,因此DAC的輸入二進制信號為緩變信號。對于這種低頻應用,可以將RC時間常數取得較大,以減小噪聲。這樣,可綜合的VHDL語言Delta-Sigma DAC模塊配置進EMP7032芯片后,達到了預期的效果。 參考文獻 1. 蔣璇.臧春華 數字系統設計與PLD應用技術 2001 2. John Logue Virtex Synthesizable Delta-Sigma DAC 3. 張昌凡 可編程邏輯器件及VHDL設計技術 2001 作 者:中國直升機設計研究所 李艷萍 來 源:單片機與嵌入式系統應用2003(10) |