Vad är en UART? Universal Asynchronous Receiver Transmitter parallella seriella parallell åttabitars signal mest signifikant bit

Relevanta dokument
Vad är kommunikation? Vad är datorkommunikation? Dataöverföring; Inledning

LiTH Lab1: Asynkron seriell dataöverföring via optisk länk Laboration 1. Asynkron seriell dataöverföring via optisk länk

LABORATION DATORKONSTRUKTION TSEA83 UART. Namn och personnummer. Version: (OS)

Dataöverföring på Parallell- och serieform MOP 11/12 1

Ett minneselements egenskaper. F10: Minneselement. Latch. SR-latch. Innehåll:

Digital elektronik CL0090

Projektlaboration 4, synkronisering av klockan

Högskolan i Halmstad Digital- och Mikrodatorteknik 7.5p. Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien

A/D- och D/A- omvandlare

Laboration i digitalteknik Introduktion till digitalteknik

Blinkande LED med 555:an, två typkopplingar.

TILLÄMPNINGAR INOM DATORTEKNIK

Laborationshandledning

Laboration 1: Styrning av lysdioder med en spänning

D/A- och A/D-omvandlarmodul MOD687-31

Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien

PARITETSKONTROLL. Om generatorn i vidstående exempel avkänner ett jämt antal ettor ger den en nolla ut. Detta innebär att överföringen

Du har följande material: 1 Kopplingsdäck 2 LM339 4 komparatorer i vardera kapsel. ( ELFA art.nr datablad finns )

Batteri. Lampa. Strömbrytare. Tungelement. Motstånd. Potentiometer. Fotomotstånd. Kondensator. Lysdiod. Transistor. Motor. Mikrofon.

Laborationskort - ML4

Eftersom det endast är en fristående strömslinga man påverkar då man trycker på knappen säger man att omkopplaren i bild 1 är en enpolig omkopplare.

Ett urval D/A- och A/D-omvandlare

Elektro och Informationsteknik LTH. Laboration 6 A/D- och D/A-omvandling. Elektronik för D ETIA01

Sekvensnät i VHDL del 2

Kommunikationssystem grundkurs, 2G1501 Övningar modul 1 Dataöverföring & fysisk infrastruktur 1 Dataöverföring

Tentamen i Grundläggande ellära och digitalteknik ETA 013 för D

Datakommunikation med IR-ljus.

Elektronik. Dataomvandlare

Digitala kretsars dynamiska egenskaper

TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1

AD-/DA-omvandlare. Digitala signaler, Sampling och Sample-Hold

Analog till Digitalomvandling

Grundläggande A/D- och D/A-omvandling. 1 Inledning. 2 Digital/analog(D/A)-omvandling

Övningar modul 1 - Dataöverföring & fysisk infrastruktur

Qucs: Laboration kondensator

DIGITALTEKNIK I. Laboration DE2. Sekvensnät och sekvenskretsar

AD-DA-omvandlare. Mätteknik. Ville Jalkanen. 1

Elektronik grundkurs Laboration 6: Logikkretsar

Tentamen. TSEA22 Digitalteknik 5 juni, 2015, kl

Tentamen i IE1204/5 Digital Design måndagen den 15/

TSIU05 Digitalteknik. LAB1 Kombinatorik LAB2 Sekvensnät LAB3 System

Laborationshandledning för mätteknik

Grundläggande ellära. Materiellåda art nr. 1. I den första uppgiften skall du använda ett batteri, 2 sladdar med banankontakter och en lös glödlampa.

Struktur: Elektroteknik A. Digitalteknik 3p, vt 01. F1: Introduktion. Motivation och målsättning för kurserna i digital elektronik

Konstruktion av en radiostyrd legobil. Digitala projekt av Arbon Vata Leonardo Vukmanovic Amid Bhatia

WL-2. WL-2 V1.0 monterad

Blandade problem från elektro- och datateknik

Anders Arvidsson ROBOTBESKRIVNING. Roboten på bilden är extrautrustad

Laborationshandledning

Experiment med schmittrigger

DIGITAL ELEKTRONIK. Laboration DE3 VHDL 1. Namn... Personnummer... Epost-adress... Datum för inlämning...

Elektronik. Viktor Öwall, Digital ASIC Group, Dept. of Electroscience, Lund University, Sweden-

Analog till Digitalomvandling

DIGITAL KOMMUNIKATION

DIGITALTEKNIK I. Laboration DE1. Kombinatoriska nät och kretsar

LABORATIONER I DIGITALTEKNIK. Laboration 3 Speciella sekvenskretsar

BAS STRÖMFÖRSÖRJNING Slingövervakningsmodul-EXT/Kretskort

Cecilia Ingard. Boksidan

Digitalteknik: CoolRunner-II CPLD Starter Kit Med kommentarer för kursen ht 2012

Laboration II Elektronik

Signalbehandling, förstärkare och filter F9, MF1016

Elektro och Informationsteknik LTH. Laboration 5 Operationsförstärkaren. Elektronik för D ETIA01

TSEA22 Digitalteknik 2019!

Lösningsförslag till Problem i kapitel 6 i Mobil Radiokommunikation

TSEA22 Digitalteknik 2019!

Konfigurera anpassade Wiegand-format

Lunds Universitet LTH Ingenjörshögskolan IDa1, IEa1 Helsingborg. Laboration nr 4 i digitala system ht-15. Ett sekvensnät. grupp. namn.

Laboration i digitalteknik

Laboration D181. ELEKTRONIK Digitalteknik. Kombinatoriska kretsar, HCMOS v 2.1

Tentamen i Digitalteknik, EITF65

Innehåll. 1 Inledning 3

Modifieringsförslag till Moody Tremolo

Föreläsning 3. Datakodning (Data encoding) Mål (fortsättning) Länk Mottagare. Sändare

Digitalteknik: CoolRunner-II CPLD Starter Kit

IQHeat ModBus. Innehåll

Programmera i teknik - kreativa projekt med Arduino

Laboration Sekvenskretsar

Övning 7. Timer, serieport

IS1500 Lösningar övning CE_O CE_O7. Programmerad in/utmatning. Serieport. Förberedelser till nios2io.

Tentamen i Digitalteknik, TSEA22

Tentamen i Grundläggande ellära och digitalteknik ETA 013 för D

Digital elektronik CL0090

Telis 4 RTS fjärrkontroll

5:2 Digitalteknik Boolesk algebra. Inledning OCH-funktionen

Digitala projekt - Radiostyrd bil

Tentamen i Digitalteknik TSEA22

Laboration i digitalteknik Speciella sekvenskretsar

Tentamen i Elektronik - ETIA01

IE1204/IE1205 Digital Design

Denna genomgång behandlar följande:

Spänning, ström och energi!

Uppgift 12: Konstruera en elektronisk tärning. Resultatet av ett tärningskast ska visas på en 7- segmentindikator.

DIGITALA TAL OCH BOOLESK ALGEBRA

Figur 1 Konstant ström genom givaren R t.

Digitala projekt rapport

MANUAL. DIMMAX Proline. E-nr: (Tidigare )

Tentamen i Digital Design

F2 Binära tal EDA070 Datorer och datoranvändning

Elektronik Dataomvandlare

Digitalteknik F12. Några speciella automater: register räknare Synkronisering av insignaler. Digitalteknik F12 bild 1

Transkript:

Vad är en UART? Beteckningen UART är en förkortning för det engelska uttrycket Universal Asynchronous Receiver Transmitter, vilket översatt till svenska blir ungefär Universell Asynkron Mottagare/Sändare. Fortfarande konfunderad? OK, då ska jag försöka bringa lite klarhet i vad det hela handlar om! Låt oss börja från början med att titta lite allmänt på digitala signaler. I en binär digital signal föreligger informationen i två diskreta nivåer, t ex som hög eller låg signalnivå (ofta kallad "etta" eller "nolla"). Vanliga signalnivåer för standard logikkretsar i TTLfamiljen är +5V eller 0V. Ska man vara riktigt petnoga utgörs "ettan" av spänningar mellan +2.4V och +5V och nollan av spänningar mellan 0 och +0,4V, detta för att medge visst utrymme för variationer. Dessa variationer kan uppstå genom skillnader mellan processer vid kretstillverkningen, varierande temperatur och matningsspänning etc. Man skiljer mellan parallella och seriella binära digitala signaler. Hos en parallell signal finns alla bitar samtidigt tillgängliga och det går alltså åt lika många ledningar som det finns bitar i det binära datat. Figuren visar en uppsättning strömbrytare inställda så att datat 01100111 alstras. Utsignalen som består av UT0, UT1, UT2, UT3, UT4, UT5, UT6 och UT7 är en parallell åttabitars signal, alla åtta bitarna i datat finns ju tillgängliga samtidigt. De åtta motstånden kallas "pull-up-motstånd" och ser till att respektive utsignal hamnar på +5V när motsvarande strömbrytare är öppen. Om en strömbrytare är sluten hamnar respektive utsignal på 0V. Om vi antar att strömbrytarna representerar ett 8-bitars binärt tal kallas UT7 för mest signifikant bit och UT0 minst signifikant bit. Ofta används de engelska förkortningarna MSB (most significant bit) för mest signifikant bit och LSB (least significant bit ) för minst signifikant bit. 1

Fotot visar hur det kan se ut i verkligheten. De åtta strömbrytarna sitter samlade längst nere till höger i en enda komponent, en s k DIP-switch. De åtta pull-upmotstånden är också samlade i en enda komponent, som syns alldeles ovanför DIPswitchen. En pil markerad ON, till vänster på DIP-switchen, anger i vilken position strömbrytarna är slutna. För att ställa in en "nolla" i en viss position ska alltså respektive strömbrytare skjutas uppåt, mot motståndet. Fotot visar samma inställning som ritats i schemat på föregående sida, alltså det binära talet 01100111. Det parallella datat finns tillgängligt på det grå kontaktdonet längst upp i bilden. En seriell binär digital signal använder däremot endast en enda ledning för datat, oberoende av hur många bitar det består av. Bitarna matas ut på ledningen en i taget, sekventiellt i tiden. I princip kan det göras med hjälp av en roterande omkopplare, se nedanstående kopplingsschema. Till att börja med står omkopplaren i läget A. Det finns inget batteri i det läget så signalen UT är 0V, d v s en "nolla". 2

Omkopplaren vrids sedan till läget B. Här kopplas ett batteri in, så utsignalen UT blir +5V, d v s en "etta". På detta sätt fortsätts vridningen av omkopplaren tills alla åtta bitarna matats ut. I verkligheten används förstås någon form av elektronisk omkopplare. Ibland används istället ett skiftregister som laddas parallellt och skiftas ut seriellt för att åstadkomma precis samma resultat. Med den visade kopplingen blir det seriella datat på utgången UT 01100111 om vi anser att den mest signifikanta biten matas ut först. Oscilloskopfotot nedan visar utsignalen UT från ett skiftregister som laddats med 01100111 och som skiftas ut med 1 bit per mikrosekund, mest signifikant bit först. Det tar alltså 8 mikrosekunder att mata ut datat. När allt är klart skickas nollor ut, varför UT=0 under de två sista mikrosekunderna. 3

När används parallella signaler och när används seriella? Det går nog inte att besvara den frågan generellt, men jag ska göra ett försök. Ur kretssynpunkt är det enklare med parallella signaler och signaleringen går också snabbare, alla bitarna finns ju tillgängliga samtidigt. Därför hittar du parallella signaler på t ex kretskort i din dator, där snabbheten behövs och där signalledningarna är korta. Seriella signaler används å andra sidan när det är opraktiskt med många ledningar, t ex vid kommunikation via lokala nätverk. Vi har nu sett hur parallella och seriella signaler kan genereras, men hur ser det ut på mottagarsidan? För den parallella signalen är det inga problem, alla bitarna finns tillgängliga separat på var sin ledning och kan användas direkt. Vill du t ex använda den åttapoliga DIP-switchen vi tittade på för att tända eller släcka åtta lysdioder, behöver du bara koppla ledningen från var och en av omkopplarna till en av de åtta lysdioderna och ordna med strömförsörjning och strömbegränsning. Inga problem! För den seriella signalen blir det betydligt knepigare. Vill du styra åtta lysdioder med de åtta bitarna som skiftades ut ur skiftregistret i oscilloskopfotot ovan, går det åt en del elektronik. Det behövs ett åttabitars skiftregister för att ta emot datat, men det behövs också en signal som talar om när skiftningen ska ske, alltså en klocksignal. I vissa fall har man tillgång till klocksignalen. Det skulle gå alldeles utmärkt bra att använda samma klocksignal som utnyttjades när den seriella signalen genererades. I så fall talar man om en synkron seriell signal. Nackdelen är förstås att det då behövs två ledningar för signaleringen. Ofta är man begränsad till en enda ledning eller "datakanal", exempelvis då data ska skickas via optisk fiber eller via radio. Här finns ingen plats för någon klocka och signaleringen kallas därför asynkron. Man är då tvungen att generera det mottagande skiftregistrets klocka lokalt på mottagarsidan. Hur i allsin dar kan man göra det? Jo, med lite knep går det faktiskt att göra! För det första måste datahastigheten, d v s antalet bitar per sekund, vara känd och för det andra måste mottagarsidan få veta när ett data börjar och slutar. Detta åstadkoms genom att en startbit, normalt en "etta", läggs till före datat och en stoppbit, normalt en "nolla", läggs till efter datat. På mottagarsidan har man en lokalt genererad klocka med ungefär samma frekvens som sändarens. Den kan inte användas direkt eftersom dess fasläge är okänt (den kanske går hög när sändarklockan går låg och vice versa). För att bli användbar måste klockan synkroniseras, d v s dess fasläge "ruckas" så att den går i takt med sändarklockan. Detta görs med hjälp av startbiten, en krets känner av när startbiten dyker upp och justerar därvid klockan. Tillbaka till den ursprungliga frågan, vad är en UART? En UART är helt enkelt en krets som sköter om alla aspekter av asynkron seriell dataöverföring. När den används som sändare ser den till att ett parallellt data som matas in i den förses med start- och stoppbit och skiftas ut seriellt med viss bestämd datahastighet. När den används som mottagare ser den till att mottagarklockan synkroniseras och att det seriella datat skiftas in och blir tillgängligt i parallell form. Normalt kan en UART ytterligare några trick! Man brukar kunna välja längden på datat och det brukar också finnas möjlighet till enkel felkontroll. Om den seriella datakanalen utsätts för störningar kan det nämligen hända att en eller flera bitar tolkas fel av mottagaren. Med hjälp av en paritetsbit har man viss chans att avgöra om ett mottaget data är korrekt eller ej. Principen är enkel, UART:en räknar antalet ettor i datat som sänds och om resultatet är ett udda tal blir paritetsbiten en "etta", annars en nolla. Paritetsbiten läggs till som sista bit i datat. Antag att vi ska skicka den seriella datasekvensen 01100111. Antalet ettor är fem, så paritetsbiten blir en "etta". UART:en skickar datat som 011001111, där den sista ettan är paritetsbiten. På mottagarsidan räknar UART:en åter antalet ettor, 4

kollar udda eller jämnt och jämför med den mottagna paritetsbiten. Om den mottagna paritetsbiten var en "etta" och antalet ettor i datat udda (eller "nolla" respektive jämnt) är det mottagna datat troligen korrekt. Om UART:en upptäcker ett fel sätts en felsemafor, så att datat kan ignoreras. Jag skrev "troligen korrekt" med avsikt. Om två bitar blev fel i överföringen, t ex om två ettor felaktigt tolkades som "nollor", kan paritetskontrollen inte upptäcka felet. Var antalet ettor udda förut är det ju fortfarande udda. Det finns alltid två sidor av allting, även en så enkel sak som paritet. I stället för att låta paritetsbiten bli en "etta" vid udda antal ettor i datat låter hälften av världens befolkning istället paritetsbiten bli en "etta" vid jämnt antal ettor i datat! Man talar om udda eller jämn paritet. Det finns alltså skäl att se upp. Se alltid till att du vet hur paritetsbiten beräknats. Man kan köpa färdiga UART-kretsar från många halvledarfabrikanter (National, Motorola etc.) och många enchipsdatorer har inbyggda UART:ar. Du får nu chansen att bygga din egen UART med en CPLD och använda den för kommunikation, se laborationen UART med CPLD. 21 oktober 2001 Anders Andersson 5