Vi studerer AVR-mikrokontrollere. ADC, som lager et voltmeter. En enkel ADC er et tillegg til en PC. Opplegg, beskrivelse. Suksessive tilnærming analog til digital omformere


Hei alle sammen. I dag skal vi berøre et seriøst emne kalt ADC. Som alltid starter jeg med ADC-egenskaper, for eksempel ATmega8. Og så om bord er det en 6-kanals analog-til-digital-omformer (ADC) som har 4 kanaler med 10-bits presisjon og 2 kanaler med 8-bits presisjon.
Og så hva betyr "10-biters presisjon"? Dette betyr at målingen blir delt inn i 2 10 deler, og for å bestemme måletrinnet må du dele ADC-spenningen med 2 10 = 1023 (fordi man teller fra 0), for eksempel hvis den målte spenningen er 2,56 V, da vil trinnet vårt være 2,56 / 1023 = 0,0025V. Deretter trenger du bare å multiplisere trinnet med verdien til ADCH-registeret (høy bit) og ADCL (lav bit), der konverteringsresultatet er lagret.


Nå mer detaljert:
For å kontrollere ADC må vi skrive tallene du ønsker til ADC-kontrollregistrene under navnene ADMUX og ADCSRA (ADCSR)
ADMUX - ADC multiplekserregister.

Bits 7: 6 (REFS1: REFS0) - Referansespenningsvalgbiter. Hvis vi endrer disse bitene under konvertering, vil endringene først tre i kraft etter gjeldende konvertering. Spenningsreferansen kan være AVcc (strømforsyningsspenning), AREF eller en intern 2,56V referanse.

Bit 7:6
REFS1: REFS0
00 AREF
01 AVcc, med ekstern kondensator på AREF
10 Reserver
11 Intern 2,56V forsyning, med ekstern kondensator ved AREF

Bit 5 - ADLAR. Bestemmer hvordan resultatet skal skrives til registre

Bits 3: 0 - MUX3: MUX0 - Kanalvalgbiter.
MUX3: 0
0000 ADC0
0001 ADC1
0010 ADC2
0011 ADC3
0100 ADC4
0101 ADC5
0110 ADC6
0111 ADC7

Det neste registeret er ADCSRA hvor hoved-ADC-innstillingene er lagret.

Bit 7 - ADEN. ADC-oppløsning.
0 - ADC er av
1 - ADC er på

Bit 6 - ADSC. Start konvertering (i enkeltkonverteringsmodus)
0 - konvertering fullført
1 - start konvertering

Bit 5 - ADFR. Modusvalg ADC-drift
0 - enkeltkonverteringsmodus
1 - kontinuerlig konverteringsmodus

Bit 4 - ADIF. ADC-avbruddsflagg. Biten settes når konverteringen er fullført.

Bit 3 - ADIE. Aktivering av ADC-avbrudd
0 - avbrudd deaktivert
1 - avbrudd aktivert
Et ADC-avbrudd genereres (hvis aktivert) når konverteringen er fullført.

Bits 2: 1 - ADPS2: ADPS0. ADC klokkefrekvens, eller rettere sagt deler klokkefrekvens IPU
ADPS2: 0
000 2
001 2
010 4
011 8
100 16
101 32
110 64
111 128

Jo høyere frekvens, jo raskere konvertering, men jo større feil.

Slik skjer transformasjonen

Vel, som et eksempel, la oss lage et 10V voltmeter.
Den beregnede delen vil se slik ut:
Vi vil bruke den høye byten til ADCH, så antall målinger vil være 2 8 = 255. Referansespenningen er en intern 2,56V forsyning. Deretter beregner vi trinnet 2,56 / 255 = 1mV. For å måle 10V vår må vi sette en spenningsdeler, med enkle beregninger velger vi de mest plausible motstandene for 56K og 15K, så er koeffisienten vår 4,73. Den endelige formelen ser slik ut
Verdi i volt = ADCH * 0,01 * 4,73;


Det er en feil på en tiendedel. skilleveggen er ikke perfekt tilpasset (hvis noen ønsker å sette sammen kretsen, kan du sette en trimmer). Bare husk å installere et kapasitivt-induktivt filter.

Nå programvaredelen:
Som alltid lager vi et prosjekt i CodeVision, sletter alt og skriver:
// alt er klart med biblioteker #inkluderer #inkludere #inkludere #inkludere #inkludere // våre variabler char resultat; usignert char volt; // velg en port for LCD-port B #asm .equ __lcd_port = 0x18; #endasm // Initialiseringsfunksjon void ADC_init () (ADMUX = 0xf0; // hvis vi skriver tydeligere 0b11110000 ADCSRA = 0x8d; // 0b10001101) // Målefunksjon usignert char ADC_result (usigned char adcput)_AD_XMUput (usigned char adc & 0xF0); // sett kanalen delay_us (30); // forsinkelse for stabilisering ADCSRA | = 0x40; mens ((ADCSRA & 0x10) == 0); // Vent på flagget til slutten av ADCSRA-målingen | = 0x10; return ADCH; // Returnerer høy byte) // Vår hovedfunksjon void main () (ADC_init (); volt = ADC_result (0) * 0,01 * 4,73 * 10; // multipliser med 10 for tiende presisjon sprintf (resultat, "V =% i. % u ", volt / 10, volt% 10); lcd_init (16); lcd_gotoxy (0,0); lcd_puts (resultat);)

Gå for det!
Hvis du vil ha flere detaljer - les dataarket, eller løp til forumet.

Denne artikkelen diskuterer hovedspørsmålene angående prinsippet om drift av ADC forskjellige typer... Samtidig forble noen viktige teoretiske beregninger angående den matematiske beskrivelsen av analog-til-digital konvertering utenfor rammen av artikkelen, men lenker er gitt som den interesserte leser kan finne en dypere vurdering teoretiske aspekter ADC-drift. Dermed er artikkelen mer opptatt av å forstå de generelle prinsippene for ADC-drift enn av en teoretisk analyse av deres arbeid.

Introduksjon

Som et utgangspunkt, la oss definere analog-til-digital konvertering. Analog-til-digital konvertering er prosessen med å konvertere en fysisk inndatamengde til dens numeriske representasjon. En analog-til-digital-omformer er en enhet som utfører denne konverteringen. Formelt kan inngangsverdien til ADC være en hvilken som helst fysisk mengde - spenning, strøm, motstand, kapasitans, pulsrepetisjonshastighet, akselrotasjonsvinkel, etc. Men for nøyaktighetens skyld vil vi i det følgende, under ADC, utelukkende mene spenning-til-kode-omformere.


Konseptet analog-til-digital konvertering er nært knyttet til begrepet måling. Måling refererer til prosessen med å sammenligne den målte verdien med en viss standard; under analog-til-digital konvertering sammenlignes inngangsverdien med en viss referanseverdi (som regel med en referansespenning). Dermed kan analog-til-digital-konvertering sees på som en måling av verdien av et inngangssignal, og alle begreper innen metrologi, for eksempel målefeil, er anvendelige på det.

Hovedkarakteristika for ADC

ADC har mange egenskaper, hvorav de viktigste er konverteringsfrekvensen og bitdybden. Konverteringshastigheten uttrykkes vanligvis i samples per second (SPS), og bitdybden er i bits. Moderne ADC-er kan være opptil 24 bit brede og ha en konverteringsfrekvens på opptil GSPS-enheter (ikke samtidig, selvfølgelig). Jo høyere hastighet og bitdybde, jo vanskeligere er det å oppnå de nødvendige egenskapene, jo dyrere og mer kompleks blir omformeren. Konverteringshastighet og bitdybde er relatert til hverandre på en bestemt måte, og vi kan øke den effektive konverteringsbitdybden ved å ofre hastighet.

ADC-typer

Det finnes mange typer ADC-er, men for formålet med denne artikkelen vil vi begrense oss til kun å vurdere følgende typer:

  • ADC parallell konvertering (direkte konvertering, flash ADC)
  • ADC suksessiv tilnærming(SAR ADC)
  • delta sigma ADC (ladebalansert ADC)
Det finnes også andre typer ADC-er, inkludert rørledninger og kombinerte typer, som består av flere ADC-er med (generelt) annen arkitektur... Imidlertid er de ovennevnte ADC-arkitekturene de mest veiledende på grunn av det faktum at hver arkitektur opptar en viss nisje i det totale bithastighetsområdet.

ADC-ene for direkte (parallell) konvertering har høyeste hastighet og laveste bitdybde. For eksempel har TLC5540 parallellkonvertering ADC fra Texas Instruments en hastighet på 40MSPS med en bitbredde på bare 8 biter. ADC av denne typen kan ha konverteringsfrekvenser på opptil 1 GSPS. Det kan bemerkes her at pipelinede ADC-er har enda høyere ytelse, men de er en kombinasjon av flere ADC-er med lavere ytelse og deres vurdering ligger utenfor rammen av denne artikkelen.

Den midterste nisjen i bithastighetsraden er okkupert av suksessive tilnærmings-ADC-er. Typiske verdier er 12-18 biter med en konverteringsfrekvens på 100KSPS-1MSPS.

Den største nøyaktigheten oppnås av sigma-delta ADC-er med en kapasitet på opptil 24 bit inklusive og en hastighet fra SPS-enheter til KSPS-enheter.

En annen type ADC som har funnet bruk i den siste tiden er den integrerende ADC. Integrerende ADC-er er nå stort sett erstattet av andre typer ADC-er, men kan finnes i eldre instrumentering.

ADC direkte konvertering

ADC direkte konvertering mottatt bred bruk i 1960-1970, og begynte å bli produsert i form av integrerte kretser på 1980-tallet. De brukes ofte i "pipelinede" ADC-er (de er ikke vurdert i denne artikkelen), og har en kapasitet på 6-8 biter ved hastigheter opp til 1 GSPS.

Arkitekturen til en direkte konvertering ADC er vist i fig. 1

Ris. 1. Strukturopplegg ADC direkte konvertering

Prinsippet for drift av ADC er ekstremt enkelt: inngangssignalet mates samtidig til alle "pluss"-inngangene til komparatorene, og et antall spenninger mates til "minus", hentet fra referansespenningen ved å dele med motstander R. For kretsen i fig. 1 denne raden vil være slik: (1/16, 3/16, 5/16, 7/16, 9/16, 11/16, 13/16) Uref, der Uref er ADC-referansespenningen.

La spenningen lik 1/2 Uref påføres ADC-inngangen. Deretter vil de første 4 komparatorene fungere (hvis du teller fra bunnen), og logiske enheter vil vises ved utgangene deres. Prioritetskoderen vil danne en "kolonne" av enheter binær kode, som fanges opp av utgangsregisteret.

Nå blir fordelene og ulempene med en slik omformer tydelige. Alle komparatorer opererer parallelt, forsinkelsestiden til kretsen er lik forsinkelsestiden i en komparator pluss forsinkelsestiden i koderen. Komparatoren og koderen kan lages veldig raske, og som et resultat er hele kretsen veldig rask.

Men for å få N biter trengs 2 ^ N komparatorer (og kompleksiteten til koderen vokser også med 2 ^ N). Diagrammet i fig. 1. inneholder 8 komparatorer og har 3 bits, for å få 8 bits trenger du 256 komparatorer, for 10 bits - 1024 komparatorer, for en 24-bits ADC vil det ta mer enn 16 millioner av dem. Teknikken har imidlertid ennå ikke nådd slike høyder.

Suksessiv tilnærming ADC

En Successive Approximation Register (SAR) analog-til-digital-omformer måler størrelsen på et inngangssignal ved å utføre en rekke påfølgende "vektinger", det vil si sammenligninger av inngangsspenningsverdien med en rekke verdier generert som følger:

1. ved det første trinnet settes en verdi lik 1 / 2Uref ved utgangen til den innebygde digital-til-analog-omformeren (heretter antar vi at signalet er i området (0 - Uref).

2.hvis signalet er større enn denne verdien, sammenlignes det med spenningen som ligger i midten av det gjenværende intervallet, dvs. denne saken, 3 / 4Uref. Hvis signalet er mindre angi nivå, så vil den neste sammenligningen gjøres med mindre enn halvparten av det gjenværende intervallet (dvs. med 1/4Uref-nivået).

3. Trinn 2 gjentas N ganger. Dermed genererer N sammenligninger ("vektinger") N biter av resultatet.

Ris. 2. Blokkdiagram av den suksessive tilnærmingen ADC.

Dermed består SAR ADC av følgende enheter:

1. Komparator. Den sammenligner inngangsverdien og gjeldende verdi av "vekt" spenningen (i fig. 2. merket med en trekant).

2. Digital-til-analog omformer(Digital til Analog Converter, DAC). Den genererer en "vekt" spenningsverdi basert på den digitale inngangskoden.

3. Register over suksessive tilnærminger (Successive Approximation Register, SAR). Den implementerer den suksessive tilnærmingsalgoritmen, og genererer gjeldende verdi av koden som leveres til DAC-inngangen. Ved navn, alle sammen gitt arkitektur ADC.

4. Sample-hold system (Sample / Hold, S / H). For driften av denne ADC er det grunnleggende viktig at inngangsspenningen forblir konstant gjennom konverteringssyklusen. Imidlertid har "ekte" signaler en tendens til å endre seg over tid. Hentebutikk-ordningen "husker" gjeldende verdi analogt signal, og holder den uendret gjennom hele syklusen til enheten.

Fordelen med enheten er dens relativt høye konverteringshastighet: konverteringstiden til en N-bit ADC er N klokkesykluser. Konverteringsnøyaktigheten er begrenset av nøyaktigheten til den interne DAC-en og kan være 16-18 bits (nå har 24-bits SAR ADC-er, for eksempel AD7766 og AD7767, begynt å dukke opp).

Delta Sigma ADC

Til slutt, den mest interessante typen ADC er sigma-delta ADC, noen ganger referert til i litteraturen som en ladningsbalansert ADC. Blokkskjemaet til en sigma-delta ADC er vist i fig. 3.

Fig. 3. Blokkdiagram av en sigma-delta ADC.

Prinsippet for drift av denne ADC er noe mer kompleks enn for andre typer ADC. Essensen er at inngangsspenningen sammenlignes med spenningsverdien akkumulert av integratoren. Pulser med positiv eller negativ polaritet mates til integratorinngangen, avhengig av sammenligningsresultatet. Dermed er denne ADC et enkelt sporingssystem: spenningen ved utgangen til integratoren "sporer" inngangsspenningen (fig. 4). Resultatet av denne kretsen er en strøm av nuller og enere ved utgangen til komparatoren, som deretter føres gjennom et digitalt lavpassfilter, noe som resulterer i et N-bits resultat. LPF i fig. 3. Kombinert med en "desimator", en enhet som reduserer repetisjonshastigheten til prøver ved å "desimere" dem.

Ris. 4. Sigma-delta ADC som sporingssystem

For strenghetens skyld må det sies at i fig. 3 er et blokkskjema over en førsteordens sigma-delta ADC. En andreordens sigma-delta ADC har to integratorer og to løkker tilbakemelding, men vil ikke bli vurdert her. De som er interessert i dette emnet kan henvise til.

I fig. 5 viser signalene i ADC på et nullnivå ved inngangen (øverst) og på nivået Vref / 2 (nederst).

Ris. 5. Signaler i ADC kl ulike nivåer inngangssignal.

Nå, uten å fordype seg i kompleks matematisk analyse, la oss prøve å forstå hvorfor sigma-delta ADC-er har veldig lavt nivå egen støy.

Vurder blokkskjemaet til sigma-delta-modulatoren vist i fig. 3, og representer det i denne formen (fig. 6):

Ris. 6. Blokkdiagram av sigma-delta-modulatoren

Her er komparatoren representert som en adderer som legger til det kontinuerlige ønskede signalet og kvantiseringsstøyen.

La integratoren ha overføringsfunksjon 1 / s. Deretter, som representerer det nyttige signalet som X (s), utgangen fra sigma-delta-modulatoren som Y (s), og kvantiseringsstøyen som E (s), får vi ADC-overføringsfunksjonen:

Y (s) = X (s) / (s + 1) + E (s) s / (s + 1)

Det vil si at sigma-delta-modulatoren er et filter lave frekvenser(1 / (s + 1)) for nyttesignalet og filteret høye frekvenser(s / (s + 1)) for støy, med begge filtrene som har samme grensefrekvens. Støy konsentrert i høyfrekvensområdet av spekteret fjernes enkelt av det digitale lavpassfilteret, som er plassert etter modulatoren.

Ris. 7. Fenomenet "forskyvning" av støy i den høyfrekvente delen av spekteret

Det skal imidlertid forstås at dette er en ekstremt forenklet forklaring på støyformingsfenomenet i en sigma-delta ADC.

Så den største fordelen med en sigma-delta ADC er høy nøyaktighet på grunn av ekstremt lav egenstøy. For å oppnå høy nøyaktighet er det imidlertid nødvendig at grensefrekvensen digitalt filter var så lavt som mulig, mange ganger mindre enn driftsfrekvensen til sigma-delta-modulatoren. Derfor har sigma-delta ADC-er en langsom konverteringshastighet.

De kan brukes i lydteknikk, men de brukes hovedsakelig i industriell automasjon for konvertering av sensorsignaler, i måleinstrumenter og i andre applikasjoner der det kreves høy nøyaktighet. men ingen høy hastighet kreves.

Litt historie

Den eldste ADC-referansen i historien er sannsynligvis Paul M. Rainey-patentet, "Facsimile Telegraph System", U.S. Patent 1 608 527, innlevert 20. juli 1921, utstedt 30. november 1926. Enheten som er avbildet i patentet er faktisk en 5-bits direktekonvertering ADC.

Ris. 8. Første patent for ADC

Ris. 9. ADC direkte konvertering (1975)

Enheten vist i figuren er en MOD-4100 direktekonverterende ADC produsert av Computer Labs, 1975, satt sammen på grunnlag av diskrete komparatorer. Det er 16 komparatorer (de er plassert i en halvsirkel for å utjevne signalutbredelsesforsinkelsen til hver komparator), derfor har ADC en kapasitet på bare 4 biter. Konverteringshastighet 100 MSPS, strømforbruk 14 watt.

Følgende figur viser en avansert versjon av ADC for direkte konvertering.

Ris. 10. ADC direkte konvertering (1970)

VHS-630 fra 1970, produsert av Computer Labs, hadde 64 komparatorer, hadde 6 bits, 30 MSPS og forbrukte 100 watt (1975-versjonen av VHS-675 hadde 75 MSPS og 130 watt).

Litteratur

W. Kester. ADC Architectures I: Flash Converter. Analoge enheter, MT-020 Opplæring.

Analoge (ADC) kontrollerinnganger. Ikke alle og ikke umiddelbart forstår hva det er og hva det spises med. Derfor vil jeg prøve å forklare med mine egne ord.

Generelt, hva er en "analog" inngang? Kontrolleren har to typer innganger: digital og analog. Digital kan bare ta to verdier: null og én. Null betyr ingen spenning, en betyr spenning. Informasjon overføres til den digitale inngangen i pulser i tid. Men den analoge inngangen er i stand til å akseptere ikke bare disse to verdiene, men generelt hvilken som helst spenning.

NM8036-kontrolleren har to analoge innganger (se). Hver av disse inngangene kan forsynes med en hvilken som helst spenning i området fra 0 til forsyningsspenning (5 V). For eksempel, 1,8 volt, eller 3,2 volt ... Kort sagt, hvilken som helst, men ikke mer enn 5 volt.

Hva gjør kontrolleren med denne spenningen? Veldig enkelt: den måler og representerer den i digital form... Dessuten gjør han det i området fra 0 til 1023. Dette er binære data (bin-data), der den øvre grensen (1023) er lik en spenning på 5 volt. Dette er analog til digital konvertering (ADC).

Men den faktiske spenningen er den faktiske. 5 volt - de er 5 volt. Denne verdien omtales her som "volt". Og med rette, volt er det.

Men her er det mulig å representere denne spenningen i andre fysiske størrelser (fysikk). For eksempel koblet vi en trykk- eller fuktighetssensor til inngangen, eller også en temperatursensor, men ikke en digital, som DS1820, men en termistor. Denne termistorsensoren vil gi oss en spenning fra 0 til 5 volt (elektronikkingeniører, ikke bli begeistret! Dette er bare et eksempel.), Men tross alt er det viktig for oss å vite temperaturen, ikke spenningen!

Så vi kalibrerer disse verdiene. Nedre grense i innstillingene (se Varmestyring i privat hus. Advanced Manager.) Vil settes for eksempel til 16 grader, og øvre grense til 30 grader. Her er sensoren vår, ser du, tilkoblet. Og antall desimaler vil være 2. Og prefikset vil være C (det vil si grader Celsius).

Og hva får vi med dette? Og vi får at når sensoren sender en spenning til inngangen, for eksempel 2,5 volt, vil kontrolleren raskt beregne alt på nytt og gi oss tre alternativer for resultatene: 512 (bin-data), 2,5v (volt) og 23,00 C (grader celsius). På denne måten kan du sette opp arbeid med nesten hvilken som helst sensor som sender ut en analog spenningsverdi på utgangen.

Eksistensen av to analoge innganger på kontrolleren er ikke bare muligheten til å koble til sensorene ovenfor. Du kan komme opp med mange ordninger som kan være svært nyttige for forskjellige formål i et privat hus. Jeg vil umiddelbart liste opp de mulige.

Enkel bryter for 2 posisjoner. Den kan ha enten 0 volt eller 5 volt på datautgangen. Den er koblet til med tre ledninger: Vcc (+ 5v), Data (data) og Gnd (vanlig ledning). Denne bryteren kan brukes til å installere to ulike regimer arbeidsbelastning ved programmering av systemet.

En bryter for flere posisjoner kan gi programmerbarhet og flere moduser. Her, la oss si, for 3 stillinger. Hver posisjon har sin egen utgangsspenning. Den laveste posisjonen er ved utgangen på 1,25 volt, den midterste er 2,5 volt, og toppen er 3,75 volt. Ved å øke antall motstander i kjeden kan du også øke antall bryterposisjoner.

Dette var muligheter for trinnregulering, men det finnes også en variant for jevn regulering. Her avhenger verdien av utgangsspenningen av posisjonen til glideren variabel motstand... Kan brukes for eksempel til manuell justering temperatur. Lag programmet slik at det holder romtemperaturen slik det er satt av regulatoren. Automatisk justering- dette er én ting, men ofte vil du snu noe et sted, klikk for å gjøre det varmere, eller omvendt, kjøligere. Tross alt er mennesket en kresen skapning.

Eller bruk en slik ordning for å kontrollere, for eksempel, vannstanden i en beholder, i en brønn ... Det er ikke vanskelig: en flyte på en tråd viklet rundt håndtaket til en variabel motstand. Fjærbelastet, selvfølgelig. Men dette er så, direkte, uten detaljerte studier.

Hvis du fortsetter å fantasere, kan du fortsatt måle belysningsnivået og slå på/av lampen til rett tid... Kort sagt, disse analoge inngangene har mange muligheter, NM8036 kan enkelt mestre mange oppgaver ikke bare i kontrollere oppvarmingen av et privat hus, men også for å løse mange andre oppgaver. Vi vil snakke om programmeringsmuligheter i de følgende artiklene.

Det er forresten veldig mye jevnt om å justere temperaturen i rommet. ingen dårlig løsning tatt av meg fra. Som svar på noens spørsmål ga forfatteren av innlegget Brokly (aka forfatteren av Advanced Manager) et eksempel på bruk av en analog inngang. Jeg siterer ordrett:
Du ville ha tenkt på en tråd som er enda vanskeligere. Tilførselskontakt veggtermostat, koble til analog inngang, og la fyllikerne vri det selv. Og frigjøre vaskedamen, og full moro. Og kontrolleren mindre arbeid, termostaten har løst ut - du trenger ikke varme.

Hvordan liker du det, mester? Og du vet, jeg likte det.

Fortsettelse følger...

La oss se på hovedutvalget av problemer som kan tilskrives handlingsprinsippet forskjellige typer... Sekvensiell telling, bitvis balansering - hva skjuler seg bak disse ordene? Hva er prinsippet for drift av ADC-en til en mikrokontroller? Vi vil vurdere disse, samt en rekke andre problemstillinger, innenfor rammen av artikkelen. Vi vil vie de tre første delene generell teori, og fra den fjerde underoverskriften vil vi studere prinsippet for deres arbeid. Du kan inn diverse litteratur oppfyller vilkårene ADC og DAC. Prinsippet for drift av disse enhetene er litt annerledes, så ikke forveksle dem. Så artikkelen vil vurdere fra analog til digital form, mens DAC fungerer omvendt.

Definisjon

Før vi vurderer prinsippet for drift av ADC, la oss finne ut hva slags enhet det er. Analog til digital omformere er enheter som fysisk mengde konvertert til den tilsvarende numeriske representasjonen. Nesten alt kan fungere som en initial parameter - strøm, spenning, kapasitans, motstand, akselrotasjonsvinkel, pulsfrekvens, og så videre. Men for å være sikker, vil vi bare jobbe med én transformasjon. Dette er spenningskode. Valget av dette arbeidsformatet er ikke tilfeldig. Tross alt avhenger ADC (prinsippet for drift av denne enheten) og dens funksjoner i stor grad av hvilket målebegrep som brukes. Dette forstås som prosessen med å sammenligne en viss verdi med en tidligere etablert standard.

ADC-egenskaper

De viktigste er bitdybde og konverteringsfrekvens. Den første er uttrykt i biter og den andre i antall per sekund. Moderne analog-til-digital-omformere kan ha en bitbredde på 24 biter eller en konverteringsrate som går opp til GSPS-enheter. Vær oppmerksom på at ADC bare kan gi deg én av egenskapene om gangen. Jo høyere indikatorene deres er, desto vanskeligere er det å jobbe med enheten, og det koster i seg selv mer. Men heldigvis kan du få de nødvendige bithastighetene ved å ofre enhetens hastighet.

ADC-typer

Driftsprinsippet er forskjellig for forskjellige grupper av enheter. Vi dekker følgende typer:

  1. Direkte konvertering.
  2. Med konsekvent tilnærming.
  3. Med parallell konvertering.
  4. Ladebalansert analog-til-digital omformer (delta-sigma).
  5. Integrering av ADC-er.

Det er mange andre rørledninger og kombinerte typer som har sine egne spesifikke egenskaper med forskjellige arkitekturer. Men de prøvene som vil bli vurdert innenfor rammen av artikkelen er av interesse på grunn av det faktum at de spiller en veiledende rolle i deres nisje av enheter med denne spesifisiteten. La oss derfor studere prinsippet for drift av ADC, så vel som dens avhengighet av den fysiske enheten.

Direkte analog til digital omformere

De ble veldig populære på 60- og 70-tallet av forrige århundre. De har blitt produsert i form siden 80-tallet. Dette er veldig enkle, til og med primitive enheter som ikke kan skryte av betydelig ytelse. Bitdybden deres er vanligvis 6-8 biter, og hastigheten overstiger sjelden 1 GSPS.

Prinsippet for drift av denne typen ADC er som følger: inngangssignalet mottas samtidig ved de positive inngangene til komparatorene. En spenning av en viss størrelse påføres de negative terminalene. Og deretter bestemmer enheten driftsmodusen. Dette gjøres takket være referansespenningen. La oss si at vi har en enhet der det er 8 komparatorer. Når ½ av referansespenningen tilføres, vil bare 4 av dem slås på. Den vil bli dannet av prioritetskoderen og fiksert av utgangsregisteret. Når det gjelder fordeler og ulemper, kan vi si at arbeidet lar deg lage høyhastighetsenheter. Men for å få den nødvendige bitdybden må du svette mye.

Den generelle formelen for antall komparatorer ser slik ut: 2 ^ N. Under N må du angi antall sifre. Eksemplet diskutert tidligere kan brukes igjen: 2 ^ 3 = 8. Totalt trengs 8 komparatorer for å få det tredje sifferet. Dette er driftsprinsippet til ADC-ene, som ble opprettet først. Ikke veldig praktisk, så andre arkitekturer dukket opp senere.

Suksessive tilnærming analog til digital omformere

Her brukes "veiing"-algoritmen. I forkortet form kalles enheter som bruker denne teknikken ganske enkelt sekvensielle ADC-er. Driftsprinsippet er som følger: enheten måler verdien av inngangssignalet, og deretter sammenlignes det med tallene som genereres i henhold til en bestemt metode:

  1. Stiller inn halvparten av mulig referansespenning.
  2. Hvis signalet har overskredet verdigrensen fra punkt # 1, sammenlignes det med tallet som ligger midt mellom gjenværende verdi. Så i vårt tilfelle vil det være ¾ av referansespenningen. Hvis referansesignalet faller under denne indikatoren, vil sammenligningen bli utført med den andre delen av intervallet i henhold til samme prinsipp. V dette eksemplet dette er ¼ av spenningsreferansen.
  3. Trinn 2 må gjentas N ganger, noe som vil gi oss N biter av resultatet. Dette er på grunn av H-tallet for sammenligninger.

Dette operasjonsprinsippet gjør det mulig å skaffe enheter med en slektning høy hastighet konverteringer, som er suksessive tilnærmings-ADC-er. Driftsprinsippet, som du kan se, er enkelt, og disse enhetene er utmerket for forskjellige tilfeller.

Parallelle analog til digital omformere

De fungerer som serielle enheter. Beregningsformelen er (2 ^ H) -1. For tilfellet vurdert tidligere, trenger vi (2 ^ 3) -1 komparatorer. For arbeid brukes en viss rekke av disse enhetene, som hver kan sammenligne inngangen og individuell referansespenning. Parallelle A/D-omformere er ganske raske enheter. Men designprinsippet til disse enhetene er slik at det kreves betydelig kraft for å opprettholde ytelsen. Derfor er det upraktisk å bruke dem med batteristrøm.

Bitbalansert analog-til-digital-omformer

Det fungerer på samme måte som forrige enhet... Derfor, for å forklare driften av ADC, vil driftsprinsippet for nybegynnere bli vurdert bokstavelig talt på fingrene. Disse enhetene er basert på fenomenet dikotomi. Med andre ord, en sekvensiell sammenligning av den målte verdien med en viss del av maksimal verdi... Verdier i ½, 1/8, 1/16 og så videre kan tas. Derfor kan analog-til-digital-omformeren fullføre hele prosessen i N iterasjoner ( påfølgende trinn). Dessuten er H lik bitdybden til ADC (se på de tidligere gitte formlene). Dermed har vi en betydelig tidsgevinst, dersom teknologiens hastighet er spesielt viktig. Til tross for deres betydelige hastighet, har disse enhetene også en lav statisk feil.

Ladebalanserte A/D-omformere (Sigma Delta)

Dette er den mest interessante typen enhet, ikke minst på grunn av dets operasjonsprinsipp. Den består i å sammenligne inngangsspenningen med den akkumulert av integratoren. Pulser med negativ eller positiv polaritet mates til inngangen (alt avhenger av resultatet av forrige operasjon). Dermed kan vi si at en slik analog-til-digital-omformer er et enkelt sporingssystem. Men dette er bare som et eksempel for sammenligning, slik at du kan forstå ADC. Driftsprinsippet er systemisk, men for effektiv funksjon av denne analog-til-digital-omformeren er det ikke nok. Sluttresultatet er en endeløs strøm av enere og nuller som går gjennom det digitale lavpassfilteret. En viss bitsekvens dannes fra dem. Det er ADC-omformere av første og andre orden.

Integrering av analog-til-digital-omformere

Dette er den siste spesielle saken som vil bli vurdert innenfor rammen av artikkelen. Deretter vil vi beskrive prinsippet for drift av disse enhetene, men allerede på et generelt nivå. Denne ADC er en push-pull integrering analog-til-digital-omformer. Møte lignende enhet det er mulig i et digitalt multimeter. Og dette er ikke overraskende, fordi de gir høy nøyaktighet og samtidig godt undertrykker interferens.

La oss nå fokusere på hvordan det fungerer. Den består i at inngangssignalet lader kondensatoren for en fast tid. Vanligvis er denne perioden enheten for nettfrekvensen som driver enheten (50 Hz eller 60 Hz). Det kan også være flere. Dermed undertrykkes høyfrekvent interferens. Samtidig utjevnes påvirkningen av ustabil spenning nettverkskilde skaffe elektrisitet for nøyaktigheten til resultatet.

Når ladetiden til A/D-omformeren slutter, begynner kondensatoren å lades ut med en viss fast hastighet. Den interne telleren til enheten teller antall klokkepulser som genereres under denne prosessen. Jo lengre tidsintervallet er, desto viktigere er indikatorene.

ADC-er for push-pull-integrasjon har høy nøyaktighet og på grunn av dette, samt en relativt enkel konstruksjonsstruktur, utføres de som mikrokretser. Den største ulempen med dette operasjonsprinsippet er avhengigheten av nettverksindikatoren. Husk at dens evner er knyttet til lengden på strømforsyningens frekvensperiode.

Dette er hvordan en dobbel-integrert ADC fungerer. Driftsprinsipp denne enheten selv om det er ganske komplekst, gir det kvalitative indikatorer... I noen tilfeller er dette rett og slett nødvendig.

Vi velger AOC med det arbeidsprinsippet vi trenger

La oss si at vi har en spesifikk oppgave foran oss. Hvilken enhet skal du velge slik at den kan tilfredsstille alle våre behov? La oss først snakke om oppløsning og nøyaktighet. De er veldig ofte forvirret, selv om de i praksis er svært svakt avhengige av den ene. Husk at en 12-bits A/D-omformer kan være mindre nøyaktig enn en 8-bits. I dette tilfellet er oppløsningen et mål på hvor mange segmenter som kan trekkes ut fra inngangsområdet til det målte signalet. Så, 8-bits ADC-er har 2 8 = 256 slike enheter.

Nøyaktighet er det totale avviket til det oppnådde konverteringsresultatet fra den ideelle verdien, som bør være ved en gitt inngangsspenning. Det vil si at den første parameteren karakteriserer de potensielle egenskapene til ADC, og den andre viser hva vi har i praksis. Derfor kan en enklere type være egnet for oss (for eksempel direkte analog-til-digital-omformere), som vil tilfredsstille behovene på grunn av høy nøyaktighet.

For å ha en ide om hva som trengs, må du først beregne de fysiske parametrene og bygge matematisk formel interaksjoner. Statiske og dynamiske feil er viktige i dem, fordi når du bruker forskjellige komponenter og prinsipper for å bygge en enhet, vil de påvirke egenskapene på forskjellige måter. Mer detaljert informasjon kan finnes i den tekniske dokumentasjonen som tilbys av produsenten av hver enkelt enhet.

Eksempel

La oss ta en titt på SC9711 ADC. Prinsippet for drift av denne enheten er kompleks på grunn av dens størrelse og evner. Forresten, når vi snakker om sistnevnte, bør det bemerkes at de er virkelig forskjellige. Så for eksempel frekvensen mulig arbeid varierer fra 10 Hz til 10 MHz. Med andre ord kan den gjøre 10 millioner prøver per sekund! Og selve enheten er ikke noe integrert, men har en modulær konstruksjonsstruktur. Men det brukes som regel i en kompleks teknikk, hvor det er nødvendig å jobbe med stort beløp signaler.

Konklusjon

Som du kan se, er ADC-er basert på ulike prinsipper arbeid. Dette tillater oss å velge enheter som vil tilfredsstille de oppståtte behovene, og vil samtidig tillate oss å disponere de tilgjengelige midlene på en rimelig måte.

For tiden brukes analog-til-digital-omformere (ADC) i økende grad i amatørradiodesign. Dette skyldes fremkomsten av rimelige ADC-brikker og fordelene med digital behandling av analoge signaler. Ved å bruke ADC kan du enkelt konvertere Personlig datamaskin(PC) til en hvilken som helst virtuell måler. Dessuten elektronisk del en slik enhet kan være veldig enkel, og all signalbehandling vil skje i programvare.

Enheten beskrevet i artikkelen er designet for å konvertere et analogt signal til en digital sekssifret kode og kan tjene som et prefiks til en PC. Bruksområdene er svært forskjellige - fra virtuelle måleinstrumenter til ulike lydopptakssystemer.

På sidene til magasinet "Radio" har design basert på ADC blitt publisert gjentatte ganger. Imidlertid brukte de hovedsakelig mikrokretser med en binær-desimal utgangskode eller en kode for syv-elementindikatorer. Denne tilnærmingen er ikke praktisk for å legge inn informasjon på en PC.

I enheten som tilbys lesernes oppmerksomhet, brukes mikrokretsen KR1107PV1, som er en høyhastighets parallell seks-bits ADC. Den er designet for å konvertere spenning i området -2 ... 0 V til en av potensielle kodene for parallelllesing: binær kode (fremover og bakover) og tos komplementkode (fremover og bakover). Denne mikrokretsen ble valgt fordi den for det første er tilgjengelig for et bredt spekter av radioamatører og er relativt billig, og for det andre har den høy hastighet (maksimal konverteringsfrekvens er 20 MHz, tiden for en konvertering er ikke mer enn 100 ns).

Det skjematiske diagrammet av enheten er vist i fig. 1.

Den anbefalte kretsen for å slå på KR1107PV1A er tatt som grunnlag, som er betydelig forenklet uten merkbar forringelse av konverteringsnøyaktigheten. Det konverterte analoge signalet gjennom kontakt 1 på XS1-kontakten og motstand R4 mates til den inverterende inngangen til op-amp DA1. En slik inkludering brukes fordi det oftere er nødvendig å digitalisere spenningen med positiv polaritet, og ADC-mikrokretsen konverterer spenningen i området fra 0 til -2 V. Null-forspenningen fjernes fra trimmeren R1-glidebryteren. Motstandene R5 og R4 bestemmer den nødvendige operasjonsforsterkeren. Det forsterkede analoge signalet mates gjennom motstandene R7-R9 til pinnene 10, 13, 15 på ADC.

DA2 ADC styres av klokkepulsene som kommer fra PC-en (via pin 8 på XS2-kontakten) til pinne 4. Kodingen utføres etter passering av klokkepulsavskjæringen, og resultatet oppnådd i konverteringsprosessen overføres til utgangen registreres samtidig med neste klokkepulsfront. Dette gjør at kantene på klokkepulsen kan produsere neste prøve, dvs. i det øyeblikket resultatet av den n-te prøven er tilstede ved utgangen til DA2, gjøres den (n + 2) -te prøven ved inngangen . Den digitale koden tas fra utgangene D1 - D6 og sendes ut til XS2-kontakten.

Det skal bemerkes at betegnelsen på utgangene til mikrokretsen er motsatt av vekten deres: D1-utgangen tilsvarer den mest signifikante biten, og D6 - den minst signifikante. Type kode (direkte, invers, ekstra) ved utgangene til mikrokretsen bestemmes av signalnivåene ved inngangene C1 og C2 til mikrokretsen. Tilkoblingen deres til +5 V-bussen tilsvarer en høynivåforsyning, og til den vanlige ledningen - et lavt nivå. Den nødvendige typen kode ved utgangen av mikrokretsen settes av en kombinasjon av signalnivåer ved inngangene C1 og C2 i henhold til tabellen. 1.

ADC KR1107PV1A krever en bipolar forsyning med spenninger på +5 og -6 V. I tillegg kreves det to referansespenninger. De definerer spenningsområdet som skal digitaliseres. I dette tilfellet tas en av disse spenningene (Uobp1) til null (pinne 16 på mikrokretsen er koblet til en felles ledning), og den andre (Uobp2) er lik -2 V, som, i samsvar med, bestemmer utvalget inngangsspenninger ADC 0 ...- 2 V. En eksemplarisk spenning på -2 V fjernes fra glideren til trimmermotstanden R6, som er inkludert i forsyningsspenningskretsen med negativ polaritet. Kondensatorer C1 - C5 brukes for å eliminere interferens.

Ved montering av enheten brukes MLT-, OMLT-motstander, oksid- og keramiske kondensatorer av enhver type. Trimmermotstand R1 - også av hvilken som helst type, R6 - fortrinnsvis trådviklet multiturn, for eksempel SP5-1V, SP5-14, SP5-15, SP5-2, etc. OU DA1 - nesten hvilken som helst, i stand til å operere med redusert forsyning spenninger, for eksempel KR140UD7. For å utvide frekvensområdet kan du bruke operasjonsforsterkeren K574UDZ, som har en enhetsforsterkningsfrekvens på 10 MHz.

Enheten får strøm fra en bipolar stabilisert kilde som gir utgangsspenninger på +5 V ved en strøm på 35 ... 40 mA og -6 V ved en strøm på 200 mA

Før du slår på ADC for første gang, settes motoren til motstanden R6 til midtstilling. Slå på strømmen, mål den eksemplariske spenningen ved pinne 9 på DA2-mikrokretsen og sett den så nøyaktig som mulig lik -2 V. Den nødvendige nullforskyvningen er oppnådd trimmemotstand R1. Du kan kontrollere nullposisjonen i helgen digital kode eller konstant spenning på de analoge inngangene til ADC (pinner 10, 13, 15 DA2). På dette tidspunktet kan innstillingen anses som fullført.

ADC-en kobles til PC-en gjennom grensesnittet (fig. 2) installert i en ledig ISA-kontakt på hovedkortet.

Grensesnittkortet inneholder fire I/O-porter med ZE0N-ZEZN-adresser. Elementene DD1.1-DD1.3 og DD2 danner en adressedekoder. Signaler fra PC-adressebussen mottas ved inngangene deres, og hvis en ZE0H-ZEZN-kombinasjon vises på den, dannes det en lav-nivå permissiv spenning ved DD2-utgangen. Signalene som bestemmer portnummeret i adresserommet til porter tilsvarer de to minst signifikante bitene til adressebussen og mates til DD4-dekoderen. Den mottar også permissive signaler via AEN-bussen (dette betyr at det ikke er direkte tilgang til minne i denne syklusen) og signaliserer IOW, IOR, som tilsvarer skriving til og lesing fra en ekstern enhet. Signalet fra pin 15 på dekoderen mates til inngang E på DD7-bussdriveren og tillater dataoverføring fra ADC til databussen.

Signalet som vises ved pinne 14 på DD4-dekoderen tjener til å klokke ADC DA2, ved pinne 13 - for å tilbakestille DD6.1-flip-flop-en, og ved pinne 12 - for å muliggjøre tilførsel av informasjon fra den til databussen. Triggeren er designet for å synkronisere ADC med en ekstern enhet som kan generere synkroniseringspulser eller et klarsignal. Synkroniser signal fra ekstern enhet går gjennom pin 1 på XS2-kontakten til klokkeinngangen til utløseren. Tilstanden til sistnevnte leses av programmet. Hvis funnet høy level på pin 5 på DD6.1 betyr det at en synkroniseringspuls er mottatt fra en ekstern enhet. Når flip-flop-tilstanden er lest, må den tilbakestilles for å forberede neste klokkepuls.

Noen få ord om hensikten med havner. Porten med adressen ЗЕ0Н er beregnet for å lese data fra ADC (biter D0-D5 inneholder verdien av det digitaliserte signalet), med adressen ЗЕ1Н - for å levere en klokkepuls til ADC (når en hvilken som helst byte skrives til denne porten , startes konverteringen av det analoge signalet til digitalt). ZE2H-porten brukes til å tilbakestille DD6.1-synkroniseringsutløseren etter å ha lest dens tilstand. En tilbakestilling skjer når en byte skrives til denne porten. Til slutt er ZESN-porten for å lese flip-flop-statusen, som reflekteres av bit 5 av byten som leses fra denne porten. Utløseren er nødvendig for å fange synkroniseringspulser med kort varighet. Hvis, ved lesing fra ZEZN-porten, et høyt logisk nivå oppdages ved den direkte utgangen av flip-flop (bit D5 = 1), returnerer programmet det til den opprinnelige tilstanden ved å skrive hvilken som helst byte til ZE2H-porten.

Programmet for å lese data fra ADC, skrevet i Pascal, er vist i tabell. 2.

Det er praktisk å bruke som grunnlag for designet defekt bord utvidelser for ISA-sporet. Alle "høye" elementer (kondensatorer, kontakter) fjernes fra den, og de trykte lederne som går til kontaktputene til delen som er satt inn i sporet, kuttes (XP1-plugg i fig. 2). Delene er montert på et lite kretskort, som er festet med stativer til utvidelseskortet. Terminalene på enheten er koblet til kontaktene til XP1-pluggen med korte deler av monteringsledningen. Pin-tilordningene til ISA-sporet finner du i.

Avslutningsvis merker vi oss at i de fleste tilfeller er seks bits tilstrekkelig til å representere et analogt signal. Hvis en ADC med et inngangsspenningsintervall på 0 ... 2 V brukes til å måle en spenning på 2 V, vil feilen ikke overstige 0,03 V (eller 1,5%). Ved måling av en spenning på 0,2 V vil feilen øke til 15 %. For å forbedre målenøyaktigheten kan du bruke en ADC med større kapasitet eller forsterke den målte spenningen til en verdi nær den øvre grensen for intervallet (for eksempel endre forholdet mellom motstandene til motstandene R5 og R4). Med karakterene som er angitt i diagrammet (se fig. 1), digitaliserer enheten inngangsspenninger i området 0 ... 0,5 V og er i stand til å arbeide med en forbrukermikrofon.

Hvis, av hensyn til nøyaktigheten av "digitalisering" svake signaler en høyere bitkapasitet kreves, KR1107PV1A-mikrokretsen kan erstattes med en åtte-bits K1107PV2-omformer (selvfølgelig tatt i betraktning forskjellene i "pinout" og strømforbruk).

Litteratur

  1. Biryukov S. Termometer "Hus - Gate". - Radio, 2000, nr. 3, s. 32, 33.
  2. Novachenko I. V., Petukhov V. M., Bludov I. P., Yurovsky A. V. Mikrokretser for husholdningsradioutstyr. Katalog. - M .: KUBK, 1995.
  3. Danilin N.S., Ulitenko V.P., Kripak A.A. IBM datamaskiner PC. - M .: Forlag av standarder, 1992.

Se andre artikler seksjon.