elomax

[ Techniek ] [ Shop ] [ Site map
Inleiding ] Processor ] Ontwikkelomgeving ] Interrupts ] Digitale I/O ] Seriele communicatie ] Timers ] [ A/D Conversie ] Puls teller ] SPI ] Watchdog ] Clock monitor ] EEPROM ] Configuratie ] Ontwerp technieken ] Toepassings voorbeeld ]

Terug
Omhoog
Methoden
Toepassing
Voorbeeld

Analoog naar Digitaal conversie

Bij besturing van apparatuur heeft één of meer van de te besturen grootheden vaak een analoge waarde. Een analoog signaal kan niet rechtstreeks door de micro-controller verwerkt worden. Om de analoge waarde om te zetten naar een digitale waarde is een analoog naar digitaal conversie nodig. Een schakeling die een dergelijke conversie voor zijn rekening neemt heet een Analoog naar Digitaal converter, ofwel A/D converter.

Analoog en discreet

Een analoog signaal kan in principe elke willekeurige waarde tussen een bepaald minimum en een bepaald maximum aannemen. Een discrete waarde kent tussen minimum en maximum slechts een beperkt aantal tussenwaarden. Alle waarden die in (gehele) getallen worden uitgedrukt, zijn discreet. Zo is een meetwaarde die na conversie als getal in de micro-controller voorkomt, een discrete waarde.

De meetwaarde wordt in het geheugen of de registers van de micro-controller weergegeven als een getal. Tussen het minimum van dat getal (vaak 0) en het maximum van dat getal (bepaald door het aantal bits waarin het getal wordt weergegeven) kan slechts een beperkt aantal tussenwaarden worden gemaakt.

Resolutie

Het zal duidelijk zijn dat bij conversie van analoog naar discreet, informatieverlies optreedt. Allerlei tussenwaarden die het analoge signaal wel kan aannemen, kunnen op discrete wijze niet worden weergegeven. Bij conversie van analoog naar discreet treedt dus noodgedwongen een fout op. De grootte van deze fout wordt bepaald door het aantal verschillende waarden dat het discrete getal kan aannemen. Vaak wordt dit aantal stapjes waarin het ingangssignaal wordt opgedeeld, weergegeven als het aantal bits dat voor het getal gebruikt wordt. Zo wordt het ingangssignaal bij een 8-bits converter opgedeeld in 256 stapjes. De conversie heeft dan een resolutie van 8 bits.

Een andere manier om het aantal stapjes en dus de resolutie aan te geven, komt men tegen bij de specificatie van een digitale voltmeter. Hier wordt opgegeven wat het grootste getal is dat op het display kan staan. Men spreekt dan bijvoorbeeld van een 3½ digit voltmeter. Het getal op het display kan dan van 0 tot 2000 lopen. De weergave is dan bijvoorbeeld van 0.000 tot en met 1.999 Volt op het 2 Volt bereik. De resolutie is dan 2000 stapjes, in dit geval ook wel 'counts' genoemd.

Nauwkeurigheid

Ofschoon een hoge resolutie de illusie van een hoge nauwkeurigheid geeft, zijn deze twee gegevens in principe onafhankelijk.

Een converter met een lage resolutie is bijvoorbeeld een comparator. Een comparator heeft een '1' als uitgangssignaal wanneer de ingangsspanning een bepaalde drempelwaarde overschrijdt, en anders is de uitgang een '0'. Men kan een comparator dus opvatten als een A/D converter met een resolutie van één bit. Er kan, met gelijkblijvende resolutie, een nauwkeurige comparator gemaakt worden, of een onnauwkeurige.

Bij een nauwkeurige comparator klapt de uitgang bijvoorbeeld om bij een ingangsspanning van 1 Volt ±0.1%. Het omklapniveau ligt dan tussen 0.999 Volt en 1.001 Volt. De specificatie van een onnauwkeurige comparator zou kunnen zijn: 1 Volt ±10%. Het omklapniveau ligt in dat geval ergens tussen 0.9 Volt en 1.1 Volt.

De nauwkeurigheid waarmee het omklapniveau van een comparator vastligt heeft geen directe relatie met de door de comparator geleverde resolutie (deze blijft één bit.)

Wanneer een digitale voltmeter met een hoge resolutie (bijvoorbeeld 6½ digit) niet regelmatig wordt gecontroleerd en gecalibreerd, of onoordeelkundig gerepareerd werd, kan de relatie tussen aanwijzing en aangeboden spanning zeer onnauwkeurig zijn, ondanks de hoge resolutie van de aanwijzing.

Digitaal en discreet

Een digitaal signaal is een signaal dat slechts twee niveaus kan aannemen: een '0' of een '1'. Een discrete waarde is een waarde die wordt weergegeven als een geheel getal. Er is een subtiel onderscheid tussen de begrippen digitaal en discreet. Zo heeft de in LES 5 genoemde SMARTEC temperatuursensor een digitaal uitgangssignaal. De informatie over de door de sensor gemeten temperatuur wordt in dit digitale signaal weergegeven middels de duty-cycle van het signaal. Deze duty-cycle kan in principe alle waarden tussen 0% en 100% aannemen. Het door de sensor geleverde signaal is dus weliswaar digitaal, maar niet discreet. De discrete waarde onstaat pas wanneer de micro-controller dit duty-cycle gemoduleerde signaal heeft gemeten, en de gemeten waarde als getal ergens in het geheugen heeft opgeslagen.

Elke A/D converter levert een digitaal signaal, maar niet alle typen A/D converters leveren direct een discrete waarde. In het laatste geval moet door de micro-controller het door de A/D converter afgegeven signaal nog bewerkt worden voordat de discrete meetwaarde in het programma in de micro-controller toegepast kan worden. Verschillende typen A/D converters zullen in deze les behandeld worden.

Kwantiseringsfout

De fout die ontstaat doordat de meetwaarde discreet wordt weergegeven heet kwantiseringsfout. Deze en andere fouten die tijdens het converteren kunnen optreden worden vaak opgegeven in eenheden van het kleinste stapje dat weergegeven kan worden. Dit kleinste stapje komt bij een binair getal overeen met een verandering van het Least Significant Bit van de discrete meetwaarde. De grootte van de kwantiseringsfout is altijd 1 LSB.

Hierboven is een converter met een resolutie van 2 bits (3 stapjes) gegeven. De converter heeft een ingangsbereik van Vl...Vh. Dit ingangsbereik wordt door de converter in stapjes verdeeld, en aan elk stapje wordt een unieke uitgangscode gekoppeld. De kwantiseringsfout is 1 LSB, dus bij een 2-bits converter en een ingangsbereik van Vl....Vh is de kwantiseringsfout ¼(Vh-Vl).

Wanneer in de bovenste grafiek de uitgangscode bijvoorbeeld 01 is, geeft dit aan dat de ingangsspanning tussen ¼(Vh-Vl) en ½(Vh-Vl) moet liggen. De afwijking tussen analoog ingangssignaal en weergegeven getal ligt tussen  -0 en +1 LSB. De converter rondt af naar beneden.

Vaak is het beter wanneer de afwijking tussen -½ en +½ LSB ligt. Hiertoe moet de conversie volgens de onderste grafiek gedaan worden. De niveaus waarbij de uitgangscode verandert zijn ½ LSB verschoven. De meeste converters (ook die in de 68HC11) werken volgens deze onderste grafiek.

Merk op, dat er geen uitgangscode beschikbaar is voor de 'volle schaal' waarde Vh. Het maximale ingangssignaal waarvoor nog een 'geldige' code gegenereerd kan worden ligt ½ LSB onder de volle schaal waarde.

In onderstaande figuur is nog eens de karakteristiek van een 4-bits converter gegeven.

Offset fouten

Naast de altijd aanwezige kwantiseringsfout kennen converters ook fouten met een andere oorzaak. Deze onstaan door onnauwkeurigheden in het ingangscircuit, drift en offset fouten in ingangsversterkers, etc.

Een offsetfout geeft een verschuiving van het nulpunt van de converter. In de onderste grafiek van figuur 1 zou een offsetfout ertoe leiden dat de codewisseling van 00 naar 01 niet optreedt bij exact 1/8(Vh-Vl) (bij een 2-bits converter), maar bij een andere ingangsspanning. Het verschil tussen twee codewisselingen blijft wel steeds exact ¼(Vh-Vl) bij een 2-bits converter. Het verband tussen ingangsspanning en uitgangscode is weergegeven in de bovenste grafiek van het volgende figuur. Een offsetfout leidt ertoe dat de overdrachtsfunctie niet exact door het nulpunt van de grafiek gaat.

Span fouten

Het ingangsbereik van een converter (het verschil tussen maximale en minimale ingangsspanning) heet ook wel de 'span' van de converter.

Een spanfout in een converter geeft een fout in de volle-schaal waarde van de converter. Wanneer er sprake is van een spanfout is het verschil tussen twee codewisselingen groter of kleiner dan exact ¼(Vh-Vl) bij een 2-bits converter. De onderste grafiek in de volgende figuur geeft de overdrachtsfunctie van een 4-bits converter met een spanfout.

Lineariteitsfouten

Naast de genoemde offset- en spanfouten kan een converter ook fouten in de lineariteit van de overdracht vertonen. In dat geval is niet voor elke codewisseling evenveel verschil in ingangssignaal nodig. De onderstaande figuur geeft dit aan in een grafiek voor de overdracht van een converter met een lineariteitsfout.

Offset- en spanfouten zijn door een calibratie over het algemeen goed op te heffen. Lineariteitsfouten zijn nauwelijks te corrigeren.

In de specificaties van een A/D converter wordt vaak de totale fout ten gevolge van niet-lineariteit etc. opgegeven in LSB's. Bij een goede A/D converter is deze fout kleiner dan ±½ LSB. Samen met de kwantiseringsfout (waaraan in een specificatie meestal geen aandacht wordt geschonken) zal de maximale conversiefout dan ±1 LSB zijn.

 

Conversiesnelheid

Een belangrijk kenmerk van een A/D converter is de conversiesnelheid. Een conversie kost tijd. Daarom wordt van het ingangssignaal een monster (sample) genomen, en geconverteerd. Daarna kan een nieuw sample genomen worden en geconverteerd. De geconverteerde waarden geven daarom geen informatie over het gedrag van het ingangssignaal tussen de samples in. Men zou kunnen zeggen dat het signaal ook in de tijd gezien discreet gemaakt wordt.

Doordat alleen op bepaalde tijdstippen informatie over het ingangssignaal beschikbaar komt, kan uit de geconverteerde waarden de exacte vorm van het ingangssignaal niet juist gereconstrueerd worden. In onderstaand figuur zijn twee verschillende signalen weergegeven, die op de bemonsterings tijdstippen toch dezelfde meetwaarden opleveren.

Voor een op het oog juiste reconstructie van het ingangssignaal (bijvoorbeeld wanneer het gemeten signaal in een grafiek moet worden weergegeven) is minstens een tiental meetwaarden nodig in iedere periode van het ingangssignaal. De theoretische limiet voor een correcte reconstructie van het ingangssignaal ligt bij een bemonsteringssnelheid die tweemaal zo hoog is als de hoogste frequentie die in het te meten signaal voorkomt.

 

© 2005...2008 Elomax [Voorwaarden ]