Przetworniki cyfrowo-analogowe
1. Cel ćwiczenia
Celem ćwiczenia jest zapoznanie słuchaczy z budową, działaniem i wybranymi przykładami realizacyjnymi przetworników cyfrowo-analogowych, a także porównanie własności 8-bitowych przetworników wykorzystujących różne zasady konwersji.
2. Wprowadzenie
Metody przetwarzania C/A dzielimy na bezpośrednie i pośrednie. W metodach bezpośrednich wejściowa liczba zostaje bezpośrednio przetworzona na odpowiadającą jej wartość wielkości analogowej, najczęściej napięcia lub prądu. Przetwarzanie odbywa się niezależnie dla każdego bitu, tak, że jego stanowi aktywnemu odpowiada zawsze jednakowy (teoretycznie, w idealnym przypadku) przyrost wielkości wyjściowej - chyba że liczba podana jest w kodzie bezwagowym; w takiej jednak sytuacji kod wejściowy jest zawsze przetwarzany wstępnie na kod z wagą i dopiero po tym poddawany konwersji C/A. W metodach pośrednich w procesie przetwarzania występuje pewien sygnał pośredni, najczęściej w postaci ciągu impulsów, w którym przetwarzana wartość zakodowana jest w częstotliwości, czasie trwania, liczbie impulsów lub ich wypełnieniu. Przetworniki działające w oparciu o metody bezpośrednie charakteryzują się zazwyczaj dość skomplikowaną konstrukcją, trudno uzyskać w nich dużą dokładność i wymagają wówczas stosowania precyzyjnych, kosztownych elementów. Umożliwiają jednak uzyskanie krótkich czasów konwersji. Przetworniki z sygnałem pośrednim pozwalają na uzyskanie bardzo dużych dokładności przy stosunkowo prostej konstrukcji, ale są dość wolne.
Koncepcyjnie najprostszym typem konwertera C/A jest przetwornik z rezystorami ważonymi (Rys.1.), w którym następuje sumowanie prądów generowanych przez przyłączanie do źródła napięcia odniesienia rezystorów o wartościach pozostających w stosunku 1:2. Przetwornik można zrealizować przy wykorzystaniu tylko kluczy zwiernych, ale prostota układu okupiona jest nienajlepszymi parametrami. Wymaga stosowania precyzyjnych rezystorów o dużej rozpiętości wartości, co jest poważnym utrudnieniem konstrukcyjnym.
W przetworniku z drabinką R-2R i napięciowym źródłem odniesienia bezwzględne tolerancje rezystorów nie mają znaczenia, istotne są tylko ich wzajemne stosunki. Ponieważ występują tylko 2 wartości (a właściwie jedna, bo rezystor 2R bez trudu można wykonać z 2 rezystorów R, lub odwrotnie), stosunkowo łatwo uzyskiwalne są duże dokładności drabinki. Większa liczba rezystorów i konieczność stosowania kluczy przełącznych powoduje pewien wzrost stopnia komplikacji układu. Jest to najczęściej spotykana struktura w zakresie przetworników o średnich dokładnościach.
W obu omówionych typach przetworników jednym z istotnych źródeł błędów są niezerowe rezystancje kluczy analogowych oraz rozrzuty tych rezystancji pomiędzy poszczególnymi egzemplarzami, zmienność temperaturowa itp. Wpływ rezystancji kluczy na dokładność można usunąć w układach wykorzystujących dokładne źródła prądowe. Spotykane są 2 podstawowe wersje - ze źródłami ważonymi (Rys. 3.) oraz ze źródłami jednakowymi, współpracującymi z drabinką R-2R włączoną inwersyjnie (z podziałem prądu, Rys. 5.). Przetworniki takie są wykonywane raczej w lepszych klasach dokładności, co stwarza pewne problemy w realizacji wielu źródeł prądowych ważonych o bardzo znacznym rozrzucie wartości. Łatwiejsze jest wykonanie źródeł o jednakowych wartościach, jednak w takim przypadku trzeba użyć dodatkowego elementu - drabinki R-2R, godząc się przy tym na pewne dodatkowe błędy. Ponieważ spadek napięcia na kluczach analogowych nie ma znaczenia, często stosuje się najprostsze, ale przy tym bardzo szybkie, klucze diodowe lub tranzystorowe. Dzięki temu przetworniki taki mogą być nie tylko dokładne, ale też szybkie.
Przykład przetwornika z konwersją pośrednią przedstawia schemat na Rys.6. Jest to cyfrowy modulator współczynnika wypełnienia przebiegu impulsowego, poddawanego następnie uśrednieniu. Sercem układu jest modulator, zrealizowany na 8-bitowym liczniku rewersyjnym z wejściami wpisu równoległego. Do licznika wpisywana jest asynchronicznie przetwarzana liczba, po czym zlicza on w jednym kierunku aż do wystąpienia sygnału przeniesienia (t-/16 lub t+/16), sygnalizującego osiągnięcie stanu minimalnego (zero) lub maksymalnego (255). W obu przypadkach następuje ponowne załadowanie licznika przetwarzanym słowem wejściowym oraz zmiana stanu przerzutnika s-r, przełączającego kierunek zliczania na przeciwny. W ten sposób licznik w jednym cyklu zlicza od przetwarzanej liczby do zera, a w następnym cyklu od tej liczby do maksimum. W dwóch kolejnych cyklach zlicza zatem do zera do maksimum, tyle że „na raty”, co oczywiście wymaga zawsze 256 impulsów zegarowych. Natomiast czas trwania pierwszej fazy jest zmienny i proporcjonalny do przetwarzanej liczby, dzięki czemu na wyjściu przerzutnika generowany jest przebieg o zmiennym wypełnieniu. Przebieg ten za pośrednictwem przełącznika analogowego kluczuje napięcie odniesienia, dając w efekcie sygnał o nie tylko precyzyjnie zdefiniowanych zależnościach czasowych, ale też o stabilnej amplitudzie. Po uśrednieniu w najprostszym filtrze otrzymujemy na wyjściu stałe napięcie wyjściowe. Dokładna analiza działania układu wymaga podejścia nieco bardziej subtelnego (co się dzieje, gdy słowo wejściowe jest równe 0 albo 255?), ale jest to tylko prosty przykład obrazujący pewną metodę konwersji C/A. Przetworniki tego typu są proste, zawierają bardzo niewiele elementów precyzyjnych i pozwalają przy tym na uzyskanie bardzo wysokich dokładności (nawet do 20 bitów), ale są stosunkowo wolne; czas ustalania może sięgać sekund. Ich charakterystyka jest strukturalnie monotoniczna.
3. Parametry przetworników C/A.
Najważniejsze parametry przetworników C/A to:
- dokładność- rozdzielczość- nieliniowość- czas konwersji- parametry temperaturowe
Dokładność przetwornika określana jest jako maksymalna różnica między rzeczywistą wartością wielkości wyjściowej a odpowiadającą danej liczbie wejściowej wartością znamionową, w całym zakresie konwersji. Dokładność określa się w odniesieniu do zakresu przetwarzania, w % lub w ułamkach LSB (wielkości odpowiadającej najmniej znaczącemu bitowi liczby wejściowej, czyli skokowi kwantyzacji).
Rozdzielczość przetwornika jest wyznaczana liczbą bitów i oznacza różnicę między dwoma kolejnymi wartościami znamionowymi wielkości wyjściowej, wyrażoną w % lub liczbą bitów (w takim przypadku liczba bitów dotyczy prostego kodu binarnego). Jest to innymi słowy znamionowy przyrost sygnału wyjściowego odpowiadający jednostkowemu przyrostowi liczby wejściowej i odpowiada 1 LSB. Warto zwrócić uwagę, że w przetwornikach analogowo-cyfrowych dokładność nie może być lepsza od rozdzielczości, natomiast w przypadku przetworników cyfrowo-analogowych jest to jak najbardziej możliwe.
Nieliniowość przetworników C/A dzieli się na całkową i różniczkową. Nieliniowość całkowa jest to maksymalne odchylenie rzeczywistej charakterystyki przetwarzania od prostej, która ją najlepiej pod tym względem aproksymuje, w całym zakresie przetwarzania. Nieliniowość różniczkowa jest największą odchyłką różnicy dwóch kolejnych wartości wyjściowych od znamionowej wartości tej różnicy, równej 1 LSB. Kolejne wartości powinny różnić się dokładnie o 1 LSB, jeżeli różnią się o inną wielkość, to odchyłka od 1 LSB jest błędem nieliniowości różniczkowej.
Jeżeli błąd nieliniowości różniczkowej przekracza 0,5 LSB, to charakterystyka przetwarzania może być niemonotoniczna i przyrostowi liczby wejściowej może w pewnych punktach charakterystyki odpowiadać zmniejszenie wielkości wyjściowej. Niemonotoniczność z reguły dyskwalifikuje przetwornik, szczególnie w układach regulacji, w których konwerter umieszczony jest w pętli ujemnego sprzężenia zwrotnego.
Czas konwersji jest okresem pomiędzy zmianą liczby wejściowej przetwornika a ustaleniem się wielkości wyjściowej na poziomie odpowiadającym stanowi ustalonemu, z dokładnością do 1 LSB lub 1/2 LSB
Błędy konwersji przetworników C/A spowodowane są najogólniej 2 zasadniczymi przyczynami:
- wielkość przyrostu sygnału wyjściowego przetwornika odpowiadająca poszczególnym bitom słowa wejściowego nie jest dokładnie równa wartości znamionowej (błędy wag); powodować to może pojawienie się uchybów dokładności i nieliniowości.
- przyrost sygnału wyjściowego przetwornika odpowiadający danemu bitowi słowa wejściowego zależny jest od tego, czy i ile pozostałych bitów znajduje się w stanie aktywnym, tzn. zależny jest od poziomu wielkości wyjściowej; powoduje to pojawienie się błędu nieliniowości.
4. Laboratoryjna realizacja ćwiczenia
W ćwiczeniu używane są m.in. specjalistyczne kasetki zawierające klucze bezstykowe, źródła prądowe, drabinki rezystorowe i zestawy rezystorów.
Kasetka X-FET zawiera 4 pojedyncze zwierne klucze bezstykowe wykonane na tranzystorach unipolarnych. Sterującym stanem aktywnym, włączającym klucze, jest stan wysoki (lub rozwarcie, sterowanie jest w standardzie TTL). Rezystancja kluczy w stanie zwarcia jest równa około 120 Ώ i zmienia się ze zmianami temperatury. Klucze mogą włączać napięcie w zakresie +15 do -10 V, przy czym rezystancja kluczy nie zależy istotnie od poziomu łączonych napięć.
W kasetce X1 zamontowano 4 pojedyncze klucze przełączne, o konstrukcji i parametrach identycznych, jak w kasecie X-FET.
Kaseta z zestawem rezystorów zawiera 8 jednakowych rezystorów 5 kΏ ± 0.2% oraz 8 rezystorów o ważonych wartościach 10 kΏ ... 1.28 MΏ ± 0.2%.
Kasetka z drabinką rezystorową zawiera zestaw rezystorów R-2R o wartościach 10kΏ i 20kΏ ± 0,2%. Z rezystorów tych można zestawiać różne drabinki R-2R - sterowane napięciowo lub prądowo.
Kasety CS zawierają po 4 źródła prądowe zrealizowane na wzmacniaczach operacyjnych i tranzystorach (punkt 4 programu). Stabilizowany jest prąd zewnętrznego rezystora włączonego pomiędzy emiter tranzystora i napięcie zasilania +15 V, czyli - z dokładnością do prądu polaryzacji wzmacniacza operacyjnego - prąd emitera. Prąd kolektora tranzystora, będący prądem wyjściowym źródła, różni się od prądu kolektora jeszcze o prąd bazy. Układy te zapewniają stabilizację prądu z dokładnością ok. ±0.2% ±20 nA w zakresie napięć wyjściowych ±11 V, pod warunkiem stosowania dostatecznie dokładnych rezystorów. Wbudowane wewnętrzne napięcie odniesienia źródeł jest równe 2 V.
Kaseta OA o uniwersalnym zastosowaniu zawiera wzmacniacz operacyjny z zestawem dodatkowych rezystorów, kondensatorów i precyzyjnym potencjometrem wieloobrotowym. Rezystory sprzężenia zwrotnego wzmacniacza (10 kΏ, 100 kΏ lub 1 MΏ) wybierane są za pośrednictwem przełącznika typu Isostat.
W kasetce UO zamontowane są źródła stałych napięć +5 V i -5 V, źródło napięcia regulowanego w zakresie ±6 V (za pośrednictwem 2 potencjometrów - wieloobrotowego regulacji zgrubnej i jednoobrotowego regulacji dokładnej), używanego w ćwiczeniu jako źródło napięcia odniesienia realizowanych przetworników, oraz źródło dodatkowego napięcia regulowanego, używanego standardowo do kompensacji przesunięcia zera przetworników. Układ kompensacji wykorzystuje rezystancyjny dzielnik napięcia z zewnętrznym rezystorem 3...5 MΏ.
5. Program ćwiczenia:
Podczas ćwiczenia montowane i badane są następujące przetworniki 8-bitowe:
przetwornik z rezystorami ważonymi,
przetwornik z drabinką R-2R i napięciowym źródłem odniesienia,
przetwornik z ważonymi źródłami prądowymi,
przetwornik ze źródłami prądowymi i drabinką R-2R,
przetwornik z przetwarzaniem pośrednim i modulacją współczynnika wypełnienia impulsów.
Schematy przetworników przedstawione zostały na rysunkach 1-6, zamieszczonych na końcu instrukcji.
Wszystkie przetworniki po zmontowaniu i uruchomieniu należy wyskalować tak, aby uzyskać LSB = 20mV. Skalowanie przetworników w ogólnym przypadku wcale nie jest zadaniem trywialnym. W zasadzie w pierwszym kroku należałoby obliczeniowo, na podstawie znajomości struktury układu i wartości zastosowanych elementów, wyznaczyć wymaganą wielkość napięcia odniesienia, czy też innego parametru decydującego o nachyleniu charakterystyki. Kolejnym krokiem powinno być zdjęcie pełnej charakterystyki rzeczywistej - dla wszystkich liczb wejściowych! Jest to zadanie pracochłonne nawet dla konwertera 8-bitowego, a co dopiero dla układów o lepszych rozdzielczościach (np. przy 12 bitach rozdzielczości wymagane jest wyznaczenie 4096 punktów). Następnie należy wyznaczyć prostą, która najlepiej przybliża zdjętą charakterystykę, przy czym kryterium optymalizacji jest nie minimalizacja błędu średniokwadratowego, co byłoby względnie proste wobec dostępności programów realizujących takie zadanie, lecz znacznie trudniejsza minimalizacja błędu maksymalnego. Wyznaczona prosta (the best straight line) zazwyczaj nie przechodzi przez początek układu współrzędnych (błąd przesunięcia zera) oraz ma niewłaściwe nachylenie (błąd skali, albo wzmocnienia). Maksymalna odchyłka rzeczywistej charakterystyki od optymalnej prostej wyznacza błąd nieliniowości całkowej. Warto tu zwrócić uwagę, że błędy zera i wzmocnienia określane są przebiegiem prostej linearyzującej charakterystykę, a nie samej charakterystyki; dotyczy to zresztą wszelkich charakterystyk, nie tylko przetworników C/A. Oznacza to m.in., że błąd przesunięcia zera nie jest równy współrzędnej punktu, w którym rzeczywista charakterystyka przecina układ współrzędnych, lecz punktu, w którym przecina go wspomniana prosta.
Na podstawie znajomości błędów zera i wzmocnienia można wyliczyć odpowiednie poprawki i wprowadzić je w testowanym przetworniku, po czym całą procedurę należy powtórzyć. W ten sposób po kilku takich krokach iteracji „najlepsza prosta” przechodzi przez początek i koniec zakresu przetwarzania, a błędy przesunięcia zera i wzmocnienia ulegają skasowaniu - na tym właśnie polega skalowanie. Opisana procedura jest „ideologicznie” poprawna, ale w żaden sposób nie przystaje do rzeczywistości ze względu na nieakceptowalną pracochłonność. Z tych względów producenci przetworników stosują prostsze metody skalowania, nie gwarantujące jednak najlepszej dokładności. Masowo stosowana metoda, polegająca na skalowaniu przetwornika na początku i na końcu zakresu, w praktyce też nie zawsze jest możliwa do przyjęcia. Przykładowo przetwornik, który na liczbę zero odpowiada także zerowym sygnałem wyjściowym może wykazywać spore przesunięcie zera - jeżeli wielkość wyjściowa utrzymywana jest na zerowym poziomie także dla liczb 1, 2, ... . Sprawdzenie w jednym, początkowym punkcie nie pozwala na wykluczenie takiego błędu, często spotykanego w przetwornikach zasilanych tylko pojedynczym, dodatnim napięciem. Podobne błędy mogą pojawiać się też na końcu zakresu. Na szczęście istnieje inżynierska metoda skalowania, pozbawione w znacznej mierze tych wad, która nie jest co prawda ściśle uzasadniona teoretycznie, ale dobrze sprawdza się w praktyce. Polega ona na doborze wzmocnienia nie dla końca zakresu, ale w jego połowie, a korekcji przesunięcia zera dla liczby wejściowej równej 1 lub ewentualnie 2. Prosta wyznaczona przez tak określone 2 punkty zazwyczaj dobrze wpisuje się w typowe, rzeczywiste charakterystyki realnych przetworników i bliska jest optymalnej, przy nieporównywalnie mniejszej pracochłonności. Metoda taka pozwala na pewną minimalizację błędu nieliniowości całkowej, dominującego w charakterze błędów większości przetworników, i będzie stosowana w trakcie realizacji ćwiczenia. Przetworniki o lepszych dokładnościach mogą jednak wymagać skalowania nieco staranniejszego.
W przetwornikach wykorzystujące źródła prądowe regulacja nachylenia charakterystyki następuje poprzez zmianę wzmocnienia wzmacniacza wyjściowego, a nie przez dobór napięcia odniesienia. Wartości elementów regulacyjnych należy dobrać obliczeniowo lub eksperymentalnie.
Kolejny problem związany jest z pomiarami charakterystyk wykonanych przetworników. Dla ich rzetelnej oceny należałoby zdejmować pełne charakterystyki, w 256 punktach, co w trakcie ćwiczenia nie jest możliwe ze względów czasowych (i ogólnoludzkich, mogłaby znacznie wzrosnąć liczba przypadków śmierci z nudów w populacji młodych studentów płci obojga). Największy problem stwarza wyznaczenie błędu nieliniowości różniczkowej, który teoretycznie wystąpić może w każdym miejscu charakterystyki konwersji. W rzeczywistości jednak największe błędy pojawiają się zazwyczaj tylko w pewnych, typowych punktach. Jeżeli bowiem z każdym bitem związany jest pewien błąd, to różnica sygnałów wyjściowych dla dwóch sąsiednich liczb będzie najprawdopodobniej największa wówczas, gdy liczby te będą się różniły na jak największej liczbie bitów, bo błędy wprowadzane przez poszczególne bity będą miały przeciwne wartości. Należy również uwzględnić fakt, że najbardziej znaczący bit wprowadza zwykle największy błąd, kolejny bit nieco mniejszy błąd itd., chociaż z drugiej strony błędy te są w pewnym stopniu korygowane podczas skalowania. W rezultacie jednak w większości konwerterów największe błędy nieliniowości różniczkowej występują dla 2 sąsiednich wartości w połowie zakresu, mniejsze dla sąsiednich wartości w ¼ i ¾ zakresu, jeszcze mniejsze dla 1/8, 3/8, 5/8 i 7/8 zakresu itd. W takich też punktach należy (i wystarczy) zdejmować charakterystyki badanych przetworników, oczywiście po uzupełnieniu ich także wektorami wejściowymi złożonymi z samych zer, samych jedynek oraz z pojedynczych jedynek po kolei na wszystkich pozycjach, co jest niezbędne dla wyznaczenia wag poszczególnych bitów. Jeżeli przetwornik spełnia kryteria dokładności w wymienionych punktach, to w praktyce niemal zawsze będzie je spełniał także we wszystkich pozostałych punktach (a jeżeli nie spełnia, to szkoda czasu na dalsze pomiary).
Badanie statyczne układów przeprowadzane jest przez podawanie sygnałów wejściowych z zadajników. Dla wybranych przetworników można wykonać pomiary dynamiczne, doprowadzając słowa wejściowe z wyjść 8-bitowego licznika binarnego i obserwując wyjście na oscyloskopie, przy zmiennej częstotliwości przebiegu zegarowego licznika zadającego pobudzenia. Badania dynamicznego nie wykonuje się dla przetwornika z przetwarzaniem pośrednim i modulacją współczynnika wypełnienia.
Rys. 1. Przetwornik z rezystorami ważonymi.
Rys. 2. Przetwornik z drabinką R-2R i napięciowym źródłem odniesienia.
Rys. 3. Przetwornik z ważonymi źródłami prądowymi.
Rys. 4. Schemat źródła prądowego stosowanego w ćwiczeniu.
Rys. 5. Przetwornik ze źródłami prądowymi i drabinką R-2R.
Rys. 6. Przetwornik z przetwarzaniem pośrednim i modulacją współczynnika wypełnienia.
7