Global Sources
電子工程專輯
 
電子工程專輯 > 記憶體/儲存
 
 
記憶體/儲存  

類比數位轉換器與嵌入式微處理器的介面技術

上網時間: 2002年05月09日     打印版  Bookmark and Share  字型大小:  

關鍵字:analog-to-digital converter(ADC)  類比數位轉換器  microprocessor  微處理器  resolution 

類比數位轉換器主要包括Sigma-Delta型、逐次比較型和快閃式型,應用中工程師普遍關注的問題是如何提高轉換精度?本文提供了按實際需要選擇並校正類比數位轉換器的一些軟體和硬體的應用技巧。

類比數位轉換器(ADC)接收類比輸入(電壓或電流),並轉換為可被微處理器讀取的數位值。圖1提供了一個簡單的電壓輸入ADC,假定該元件的輸入由兩部份組成:參考信號和測量信號,另外還帶有一個輸出和表示輸入值的8位元數位字。

參考電壓是ADC所能轉換的最大值,示例中的8位元ADC可轉換為介於0V和參考電壓之間的任意電壓,電壓範圍分為256個值或步長。步長的大小由下式給定:

這裡Vref表示參考電壓,轉換器的步長定義為轉換器的解析度。對於5V的參考電壓,步長為:

5V/256=0.0195V或19.5mV

8位元轉換器將類比輸入表示為數位字,數位字的最高有效位元指示輸入電壓是否大於參考電壓的一半(5V參考電壓的一半為2.5V),後續的各位元均表示前一位元所表示範圍的一半。

表1說明了這一點,將0010 1100中各位元表示的電壓相加,可以得到:

0.625+0.156+0.078 =0.859V

ADC的解析度由參考輸入和字寬決定,解析度定義了可被ADC測量的最小電壓變化。如前所述,解析度的大小等於最小的步長大小,並可用參考電壓除以轉換值的數目加以計算。

上例的解析度為19.5mV,這意味著任何低於19.5mV的輸入電壓得到的輸出結果為0,介於19.5mV和39mV之間的輸入電壓得到的輸出結果為1,介於39mV和58.6mV之間的輸入電壓得到的輸出結果為2。

可以藉由降低參考輸入提高解析度,如將參考輸入由5V變成2.5V,那麼解析度將為2.5/256,或9.7mV。但這時可被測量的最大電壓將為2.5V,而非5V。

既能提高解析度,又不降低可測量電壓範圍的唯一方法是增加ADC的位元數。10位元的ADC具有210或1,024個可能的輸出代碼,因此此時的解析度為5V/1024,即4.88mV;而相同的參考輸入條件下,12位元ADC具有1.22mV的解析度。

ADC的類型

ADC具有各種速率,使用不同的介面電路,並可提供不同的精確度。最常用的ADC類型包括快閃式ADC、逐次比較ADC和sigma-delta ADC。

1. 快閃式ADC

快閃式ADC是轉換速率最快的一類ADC。快閃式ADC在每個電壓階躍中使用一個比較器和一組電阻。因此4位元ADC具有16個比較器,8位元ADC則具有256個比較器。所有的比較器輸出連接到一塊邏輯元件上,該邏輯元件根據比較器的電壓高低確定輸出。

快閃式ADC的轉換速率是比較器延遲和邏輯元件延遲(邏輯元件的延遲通常可以忽略不計)之和。快閃式ADC的轉換速率很快,但需要佔據巨大的IC空間;而且由於所需的比較器數目很大,快閃式ADC簡直就是功率‘黑洞’,需要消耗很高的電流強度。10位元快閃式ADC所需的電流約為0.5A。

快閃式ADC的一種變形就是半快閃式ADC,該ADC利用內建的數位類比轉換器(DAC)減少了內部比較器的數目。半快閃式轉換器的轉換速率低於真正的快閃式轉換器,但高於其它類型的ADC。這裡將其歸為快閃式轉換器類型。

2. 逐次比較ADC

逐次比較轉換器採用一個比較器和計數邏輯元件完成轉換。轉換的第一步是檢驗輸入是否高於參考電壓的一半,如果高於,將輸出的最高有效位元(MSB)置為1。然後輸入值減去輸出參考電壓的一半,再檢驗得到的結果是否大於參考電壓的1/4,依此類推直至所有的輸出位均置‘1’或清零。逐次比較ADC所需的時鐘周期與執行轉換所需的輸出位元數相同。

3. Sigma-delta ADC

Sigma-delta ADC採用1位元DAC、濾波和附加採樣來實現非常精確的轉換,轉換精度取決於參考輸入和輸入時鐘頻率。

Sigma-delta轉換器的主要優勢在於其較高的解析度。快閃式和逐次比較ADC採用並聯電阻或串聯電阻,這些方法的問題在於電阻的精確度將直接影響轉換結果的精確度。儘管新式ADC採用非常精確的激光微調電阻網路,但在電阻並聯中仍然不甚精確。sigma-delta轉換器中不存在電阻並聯,但藉由若干次採樣可得到收斂的結果。

Sigma-delta轉換器的主要劣勢在於其轉換速率。由於該轉換器的工作機理是對輸入進行附加採樣,因此轉換需要耗費更多的時鐘周期。在給定的時鐘速率條件下,Sigma-delta轉換器的速率低於其它類型的轉換器;或從另一角度而言,對於給定的轉換速率,Sigma-delta轉換器需要更高的時鐘頻率。

Sigma-delta轉換器的另一劣勢在於將佔空(duty cycle)資訊轉換為數位輸出字的數位濾波器的結構很複雜,但Sigma-delta轉換器因其具有在IC裸片上添加數位濾波器或DSP功能而日益得到廣泛應用。

ADC比較器

圖2顯示了sigma-delta、逐次比較和快閃式轉換器的解析度範圍,同時還提供了每種轉換器類型的最大轉換速率。如圖所示,sigma-delta ADC的轉換速率在逐次比較ADC的轉換速率範圍以內,但比不上轉換速率最低的快閃式轉換ADC。表中沒有提供速率和精確度的折衷結果。例如,可以找到8至16位元的逐次比較ADC,但在給定的系列產品中16位元ADC的轉換速率並不是最快的;而且在快閃式ADC中,速率最快的不是12位元ADC,而是6位元或8位元ADC。

上述圖表簡要描述了ADC技術的當前發展狀況。隨著CMOS製程的不斷改進,逐次比較轉換的時間已由以前的數十微秒迅速下降至數微秒。雖然並非所有的技術進步都將對所有類型的轉換器產生影響,CMOS製程的改進仍將提高各類轉換器的速率,但在ADC晶片上添加更為複雜的DSP功能並不能改進逐次比較轉換器的性能。DSP功能可以改進sigma-delta型ADC,因為該產品可以在晶片上添加更好、更快,也更複雜的濾波器。

採樣與保持

ADC轉換直流信號的工作原理簡單明了。但如果在轉換期間輸入信號的變化超過一個最低有效位元(LSB),ADC將得到不正確(或至少是不精確)的結果。減小誤差的一種方法是在ADC之前添加低通濾波器,並選擇適當的參數以保証ADC的輸入在一個轉換周期中的變化不超過一個最低有效位元。

處理變化的輸入信號的另一種方法是在ADC之前添加採樣-保持(S/H)電路,圖3顯示了採樣-保持電路的工作原理。S/H電路具備帶有控制輸入的類比(固態)開關,當開關閉合時,輸入信號將連接至保持電容,而緩衝器的輸出將跟蹤輸入。當開關開啟時,輸入信號將與保持電容斷開。

圖中還提供了S/H的工作波形,S/H輸入連接一個緩慢上升的信號,當控制信號較低時(採樣模式),輸出將跟蹤輸入;隨著控制信號的增強(保持模式),輸出將與輸入的保持電容斷開,並保持在S/H切換至保持模式時的輸入值。當電路再次閉合,電容迅速充電,輸出再次跟蹤輸入。通常S/H在ADC轉換開始前切換至保持模式,而當轉換結束後切回至採樣模式。

在理想條件下,保持電容不會產生漏電並且緩衝放大器具有無窮大的輸入阻抗,因此輸出將保持?定。但在實際中,保持電容會漏電,而且緩衝放大器的輸入阻抗是有限的,因而輸出電平將隨著電容放電產生緩慢的漂移。

S/H電路在保持模式下保持輸出的性能取決於保持電容的品質、緩衝放大器(主要是輸入阻抗)的特性和採樣?保持開關(實際的電子開關在開路時總會有漏電)的品質。保持模式下輸出呈現出的漂移量稱為固定偏差率(droop rate),可用毫伏?秒、毫伏?微秒或微伏?微秒來表示。

實際中,S/H電路由於電子開關無法達到理想狀況而具有有限的輸入阻抗。這意味著在採樣模式下,保持電容需要藉由某些電阻進行充電,這限制了S/H可獲取的輸入速率。S/H在採樣模式下為獲得滿刻度輸入所必須保持的採樣時間稱為採集時間,單位是納秒或微秒。

採樣時一些電阻與保持電容相串聯,這樣的效果等同於低通RC濾波器。這無疑限制了S/H所能獲取的最大頻率,該頻率稱為滿功率頻寬,單位是千赫或兆赫。

如前所述,由於電子開關無法達到理想狀況,某些輸入信號將出現在輸出中,即便在保持模式下也是如此,這種狀況稱為饋通,單位是分貝。

輸出偏移表示輸入信號與輸出信號之間的差異,S/H電路數據表通常以毫伏的形式表示保持模式下的偏移和採樣模式的偏移。

應用軟體

使用S/H的ADC系統必須能處理硬體異常情況。在某些系統中,軟體藉由埠或暫存器輸出位直接控制S/H的控制輸入。S/H通常置為採樣模式,而軟體必須滿足採集時間要求。在某些系統中,這項工作的完成僅僅只需將S/H置為採樣模式,直到需要轉換為止。

當S/H置為保持模式後,另一位(或寫入地址,或進行其它作業)將啟動ADC。轉換完成後,軟體將讀取結果。然而,一旦異常中斷(或出現最壞情況的中斷堆棧)導致S/H的輸出電路變化至少一個最低有效位元,將會出現問題。這種情況一旦產生,軟體必須在S/H切換至保持模式之前禁止中斷,並在開始轉換之前開放中斷,這樣就能保証ADC在產生S/H偏差之前完成轉換工作。

軟體還必須能調節S/H的充電時間。當電子開關閉合併與S/H電容的輸入信號連通時,電容必須在有限的時間內充電,因為此時開關和任何驅動輸入的電源都將具有非零阻抗。如果這些阻抗之和充分大,軟體將需要增加延遲,以使得保持電容在轉換之前,在終值的一個最低有效位元變化以內有充分的時間進行充電。

內部微控制器ADC

許多微控制器均帶有晶片上ADC。典型的元件包括Microchip的PIC167C7xx系列產品和Atmel的AT90S4434。大多數微控制器ADC採用逐次比較法,因為這種方法能對轉換速率和微控制器裸片空間成本進行最佳折衷。

PIC16C7xx微控制器包含一個帶有類比輸入多路再使用器的8位元逐次比較ADC。該系列微控制器具有4至8個通道,內部暫存器控制所選的通道並啟動轉換。輸入一旦選定,在啟動A/D轉換之前,必須藉由一段穩定時間使S/H電容充電。軟體必須保証上述作業所需的延遲時間。

轉換精確度

一些微控制器(如Microchip系列產品)允許使用一個輸入引腳作為參考電壓,該引腳通常與某種精密參考電源相連。轉換後從A/D轉換器上讀取的值為:

(Vin/Vref)×256

某些微控制器使用電源電壓作為參考。在5V系統下,這意味著Vref為5V。因此採用8位元ADC測量3.2V信號將得到如下結果:

(Vin×256)/Vref

=(3.2v×256)/5V

=16310

=A316

然而得到的結果還取決於5V電源值。如果電源電壓超過1%,即為5.05V,那麼A/D轉換的結果將為:

(3.2V×256)/5.05V=16210=A216

因此電源電壓1%的變化將導致轉換結果計數改變1。典型電源的電壓變化範圍為2%或3%,因此電源電壓的變化將對轉換結果產生顯著的影響。電源電壓的輸出常常受到電源間負載、溫度、交流輸入變化的影響。

這?提出了一個影響所有ADC設計的問題:參考電壓的精確度。典型的ADC參考電壓可為2.5V額定值,但可在2.47V和2.53V(這些數值來自數據表的實數部份)之間變化。如果採用10位元的ADC,在上述給定的參考範圍極限條件下,轉換2V的輸入將得到如下結果:當Vref=2.47V時,轉換結果=(2V×1,024)/2.47=82910;當Vref = 2.53V時,轉換結果=(2V×1,024)/2.53=80910。

各部份之間參考電壓的變化可導致輸出產生20個計數的變化。圖4顯示了參考變化對ADC結果的影響。儘管誤差的百分比在整個範圍內維持不變,但ADC值越大,誤差值顯然也越大。

軟體校正

有時由於需要得到精確的參考電壓,對精確度的要求甚至超過了產品成本所能承受的範圍。當無法進行手工調節時,即可採用軟體來補償參考電壓的變化。這通常可藉由提供已知的用於校正ADC的精確輸入來實現。這個參考電壓可以非常精確(當然也非常昂貴),因為只有很少的生產線需要這類參考電壓。

在上述2.47V示例中,ADC的輸入可採用2V的精確電壓。當軟體讀取ADC時,知道正確的值應為819,由此校正常數為829/819,或1.012。類似地,2.53V參考電壓的校正常數為809/819,或0.988。

這意味著需要浮點運算來校正ADC值。如果使用的處理器可處理浮點運算,那麼這種方法就是可取的。但對於比較簡單的處理器,則有可能不具備必要的處理時間或代碼空間來實現浮點運算。

進行ADC校正的一種有效方法是查表。但該方法的缺陷是需要足夠大的固定記憶體來維持對應於每個可能的ADC值的查表值,對於10位元的ADC,查表需要1024字的儲存空間。

電壓參考與其額定值相當接近,否則就不能稱其為參考了。假定在工作溫度中參考電壓足夠穩定,ADC誤差佔ADC讀數值的百分比將是?定的。因為ADC具有有限的解析度,精度校正ADC誤差的精度不會大於1LSB。

這樣我們就可按下面提供的方法簡化ADC的校正製程。作為查詢表的替代,我們可以另外儲存一個值,該值通知軟體將要從ADC讀取值中添加或刪除的(二進制)百分比,由此校正誤差。我們可以添加或刪除輸入的1/8、1/16或1/24,但都將導致精確度下降1 LSB。我們只需儲存單個校正常數,而除法運算則可由一系列移位加或移位減運算實現。

上述2.47V示例可由ADC值與.988相乘的結果加以校正,也可藉由初始值減去1/128,再減去1/256和1/512得到相同的結果。在初始的2V示例中,採用整數表示法,可得到如下結果:

829-829/128-829/156-829/512

=829-6-3-1

=819

上述結果將ADC讀取值校正為819,這是額定參考電壓為2.5V條件下的理想值。類似地,2.53V參考電壓可藉由增加1/128和1/256加以校正。

我們還必須確信在期望的工作溫度範圍內參考電壓充分穩定,否則在期望溫度附近只能得到較好的校正結果。如果參考電壓的溫度穩定性不夠好,那麼必須選擇更好的參考電壓,或者將工作溫度範圍分為多個段並在每個段上使用不同的校正值。當然,這也意味著需要使用熱敏電阻或其它方法來測量溫度。

該方法藉由對移位結果進行截斷捨入而實現捨入誤差處理。在2.47V示例提供的電子表格中,所有情形下的校正值均在理想值的兩個計數以內。大多數校正值都是正確無誤的,或者僅偏差一個計數。2V輸入條件下得到的校正結果明顯優於最初的偏差(10個計數),這正好滿足了諸多應用系統的需要。如果應用系統連這點偏差都無法承受,那麼確實需要更好的參考電壓或者求助於手工調節。

校正技術同樣可用來補償其它系統的不精確度,如電阻累計誤差。如果所測量的系統包含電壓輸入,即可在輸入中應用精確電壓,並進行適當的校正,由此在ADC中補償參考輸入的變化並在輸入條件下補償電阻公差的影響。

校正值的計算和使用

校正值可藉由讀取已知的參考輸入並找到適當的校正系數(二進制系數)計算得到。對於上述給定的示例,理想值與最壞條件下的ADC值之間的差異將不會超過1.2%,因此初始值的1/2和1/4中不會出現分數,而能被測試和使用的值只能為1/128、1/256和1/512。這樣就可以從接近期望值的地方開始工作。

我們可以輕易地利用計算器求得校正系數,但如果要在應用系統的固定點處理器上計算校正系數,那麼還需要採用基於整數的方法。根據該方法,單個位元組(或字)用來儲存校正常數,而第7位元指示參考電壓的高低狀態(如參考電壓為低,則需減去校正值,否則加上校正值)。第0、1和2位元指示是否需要使用1/128、1/256和1/512系數。

當然也可為每個可能的系數分別使用一個位元組,其中第4個位元組指示參考電壓的高低狀態。

寫入校正值

不管使用表格還是校正常數,如何使校正值寫入系統呢?任何校正設計的一項關鍵組成部份就是固定記憶體的有效性。許多微控制器都帶有晶片上EEPROM,而校正通常在電路板測試過程中進行。在高產量環境下,校正或許可以利用某類自動測試設備加以實施。

我們通常希望藉由使引腳接地,將處理器置於某種‘校正模式’中。生產測試設備可用程式加以控制,因此可在類比輸入應用非常精確的電壓,並使校正引腳接地。微控制器可進入校正模式,並在該模式下讀取參考值並計算補償值或產生檢索表。

在某些情形下,由於記憶體不夠而無法向微控制器添加校正代碼。此時就必須使微控制器將ADC值返回至輸出引腳(串聯情況),或者返回至一組引腳(並聯情況),該值由生產測試設備讀取。這樣外部電腦就能計算校正值或查表值,並經由相同的介面返回至微控制器。

如果生產測試設備能對微控制器的內部電路進行程式控制,那麼校正數據就能嵌入快閃記憶體的程式數據中。如果校正的參考電壓在微控制器以內,那麼測試設備首先必須將校正程式載入微控制器中並執行校正程式,然後載入實際的應用代碼。

但是某些非常小的微控制器由於沒有充足的引腳,因而無法進行必要的校正。在這類情形中,必須使輸出引腳還充當校正引腳,可以採用外部電阻使該引腳實現此雙重功能。生產測試設備通常在啟動選擇校正模式之前使引腳接地。

上述功能實現中,微控制器啟動時所有的引腳均處於輸入狀態,並在將校正引腳配置為輸出引腳之前讀取校正值。如果引腳的電壓為高,則啟動正常的工作方式;如果引腳的電壓為低,則必須在外部接地,由此使微控制器進入校正模式。當然引腳在外部接地時,輸出不應對系統產生任何破壞。

如果要校正應用於備用ADC輸入的精確參考電壓,那麼可以應用備用輸入本身對系統校正。只需使用一個電阻器即可在備用輸入中使ADC電壓歸零(在上述示例中只需接地即可)。當引腳測量得到的電壓超過某些預先確定的閥值(即超過滿標度電壓的2/3)時,必須使軟體進入校正模式。

選擇校正電壓時,必須在參考電壓為最低可能值時,不使ADC到達飽和時的最大值。這能保証計算校正常數(或表)時,不會因為校正常數的位捨入誤差而降低精確度。這通常使校正電壓高於滿標度的90%,儘管期望能選擇最接近標準的參考電壓以方便設計。

在某些應用中,還可以藉由改變ADC的輸入來解決參考輸入問題:可以採用變化範圍為10%的光感測器,取代具有固定值的光感測器,或者採用變化範圍為25%的溫度感測器。當然還必須考慮這些感測器的精度,但這已超出了本文討論的範圍。

儘管有時很難確定哪種ADC適用於具體的應用系統,但該產品的多個系列使得我們可以輕松地挑選滿足需要的產品。使軟體與硬體相匹配就能確保選擇的ADC滿足應用系統的精確度和穩定性要求。

作者簡介:

Stuart Ball在嵌入式系統設計領域具有20餘年經驗的工程師,編寫了3本有關嵌入式系統的書籍。本文的內容節選自Stuart最新出版的著作「Analog Interfacing to Embedded Microprocessors」,該書由Butterworth-Heinemann公司出版。他的聯繫郵件:SBall85964@aol.com或stuart@stuartball.com。

作者:Stuart Ball

SBall85964@aol.com或stuart@stuartball.com





投票數:   加入我的最愛
我來評論 - 類比數位轉換器與嵌入式微處理器的介面...
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首