高志斌 ,鄒 波 ,張 麗 ,王力文 ,鄒詩(shī)苑
(1.上海機(jī)電工程研究所,上海 201100;2.上海自動(dòng)化儀表有限公司,上海 200072)
TMS320F28335型DSP的A/D轉(zhuǎn)換模塊是12位帶流水線的模數(shù)轉(zhuǎn)換器,理論上來(lái)講,ADC模塊的采樣精度還是較好的,但是根據(jù)工程經(jīng)驗(yàn),一般ADC模塊的采樣精度實(shí)際都會(huì)比理論值少3位,也就是說(shuō)12位的ADC模塊,在采樣精度比較好的情況下可以達(dá)到9位,也就是1/512,約為0.2%。但是在實(shí)際應(yīng)用過(guò)程中,ADC模塊的精度往往不盡如人意,采樣值和實(shí)際值之間的相對(duì)誤差有時(shí)候最大可以達(dá)到15%,這給實(shí)際應(yīng)用帶來(lái)了很大的困擾[1]。
ADC的模擬電路包括前端模擬多路復(fù)用開(kāi)關(guān)(MUXs)、采樣/保持(S/H)電路、變換核心、電壓調(diào)節(jié)器以及其他模擬支持電路部分。模數(shù)轉(zhuǎn)換器的數(shù)字電路為本文中所指的外圍部分,包括可編程的轉(zhuǎn)換序列發(fā)生器、結(jié)果寄存器、與模擬電路的接口、與設(shè)備外圍總線的接口以及與其他芯片模塊的接口[2]。
AD器件理想輸出與實(shí)際輸出之差定義為偏移誤差。所有數(shù)字代碼都存在這種誤差。在實(shí)際中,偏移誤差會(huì)使傳遞函數(shù)或模擬輸入電壓與對(duì)應(yīng)數(shù)值輸出代碼間存在一個(gè)固定的偏移。
增益誤差是預(yù)估傳遞參數(shù)和實(shí)際斜率的差別,增益誤差通常在模數(shù)轉(zhuǎn)換器最末或最后一個(gè)傳輸代碼轉(zhuǎn)換點(diǎn)計(jì)算。
模數(shù)器件的精度指標(biāo)是用積分非線性值INL來(lái)表示的。這個(gè)參數(shù)表示了ADC器件在所有的數(shù)值點(diǎn)上對(duì)應(yīng)的模擬值和真實(shí)值之間誤差最大的那一點(diǎn)誤差值。也就是輸出數(shù)值偏離線性最大的距離,單位是LSB(即最低位所表示的量)。
差分非線性值DNL是指ADC相鄰2個(gè)刻度之間最大的差異。理論上說(shuō),模數(shù)器件相鄰2個(gè)數(shù)據(jù)之間模擬量的差值都是一樣的,就如同一把粗細(xì)均勻的尺子。但實(shí)際一把分辨率為1 cm的尺子,相鄰2個(gè)刻度之間也不可能都是整數(shù)1 cm。
從數(shù)學(xué)上來(lái)講,INL是DNL誤差的數(shù)學(xué)積分,一個(gè)具有良好INL的ADC保證有良好的DNL。
溫度漂移為隨著溫度的變化而產(chǎn)生的誤差。一般用ppm/K或者ppm/℃來(lái)表示,計(jì)算公式為ΔGain/ΔTemperature。
需要獲得當(dāng)前采樣的各項(xiàng)誤差參數(shù)來(lái)決定AD采樣的校正措施[4]。通常計(jì)算偏移誤差方法是測(cè)量第一個(gè)數(shù)字代碼轉(zhuǎn)換或“零”轉(zhuǎn)換的電壓,并將它與理論零點(diǎn)電壓相比較。為了找到零點(diǎn)與最后一個(gè)轉(zhuǎn)換代碼,可以采用多種測(cè)量方式,最常用的是代碼平均法和電壓抖動(dòng)法。
代碼平均測(cè)量就是不斷增大器件的輸入電壓,然后檢測(cè)轉(zhuǎn)換出的結(jié)果。每次增大輸入電壓都會(huì)得到一些轉(zhuǎn)換代碼,用這些代碼的和算出一個(gè)平均值,測(cè)量產(chǎn)生這些平均轉(zhuǎn)換代碼的輸入電壓,計(jì)算出器件偏移和增益。
電壓抖動(dòng)法采用動(dòng)態(tài)反饋回路控制器件輸入電壓,根據(jù)轉(zhuǎn)換代碼和預(yù)期代碼的差對(duì)輸入電壓進(jìn)行增減調(diào)整,直到2種代碼之間的差值為0,當(dāng)預(yù)期轉(zhuǎn)換代碼接近輸入電壓或在轉(zhuǎn)換點(diǎn)附近變化時(shí),測(cè)量所施加的“抖動(dòng)”電壓平均值,計(jì)算偏移和增益。
根據(jù)積分非線性INL、差分非線性DNL和溫度漂移誤差會(huì)做出極為復(fù)雜的數(shù)學(xué)模型,對(duì)于實(shí)際DSP工業(yè)控制應(yīng)用沒(méi)有太大意義,在本文中我們重點(diǎn)提出偏移與增益誤差的解決方法。
如圖 1所示,假設(shè)ADC實(shí)際增益為Ga,實(shí)際偏移量為b,則模擬量輸入X與數(shù)字量輸出Y之間的關(guān)系為Y′=GaX+b。我們這里有Ga和b 2個(gè)未知量,則只需要知道這2個(gè)未知量就可以通過(guò)ADC轉(zhuǎn)換結(jié)果緩沖寄存器得到數(shù)據(jù)Y,就可以知道實(shí)際輸入的電壓X。對(duì)于二元一次方程,至少需要由2個(gè)方程組成的二元一次方程組,且其中的(X1,Y1),(X2,Y2)已知,Ga和b就可以通過(guò)求解式(1)方程組得出。
圖1 ADC模塊的轉(zhuǎn)換特性曲線Fig.1 Transfer characteristic of AD module
在工業(yè)控制中,比較常見(jiàn)的一種做法是將2路精準(zhǔn)電源提供給ADC的任意2個(gè)輸入通道,如ADCINA0和ADCINB0,精準(zhǔn)電源的輸入電壓是很容易確定的,也就是X1和X2,然后通過(guò)讀取ADCINA0和ADCINB0的轉(zhuǎn)換結(jié)果來(lái)獲得Y1和Y2。這樣,可以得到轉(zhuǎn)換過(guò)程中的實(shí)際增益Ga和實(shí)際的偏移量 b,如式(2)所示。
然后,可以根據(jù)數(shù)字量轉(zhuǎn)換結(jié)果Y,得到實(shí)際輸入量 X=(Y-b)/Ga。
DSP應(yīng)用環(huán)境主要在工業(yè)控制領(lǐng)域,考慮到實(shí)際軟硬件成本和經(jīng)濟(jì)效益,需要以一個(gè)盡可能小的軟硬件開(kāi)銷完成采樣精度的要求。
在TMS320F28335的工業(yè)應(yīng)用中,2路高精度電壓源成本過(guò)高,對(duì)于嵌入式設(shè)備來(lái)說(shuō),需要占用大量的PCB空間。而且用2路不同的ADCIN信號(hào)來(lái)對(duì)其他信號(hào)進(jìn)行校準(zhǔn)有些浪費(fèi)。在工程實(shí)踐中,同樣的電壓經(jīng)過(guò)相同型號(hào)器件組成的濾波、運(yùn)算電路之后,由于各個(gè)通道的各個(gè)器件均會(huì)有不同的溫度漂移誤差、積分與差分非線性誤差等,DSP寄存器采樣的結(jié)果是有差別的,也就是說(shuō)不同ADn采樣線路的實(shí)際增益Gan和實(shí)際的偏移量bn是不同的。對(duì)此,本文提出一種新的采樣自校正方法,其中某一路n的硬件原理如圖 2所示。
圖2 AD自校正硬件原理Fig.2 Hardware principle block diagram of AD self-tunning
在繼電器1和繼電器2的選用中,可以選擇由一個(gè)線圈控制多路觸點(diǎn)吸合的繼電器以降低成本,也可以選擇一個(gè)線圈控制一個(gè)觸點(diǎn)的繼電器,但是通過(guò)DSP同一個(gè)或多個(gè)GPIO口來(lái)控制繼電器吸合。
在TMS320F28335控制模塊中,利用GPIO口通過(guò)放大電路給繼電器1和繼電器2的線圈通斷電來(lái)控制繼電器的吸合。在DSP啟動(dòng)過(guò)程中,可以先將繼電器1,2的a觸點(diǎn)吸合,取得在基準(zhǔn)電壓X1下的數(shù)字量輸出Y1n,然后將繼電器2的b觸點(diǎn)吸合,取得在基準(zhǔn)電壓X2下的數(shù)字量輸出Y2n,然后可以根據(jù)式(2)算出該路的實(shí)際增益Gan和實(shí)際的偏移量bn,最后將繼電器1的b觸點(diǎn)吸合,接入待采樣信號(hào)來(lái)進(jìn)行實(shí)際信號(hào)的采樣工作。
實(shí)際工程經(jīng)驗(yàn)表明,該基準(zhǔn)電壓源1和2接近待采樣電信號(hào)電壓范圍上下限容易經(jīng)校正后獲得較為精確的結(jié)果。為更進(jìn)一步降低造價(jià)可以將基準(zhǔn)電源2去掉,該路直接接地,這樣可以得出該采樣路的實(shí)際偏移量bn,但是會(huì)降低一部分采樣的精度。
進(jìn)行AD采樣的步驟如下[4]:
步驟1初始化系統(tǒng)控制、PLL、看門狗、使能外設(shè)時(shí)鐘等;
步驟2初始化GPIO及外設(shè)等;
步驟3設(shè)置ADC的采樣率等;
步驟4將繼電器設(shè)置成觸點(diǎn)連接到基準(zhǔn)電源狀態(tài);
步驟5軟件啟動(dòng)ADC采樣,得出各通道對(duì)應(yīng)的增益和偏移;
步驟6進(jìn)入主循環(huán),根據(jù)需要對(duì)各通道進(jìn)行采樣。
對(duì)于TMS320F28335型DSP而言,序列模式下對(duì) 于 150 MHzSYSCLKOUT, 采 樣 率 =1/[(2+ACQ_PS)*ADC時(shí)鐘 (ns)], 同時(shí)采樣模式下采樣率=1/[(3+ACQ_PS)*ADC 時(shí)鐘(ns)]。
其中計(jì)算增益代碼如下:
經(jīng)工程實(shí)踐檢驗(yàn),采用了本AD采樣自校正方法的DSP采樣系統(tǒng)的采樣精度得到了很大的提高。此校正方法對(duì)其他非DSP的嵌入式或非嵌入式AD采樣系統(tǒng)有一定參考作用。
[1]姜艷波.數(shù)字信號(hào)處理器DSP應(yīng)用100例[M].北京:化學(xué)工業(yè)出版社,2009.
[2]竺南直.TMS320 F2812 DSP原理與應(yīng)用實(shí)例[M].北京:電子工業(yè)出版社,2009.
[3]劉向宇.DSP嵌入式常用模塊與綜合系統(tǒng)設(shè)計(jì)實(shí)例精講[M].北京:電子工業(yè)出版社,2009.
[4]劉陵順.TMS320F28335 DSP原理與開(kāi)發(fā)編程[M].北京:北京航空航天大學(xué)出版社,2011.