王超,符曉玲
(昌吉學院物理系,新疆昌吉 831100)
數模轉換器(D/A)用來將數字量轉換為模擬量,在無線通信系統(tǒng)、微機系統(tǒng)等領域具有非常重要的意義。衡量D/A 轉換器靜態(tài)特性的指標有很多,比如:分辨率、失調誤差、增益誤差、微分非線性和積分非線性等[1-3],這些指標對應用D/A 轉換器實現數據測量并準確分析具有重要的意義,該設計利用Proteus 軟件分析D/A 轉換器的工作過程,使用實物電路測量數據對D/A轉換器的靜態(tài)特性指標進行了詳細分析。
數模轉換電路由AT89C51、帶有串行SPI 接口的10 位D/A 轉換器TLC5615 和基準電壓輸入電路組成。TLC5615 轉換器引腳DIN、----CS 和SCLK 分別與單片機P1.0、P1.1 和P1.2 相連,使用可變電位計RV1,可使TLC5615 的輸出電壓OUT 在0~5 V 內調節(jié),REFIN 為基準電壓輸入端,范圍為2 V~(VDD-2 V),一般取2.048 V,虛擬直流電壓表用來觀察DAC 轉換的結果,使用SPI 調試器可以觀察數據在總線上輸入/輸出的傳輸情況。電路設計如圖1 所示。
圖1 數模轉換電路
軟件程序由主程序和子程序組成,主程序實現啟動數模轉換、調用寫入子程序功能,子程序主要實現轉換數據的處理,當TLC5615 的片選信號----CS 為低電平時,串行輸入的數據才能移入16 位移位寄存器,在每個SCLK 時鐘的上升沿將DIN 的一位數據移入16 位移位寄存器中,----CS 的上升沿將16 位移位寄存器的10 位有效數字鎖存到10 位DAC 寄存器中,啟動DAC 電路進行轉換處理。程序的編寫要嚴格按照器件的工作時序進行,軟件流程圖如圖2 所示。
圖2 軟件流程圖
分別在TLC5615 芯片引腳SCLK、----CS、DIN、OUT和REFIN 端放置電壓探針,繪制混合瞬態(tài)分析圖表并在圖表中添加模擬量和數字量曲線,當----CS 引腳為低電平時,串行輸入數據才能移入16 位移位寄存器,16 位移位寄存器分為高4 位虛擬位、低2 位填充位和10 位有效數據位,在每個SCLK 時鐘的上升沿將DIN 的一位數據移入16 位移位寄存器,TLC5615工作時,只需要向16 位移位寄存器先后輸入10 位有效位和低2 位的任意填充位即可[4-5],在----CS 的上升沿將16 位移位寄存器中的10 位有效數字鎖存于DAC寄存器中,實現D/A 轉換,調節(jié)可變電位計RV1的電阻值為其量程的82%,電阻R1為1.001 86 kΩ時,U1(REFIN)輸入端電壓為2.048 V,主程序中設置待轉換的數字量為“3FF”,由公式VOUT=2VREFIN×N/1 024(VREFIN為基準電壓值,N為輸入的二進制數所對應的數值)可計算出轉換后的電壓值為4.092 V,由虛擬直流電壓表測量的結果為4.091 99 V,即仿真結果與計算結果基本一致。
打開SPI 調試器窗口,可以觀察到在數據輸入端DIN 上傳輸的數據為“FFC=1111 1111 1100”,由于TLC5615 的最后兩位數據“00”為填充位,真正送給TLC5615DAC 轉換的數字量為“3FF=0011 1111 1111=1023”。
分辨率(Resolving Power)是指單片機輸入給D/A轉換器的單位數字量的變化,所能夠引起的模擬量輸出的變化[6]。通常將其定義為輸出滿刻度值(FS)與2n-1的比值(n為D/A 轉換器的二進制位數),習慣上用輸入數字量的位數來表示,常用符號1 LSB 表示,它反映了D/A 轉換器對于輸出模擬量的分辨能力。
TLC5615為10位的D/A 轉換,它的滿量程輸出值為4.092 V,故其分辨率的大小為1 LSB=4.092/1 023=0.004 V=4 mV,如圖3 所示。
失調誤差(Offset Error)是指當輸入的數字量全為“0”時,數模轉換實際輸出的模擬量電壓值與理想電壓值之間的偏差[7]。它是在所有的代碼轉換時都存在對于輸出電壓的一個偏差值,對D/A 轉換器來說,它將使DAC 的特性曲線整體向上或者向下移動。它是以最低有效位LSB 為單位計量的,其表達式為:
其中,VOUT和VLSB分別表示當輸入為全“0”時,實際輸出的電壓值和理想輸出1 LSB 的電壓值,依據測量表1 的數據,當輸入的數字量為“0000 0000 00(00)”時,TLC5615 的輸出電壓值為3.96 mV,而理想特性曲線的輸出應為0 V,實際曲線在理想曲線的上方,其特性曲線如圖4 所示。
表1 失調誤差數據表
D/A 轉換器的增益用來表示輸入與輸出關系的斜率,而增益誤差(Gain Error)是指DAC 在失調誤差完全得到補償后,當輸入的數字量從“1111 1111 10(00)”變換到“1111 1111 11(00)”時,輸出的理想傳輸特性曲線與實際傳輸特性曲線之間的偏差,故又將其稱為滿量程值誤差[8]。其計算公式為:
增益誤差計算前需要先減去失調誤差的差值,即將測得的每個數據都減去0.003 96 V,使實際的特性曲線整體向下平移,然后找到數模轉換實際運行時的最后一個點的轉換結果與理想轉換結果的差值即可。依據表2 的數據,TLC5615 的最后一個數字量轉換結果為4.10 V,補償完失調誤差為4.10-0.003 96=4.096 04 V,而理想特性曲線的輸出應為4.092 V,兩者的差值為4.096 04-4.092=+0.004 04 V,在理想曲線的上方繪制的增益誤差特性曲線如圖5 所示。
圖5 增益誤差
表2 增益誤差數據表
微分非線性(Differential Nonlinearity,DNL)是指數模轉換器的實際轉換特性和理想特性的所有臺階寬度之間的最大差值[9-10],即兩個相鄰輸入數字量對的DAC 模擬輸出增量的變化值,描述了線性誤差的分布特性,它表達了輸出增量的不均勻程度。其表達式為:
微分非線性是在將失調誤差和增益誤差完全補償之后的任一相鄰輸出差值與1 LSB 之間的偏差。增益誤差的補償可以通過各點對應的輸出電壓值乘以其實際輸出曲線的增益補償系數得到補償,補償系數的計算是用實際最大輸出值作為分母,理論最大輸出值作為分子,即補償系數為4.092/4.096 04=0.999 013 7。TLC5615 測得的第一個值為7.98 mV,計算值為4 mV,由式(3)得(7.98-3.96)×0.999 013 7/4-1=-0.004 LSB,測量數據表如表3 所示,微分非線性特性曲線如圖6 所示。符合TCL5615 數據手冊中描述的DNL的典型值為±0.1 LSB,最大值為±0.5 LSB。
圖6 微分非線性曲線
表3 微分非線性數據表
積分非線性(Integral Nonlinearity,INL)是指數模轉換器實際的傳輸特性曲線在完全補償失調誤差和增益誤差之后,與理想轉換特性曲線之間的最大偏差[11-12],描述了實際轉換特性曲線的整體線性度[13-14]。積分非線性描述了DNL 累積的結果,積分非線性有兩種測量方法,一種是端點法,通過原點和最后一個轉換點推導出傳遞函數來計算偏差。另一種方法為最適宜法,即對失調和增益補償后與線性的理想特性曲線比較來計算偏差[15-16]。該文采用最適宜法來計算積分非線性,D/A 轉換器的INL 實際上表示了輸出數值偏離線性最大的距離。其表達式為:
根據表4,計算出每個轉折點上實際輸出電壓和理想輸出電壓的差值,并計算出其差值與1 LSB 的相對比值即為INL 的值。在第一個轉折點時的實際輸出電壓值為4.016 04 V,由式(4)可得INL=(4.016 04-4)/4=0.016 04/4=0.004 LSB,繪制積分非線性特性曲線,如圖7 所示,由圖可知INL 的最大值和最小值分別為+0.684 LSB 和-0.424 LSB,符合TCL5615 數據手冊中描述的INL 的最大值為±1 LSB。
表4 積分非線性數據表
通過積分和微分非線性的定義可知,積分非線性還可以通過微分非線性來計算,它是DNL 的累計效果,其關系表達式為:
以DNL 的前兩個數據為例,DNL 分別為+0.004LSB 和-0.156 LSB,則通過計算可知INL=(+0.004)+(-0.156)=-0.152 LSB,與測量所得的積分非線性的結果相符。
使用Proteus 仿真軟件可將數模轉換過程直觀地展現出來,使用實物電路測量數據來分析數模轉換器的靜態(tài)特性參數可幫助學生更好地理解轉換器的性能參數,提高其解決問題的能力。