kategorier: Utvalda artiklar » Praktisk elektronik
Antal visningar: 49294
Kommentarer till artikeln: 0

Hur konverterar den analoga signalen till digital

 

I elektronik delas signaler in i: analog, diskret och digital. Till att börja med är allt vi känner, se, höra, till största delen en analog signal, och vad en datorprocessor ser är en digital signal. Det låter inte särskilt tydligt, så låt oss ta itu med dessa definitioner och hur en typ av signal konverteras till en annan.

Hur konverterar den analoga signalen till digital

Signaltyper

Vid elektrisk representation är en analog signal, bedömd efter dess namn, en analog med ett verkligt värde. Till exempel känner du omgivningens temperatur hela tiden, hela ditt liv. Det finns inga pauser. Samtidigt känner du inte bara två nivåer av "het" och "kallt", utan ett oändligt antal sensationer som beskriver detta värde.

För en person kan "kyla" vara annorlunda, det är höstens svalka och vinterfrosten och lätt frost, men inte alltid "kallt" är en negativ temperatur, precis som "varmt" inte alltid är en positiv temperatur.

Signaltyper

Det följer att den analoga signalen har två funktioner:

1. Kontinuitet i tid.

2. Antalet signalvärden tenderar till oändlighet, dvs. En analog signal kan inte delas exakt i delar eller kalibreras genom att bryta skalan i specifika sektioner. Mätmetoder - baserat på mätenheten, och deras noggrannhet beror bara på skalans pris, ju mindre den är, desto mer exakt är mätningen.


Diskreta signaler - detta är signaler som är en sekvens av rapporter eller mätningar av vilken storlek som helst. Mätningar av sådana signaler är inte kontinuerliga utan periodiska.

Jag kommer att försöka förklara. Om du installerat en termometer någonstans, mäter den ett analogt värde - detta följer av ovanstående. Men du, faktiskt efter hans vittnesmål, får diskret information. Diskret betyder separat.

Till exempel vaknade du och fick reda på hur många grader termometern hade, nästa gång du tittade på den vid en termometer vid middagstid och tredje gången på kvällen. Du vet inte hur snabbt temperaturen förändrats, jämnt eller genom ett kraftigt hopp, du känner bara till data vid det ögonblick som du observerade.


Digitala signaler Är en uppsättning nivåer, typer 1 och 0, hög och låg, oavsett om. Reflektionsdjupet för information i digital form begränsas av bitdjupet för en digital enhet (en uppsättning logik, en mikrokontroller, processor etc.) Det visar sig att det är idealiskt för lagring av booleska data. Som exempel kan vi ange följande, för att lagra data som "Dag" och "Natt" räcker det med en bit information.


bit - detta är minimivärdet för att representera information i digital form, det kan bara lagra två typer av värden: 1 (logisk enhet, hög nivå) eller 0 (logisk noll, låg nivå).

Inom elektronik representeras lite information i form av en lågspänningsnivå (nära 0) och en högspänningsnivå (beroende på den specifika anordningen sammanfaller ofta med matningsspänningen för en given digital nod, typiska värden är 1,7, 3,3. 5V, 15V).

Digitala signaler

Alla mellanvärden mellan de accepterade låga och höga nivåerna är ett övergångsområde och kanske inte har ett specifikt värde, beroende på kretsarna, både enheten som helhet och den interna kretsen för mikrokontrollern (eller någon annan digital enhet) kan ha en annan övergångsnivå, till exempel för 5 -Voltslogik, spänningsvärdena från 0 till 0,8V kan tas som noll och från 2V till 5V som en enhet, medan gapet mellan 0,8 och 2V är en odefinierad zon, i själva verket hjälper det att skilja noll från enhet.

Ju mer exakta och rymliga värden du behöver lagra, desto mer bitar behöver du, ger vi en tabell med en digital display med fyra värden på tiden på dagen:

Natt - Morgon - Dag - Kväll

För detta behöver vi två bitar:

Exempel med digital visning av fyra värden på tiden på dagen

Analog till digital konvertering

I det allmänna fallet är analog-till-digital konvertering processen att konvertera en fysisk kvantitet till ett digitalt värde. Det digitala värdet är en uppsättning enheter och nollor som uppfattas av behandlingsenheten.

En sådan omvandling är nödvändig för interaktion mellan digital teknik och miljön.

Eftersom den analoga elektriska signalen upprepar insignalen i sin form kan den inte spelas in digitalt "som den är" eftersom den har ett oändligt antal värden. Ett exempel är ljudinspelningsprocessen. Det i sin ursprungliga form ser ut så här:

Primärt ljud

Det är summan av vågor med olika frekvenser. Vilket, när dekomponering i frekvenser (för mer information, se Fourier-omvandlingar), på ett eller annat sätt, kan föras närmare en liknande bild:

Ljudvåg

Försök nu att presentera detta i form av en uppsättning av typen "111100101010100", det är ganska svårt, eller hur?

Ett annat exempel på behovet av att konvertera en analog kvantitet till en digital är dess mätning: elektroniska termometrar, voltmetrar, ammetrar och andra mätanordningar interagerar med analoga mängder.



Hur går konverteringen?

Först ska du titta på diagrammet för en typisk konvertering av en analog signal till digital och vice versa. Senare kommer vi tillbaka till henne.

Analog till digital konvertering

I själva verket är detta en komplex process som består av två huvudstadier:

1. Diskretisering av signalen.

2. Kvantisering efter nivå.

Diskretisering av en signal är bestämningen av tidsintervallen över vilka signalen mäts. Ju kortare dessa luckor, desto mer exakt är mätningen. Provtagningsperioden (T) är tiden från början av att läsa data till dess slut. Provtagningshastighet (f) är det ömsesidiga av:

fd = 1 / T

Efter att ha läst signalen bearbetas och lagras det i minnet.

Det visar sig att under den tid som signalens avläsningar läses och bearbetas kan den ändras, så att det uppmätta värdet förvrängs. Det finns en sådan Kotelnikov-sats och följande regel följer av det:

Samplingsfrekvensen bör vara minst två gånger större än frekvensen för den samplade signalen.

Detta är en skärmdump från Wikipedia, med ett utdrag från teorem.

Kotelnikovs sats

För att bestämma det numeriska värdet är kvantisering per nivå nödvändig. Quantum är ett visst intervall av uppmätta värden, i genomsnitt reducerat till ett visst antal.

X1 ... X2 = Xy

dvs signaler från X1 till X2, villkorligt jämställd med ett specifikt värde på Xy. Detta liknar divisionspriset för en pekarmätare. När du läser avlägger du dem ofta med närmaste märke på instrumentets skala.

Så med kvantisering efter nivå, desto mer kvanta, desto mer exakta mätningar och desto fler decimaler (hundratedelar, tusendels osv.) Kan de innehålla.

Mer exakt bestäms antalet decimaler snarare av ADC: s upplösning.

Nivåkvantisering

Bilden visar processen för kvantisering av en signal med hjälp av en bit information, som jag beskrev ovan, när ett visst gräns överskrids accepteras ett högt nivåvärde.

Till höger är kvantiseringen av signalen, och en post i form av två databitar. Som ni ser är detta signalfragment redan uppdelat i fyra värden. Det visar sig att som ett resultat förvandlades en smidig analog signal till en digital "steg" -signal.

Antalet kvantiseringsnivåer bestäms av formeln:

Antal kvantiseringsnivåer

Där n är antalet bitar är N kvantiseringsnivån.

Här är ett exempel på en signal uppdelad i ett större antal kvanta:

ADC-kvantisering

Detta visar mycket tydligt att ju oftare signalvärdena tas (desto högre samplingsfrekvens), desto mer exakt mäts det.

Konvertera en analog signal till digital

Denna bild visar omvandlingen av en analog signal till en digital form, och till vänster om ordinataxeln (vertikal axel) är en 8-bitars digital inspelning.


Analog till digitala omvandlare

En ADC eller en analog-till-digital-omvandlare kan implementeras som en separat enhet eller integreras i mikrokontroller.

Tidigare innehöll mikrokontroller, till exempel MCS-51-familjen, ingen ADC, en extern mikrokrets användes för detta, och det blev nödvändigt att skriva en subroutine för att bearbeta värdena på en extern IC.

Analoga ingångar på Arduino Board

Nu finns de i de flesta moderna mikrokontroller, till exempel AVR AtMEGA328, som är grunden för de mest populära kretskort Arduino, det är inbyggt i MK själv. I Arduino är läsning av analoga data enkelt med kommandot AnalogRead (). Även om mikroprocessorn, som är installerad i samma inte mindre populära Raspberry PI, inte har den, så är inte allt så enkelt.

Det finns faktiskt ett stort antal alternativ för analoga till digitala omvandlare, som alla har sina egna nackdelar och fördelar. Att beskriva vilket inom den här artikeln inte är mycket meningsfullt, eftersom det här är en stor mängd material. Tänk bara på den allmänna strukturen för några av dem.

Det äldsta patenterade ADC-alternativet är Paul M. Raineys patent, "Facsimile Telegraph System", U.S. Patent 1 608 527, arkiverat 20 juli 1921, utfärdat 30 november 1926. Detta är en 5-bitars direktkonvertering ADC. Från patentets namn kommer tankar om att användningen av denna enhet var kopplad till överföring av data via telegraf.

Första ADC

Om vi ​​talar om moderna ADC för direkt konvertering, har de följande schema:

ADC-krets

Detta visar att ingången är en kedja från komparatorersom sänder ut sin signal när de passerar någon tröskelsignal. Detta är bitdjup och kvantisering. Vem som helst till och med lite stark i kretsar, såg detta uppenbara faktum.

Vem är inte stark, då fungerar ingångskretsen på detta sätt:

En analog signal matas in till "+" -ingången, samtidigt. Utgångarna med beteckningen “-” tar emot referensspänningen, som sönderdelas med hjälp av en serie motstånd (resistiv divider) till ett antal referensspänningar. Till exempel ser en serie för den här kedjan ut så här förhållandet:

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

I parentes indikerar komma vilken del av den totala referensspänningen Uref som matas till ingången på varje ingångsspänning.

dvs var och en av elementen har två ingångar när ingångsspänningen är signerad «+» överskrider ingångsspänningen med en "-" -tecken, visas en logisk enhet vid dess utgång. När spänningen vid den positiva (icke-inverterande) ingången är mindre än vid den negativa (inverterande) ingången, är utgången noll.

komparator

Spänningen är uppdelad så att ingångsspänningen delas upp i önskat antal siffror. När spänningen vid ingången når utgången från motsvarande element, visas en signal, processorkretsen matar ut "rätt" signal i digital form.

En sådan komparator är bra på databehandlingshastighet, alla element i ingångskretsen utlöses parallellt, huvudfördröjningen för denna typ av ADC bildas från komparatorns fördröjning 1 (de utlöses samtidigt) och fördröjningen är kodare.

Det finns dock en stor nackdel med parallella kretsar - detta är behovet av ett stort antal komparatorer för att erhålla högupplösta ADC: er. För att få till exempel 8 siffror behöver du 2 ^ 8 komparatorer, och det är så många som 256 delar. För en tiobitar (i Arduino 10-bitars ADC, förresten, men av en annan typ), behöver du 1024 komparatorer. Bedöm själv huruvida ett sådant behandlingsalternativ är lämpligt och var det kan behövas.

Det finns andra typer av ADC:

  • kontinuerlig approximation;

  • delta sigma ADC.

slutsats

Det är nödvändigt att konvertera en analog signal till digital för att läsa parametrar från analoga sensorer. Det finns en separat typ av digitala sensorer, de är antingen integrerade kretsar, till exempel DS18b20 - vid utgången finns det redan en digital signal och den kan behandlas av alla mikrokontroller eller mikroprocessorer utan behov av en ADC, eller en analog sensor på ett kort som redan har en egen omvandlare. Varje sensortyp har sina för- och nackdelar, såsom brusimmunitet och mätfel.

Kunskap om principerna för konvertering är nödvändig för alla som arbetar med mikrokontroller, eftersom inte ens alla moderna system har sådana omvandlare inbyggda, du måste använda externa mikrokretsar. Vi kan till exempel citera ett sådant kort som är speciellt utformat för Raspberry PI GPIO-anslutningen, med en exakt ADC på ADS1256.

Se även på elektrohomepro.com:

  • Ansluter analoga sensorer till Arduino, lässensorer
  • Vad är skillnaden mellan analoga och digitala sensorer
  • Digital och analog signal: vad är likheter och skillnader, fördelar och nackdelar ...
  • Mest populära sensorer för Arduino
  • Schmitt trigger - allmän vy

  •