kategorier: Utvalgte artikler » Praktisk elektronikk
Antall visninger: 49294
Kommentarer til artikkelen: 0

Hvordan konverterer det analoge signalet til digitalt

 

I elektronikk er signaler delt inn i: analog, diskret og digital. Til å begynne med er alt vi føler, ser, hører for det meste et analogt signal, og det en datamaskinprosessor ser er et digitalt signal. Det høres ikke veldig tydelig ut, så la oss ta tak i disse definisjonene og hvordan en type signal konverteres til en annen.

Hvordan konverterer det analoge signalet til digitalt

Signaltyper

I elektrisk representasjon er et analogt signal, bedømt etter navnet, en analog med en reell verdi. For eksempel føler du temperaturen i miljøet konstant, hele livet. Det er ingen pauser. Samtidig føler du ikke bare to nivåer av "varm" og "kald", men et uendelig antall sensasjoner som beskriver denne verdien.

For en person kan "kulde" være annerledes, det er høstens kjølighet og vinterfrost, og lette frost, men ikke alltid "kald" er en negativ temperatur, akkurat som "varm" ikke alltid er en positiv temperatur.

Signaltyper

Det følger at det analoge signalet har to funksjoner:

1. Kontinuitet i tid.

2. Antallet signalverdier har en tendens til uendelig, dvs. Et analogt signal kan ikke deles nøyaktig i deler eller kalibreres ved å bryte skalaen i spesifikke seksjoner. Målemetoder - basert på måleenheten, og nøyaktigheten deres avhenger bare av prisen på deling av skalaen, jo mindre den er, desto mer nøyaktig er målingen.


Diskrete signaler - dette er signaler som er en sekvens av rapporter eller målinger av en hvilken som helst størrelse. Målinger av slike signaler er ikke kontinuerlige, men periodiske.

Jeg vil prøve å forklare. Hvis du installerte et termometer et sted, måler det en analog verdi - dette følger av ovenstående. Men du, faktisk etter hans vitnesbyrd, får diskret informasjon. Diskret betyr atskilt.

For eksempel våknet du og fant ut hvor mange grader termometeret hadde, neste gang du så på det på et termometer klokka 12, og tredje gang på kvelden. Du vet ikke hvor raskt temperaturen endret seg, jevnt eller ved et skarpt hopp. Du vet bare dataene på det tidspunktet du observerte.


Digitale signaler Er et sett med nivåer, type 1 og 0, høyt og lavt, uansett. Refleksjonsdybden av informasjon i digital form er begrenset av bitdybden til en digital enhet (et sett med logikk, en mikrokontroller, prosessor etc.) Det viser seg at det er ideelt for lagring av boolske data. Et eksempel, vi kan nevne følgende, for lagring av data som "Dag" og "Natt", er det nok med en bit informasjon.


bit - dette er minimumsmengden informasjon i digital form, den kan bare lagre to typer verdier: 1 (logisk enhet, høyt nivå), eller 0 (logisk null, lavt nivå).

I elektronikk er litt informasjon representert i form av et lavspenningsnivå (nær 0) og et høyspenningsnivå (det avhenger av en bestemt enhet, sammenfaller ofte med forsyningsspenningen til en gitt digital node. Typiske verdier er 1,7, 3,3,5V, 15V).

Digitale signaler

Alle mellomverdier mellom de aksepterte lave og høye nivåene er et overgangsområde og har kanskje ikke en spesifikk verdi, avhengig av kretsløpet, både enheten som helhet og den interne kretsen til mikrokontrolleren (eller en hvilken som helst annen digital enhet) kan ha et annet overgangsnivå, for eksempel for 5 -Volt-logikk, spenningsverdiene fra 0 til 0,8V kan tas som null, og fra 2V til 5V som en enhet, mens gapet mellom 0,8 og 2V er en udefinert sone, faktisk hjelper det å skille null fra enhet.

Jo mer nøyaktige og romslige verdier du trenger å lagre, jo mer biter trenger du, gir vi et eksempel på en tabell med en digital visning av fire verdier for tiden på dagen:

Natt - Morgen - Dag - Kveld

For dette trenger vi 2 biter:

Eksempel med digital visning av fire verdier på tiden på dagen

Analog til digital konvertering

Generelt sett er analog-til-digital konvertering prosessen med å konvertere en fysisk mengde til en digital verdi. Den digitale verdien er et sett med enheter og nuller oppfattet av behandlingsenheten.

En slik transformasjon er nødvendig for interaksjon mellom digital teknologi og miljøet.

Siden det analoge elektriske signalet gjentar inngangssignalet i sin form, kan det ikke tas opp digitalt “som det er” fordi det har et uendelig antall verdier. Et eksempel er lydopptaksprosessen. Det i sin opprinnelige form ser slik ut:

Primær lyd

Det er summen av bølger med forskjellige frekvenser. Som, når dekomponering i frekvenser (for flere detaljer, se Fourier-transformasjoner), på en eller annen måte, kan bringes nærmere et lignende bilde:

Lydbølge

Nå prøver å presentere det i form av et sett av typen “111100101010100”, det er ganske vanskelig, er det ikke?

Et annet eksempel på behovet for å konvertere en analog mengde til en digital er dens måling: elektroniske termometre, voltmetre, ammetre og andre måleenheter samhandler med analoge mengder.



Hvordan går konverteringen?

Først, se på diagrammet for en typisk konvertering av et analogt signal til digitalt og omvendt. Senere kommer vi tilbake til henne.

Analog til digital konvertering

Faktisk er dette en kompleks prosess, som består av to hovedstadier:

1. Diskretisering av signalet.

2. Kvantisering etter nivå.

Diskretisering av et signal er bestemmelsen av tidsintervallene som signalet måles over. Jo kortere disse hullene er, desto mer nøyaktig er målingen. Prøvetakingsperioden (T) er tiden fra begynnelsen av å lese data til slutten. Prøvetakingsfrekvens (f) er gjensidig for:

fd = 1 / T

Etter å ha lest signalet, blir det behandlet og lagret i minnet.

Det viser seg at i løpet av tiden som signalene leses og behandles, kan det endre seg, og dermed blir den målte verdien forvrengt. Det er en slik Kotelnikov-teorem, og følgende regel følger av den:

Prøvetakingsfrekvensen skal være minst 2 ganger større enn frekvensen for det samplede signalet.

Dette er et skjermbilde fra Wikipedia, med et utdrag fra teoremet.

Kotelnikov teorem

For å bestemme den numeriske verdien er kvantisering etter nivå nødvendig. Kvantum er et visst område av målte verdier, gjennomsnittlig redusert til et visst antall.

X1 ... X2 = Xy

dvs. signaler fra X1 til X2, betinget likestilt med en spesifikk verdi av Xy. Dette ligner divisjonsprisen på en pekermeter. Når du tar målinger, likestiller du dem ofte med det nærmeste merket på skalaen til instrumentet.

Så med kvantisering etter nivå, jo mer kvanta, jo mer nøyaktige målinger og desto flere desimaler (hundredeler, tusendeler og så videre) kan de inneholde.

Mer presist bestemmes antallet desimaler heller av ADC-oppløsningen.

Nivåkvantisering

Bildet viser prosessen med kvantisering av et signal ved bruk av en informasjonsbit, som jeg beskrev ovenfor, når en høy nivå blir akseptert når en viss grense overskrides.

Til høyre er kvantiseringen av signalet, og en post i form av to databiter. Som du ser er dette signalfragmentet allerede delt inn i fire verdier. Det viser seg at som et resultat, ble et glatt, analogt signal omgjort til et digitalt "trinn" -signal.

Antall kvantiseringsnivåer bestemmes av formelen:

Antall kvantiseringsnivåer

Hvor n er antall biter, er N kvantiseringsnivået.

Her er et eksempel på et signal brutt inn i et større antall kvanta:

ADC-kvantisering

Dette viser veldig tydelig at jo oftere signalverdiene blir tatt (jo høyere samplingfrekvens), jo mer nøyaktig blir det målt.

Konvertering av et analogt signal til digitalt

Dette bildet viser konvertering av et analogt signal til en digital form, og til venstre for ordinataksen (vertikal akse) er en 8-bit digital opptak.


Analog til digitale omformere

En ADC eller en analog-til-digital konverter kan implementeres som en separat enhet eller integreres i mikrokontroller.

Tidligere inneholdt ikke mikrokontrollere, for eksempel MCS-51-familien, en ADC, en ekstern mikrokrets ble brukt for dette, og det ble nødvendig å skrive en subroutine for å behandle verdiene til en ekstern IC.

Analoge innspill på Arduino Board

Nå er de i de fleste moderne mikrokontrollere, for eksempel AVR AtMEGA328, som er grunnlaget for mest populære kretskort Arduino, er det innebygd i MK selv. I Arduino er det enkelt å lese analoge data med kommandoen AnalogRead (). Selv om mikroprosessoren, som er installert i den samme ikke mindre populære Raspberry PI, ikke har den, så ikke alt er så enkelt.

Det finnes faktisk et stort antall alternativer for analoge til digitale omformere, som hver har sine egne ulemper og fordeler. Å beskrive som i denne artikkelen ikke gir mye mening, siden dette er en stor mengde materiale. Vurder bare den generelle strukturen til noen av dem.

Det eldste patenterte ADC-alternativet er Paul M. Raineys patent, “Facsimile Telegraph System,” U.S. Patent 1.608.527, arkivert 20. juli 1921, utgitt 30. november 1926. Dette er en 5-biters direkte konvertering ADC. Fra navnet på patentet kommer tanker om at bruken av denne enheten var koblet til overføring av data via telegraf.

Første ADC

Hvis vi snakker om moderne ADC-er med direkte konvertering, har de følgende skjema:

ADC-krets

Dette viser at inngangen er en kjede fra komparatorersom gir signalet ut når de krysser et eller annet terskel signal. Dette er bitdybde og kvantisering. Alle som til og med er litt sterke i kretsløp, så dette åpenbare faktum.

Hvem er ikke sterk, så fungerer inngangskretsen på denne måten:

Et analogt signal sendes til “+” -inngangen, på en gang. Utgangene med betegnelsen “-” mottar referansespenningen, som dekomponeres ved hjelp av en motstandskjede (resistiv divider) til et antall referansespenninger. For eksempel ser en serie for denne kjeden ut som dette forholdet:

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

I parentes indikerer et komma hvilken del av den totale referansespenningen Uref som tilføres inngangen til hver inngangsspenning.

dvs. hvert av elementene har to innganger når inngangsspenningen er signert «+» overskrider inngangsspenningen med et "-" tegn, vises en logisk enhet ved utgangen. Når spenningen ved den positive (ikke-inverterende) inngangen er mindre enn ved den negative (inverterende) inngangen, er utgangen null.

komparator

Spenningen er delt slik at inngangsspenningen blir delt inn i ønsket antall sifre. Når spenningen ved inngangen når utgangen til det tilsvarende elementet, vises det et signal, og prosesseringskretsen sender ut det "riktige" signalet i digital form.

En slik komparator er god på databehandlingshastighet, alle elementene i inngangskretsen utløses parallelt, hovedforsinkelsen til denne typen ADC dannes fra forsinkelsen til 1 komparator (de blir utløst samtidig) og forsinkelsen er koderen.

Imidlertid er det en stor ulempe med parallelle kretsløp - dette er behovet for et stort antall komparatorer for å oppnå ADC-er med høy oppløsning. For å få for eksempel 8 sifre, trenger du 2 ^ 8 komparatorer, og dette er så mange som 256 stykker. For en ti-bit (i Arduino 10-bit ADC, forresten, men av en annen type), trenger du 1024 komparatorer. Døm selv hensiktsmessigheten av et slikt behandlingsalternativ, og hvor det kan være nødvendig.

Det finnes andre typer ADC:

  • påfølgende tilnærming;

  • delta sigma ADC.

konklusjon

Det er nødvendig å konvertere et analogt signal til digitalt for å lese parametere fra analoge sensorer. Det er en egen type digitale sensorer, de er enten integrerte kretsløp, for eksempel DS18b20 - ved utgangen er det allerede et digitalt signal, og det kan behandles av alle mikrokontrollere eller mikroprosessorer uten behov for en ADC, eller en analog sensor på et brett som allerede har sin egen omformer. Hver type sensor har sine fordeler og ulemper, for eksempel støyimmunitet og målefeil.

Kunnskap om prinsippene for konvertering er nødvendig for alle som jobber med mikrokontrollere, fordi ikke engang hvert moderne system har slike omformere innebygd, du må bruke eksterne mikrokretser. Vi kan for eksempel sitere et slikt brett designet spesielt for Raspberry PI GPIO-kontakten med presisjons ADC på ADS1256.

Se også på elektrohomepro.com:

  • Koble analoge sensorer til Arduino, lese sensorer
  • Hva er forskjellen mellom analoge og digitale sensorer
  • Digital og analog signal: hva er likhetene og forskjellene, fordeler og ulemper ...
  • Mest populære sensorer for Arduino
  • Schmitt trigger - generell utsikt

  •