categorieën: Aanbevolen artikelen » Praktische elektronica
Aantal keer bekeken: 49294
Reacties op het artikel: 0

Hoe verloopt de conversie van het analoge signaal naar digitaal

 

In de elektronica zijn signalen onderverdeeld in: analoog, discreet en digitaal. Om te beginnen is alles wat we voelen, zien, horen voor het grootste deel een analoog signaal, en wat een computerprocessor ziet is een digitaal signaal. Het klinkt niet helemaal duidelijk, dus laten we het hebben over deze definities en hoe het ene type signaal wordt omgezet in een ander.

Hoe verloopt de conversie van het analoge signaal naar digitaal

Signaaltypen

In elektrische weergave is een analoog signaal, te oordelen naar zijn naam, een analoog van een echte waarde. Je voelt bijvoorbeeld constant de temperatuur van de omgeving, je hele leven lang. Er zijn geen pauzes. Tegelijkertijd voel je niet alleen twee niveaus van "warm" en "koud", maar een oneindig aantal sensaties die deze waarde beschrijven.

Voor een persoon kan "koud" anders zijn, dit is herfstkoelheid en wintervorst en lichte vorst, maar niet altijd is "koud" een negatieve temperatuur, net zoals "warm" niet altijd een positieve temperatuur is.

Signaaltypen

Hieruit volgt dat het analoge signaal twee functies heeft:

1. Continuïteit in de tijd.

2. Het aantal signaalwaarden neigt naar oneindig, dat wil zeggen Een analoog signaal kan niet nauwkeurig in delen worden verdeeld of worden gekalibreerd door de schaal in specifieke secties te verdelen. Meetmethoden - gebaseerd op de meeteenheid, en hun nauwkeurigheid hangt alleen af ​​van de prijs van de schaalverdeling, hoe kleiner de schaal, hoe nauwkeuriger de meting.


Discrete signalen - dit zijn signalen die een reeks rapporten of metingen van elke omvang zijn. Metingen van dergelijke signalen zijn niet continu, maar periodiek.

Ik zal proberen het uit te leggen. Als u ergens een thermometer hebt geïnstalleerd, meet deze een analoge waarde - dit volgt uit het bovenstaande. Maar u, die eigenlijk zijn getuigenissen volgt, krijgt discrete informatie. Discreet betekent scheiden.

Je werd bijvoorbeeld wakker en ontdekte hoeveel graden de thermometer had, de volgende keer dat je er om twaalf uur 's middags naar keek en de derde keer' s avonds. Je weet niet hoe snel de temperatuur gelijkmatig veranderde of door een scherpe sprong, je kent alleen de gegevens op dat moment dat je hebt waargenomen.


Digitale signalen Is een set niveaus, typen 1 en 0, hoog en laag, al dan niet. De reflectiediepte van informatie in digitale vorm wordt beperkt door de bitdiepte van een digitaal apparaat (een set logica, een microcontroller, processor, enz.) Het blijkt ideaal te zijn voor het opslaan van Booleaanse gegevens. Een voorbeeld kunt u het volgende geven, voor het opslaan van gegevens zoals "Dag" en "Nacht" is slechts 1 bit informatie voldoende.


bit - dit is de minimumwaarde voor het weergeven van informatie in digitale vorm. Er kunnen slechts twee soorten waarden worden opgeslagen: 1 (logische eenheid, hoog niveau) of 0 (logische nul, laag niveau).

In de elektronica wordt een beetje informatie weergegeven in de vorm van een laag spanningsniveau (bijna 0) en een hoog spanningsniveau (afhankelijk van het specifieke apparaat, valt vaak samen met de voedingsspanning van een bepaalde digitale knoop, typische waarden zijn 1,7, 3,3, 5 V, 15 V).

Digitale signalen

Alle tussenliggende waarden tussen de geaccepteerde lage en hoge niveaus zijn een overgangsgebied en hebben mogelijk geen specifieke waarde, afhankelijk van de schakeling, zowel het apparaat als een geheel en het interne circuit van de microcontroller (of een ander digitaal apparaat) kunnen een ander overgangsniveau hebben, bijvoorbeeld voor 5 -volt logica, de spanningswaarden van 0 tot 0,8 V kunnen als nul worden genomen, en van 2 V tot 5 V als een eenheid, terwijl de kloof tussen 0,8 en 2 V een ongedefinieerde zone is, het helpt in feite om nul van eenheid te scheiden.

Hoe nauwkeurigere en ruimere waarden u moet opslaan, hoe meer bits u nodig hebt, we geven een voorbeeldtabel met een digitale weergave van vier waarden van de tijd van de dag:

Nacht - Ochtend - Dag - Avond

Hiervoor hebben we 2 bits nodig:

Voorbeeld met digitale weergave van vier waarden van de tijd van de dag

Analoog naar digitaal conversie

In het algemeen is conversie van analoog naar digitaal het proces waarbij een fysieke hoeveelheid wordt omgezet in een digitale waarde. De digitale waarde is een reeks eenheden en nullen die door het verwerkingsapparaat worden waargenomen.

Een dergelijke transformatie is noodzakelijk voor de interactie van digitale technologie met de omgeving.

Aangezien het analoge elektrische signaal het ingangssignaal in zijn vorm herhaalt, kan het niet digitaal worden opgenomen "zoals het is" omdat het een oneindig aantal waarden heeft. Een voorbeeld is het geluidsopnameproces. Het ziet er in zijn oorspronkelijke vorm als volgt uit:

Primair geluid

Het is de som van golven met verschillende frequenties. Die, bij het ontbinden in frequenties (voor meer details, zie Fourier-transformaties) op een of andere manier dichter bij een vergelijkbaar beeld kunnen worden gebracht:

Geluidsgolf

Probeer het nu te presenteren in de vorm van een set van het type "111100101010100", het is nogal moeilijk, nietwaar?

Een ander voorbeeld van de noodzaak om een ​​analoge hoeveelheid om te zetten naar een digitale, is de meting: elektronische thermometers, voltmeters, ampèremeters en andere meetinstrumenten werken samen met analoge hoeveelheden.



Hoe gaat de conversie?

Bekijk eerst het diagram van een typische conversie van een analoog signaal naar digitaal en vice versa. Later zullen we terugkeren naar haar.

Analoog naar digitaal conversie

In feite is dit een complex proces dat uit twee hoofdfasen bestaat:

1. Discretisatie van het signaal.

2. Kwantisatie per niveau.

Discretisatie van een signaal is de bepaling van de tijdsintervallen waarover het signaal wordt gemeten. Hoe korter deze gaten, hoe nauwkeuriger de meting. De bemonsteringsperiode (T) is de tijdsduur vanaf het begin van het lezen van gegevens tot het einde. Bemonsteringssnelheid (f) is de wederkerige waarde van:

fd = 1 / T

Na het lezen van het signaal wordt het verwerkt en opgeslagen in het geheugen.

Het blijkt dat gedurende de tijd dat de meetwaarden van het signaal worden gelezen en verwerkt, dit kan veranderen, waardoor de gemeten waarde wordt vervormd. Er is zo'n Kotelnikov-stelling en de volgende regel volgt hieruit:

De bemonsteringsfrequentie moet minstens 2 keer groter zijn dan de frequentie van het bemonsterde signaal.

Dit is een screenshot van Wikipedia, met een fragment uit de stelling.

Kotelnikov-stelling

Om de numerieke waarde te bepalen, is kwantisatie per niveau noodzakelijk. Quantum is een bepaald bereik van meetwaarden, gemiddeld teruggebracht tot een bepaald aantal.

X1 ... X2 = Xy

ie signalen van X1 tot X2, voorwaardelijk gelijkgesteld aan een specifieke waarde van Xy. Dit lijkt op de delingsprijs van een pointer meter. Wanneer u metingen uitvoert, vergelijkt u deze vaak met de dichtstbijzijnde markering op de schaal van het instrument.

Dus met kwantisatie per niveau, hoe meer kwanta, hoe nauwkeuriger metingen en hoe meer decimalen (honderdsten, duizendsten enzovoort) ze kunnen bevatten.

Meer precies, het aantal decimalen wordt eerder bepaald door de resolutie van de ADC.

Kwantisatie van niveaus

De afbeelding toont het proces van kwantisatie van een signaal met behulp van één bit informatie, zoals ik hierboven beschreef, wanneer, wanneer een bepaalde limiet wordt overschreden, een hoge niveauwaarde wordt geaccepteerd.

Rechts ziet u de kwantisatie van het signaal en een record in de vorm van twee databits. Zoals u kunt zien, is dit signaalfragment al in vier waarden verdeeld. Het blijkt dat hierdoor een soepel analoog signaal omgezet is in een digitaal "stapsignaal".

Het aantal kwantisatieniveaus wordt bepaald door de formule:

Aantal kwantisatieniveaus

Waar n het aantal bits is, is N het kwantisatieniveau.

Hier is een voorbeeld van een signaal dat is onderverdeeld in een groter aantal quanta:

ADC-kwantisatie

Dit laat heel duidelijk zien dat hoe vaker de signaalwaarden worden genomen (hoe hoger de bemonsteringsfrequentie), hoe nauwkeuriger deze wordt gemeten.

Een analoog signaal omzetten naar digitaal

Deze afbeelding toont de conversie van een analoog signaal in een digitale vorm, en links van de ordinaatas (verticale as) is een 8-bit digitale opname.


Analoog naar digitaal converters

Een ADC of een analoog-naar-digitaal converter kan als een afzonderlijk apparaat worden geïmplementeerd of erin worden geïntegreerd microcontroller.

Voorheen bevatten microcontrollers, bijvoorbeeld de MCS-51-familie, geen ADC, hiervoor werd een externe microschakeling gebruikt en werd het noodzakelijk om een ​​subroutine te schrijven voor het verwerken van de waarden van een extern IC.

Analoge ingangen op Arduino Board

Nu zitten ze in de meeste moderne microcontrollers, bijvoorbeeld AVR AtMEGA328, wat de basis is van de meest populaire printplaat Arduino, het is ingebouwd in MK zelf. In Arduino is het lezen van analoge gegevens eenvoudig met de opdracht AnalogRead (). Hoewel de microprocessor, die in dezelfde niet minder populaire Raspberry PI is geïnstalleerd, deze niet heeft, dus is niet alles zo eenvoudig.

In feite zijn er een groot aantal opties voor analoog-naar-digitaal converters, die elk hun eigen nadelen en voordelen hebben. Beschrijven wat in dit artikel niet veel zin heeft, omdat dit een grote hoeveelheid materiaal is. Beschouw alleen de algemene structuur van sommigen van hen.

De oudste gepatenteerde ADC-optie is het patent van Paul M. Rainey, "Facsimile Telegraph System", VS Patent 1.608.527, ingediend op 20 juli 1921, uitgegeven op 30 november 1926. Dit is een 5-bit directe conversie ADC. Uit de naam van het patent kwamen gedachten dat het gebruik van dit apparaat was verbonden met de overdracht van gegevens via telegraaf.

Eerste ADC

Als we het hebben over moderne ADC's voor directe conversie, hebben ze het volgende schema:

ADC-circuit

Dit laat zien dat de invoer een ketting is van vergelijkersdie hun signaal uitvoeren wanneer ze een drempelsignaal passeren. Dit is bitdiepte en kwantisatie. Iedereen, zelfs een beetje sterk in circuits, zag dit voor de hand liggende feit.

Wie is niet sterk, dan werkt het ingangscircuit op deze manier:

Een analoog signaal wordt tegelijkertijd naar de "+" -ingang ingevoerd. De uitgangen met de aanduiding "-" ontvangen de referentiespanning, die wordt ontbonden met behulp van een reeks weerstanden (resistieve verdeler) in een aantal referentiespanningen. Een serie voor deze keten ziet er bijvoorbeeld als volgt uit:

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

Tussen haakjes geeft een komma aan welk deel van de totale referentiespanning Uref wordt geleverd aan de ingang van elke ingangsspanning.

ie elk van de elementen heeft twee ingangen wanneer de ingangsspanning wordt ondertekend «+» overschrijdt de ingangsspanning met een "-" teken, een logische eenheid verschijnt aan de uitgang. Wanneer de spanning op de positieve (niet-inverterende) ingang lager is dan op de negatieve (inverterende) ingang, dan is de uitgang nul.

comparator

De spanning wordt verdeeld zodat de ingangsspanning wordt verdeeld in het gewenste aantal cijfers. Wanneer de spanning op de ingang de uitgang van het overeenkomstige element bereikt, verschijnt een signaal, het verwerkingscircuit voert het "juiste" signaal in digitale vorm uit.

Een dergelijke comparator is goed in de snelheid van gegevensverwerking, alle elementen van het ingangscircuit worden parallel geactiveerd, de hoofdvertraging van dit type ADC wordt gevormd uit vertraging 1 van de comparator (ze worden tegelijkertijd gelijktijdig geactiveerd) en de vertraging is encoder.

Er is echter een enorm nadeel van parallelle circuits - dit is de behoefte aan een groot aantal vergelijkers om ADC's met hoge resolutie te verkrijgen. Om bijvoorbeeld 8 cijfers te krijgen, hebt u 2 ^ 8 vergelijkers nodig, en dit is maar liefst 256 stuks. Voor een tien-bit (in Arduino 10-bit ADC overigens, maar van een ander type), heb je 1024-comparators nodig. Beoordeel zelf de geschiktheid van een dergelijke behandelingsoptie en waar deze nodig kan zijn.

Er zijn andere soorten ADC's:

  • opeenvolgende benadering;

  • delta sigma ADC.

conclusie

Het omzetten van een analoog signaal naar digitaal is noodzakelijk voor het lezen van parameters van analoge sensoren. Er is een apart type digitale sensoren, het zijn geïntegreerde schakelingen, bijvoorbeeld DS18b20 - aan de uitgang is er al een digitaal signaal en het kan worden verwerkt door microcontrollers of microprocessors zonder een ADC, of ​​een analoge sensor op een bord dat al een eigen converter heeft. Elk type sensor heeft zijn eigen voor- en nadelen, zoals ruisimmuniteit en meetfouten.

Kennis van de conversieprincipes is noodzakelijk voor iedereen die met microcontrollers werkt, omdat zelfs niet elk modern systeem dergelijke converters heeft ingebouwd, moet u externe microschakelingen gebruiken. We kunnen bijvoorbeeld een dergelijk bord noemen dat speciaal is ontworpen voor de Raspberry PI GPIO-connector met nauwkeurige ADC op ADS1256.

Zie ook op i.electricianexp.com:

  • Analoge sensoren verbinden met Arduino, sensoren lezen
  • Wat is het verschil tussen analoge en digitale sensoren
  • Digitaal en analoog signaal: wat zijn de overeenkomsten en verschillen, voor- en nadelen ...
  • Meest populaire sensoren voor Arduino
  • Schmitt-trigger - algemeen beeld

  •