圖2顯示了sigma-delta、逐次逼近和閃速轉(zhuǎn)換器的分辨率范圍,同時(shí)還給出了每種轉(zhuǎn)換器類型的最大轉(zhuǎn)換速率。如圖所示,sigma-delta ADC的轉(zhuǎn)換速率在逐次逼近ADC的轉(zhuǎn)換速率范圍以內(nèi),但比不上轉(zhuǎn)換速率最低的閃速轉(zhuǎn)換ADC。表中沒(méi)有給出速率和精確度的折衷結(jié)果。例如,可以找到8至16位的逐次逼近ADC,但在給定的系列產(chǎn)品中16位ADC的轉(zhuǎn)換速率并不是最快的;而且在閃速ADC中,速率最快的不是12位ADC,而是6位或8位ADC。
上述圖表簡(jiǎn)要描述了ADC技術(shù)的當(dāng)前發(fā)展?fàn)顩r。隨著CMOS工藝的不斷改進(jìn),逐次逼近轉(zhuǎn)換的時(shí)間已由以前的數(shù)十微秒迅速下降至數(shù)微秒。雖然并非所有的技術(shù)進(jìn)步都將對(duì)所有類型的轉(zhuǎn)換器產(chǎn)生影響,CMOS工藝的改進(jìn)仍將提高各類轉(zhuǎn)換器的速率,但在ADC芯片上添加更為復(fù)雜的DSP功能并不能改進(jìn)逐次逼近轉(zhuǎn)換器的性能。DSP功能可以改進(jìn)sigma-delta型ADC,因?yàn)樵摦a(chǎn)品可以在芯片上添加更好、更快,也更復(fù)雜的濾波器。
采樣與保持
ADC轉(zhuǎn)換直流信號(hào)的工作原理簡(jiǎn)單明了。但如果在轉(zhuǎn)換期間輸入信號(hào)的變化超過(guò)一個(gè)最低有效位(LSB),ADC將得到不正確(或至少是不精確)的結(jié)果。減小誤差的一種方法是在ADC之前添加低通濾波器,并選擇適當(dāng)?shù)?a target="_blank">參數(shù)以保證ADC的輸入在一個(gè)轉(zhuǎn)換周期中的變化不超過(guò)一個(gè)最低有效位。
處理變化的輸入信號(hào)的另一種方法是在ADC之前添加采樣-保持(S/H)電路,圖3顯示了采樣-保持電路的工作原理。S/H電路具備帶有控制輸入的模擬(固態(tài))開(kāi)關(guān),當(dāng)開(kāi)關(guān)閉合時(shí),輸入信號(hào)將連接至保持電容,而緩沖器的輸出將跟蹤輸入。當(dāng)開(kāi)關(guān)開(kāi)啟時(shí),輸入信號(hào)將與保持電容斷開(kāi)。
圖中還給出了S/H的工作波形,S/H輸入連接一個(gè)緩慢上升的信號(hào),當(dāng)控制信號(hào)較低時(shí)(采樣模式),輸出將跟蹤輸入;隨著控制信號(hào)的增強(qiáng)(保持模式),輸出將與輸入的保持電容斷開(kāi),并保持在S/H切換至保持模式時(shí)的輸入值。當(dāng)電路再次閉合,電容迅速充電,輸出再次跟蹤輸入。通常S/H在ADC轉(zhuǎn)換開(kāi)始前切換至保持模式,而當(dāng)轉(zhuǎn)換結(jié)束后切回至采樣模式。
在理想條件下,保持電容不會(huì)發(fā)生漏電并且緩沖放大器具有無(wú)窮大的輸入阻抗,因此輸出將保持恒定。但在實(shí)際中,保持電容會(huì)漏電,而且緩沖放大器的輸入阻抗是有限的,因而輸出電平將隨著電容放電產(chǎn)生緩慢的漂移。
S/H電路在保持模式下保持輸出的性能取決于保持電容的質(zhì)量、緩沖放大器(主要是輸入阻抗)的特性和采樣/保持開(kāi)關(guān)(實(shí)際的電子開(kāi)關(guān)在開(kāi)路時(shí)總會(huì)有漏電)的質(zhì)量。保持模式下輸出呈現(xiàn)出的漂移量稱為固定偏差率(droop rate),可用毫伏/秒、毫伏/微秒或微伏/微秒來(lái)表示。
實(shí)際中,S/H電路由于電子開(kāi)關(guān)無(wú)法達(dá)到理想狀況而具有有限的輸入阻抗。這意味著在采樣模式下,保持電容需要通過(guò)某些電阻進(jìn)行充電,這限制了S/H可獲取的輸入速率。S/H在采樣模式下為獲得滿刻度輸入所必須保持的采樣時(shí)間稱為采集時(shí)間,單位是納秒或微秒。
采樣時(shí)一些電阻與保持電容相串聯(lián),這樣的效果等同于低通RC濾波器。這無(wú)疑限制了S/H所能獲取的最大頻率,該頻率稱為滿功率帶寬,單位是千赫或兆赫。
如前所述,由于電子開(kāi)關(guān)無(wú)法達(dá)到理想狀況,某些輸入信號(hào)將出現(xiàn)在輸出中,即便在保持模式下也是如此,這種狀況稱為饋通,單位是分貝。
輸出偏移表示輸入信號(hào)與輸出信號(hào)之間的差異,S/H電路數(shù)據(jù)表通常以毫伏的形式表示保持模式下的偏移和采樣模式的偏移。
應(yīng)用軟件
使用S/H的ADC系統(tǒng)必須能處理硬件異常情況。在某些系統(tǒng)中,軟件通過(guò)端口或寄存器輸出位直接控制S/H的控制輸入。S/H通常置為采樣模式,而軟件必須滿足采集時(shí)間要求。在某些系統(tǒng)中,這項(xiàng)工作的完成僅僅只需將S/H置為采樣模式,直到需要轉(zhuǎn)換為止。
當(dāng)S/H置為保持模式后,另一位(或?qū)懭氲刂?,或進(jìn)行其它操作)將啟動(dòng)ADC。轉(zhuǎn)換完成后,軟件將讀取結(jié)果。然而,一旦異常中斷(或出現(xiàn)最壞情況的中斷堆棧)導(dǎo)致S/H的輸出電路變化至少一個(gè)最低有效位,將會(huì)出現(xiàn)問(wèn)題。這種情況一旦發(fā)生,軟件必須在S/H切換至保持模式之前禁止中斷,并在開(kāi)始轉(zhuǎn)換之前開(kāi)放中斷,這樣就能保證ADC在發(fā)生S/H偏差之前完成轉(zhuǎn)換工作。
軟件還必須能調(diào)節(jié)S/H的充電時(shí)間。當(dāng)電子開(kāi)關(guān)閉合并與S/H電容的輸入信號(hào)連通時(shí),電容必須在有限的時(shí)間內(nèi)充電,因?yàn)榇藭r(shí)開(kāi)關(guān)和任何驅(qū)動(dòng)輸入的電源都將具有非零阻抗。如果這些阻抗之和充分大,軟件將需要增加延遲,以使得保持電容在轉(zhuǎn)換之前,在終值的一個(gè)最低有效位變化以內(nèi)有充分的時(shí)間進(jìn)行充電。
內(nèi)部微控制器ADC
許多微控制器均帶有片上ADC。典型的器件包括Microchip的PIC167C7xx系列產(chǎn)品和Atmel的AT90S4434。大多數(shù)微控制器ADC采用逐次逼近法,因?yàn)檫@種方法能對(duì)轉(zhuǎn)換速率和微控制器裸片空間成本進(jìn)行最佳折衷。
PIC16C7xx微控制器包含一個(gè)帶有模擬輸入多路復(fù)用器的8位逐次逼近ADC。該系列微控制器具有4至8個(gè)通道,內(nèi)部寄存器控制所選的通道并啟動(dòng)轉(zhuǎn)換。輸入一旦選定,在啟動(dòng)A/D轉(zhuǎn)換之前,必須經(jīng)過(guò)一段穩(wěn)定時(shí)間使S/H電容充電。軟件必須保證上述操作所需的延遲時(shí)間。
轉(zhuǎn)換精確度
一些微控制器(如Microchip系列產(chǎn)品)允許使用一個(gè)輸入引腳作為參考電壓,該引腳通常與某種精密參考電源相連。轉(zhuǎn)換后從A/D轉(zhuǎn)換器上讀取的值為:
(Vin/Vref)×256
某些微控制器使用電源電壓作為參考。在5V系統(tǒng)下,這意味著Vref為5V。因此采用8位ADC測(cè)量3.2V信號(hào)將得到如下結(jié)果:
(Vin×256)/Vref =(3.2v×256)/5V =16310 =A316
然而得到的結(jié)果還取決于5V電源值。如果電源電壓超過(guò)1%,即為5.05V,那么A/D轉(zhuǎn)換的結(jié)果將為:
(3.2V×256)/5.05V=16210=A216
因此電源電壓1%的變化將導(dǎo)致轉(zhuǎn)換結(jié)果計(jì)數(shù)改變1。典型電源的電壓變化范圍為2%或3%, 因此電源電壓的變化將對(duì)轉(zhuǎn)換結(jié)果產(chǎn)生顯著的影響。電源電壓的輸出常常受到電源間負(fù)載、溫度、交流輸入變化的影響。
這里提出了一個(gè)影響所有ADC設(shè)計(jì)的問(wèn)題:參考電壓的精確度。典型的ADC參考電壓可為2.5V額定值,但可在2.47V和2.53V(這些數(shù)值來(lái)自數(shù)據(jù)表的實(shí)數(shù)部分)之間變化。如果采用10位的ADC,在上述給定的參考范圍極限條件下,轉(zhuǎn)換2V的輸入將得到如下結(jié)果:當(dāng)Vref=2.47V時(shí), 轉(zhuǎn)換結(jié)果=(2V×1,024)/2.47=82910;當(dāng)Vref = 2.53V時(shí),轉(zhuǎn)換結(jié)果=(2V×1,024)/2.53=80910。
各部分之間參考電壓的變化可導(dǎo)致輸出發(fā)生20個(gè)計(jì)數(shù)的變化。圖4顯示了參考變化對(duì)ADC結(jié)果的影響。盡管誤差的百分比在整個(gè)范圍內(nèi)維持不變,但ADC值越大,誤差值顯然也越大。
?
軟件校正
有時(shí)由于需要得到精確的參考電壓,對(duì)精確度的要求甚至超過(guò)了產(chǎn)品成本所能承受的范圍。當(dāng)無(wú)法進(jìn)行手工調(diào)節(jié)時(shí),即可采用軟件來(lái)補(bǔ)償參考電壓的變化。這通??赏ㄟ^(guò)提供已知的用于校正ADC的精確輸入來(lái)實(shí)現(xiàn)。這個(gè)參考電壓可以非常精確(當(dāng)然也非常昂貴),因?yàn)橹挥泻苌俚纳a(chǎn)線需要這類參考電壓。
在上述2.47V示例中,ADC的輸入可采用2V的精確電壓。當(dāng)軟件讀取ADC時(shí),知道正確的值應(yīng)為819,由此校正常數(shù)為829/819,或1.012。類似地,2.53V參考電壓的校正常數(shù)為809/819,或0.988。
這意味著需要浮點(diǎn)運(yùn)算來(lái)校正ADC值。如果使用的處理器可處理浮點(diǎn)運(yùn)算,那么這種方法就是可取的。但對(duì)于比較簡(jiǎn)單的處理器,則有可能不具備必要的處理時(shí)間或代碼空間來(lái)實(shí)現(xiàn)浮點(diǎn)運(yùn)算。
進(jìn)行ADC校正的一種有效方法是查表。但該方法的缺陷是需要足夠大的固定存儲(chǔ)器來(lái)維持對(duì)應(yīng)于每個(gè)可能的ADC值的查表值,對(duì)于10位的ADC,查表需要1024字的存儲(chǔ)空間。
電壓參考與其額定值相當(dāng)接近,否則就不能稱其為參考了。假定在工作溫度中參考電壓足夠穩(wěn)定,ADC誤差占ADC讀數(shù)值的百分比將是恒定的。因?yàn)锳DC具有有限的分辨率,精度校正ADC誤差的精度不會(huì)大于1LSB。
這樣我們就可按下面給出的方法簡(jiǎn)化ADC的校正工藝。作為查詢表的替代,我們可以另外存儲(chǔ)一個(gè)值,該值通知軟件將要從ADC讀取值中添加或刪除的(二進(jìn)制)百分比,由此校正誤差。我們可以添加或刪除輸入的1/8、1/16或1/24,但都將導(dǎo)致精確度下降1 LSB。我們只需存儲(chǔ)單個(gè)校正常數(shù),而除法運(yùn)算則可由一系列移位加或移位減運(yùn)算實(shí)現(xiàn)。
上述2.47V示例可由ADC值與.988相乘的結(jié)果加以校正,也可通過(guò)初始值減去1/128,再減去1/256和1/512得到相同的結(jié)果。在初始的2V示例中,采用整數(shù)表示法,可得到如下結(jié)果:
829-829/128-829/156-829/512 =829-6-3-1 =819
上述結(jié)果將ADC讀取值校正為819,這是額定參考電壓為2.5V條件下的理想值。類似地,2.53V參考電壓可通過(guò)增加1/128 和1/256加以校正。
我們還必須確信在期望的工作溫度范圍內(nèi)參考電壓充分穩(wěn)定,否則在期望溫度附近只能得到較好的校正結(jié)果。如果參考電壓的溫度穩(wěn)定性不夠好,那么必須選擇更好的參考電壓,或者將工作溫度范圍分為多個(gè)段并在每個(gè)段上使用不同的校正值。當(dāng)然,這也意味著需要使用熱敏電阻或其它方法來(lái)測(cè)量溫度。
該方法通過(guò)對(duì)移位結(jié)果進(jìn)行截?cái)嗌崛攵鴮?shí)現(xiàn)舍入誤差處理。在2.47V示例給出的電子表格中,所有情形下的校正值均在理想值的兩個(gè)計(jì)數(shù)以內(nèi)。大多數(shù)校正值都是正確無(wú)誤的,或者僅偏差一個(gè)計(jì)數(shù)。2V輸入條件下得到的校正結(jié)果明顯優(yōu)于最初的偏差(10個(gè)計(jì)數(shù)),這正好滿足了諸多應(yīng)用系統(tǒng)的需要。如果應(yīng)用系統(tǒng)連這點(diǎn)偏差都無(wú)法承受,那么確實(shí)需要更好的參考電壓或者求助于手工調(diào)節(jié)。
校正技術(shù)同樣可用來(lái)補(bǔ)償其它系統(tǒng)的不精確度,如電阻累計(jì)誤差。如果所測(cè)量的系統(tǒng)包含電壓輸入,即可在輸入中應(yīng)用精確電壓,并進(jìn)行適當(dāng)?shù)男U?,由此在ADC中補(bǔ)償參考輸入的變化并在輸入條件下補(bǔ)償電阻公差的影響。
評(píng)論
查看更多