categorii: Articole prezentate » Electronică practică
Numar de vizualizari: 49294
Comentarii la articol: 0

Cum se face conversia semnalului analog în digital

 

În electronică, semnalele sunt împărțite în: analog, discret și digital. Pentru început, tot ceea ce simțim, vedem, auzim, în cea mai mare parte, este un semnal analogic, iar ceea ce vede un procesor de computer este un semnal digital. Nu sună destul de clar, așa că haideți să abordăm aceste definiții și modul în care un tip de semnal este convertit în altul.

Cum se face conversia semnalului analog în digital

Tipuri de semnal

În reprezentarea electrică, un semnal analog, judecând după numele său, este un analog cu o valoare reală. De exemplu, simți temperatura mediului în mod constant, de-a lungul vieții. Nu există pauze. În același timp, simțiți nu numai două niveluri de „cald” și „rece”, ci un număr infinit de senzații care descriu această valoare.

Pentru o persoană, „frigul” poate fi diferit, aceasta este răcoarea de toamnă și iarna, iar înghețurile ușoare, dar nu întotdeauna „rece” este o temperatură negativă, la fel cum „cald” nu este întotdeauna o temperatură pozitivă.

Tipuri de semnal

Rezultă că semnalul analog are două caracteristici:

1. Continuitatea în timp.

2. Numărul valorilor semnalului tinde către infinit, adică Un semnal analogic nu poate fi împărțit cu precizie în părți sau calibrat prin ruperea scării în secțiuni specifice. Metode de măsurare - bazate pe unitatea de măsură, iar precizia lor depinde doar de prețul divizării scării, cu cât este mai mică, cu atât este mai precisă măsurarea.


Semnale discrete - acestea sunt semnale care reprezintă o secvență de rapoarte sau măsurători de orice magnitudine. Măsurătorile acestor semnale nu sunt continue, ci periodice.

Voi încerca să explic. Dacă ați instalat undeva un termometru, acesta măsoară o valoare analogică - aceasta rezultă din cele de mai sus. Dar tu, urmând de fapt mărturiile sale, primești informații discrete. Mijloace discrete separate.

De exemplu, te-ai trezit și ai aflat câte grade avea termometrul, data viitoare când te-ai uitat la un termometru la prânz și a treia oară seara. Nu știți cât de rapid s-a schimbat temperatura, în mod uniform sau printr-un salt ascuțit, știți doar datele din acel moment în timp pe care le-ați observat.


Semnalele digitale - Acesta este un set de niveluri, tipuri 1 și 0, ridicate și mici, indiferent dacă sunt sau nu. Adâncimea de reflectare a informațiilor în formă digitală este limitată de adâncimea de biți a unui dispozitiv digital (un set de logici, un microcontroler, un procesor etc.) Se dovedește că este ideal pentru stocarea datelor booleane. Un exemplu, puteți oferi următoarele, pentru stocarea datelor precum „Zi” și „Noapte”, este suficient doar un pic de informație.


pic - aceasta este valoarea minimă de reprezentare a informațiilor în formă digitală, poate stoca doar două tipuri de valori: 1 (unitate logică, nivel înalt) sau 0 (zero logic, nivel scăzut).

În electronică, un pic de informații sunt reprezentate sub forma unui nivel de tensiune joasă (aproape de 0) și un nivel de tensiune ridicat (în funcție de dispozitivul particular, deseori coincide cu tensiunea de alimentare a unui nod digital dat, valorile tipice sunt 1,7, 3,3. 5V, 15V).

Semnalele digitale

Toate valorile intermediare între nivelurile joase și cele ridicate acceptate sunt o regiune de tranziție și poate să nu aibă o valoare specifică, în funcție de circuit, atât dispozitivul în ansamblu, cât și circuitul intern al microcontrolerului (sau al oricărui alt dispozitiv digital) pot avea un nivel de tranziție diferit, de exemplu, pentru 5 -pentru logica de tensiune, valorile de tensiune de la 0 la 0,8V pot fi luate ca zero, iar de la 2V la 5V ca unitate, în timp ce distanța dintre 0,8 și 2V este o zonă nedefinită, de fapt, ajută la separarea zero de unitate.

Cu cât sunt mai precise și mai capacitate valorile pe care trebuie să le stocați, cu atât aveți nevoie de mai mulți biți, oferim un tabel de exemplu cu un afișaj digital de patru valori din ora zilei:

Noaptea - Dimineața - Ziua - Seara

Pentru aceasta, avem nevoie de 2 biți:

Exemplu cu afișare digitală a patru valori din timpul zilei

Conversie analogică la digitală

În cazul general, conversia analog-digital este procesul de transformare a unei cantități fizice într-o valoare digitală. Valoarea digitală este un set de unități și zerouri percepute de dispozitivul de procesare.

O astfel de transformare este necesară pentru interacțiunea tehnologiei digitale cu mediul.

Deoarece semnalul electric analog repetă semnalul de intrare în forma sa, acesta nu poate fi înregistrat digital „așa cum este”, deoarece are un număr infinit de valori. Un exemplu este procesul de înregistrare a sunetului. În forma sa originală arată așa:

Sunet primar

Este suma undelor cu diferite frecvențe. Ceea ce, atunci când se descompun în frecvențe (pentru mai multe detalii, a se vedea transformările Fourier), într-un fel sau altul, pot fi apropiate de o imagine similară:

Undă sonoră

Încercați să o prezentați sub forma unui set de tipul „111100101010100”, este destul de dificil, nu-i așa?

Un alt exemplu de necesitate de a converti o cantitate analogică într-una digitală este măsurarea acesteia: termometrele electronice, voltmetrele, ampermetrele și alte dispozitive de măsurare interacționează cu cantitățile analogice.



Cum merge conversia?

În primul rând, priviți diagrama unei conversii tipice a unui semnal analogic în digital și invers. Mai târziu ne vom întoarce la ea.

Conversie analogică la digitală

De fapt, acesta este un proces complex, care constă în două etape principale:

1. Discretizarea semnalului.

2. Cuantificarea pe nivel.

Discretizarea unui semnal este determinarea intervalelor de timp peste care se măsoară semnalul. Cu cât aceste lacune sunt mai scurte, cu atât măsurarea este mai precisă. Perioada de eșantionare (T) este perioada de timp de la începutul citirii datelor până la sfârșitul acesteia. Rata de eșantionare (f) este reciprocă pentru:

fd = 1 / T

După citirea semnalului, acesta este procesat și păstrat în memorie.

Se dovedește că în timpul citirilor semnalului sunt citite și procesate, acesta se poate modifica, astfel, valoarea măsurată este distorsionată. Există o astfel de teoremă a lui Kotelnikov și de la ea rezultă următoarea regulă:

Frecvența de eșantionare trebuie să fie de cel puțin 2 ori mai mare decât frecvența semnalului eșantionat.

Aceasta este o captură de ecran de pe Wikipedia, cu un extras din teoremă.

Teorema lui Kotelnikov

Pentru a determina valoarea numerică, este necesară cuantificarea pe niveluri. Cuanticul este un anumit interval de valori măsurate, redus în medie la un anumit număr.

X1 ... X2 = Xy

Ie semnalele de la X1 la X2, echivalate condiționat cu o valoare specifică a lui Xy. Aceasta seamănă cu prețul de divizare al unui contor. Când efectuați lecturi, le asociați adesea cu cea mai apropiată notă de pe scala instrumentului.

Deci, cu cuantizarea pe nivel, pot fi conținute mai multe cante, măsurători mai precise și mai multe zecimale (sutimi, mii și așa mai departe).

Mai precis, numărul de zecimale este mai degrabă determinat de rezoluția ADC.

Cuantificarea nivelului

Imaginea arată procesul de cuantizare a unui semnal cu ajutorul unui bit de informații, așa cum am descris mai sus, când atunci când este depășită o anumită limită, se acceptă o valoare de nivel ridicat.

În dreapta este cuantizarea semnalului și o înregistrare sub forma a doi biți de date. După cum puteți vedea, acest fragment de semnal este deja împărțit în patru valori. Se dovedește că, ca urmare, un semnal analogic neted s-a transformat într-un semnal digital „pas”.

Numărul nivelurilor de cuantificare este determinat de formula:

Numărul nivelurilor de cuantificare

Unde n este numărul de biți, N este nivelul de cuantizare.

Iată un exemplu de semnal spart într-un număr mai mare de cantați:

Cuantizarea ADC

Acest lucru arată foarte clar că, cu cât valorile semnalului sunt luate mai des (cu cât frecvența de eșantionare este mai mare), cu atât este măsurată mai precis.

Convertirea unui semnal analogic în digital

Această imagine arată conversia unui semnal analogic într-o formă digitală, iar la stânga axei ordonate (axa verticală) este o înregistrare digitală pe 8 biți.


Convertoare analogice la digitale

Un ADC sau un convertor analog-digital poate fi implementat ca dispozitiv separat sau integrat în microcontroler.

Anterior, microcontrolerele, de exemplu, familia MCS-51, nu conțineau ADC, s-a folosit un microcircuit extern pentru aceasta și a devenit necesară scrierea unei subrutine pentru procesarea valorilor unui IC extern.

Intrări analogice pe Arduino Board

Acum sunt în majoritatea microcontrolerelor moderne, de exemplu AVR AtMEGA328, care este baza celor mai populare placa de circuite Arduino, este încorporat în MK în sine. În Arduino, citirea datelor analogice este simplă cu comanda AnalogRead (). Deși microprocesorul, care este instalat în același nu mai puțin popular Raspberry PI, nu îl are, deci nu totul este atât de simplu.

De fapt, există un număr mare de opțiuni pentru convertoare analog-digital, fiecare având propriile dezavantaje și avantaje. A descrie care în acest articol nu are prea mult sens, deoarece acesta este o cantitate mare de material. Luați în considerare doar structura generală a unora dintre ele.

Cea mai veche opțiune ADC patentată este brevetul lui Paul M. Rainey, „Facsimile Telegraph System”, S.U.A. Brevetul 1.608.527, înregistrat la 20 iulie 1921, emis la 30 noiembrie 1926. Acesta este un ADC de conversie directă pe 5 biți. Din numele brevetului, gândurile vin că utilizarea acestui dispozitiv a fost conectată la transmiterea datelor prin telegraf.

Primul ADC

Dacă vorbim despre ADC-uri moderne de conversie directă, acestea au următoarea schemă:

Circuit ADC

Acest lucru arată că intrarea este un lanț de la comparatoricare își transmit semnalul atunci când trec unele semnal de prag. Aceasta este adâncimea și cuantificarea biților. Oricine chiar puțin puternic în circuite, a văzut acest fapt evident.

Cine nu este puternic, atunci circuitul de intrare funcționează astfel:

Un semnal analogic este introdus la intrarea „+”, toate simultan. Ieșirile cu denumirea „-” primesc tensiunea de referință, care este descompusă folosind o serie de rezistențe (divizor rezistiv) într-un număr de tensiuni de referință. De exemplu, o serie pentru acest lanț arată ca acest raport:

Urefi = (1/16, 3/16, 5/16, 7/16, 9/16, 11/16, 13/16) * Uref

În paranteze, o virgulă indică ce parte din tensiunea de referință totală Uref este furnizată la intrarea fiecărei tensiuni de intrare.

Ie fiecare dintre elemente are două intrări la semnarea tensiunii de intrare «+» depășește tensiunea de intrare cu un semn „-”, la ieșirea sa apare o unitate logică. Atunci când tensiunea la intrarea pozitivă (neinversare) este mai mică decât la intrarea negativă (inversare), atunci ieșirea este zero.

comparator

Tensiunea este împărțită astfel încât tensiunea de intrare să fie împărțită la numărul dorit de cifre. Când tensiunea la intrare atinge ieșirea elementului corespunzător, apare un semnal, circuitul de procesare emite semnalul „corect” în formă digitală.

Un astfel de comparator este bun la viteza de procesare a datelor, toate elementele circuitului de intrare sunt declanșate în paralel, întârzierea principală a acestui tip de ADC este formată din întârzierea 1 a comparatorului (sunt declanșate simultan simultan), iar întârzierea este codificatoare.

Cu toate acestea, există un dezavantaj imens al circuitelor paralele - aceasta este necesitatea unui număr mare de comparatori pentru a obține ADC-uri de înaltă rezoluție. Pentru a obține, de exemplu, 8 cifre, ai nevoie de 2 ^ 8 comparatori, iar acesta este de până la 256 de bucăți. Pentru un disc de 10 biți (în Arduino ADC pe 10 biți, apropo, dar de alt tip), aveți nevoie de 1024 de comparatori. Judecă-te pentru tine dacă este adecvat o astfel de opțiune de tratament și unde este nevoie.

Există și alte tipuri de ADC:

  • aproximare consecutivă;

  • delta sigma ADC.

concluzie

Convertirea unui semnal analogic în digital este necesară pentru citirea parametrilor de la senzorii analogici. Există un tip separat de senzori digitali, sunt fie circuite integrate, de exemplu DS18b20 - la ieșirea sa există deja un semnal digital și poate fi procesat de orice microcontrolere sau microprocesoare fără a fi nevoie de un ADC sau de un senzor analog de pe o placă care are deja propriul convertor. Fiecare tip de senzor are pro și contra, cum ar fi imunitatea la zgomot și eroarea de măsurare.

Cunoașterea principiilor conversiei este necesară tuturor celor care lucrează cu microcontrolere, deoarece niciun sistem modern nu are astfel de convertoare încorporate, trebuie să utilizați microcircuite externe. De exemplu, putem cita o astfel de placă proiectată special pentru conectorul Raspberry PI GPIO cu ADC de precizie pe ADS1256.

Consultați și la i.electricianexp.com:

  • Conectarea senzorilor analogici la Arduino, citirea senzorilor
  • Care este diferența dintre senzorii analogici și cei digitali
  • Semnal digital și analog: care sunt asemănările și diferențele, avantajele și dezavantajele ...
  • Cele mai populare senzori pentru Arduino
  • Schmitt trigger - vedere generală

  •