Inhoudsopgave:

BASIS VAN UART-COMMUNICATIE: 16 stappen
BASIS VAN UART-COMMUNICATIE: 16 stappen

Video: BASIS VAN UART-COMMUNICATIE: 16 stappen

Video: BASIS VAN UART-COMMUNICATIE: 16 stappen
Video: How a UART works and how to make one in software - Part 11 Microcontroller Basics (PIC10F200) 2024, November
Anonim
BASIS VAN UART-COMMUNICATIE
BASIS VAN UART-COMMUNICATIE

Weet je nog dat printers, muizen en modems dikke kabels hadden met die enorme onhandige connectoren? Degenen die letterlijk in je computer moesten worden geschroefd? Die apparaten gebruikten waarschijnlijk UART's om met uw computer te communiceren. Hoewel USB die oude kabels en connectoren bijna volledig heeft vervangen, behoren UART's zeker niet tot het verleden. U zult zien dat UART's in veel doe-het-zelf-elektronicaprojecten worden gebruikt om GPS-modules, Bluetooth-modules en RFID-kaartlezermodules aan te sluiten op uw Raspberry Pi, Arduino of andere microcontrollers.

UART staat voor Universal Asynchronous Receiver/Transmitter. Het is geen communicatieprotocol zoals SPI en I2C, maar een fysiek circuit in een microcontroller, of een stand-alone IC. Het belangrijkste doel van een UART is het verzenden en ontvangen van seriële gegevens.

Een van de beste dingen van UART is dat het slechts twee draden gebruikt om gegevens tussen apparaten te verzenden. De principes achter UART zijn gemakkelijk te begrijpen, maar als je deel één van deze serie, Basisprincipes van het SPI-communicatieprotocol, nog niet hebt gelezen, is dat misschien een goed begin.

Stap 1: INLEIDING TOT UART-COMMUNICATIE

Bij UART-communicatie communiceren twee UART's rechtstreeks met elkaar. De verzendende UART converteert parallelle gegevens van een besturingsapparaat zoals een CPU naar seriële vorm, verzendt deze in serie naar de ontvangende UART, die de seriële gegevens vervolgens weer omzet in parallelle gegevens voor het ontvangende apparaat. Er zijn slechts twee draden nodig om gegevens tussen twee UART's te verzenden. Gegevens stromen van de Tx-pin van de zendende UART naar de Rx-pin van de ontvangende UART:

Stap 2: Gegevensstromen van de Tx-pin van de verzendende UART naar de Rx-pin van de ontvangende UART:

Gegevensstromen van de Tx-pin van de verzendende UART naar de Rx-pin van de ontvangende UART
Gegevensstromen van de Tx-pin van de verzendende UART naar de Rx-pin van de ontvangende UART

Stap 3:

UART's verzenden gegevens asynchroon, wat betekent dat er geen kloksignaal is om de uitvoer van bits van de verzendende UART te synchroniseren met de bemonstering van bits door de ontvangende UART. In plaats van een kloksignaal voegt de verzendende UART start- en stopbits toe aan het datapakket dat wordt overgedragen. Deze bits bepalen het begin en einde van het datapakket, zodat de ontvangende UART weet wanneer hij moet beginnen met het lezen van de bits.

Wanneer de ontvangende UART een startbit detecteert, begint deze de inkomende bits te lezen op een specifieke frequentie die bekend staat als de baudrate. Baudrate is een maat voor de snelheid van gegevensoverdracht, uitgedrukt in bits per seconde (bps). Beide UART's moeten op ongeveer dezelfde baudrate werken. De baudrate tussen de zendende en ontvangende UART's kan slechts ongeveer 10% verschillen voordat de timing van bits te ver weg raakt.

Stap 4:

Afbeelding
Afbeelding

Beide UART's moeten ook worden geconfigureerd om dezelfde datapakketstructuur te verzenden en te ontvangen.

Stap 5: HOE UART WERKT?

De UART die gegevens gaat verzenden, ontvangt de gegevens van een gegevensbus. De databus wordt gebruikt om gegevens naar de UART te sturen door een ander apparaat, zoals een CPU, geheugen of microcontroller. Gegevens worden in parallelle vorm overgedragen van de databus naar de verzendende UART. Nadat de verzendende UART de parallelle gegevens van de databus heeft ontvangen, voegt deze een startbit, een pariteitsbit en een stopbit toe, waardoor het datapakket ontstaat. Vervolgens wordt het datapakket serieel uitgevoerd, beetje bij beetje op de Tx-pin. De ontvangende UART leest het datapakket beetje bij beetje op zijn Rx-pin. De ontvangende UART zet de gegevens vervolgens terug in parallelle vorm en verwijdert de startbit, pariteitsbit en stopbits. Ten slotte draagt de ontvangende UART het datapakket parallel over aan de databus aan de ontvangende kant:

Stap 6: Afbeelding hoe UART werkt

Afbeelding Hoe UART werkt
Afbeelding Hoe UART werkt

Stap 7:

UART verzonden gegevens zijn georganiseerd in pakketten. Elk pakket bevat 1 startbit, 5 tot 9 databits (afhankelijk van de UART), een optionele pariteitsbit en 1 of 2 stopbits:

Stap 8: UART-verzonden gegevens worden geordend in pakkettenafbeelding

UART-verzonden gegevens zijn geordend in pakkettenafbeelding
UART-verzonden gegevens zijn geordend in pakkettenafbeelding

Stap 9:

BEGIN BIT

De UART-gegevenstransmissielijn wordt normaal gesproken op een hoog spanningsniveau gehouden wanneer deze geen gegevens verzendt. Om de overdracht van gegevens te starten, trekt de verzendende UART de transmissielijn van hoog naar laag gedurende één klokcyclus. Wanneer de ontvangende UART de overgang van hoog naar laag voltage detecteert, begint het de bits in het dataframe te lezen met de frequentie van de baudrate.

GEGEVENSKADER

Het dataframe bevat de feitelijke gegevens die worden overgedragen. Het kan 5 bits tot 8 bits lang zijn als een pariteitsbit wordt gebruikt. Als er geen pariteitsbit wordt gebruikt, kan het dataframe 9 bits lang zijn. In de meeste gevallen worden de gegevens met het minst significante bit eerst verzonden.

PARITEIT

Pariteit beschrijft de evenheid of onevenheid van een getal. Het pariteitsbit is een manier voor de ontvangende UART om te zien of er gegevens zijn gewijzigd tijdens de verzending. Bits kunnen worden gewijzigd door elektromagnetische straling, niet-overeenkomende baudsnelheden of gegevensoverdracht over lange afstanden. Nadat de ontvangende UART het dataframe heeft gelezen, telt deze het aantal bits met een waarde van 1 en controleert of het totaal een even of oneven getal is. Als het pariteitsbit een 0 (even pariteit) is, moeten de 1-bits in het dataframe optellen tot een even getal. Als het pariteitsbit een 1 (oneven pariteit) is, moeten de 1-bits in het dataframe optellen tot een oneven getal. Wanneer de pariteitsbit overeenkomt met de gegevens, weet de UART dat de verzending vrij van fouten was. Maar als het pariteitsbit een 0 is en het totaal oneven; of het pariteitsbit is een 1, en het totaal is even, de UART weet dat bits in het dataframe zijn veranderd.

STOP BITS

Om het einde van het datapakket te signaleren, stuurt de verzendende UART de datatransmissielijn van een laag voltage naar een hoog voltage voor ten minste twee bits.

Stap 10: STAPPEN VAN UART-VERZENDING

1. De verzendende UART ontvangt gegevens parallel van de databus:

Stap 11: Beeldverzending UART ontvangt gegevens parallel van de gegevensbus

Beeldverzending UART ontvangt gegevens parallel van de gegevensbus
Beeldverzending UART ontvangt gegevens parallel van de gegevensbus

Stap 12: 2. de verzendende UART voegt de startbit, pariteitsbit en de stopbit(s) toe aan het dataframe:

2. de verzendende UART voegt de startbit, pariteitsbit en de stopbit(s) toe aan het dataframe
2. de verzendende UART voegt de startbit, pariteitsbit en de stopbit(s) toe aan het dataframe

Stap 13: 3. het hele pakket wordt serieel verzonden van de verzendende UART naar de ontvangende UART. de ontvangende UART bemonstert de datalijn met de vooraf geconfigureerde baudrate:

3. het hele pakket wordt serieel verzonden van de verzendende UART naar de ontvangende UART. de ontvangende UART bemonstert de datalijn met de vooraf geconfigureerde baudrate
3. het hele pakket wordt serieel verzonden van de verzendende UART naar de ontvangende UART. de ontvangende UART bemonstert de datalijn met de vooraf geconfigureerde baudrate

Stap 14: 4. de ontvangende UART verwijdert de startbit, pariteitsbit en stopbit van het dataframe:

4. de ontvangende UART verwijdert de startbit, pariteitsbit en stopbit van het dataframe
4. de ontvangende UART verwijdert de startbit, pariteitsbit en stopbit van het dataframe

Stap 15: 5. de ontvangende UART converteert de seriële gegevens terug naar parallel en draagt deze over naar de databus aan de ontvangende kant:

5. de ontvangende UART converteert de seriële gegevens terug naar parallel en draagt deze over naar de databus aan de ontvangende kant
5. de ontvangende UART converteert de seriële gegevens terug naar parallel en draagt deze over naar de databus aan de ontvangende kant

Stap 16: VOOR- EN NADELEN VAN UARTS

Geen enkel communicatieprotocol is perfect, maar UART's zijn redelijk goed in wat ze doen. Hier zijn enkele voor- en nadelen om u te helpen beslissen of ze al dan niet passen bij de behoeften van uw project:

VOORDELEN

Gebruikt slechts twee draden Geen kloksignaal nodig Heeft een pariteitsbit om fouten te kunnen controleren De structuur van het datapakket kan worden gewijzigd, zolang beide zijden daarvoor zijn ingesteld Goed gedocumenteerde en veelgebruikte methode NADELEN

De grootte van het dataframe is beperkt tot maximaal 9 bits Ondersteunt geen multiple slave- of multiple master-systemen De baudrates van elke UART moeten binnen 10% van elkaar liggen Verder naar deel drie van deze serie, Basisprincipes van de I2C-communicatieprotocol om meer te weten te komen over een andere manier waarop elektronische apparaten communiceren. Of als je dat nog niet hebt gedaan, bekijk dan deel één, Basisprincipes van het SPI-communicatieprotocol.

En zoals altijd, laat het me weten in de comments als je vragen hebt of iets anders toe te voegen! Als je dit artikel leuk vond en meer wilt zien, volg dan zeker

Groeten

M. Junaid

Aanbevolen: