UART är en vanlig seriell kommunikationsmetod som används i många inbyggda system. Den skickar data bit för bit utan delad klocklinje, med matchade inställningar för att bibehålla synkroniseringen. Pålitliga UART-länkar beror på korrekt ledningsdragning, baudhastighet, ramformat, spänningsnivåer och signaltid. Den här artikeln ger information om UART:s funktion, installation, användning och vanliga problem.

Universell asynkron mottagar-sändare (UART) grunder
UART står för Universal Asynchronous Receiver-Transmitter (universell asynkron mottagare). Det är ett seriell kommunikationsgränssnitt som överför data bit för bit mellan anslutna enheter. Ett UART-block är inbyggt i många mikrokontrollers, processorer, kommunikationschip och inbyggda moduler. Den omvandlar parallell data till en seriell ström under överföringen och omvandlar inkommande seriell data tillbaka till bytes under mottagningen. UART använder inte en delad klocklinje. Istället förblir båda enheterna synkroniserade genom att använda matchande kommunikationsinställningar och genom att upptäcka början och slutet på varje dataframe.
Anledningar till att UART förblir vanligt
• Den använder endast några få signallinjer
• Det är enkelt att ställa in för direkt kommunikation
• Den ingår i många inbyggda enheter
• Den stödjer läsbar utdata via seriella terminaler
Hur fungerar UART-ramar och timing?
Delar av en UART-ram

| Ramelement | Funktion |
|---|---|
| Startbit | Markerar början på en ram |
| Databitar | Bära värdet som skickas |
| Paritetsbit | Lägger till en grundläggande felkontroll när den används |
| Sluta | Markerar slutet på ramen |
| Inaktivt tillstånd | Håller linjen hög när ingen data skickas |
Huvudsakliga UART-miljöer
| Miljö | Vad den kontrollerar |
|---|---|
| Baud-hastighet | Kommunikationshastigheten |
| Databitar | Antalet värdebitar i varje bildruta |
| Paritet | Om en paritetskontroll läggs till |
| Stoppbitar | Ramslutformatet |
| Flödeskontroll | Datans tempo mellan anslutna enheter |
Baudhastigheten bestämmer hur snabbt bitar skickas. Högre baudhastigheter ökar överföringshastigheten men kräver mer exakt timing och en renare signalväg. UART-kommunikation beror också på att bildinställningarna matchas på båda sidor.
Vanliga Baud-hastigheter
| Baudhastighet | Typisk användning |
|---|---|
| 9600 | Grundläggande terminaler, enkla moduler och äldre system |
| 19200–38400 | Medelsnabb kommunikation |
| 57600 | Snabbare styr- och diagnostiklänkar |
| 115200 | Konsolutdata och felsökning |
Ramlängd och dataeffektivitet
Bildrutans längd påverkar hur mycket användbar data som bärs i varje överföring. Två UART-länkar kan använda samma baudhastighet men ändå leverera olika effektiv datagenomströmning om deras ramformat skiljer sig åt. Till exempel använder 8N1 och 7E1 olika antal totala bitar per bildruta, så mängden nyttolastdata per bildruta är inte densamma.
UART-ledning, spänningsnivåer och flödeskontroll

En grundläggande UART-anslutning använder tre huvudsignaler: TX, RX och GND. TX-pinnen på en enhet kopplas till RX-pinnen på den andra, och båda enheterna måste dela samma jord för att signalnivåerna ska kunna läsas korrekt.
Många mikrokontrollers och moduler använder TTL- eller CMOS-UART-nivåer, ofta vid 3,3 V eller 5 V. Äldre seriella system kan använda RS-232, som har ett annat spänningsområde och signaleringsmetod, så det är inte direkt kompatibelt med TTL UART. En nivåförskjutande transceiver används vid anslutning av dessa standarder.
Vissa UART-länkar använder också flödeskontroll för att förhindra förlorad data när ena sidan inte kan ta emot inkommande bytes tillräckligt snabbt.
Grundläggande UART-kopplingsregler
• Sändning från en enhet ansluter till RX på den andra enheten
• RX från en enhet ansluter till TX på den andra enheten
• Jord måste vara ansluten på båda sidor
UART:s elektriska standarder
| Typ | Typisk användning | Huvudpoäng |
|---|---|---|
| TTL/CMOS UART | Mikrokontroller, moduler, utvecklingskort | Använder logiknivåsignaler såsom 3,3 V eller 5 V |
| RS-232 | Äldre serieportar, industriella länkar, PC-serieanslutningar | Använder ett annat spänningsområde och signaleringsbeteende |
Vanliga flödeskontrollmetoder
• Hårdvaruflödeskontroll använder RTS- och CTS-linjer
• Mjukvaruflödeskontroll använder XON- och XOFF-tecken
Hårdvaruflödeskontroll använder separata styrlinjer för att hantera dataflöde. Mjukvaruflödeskontroll minskar antalet ledningar, men använder kontrolltecken inom dataströmmen.
Hur fungerar en UART inuti en enhet?
Inuti en enhet innehåller en UART-periferiutrustning flera delar som hanterar sändning och mottagande av data. Dessa delar inkluderar ofta en sändarsektion, en mottagningssektion, skiftregister, statusflaggor och FIFO-buffertar. När data skickas placerar mjukvaran en byte i UART:n, och hårdvaran lägger till startbiten, valfri paritetsbiten och stoppbiten innan hela ramen skickas genom TX-linjen.
När data tas emot övervakar UART RX-linjen för en giltig startbit. Den samplar sedan signalen vid rätt tidpunkt, bygger om bytet, kontrollerar ramformatet och lagrar datan så att mjukvaran kan läsa den senare.
UART-kringutrustning rapporterar också status och fel, medan FIFO-buffertar innehåller flera byte för att minska missad data när mjukvaran inte svarar omedelbart.
Vanliga UART-status och felflaggor
• Sändningsbufferten är tom
• Mottagandebuffert full
• Paritetsfel
• Inramningsfel
• Överkörningsfel
Vanliga UART-användningar i inbyggda system
• Seriell terminalfelsökning
• Kommunikation mellan en mikrokontroller och en modul
• Bootloader- och firmwareuppdateringslänkar
• Enkla kommando- och responsgränssnitt
• Dataregistrering och diagnostik
• Inbäddad konsolåtkomst
UART-installation, testning och felsökning
Att ställa in en UART-länk börjar med att välja kompatibla kommunikationsinställningar och signalnivåer. Testning hjälper till att bekräfta att länken är korrekt kopplad, korrekt konfigurerad och skickar giltiga dataramar.
Länkplanering och enhetskonfiguration
Välj baudhastighet, ramformat, spänningsstandard och flödeskontrollmetod innan du gör anslutningen. Aktivera sedan UART-hårdvaran i mjukvaran och konfigurera eventuella buffertar eller FIFO-inställningar. Klockprecision, kabelkvalitet och förväntad datahastighet påverkar också länkens prestanda.
Validering av kommunikation
Kontrollera länken genom att skicka ett känt datamönster eller läsbar text. En seriell terminal, USB-till-UART-adapter, logikanalysator eller oscilloskop kan hjälpa till att bekräfta att ramarna är giltiga och att linjen förblir i rätt viloläge mellan överföringar.
UART-problemguide
| Symtom | Sannolik orsak |
|---|---|
| Slumpmässiga eller oläsliga tecken | Fel baudhastighet eller bildinställningar |
| Ingen mottagen data | TX/RX omvänd, saknad jord, UART inaktiverad, fel spänningsnivå |
| Intermittenta fel | Buller, långa ledningar, tidsavvikelse |
| Inramnings- eller paritetsfel | Dåliga inställningar eller dålig signalkvalitet |
| Förlorade bytes under burstar | Överbelastning, svag buffring, ingen flödeskontroll |
Felsökningskontroller
• Bekräfta att TX och RX är korrekt korsade
• Se till att båda sidor delar samma mark
• Verifiera baudhastighet och bildformat i båda ändar
• Kontrollera om signalnivåerna är TTL/CMOS eller RS-232
• Minska baudhastigheten om ett tidsfel eller brus misstänks
• Granska UART-felflaggorna i programvaran
• Testa med kända terminalverktyg eller adaptrar
Jämförda UART, SPI och I2C

UART, SPI och I2C är vanliga seriell kommunikationsmetod, men de fungerar på olika sätt. UART använder en direkt länk mellan två enheter och behöver ingen klocklinje. SPI använder en klocka och separata datavägar för snabbare kommunikation. I2C använder också en klocka, men den tillåter flera enheter att dela samma buss via inbyggd adressering.
Gränssnittsjämförelse
| Egenskap | UART | SPI | I2C |
|---|---|---|---|
| Klocklinje | Nej | Ja | Ja |
| Typisk topologi | Punkt-till-punkt | Kontroll-periferie | Delad buss |
| Komplexitet | Låg | Måttlig | Måttlig |
| Inbyggd adressering | Nej | Nej | Ja |
| Gemensam styrka | Enkelhet | Hastighet | Färre kablar för många enheter |
UART passar enkla, direkta länkar och terminalåtkomst. SPI passar för snabbare kommunikation. I2C passar situationer där flera enheter delar en buss med färre signallinjer.
Slutsats
UART används fortfarande eftersom det erbjuder enkel, direkt kommunikation med låg hårdvarukomplexitet. Dess prestanda beror på matchade inställningar, korrekt TX- och RX-ledning, delad jord, kompatibla spänningsnivåer samt korrekt hantering av timing, buffring och felflaggor. Att förstå ramstruktur, baudhastighet, flödeskontroll och vanliga felorsaker hjälper till att förklara varför UART-länkar går sönder och hur stabil kommunikation upprätthålls i inbyggda system.
Vanliga frågor [FAQ]
Kan en UART skicka och ta emot samtidigt?
Ja. UART stödjer fullduplexkommunikation, så att den kan skicka data på TX samtidigt som den tar emot mottagning på RX.
Vad betyder 8N1 i UART?
8N1 betyder 8 databitar, ingen paritet och 1 stoppbit.
Kan en UART ansluta till flera enheter?
Inte direkt. UART är främst för en-till-en-kommunikation och inkluderar inte inbyggd adressering.
Är baudhastigheten densamma som bithastigheten i UART?
I vanlig UART, ja. De behandlas som samma eftersom varje symbol bär på en bit.
Varför använda en USB-till-UART-adapter?
Det gör det möjligt för en dator att kommunicera med ett UART-gränssnitt via USB.
Inkluderar UART kryptering eller avancerad felkorrigering?
Nej. UART inkluderar inte kryptering eller avancerad felkorrigering på egen hand.