Wat is UART?
Asynchrone seriële communicatieschakeling zonder kloklijn, waarbij zender en ontvanger op dezelfde baudrate zijn ingesteld. Tekens worden met een startbit en stopbit begrensd.
Japanse benaming: UART
“UART” komt voor in 9 oefenvragen uit 4 onderwerpen, bijv. Embedded systemen en firmware, CPU en architectuur, Energiebeheer (softwaregestuurd).
Vakgebied: Embedded systemen en firmware
Hoe een UART-frame werkt
Een UART (universal asynchronous receiver-transmitter) verstuurt bytes bit voor bit over een zendlijn en ontvangt op een aparte lijn, waarbij alleen de massa met het andere apparaat wordt gedeeld. Er wordt geen klok meegestuurd. In rust staat de lijn op logisch 1; een teken begint met een startbit 0, gevolgd door meestal acht databits, minst significante bit eerst, een optioneel pariteitsbit en een of meer stopbits op 1. Het meest gebruikte formaat wordt geschreven als 8N1: acht databits, geen pariteit, één stopbit. Beide kanten moeten vooraf op dezelfde baudrate zijn ingesteld, zoals 9600 of 115200 bits per seconde.
Doorvoer en timingtolerantie
De framing kost bandbreedte: een 8N1-teken neemt tien bittijden in voor acht bits data. Bij 115200 bps geeft dat 115200 / 10 = 11.520 bytes per seconde, ongeveer 87 µs per byte, zodat veel logging een programma kan ophouden. De ontvanger synchroniseert op de dalende flank van elk startbit, meestal door de lijn met 16 keer de baudrate te bemonsteren, en bemonstert daarna elk bit rond het midden met zijn eigen klok. Elk verschil in snelheid stapelt zich op, en zodra de drift bij het stopbit een halve bit bereikt, is het teken corrupt; de gecombineerde fout van beide kanten moet dus binnen enkele procenten blijven.
UART vs. SPI en I2C
UART is de eenvoudigste van de gangbare seriële verbindingen op een board: twee signaaldraden, point-to-point, zonder klok en met weinig protocol. SPI (serial peripheral interface) is synchroon, met een gedeelde klok, data in elke richting en een chip-selectlijn per apparaat, wat kloksnelheden van tientallen megahertz mogelijk maakt maar voor elk extra apparaat een draad toevoegt. I2C (inter-integrated circuit) verbindt veel apparaten op twee open-draindraden met behulp van adressen, op enkele honderden kilohertz tot enkele megahertz. Kies UART om eenvoudig twee apparaten te koppelen, SPI voor snelheid en I2C voor veel apparaten op weinig draden.
Veelgestelde vragen
Waar staat UART voor?
UART staat voor universal asynchronous receiver-transmitter. Het is het hardwareblok dat bytes omzet naar en van een seriële bitstroom, begrensd door start- en stopbits, zonder gedeelde klok.
Hoeveel bytes per seconde kan een UART op 115200 baud versturen?
Met 8N1-framing kost elke byte 10 bits, dus 115200 bps draagt ongeveer 11.520 bytes per seconde, zo'n 87 µs per byte. Een pariteitsbit of een tweede stopbit verlaagt dit verder.
Waarom moeten beide kanten van een UART-verbinding dezelfde baudrate hebben?
Er wordt geen klok meegestuurd, dus de ontvanger timet elk bit na het startbit met zijn eigen klok. Verschillen de snelheden meer dan enkele procenten, dan verschuift het bemonsteringspunt vóór het einde van het frame een halve bit of meer en worden bits verkeerd gelezen.