Przetworniki ADC odgrywają kluczową rolę w przetwarzaniu wszelkiego rodzaju sygnałów analogowych na cyfrowe, ale jak one właściwie działają?

Kluczowe dania na wynos

  • Przetworniki ADC są szeroko stosowane do konwersji sygnałów analogowych, takich jak dźwięk i światło, na wartości cyfrowe, które można wykorzystać w różnych zastosowaniach.
  • Częstotliwość próbkowania przetwornika ADC określa liczbę odczytów dokonywanych na sekundę, przy czym wyższe częstotliwości próbkowania pozwalają na dokładniejszą reprezentację sygnału.
  • Szybkość transmisji przetwornika ADC wpływa na jakość uzyskanej próbki, przy czym większa liczba bitów zapewnia płynniejsze i dokładniejsze pomiary. Różne typy przetworników ADC oferują różne kompromisy pod względem szybkości, precyzji i zużycia energii.

Przetworniki analogowo-cyfrowe (ADC) są niezwykle przydatne do przekształcania zjawisk świata rzeczywistego w wartości, które możemy wykorzystać w projektach programistycznych. Ale w jaki sposób przetwornik ADC może konwertować sygnały analogowe na cyfrowe, których możemy używać w dowolnym miejscu?

instagram viewer

Do czego służą przetworniki ADC?

ADC znajdziesz niemal wszędzie. Są w Twoim telefonie i konwertują Twój głos na ciąg wartości binarnych. Są w twoim samochodzie i mierzą obrót kół. Znajdują się w oscyloskopach, pomagają przechwytywać sygnały i je reprezentować. Jednak miejscem, z którego większość ludzi będzie z nich korzystać, jest świat wideo i audio, w którym fundamentalne znaczenie ma przeniesienie światła i dźwięku do przestrzeni cyfrowej.

Co to jest częstotliwość próbkowania? Jak częstotliwość próbkowania wpływa na ADC?

Jedną z najważniejszych wskaźników ADC jest częstotliwość próbkowania: liczba odczytów dokonywanych co sekundę.

Bardzo wysokiej klasy oscyloskop może pobrać dziesięć miliardów próbek na sekundę. Mały, dzielny przetwornik ADC MCP3008 może wytrzymać stosunkowo skromne dwieście tysięcy. W świecie audio typowa jest częstotliwość próbkowania wynosząca 44 100 na sekundę (44,1 kHz).

Im więcej próbek pobierzemy, tym dokładniej możemy przedstawić sygnał. Czasami jest to niezbędne; czasami tak nie jest. Załóżmy, że budujemy bank tłumików (zaprojektowany do sterowania elektroniką, tak jak na biurku oświetleniowym lub audio) z kilkoma tuzinami potencjometrów. W tym przypadku jest mało prawdopodobne, aby wartości, które musimy zmierzyć, zmieniły się miliony razy na sekundę, ponieważ nasze palce nie mogą poruszać się tak szybko. Potrzebujemy tylko wystarczającej liczby próbek, aby wynik był płynny i responsywny.

Co to jest szybkość transmisji? Czy szybkość transmisji wpływa na jakość przetwornika ADC?

Powinniśmy także pomyśleć o jakości próbki, którą otrzymujemy. Zależy to w dużej mierze od szybkości transmisji, która mówi nam, ile stanów włączenia-wyłączenia możemy użyć do cyfrowego przedstawienia napięcia. Im więcej mamy bitów, tym więcej możliwych wartości możemy zarejestrować w danej próbce i tym gładszy i dokładniejszy jest wynik końcowy.

Pisaliśmy o systemie binarnym i jego działaniu, więc jeśli nie masz pewności, jest to dobre miejsce na rozpoczęcie. Ile bitów potrzebujemy? To znowu zależy od tego, co chcemy osiągnąć. Czasami możemy być ograniczeni protokołem, którego używamy. Na przykład protokół MIDI 1.0 jest ograniczony do wartości siedmiobitowych (a czasami czternastobitowych). W innych przypadkach czynnikiem ograniczającym może być ludzka percepcja. Jeśli zwiększona wierność nie przyniesie zauważalnej poprawy wyniku, może się to nie opłacać.

W jaki sposób multipleksowanie poprawia jakość ADC?

Popularne układy ADC, takie jak ADS1115 i MCP3008 oferują wiele wejść. Ale pod maską tak naprawdę zawierają tylko jeden ADC. Jest to możliwe dzięki multiplekserom wbudowanym w te urządzenia. Multipleksery są absolutnie wszędzie w świecie elektroniki i telekomunikacji. Są to przełączniki cyfrowe, które pełnią funkcję kontroli ruchu dla przetwornika ADC. ADC może próbkować jeden kanał, potem następny i jeszcze następny. Tak więc, jeśli masz osiem kanałów i częstotliwość próbkowania 200 000, możesz przeglądać je wszystkie, pobierając 25 000 próbek na kanał.

Jakie są rodzaje ADC?

Przetworniki ADC działają na różne sposoby, w zależności od wymaganych kosztów i możliwości.

A Flash ADC działa poprzez bardzo złożony dzielnik napięcia. Zespół rezystorów dzieli napięcie odniesienia na przyrosty, które następnie są testowane względem sygnału wejściowego za pomocą zestawu komparatorów. Przetworniki ADC Flash działają błyskawicznie, ale ich głębokość bitowa jest ograniczona ze względu na liczbę wymaganych komparatorów. Z tego samego powodu są również żądni władzy.

A Podzakres ADC stara się zrównoważyć te słabości, dzieląc pracę pomiędzy dwie oddzielne jednostki: jedną do zgrubnego obliczenia napięcia, a drugą do dokładnego obliczenia. Dzieląc rzeczy, możemy zmniejszyć liczbę komparatorów. Niektóre przetworniki ADC z podzakresami podzielą pracę na trzy etapy, po drodze wbudowaną korekcję błędów.

SAR (Rejestr kolejnych aproksymacji) ADC wykonują swoją pracę poprzez rodzaj wyszukiwania binarnego. Załóżmy, że mamy osiem bitów do wypełnienia. SAR zacznie się od 10000000, czyli wartości środkowej (00000000 to dolna wartość, a 11111111 to najwyższa). Jeśli napięcie przekroczy ten punkt środkowy, SAR pozostawi skrajną lewą cyfrę jako 1; jeśli tak nie jest, SAR ustawi cyfrę znajdującą się najbardziej po lewej stronie na 0. Możemy powtórzyć proces z kolejną cyfrą i tak dalej rekurencyjnie. Spowoduje to, że zgadywana wartość będzie stopniowo zbliżać się do wartości rzeczywistej:

W ten sposób stale zawężamy poszukiwania, dzieląc możliwości na pół i zadając pytanie, czy wynik jest wyższy, czy niższy od środka. W tym przypadku wartość mieści się w przedziale od 0 do 255; po kilku iteracjach ADC ustalił, że wynosi około 77.

Sigma-delta konwertery są prawdopodobnie najtrudniejsze do zrozumienia. Są używane w precyzyjnych zastosowaniach muzycznych i do pomiaru sygnału. Działają poprzez nadpróbkowanie sygnału i udoskonalanie wyniku za pomocą diabelnie skomplikowanego filtrowania i matematyki. Proces ten skutecznie zmniejsza częstotliwość próbkowania, jednocześnie zwiększając precyzję. Te przetworniki ADC są świetne, gdy hałas i precyzja liczą się bardziej niż prędkość.

Wreszcie mamy Integracja przetworników ADC, które są nawet wolniejsze niż sigma-delta. Działają za pomocą kondensatora, którego szybkość ładowania można wykorzystać do określenia napięcia wejściowego. Częstotliwość próbkowania jest tutaj często zsynchronizowana z częstotliwością zasilania, co można wykorzystać do ograniczenia szumów do absolutnego minimum.

Co to jest teoria Nyquista-Shannona?

Załóżmy, że chcemy opisać sygnał analogowy cyfrowo. Aby to zrobić, potrzebujemy co najmniej dwóch punktów na każdy dany cykl: jeden na górze i jeden na dole. Zatem nasza częstotliwość próbkowania musi być co najmniej dwukrotnie większa od najwyższej częstotliwości, którą spodziewamy się zmierzyć.

Jest to znane jako częstotliwość Nyquista, od nazwiska szwedzko-amerykańskiego fizyka Harry'ego Nyquista. Teoria została nazwana na cześć Nyquista i Claude'a Shannona (wybitnego matematyka i kryptografa), ale nie na cześć Edmunda Whittakera, który wpadł na ten pomysł przed którymkolwiek z nich.

Komu przypiszemy tę teorię, ma z nią problem. Nie można z góry wiedzieć, kiedy pojawi się górna i dolna część przebiegu. Co się stanie, jeśli pobierzemy próbki w połowie przychodzącego przebiegu? Obserwuj, jak zmiana przychodzącego sygnału może całkowicie spłaszczyć przechwycony wynik:

Lub nawet halucynacje nowych kształtów fal, które wcześniej nawet nie istniały:

Te halucynacje są znane jako skróty.

Problem z aliasingiem

Prawdopodobnie znasz iluzję „koła wozu”, która czasami pojawia się podczas filmowania wirującego obiektu. Koła samochodu lub łopaty helikoptera wydają się obracać do tyłu – tylko bardzo powoli. W niektórych przypadkach ostrza mogą się całkowicie zatrzymać (co daje naprawdę dziwne skutki — obejrzyj poniższy film!).

Grając w starszą grę wideo, mogłeś również zauważyć, że równoległe linie czasami powodują dziwne wypaczenia. Ogrodzenia, klatki schodowe i swetry w paski zaczynają wyglądać naprawdę osobliwie. A co z dziwnymi, gwiżdżącymi dźwiękami, które czasami słychać, gdy ktoś mówi przez połączenie cyfrowe niskiej jakości? To zniekształcenie, ale szczególnego rodzaju zniekształcenie. O co chodzi z tymi wszystkimi brzydkimi częstotliwościami wydobywającymi się z hałasu? Jeśli słuchasz treści bogatych w harmonie, np. zestawu perkusyjnego, efekt jest jeszcze bardziej oczywisty – szczególnie w wysokich tonach.

Jeśli zrozumiesz przyczynę jednego z nich, jesteś na dobrej drodze do zrozumienia wszystkich. W przypadku koła wozu stała liczba klatek na sekundę oznacza, że ​​nie jesteśmy w stanie prawidłowo uchwycić ruchu. Jeśli coś obraca się o 350° w każdej klatce, naturalne jest zauważenie, że w rzeczywistości zostało przesunięte do tyłu o 10°. Innymi słowy, nie ma wystarczającej ilości informacji, aby wiernie przedstawić to, co się dzieje. Próbki, które pobieramy, są niedopasowane do tego, co próbujemy zmierzyć.

Nie jest to problem charakterystyczny dla konwersji analogowo-cyfrowej. W wielu z tych przypadków konwertujemy jeden rodzaj sygnału cyfrowego na inny.

Jakie jest więc rozwiązanie? Istnieje kilka. Moglibyśmy zastosować specjalny filtr, aby poradzić sobie z tymi artefaktami, co wielu ADC robi pod maską. Możemy też pobrać o wiele, wiele więcej próbek, niż potrzebujemy. Im więcej próbek pobierzemy, tym dokładniejszy będzie nasz obraz fali:

Próbka o wyższej jakości, aby uzyskać najlepsze wyniki

Jeśli uważasz, że tego rodzaju rzeczy są interesujące, dobrą wiadomością jest to, że ledwo zagłębiliśmy się w ten temat. Jest tu wiele kwestii do zgłębienia: przetworniki ADC są niezwykle skomplikowane.

Ale z punktu widzenia użytkownika końcowego lub przeciętnego entuzjasty Arduino są one również bardzo proste. Pojawia się napięcie i wychodzą liczby. Zatem cokolwiek chcesz zmierzyć — niezależnie od tego, czy jest to wilgotność skrawka gleby, czy oscylacje ludzka krtań lub strumień fotonów załamujących się w soczewce — są duże szanse, że istnieje przetwornik ADC, który to zrobi stanowisko.