hoe RS232 werkt

hoe RS232 werkt : RS232 definieert een protocol dat beschrijft hoe een stroom van gegevensbits wordt vervolgens verzonden op een draad dat wil zeggen een bitstroom. De volgorde en betekenis van elk bit wordt bepaald door het protocol. De eenvoudige uitleg hieronder is voldoende om RS232 te begrijpen – geen noodzaak om een grote handleiding te lezen!,

RS232 is een standaard voor seriële informatieoverdracht die zowel het protocol (methode van overdracht van gegevens) als de fysieke hardware definieert om dit te doen. Dit document beschrijft hoe het werkt op het fysieke niveau, zodat u weet welke signalen U kunt verwachten te zien op de microcontroller pinnen.

Wat is RS232?,

fundamenteel is het een methode voor het overbrengen van gegevens over een enkele draad (je hebt twee draden nodig om gegevens terug te krijgen omdat elke draad gegevens in één richting overdraagt):

het is een methode (of protocol – een overeengekomen standaard) die definieert hoe gegevens tussen twee apparaten worden overgedragen met behulp van een paar draden. Het maakt gebruik van een serialtransmissiemethode waarbij bytes van gegevens bit per keer worden uitgevoerd op een enkele draad.

gegevens worden slechts in één richting verzonden voor elke draad, zodat voor bidirectionele communicatie (twee richtingen) twee draden nodig zijn., Dit is dus geen multidrop lan-communicatiesysteem zoals RS485, maar een point-to-point-protocol.

deze twee samen met een grondreferentie (totaal: drie draden) vormen de minimale configuratie waarmee je weg kunt komen.

opmerking:voor meer betrouwbare communicatie over lange afstanden moet u mogelijk andere verbindingen gebruiken die zijn gedefinieerd in de RS232standard, zoals DTR DCT etc. handdruk signalen etc.

formeel is RS232 een asynchrone communicatieprotocol waarmee u gegevens kunt overdragen tussen elektronische apparaten.,

in principe kan het een enkele byte data overbrengen via een seriële kabel met tussen de 3 en 22 signalen en met snelheden van 100 tot 20k baud. De gebruikte gemeenschappelijke baudrates zijn 2,4 k, 9,6 k, 19,2 k, de kabellengte kan tot 50ft zijn. Hogere baud rates worden gebruikt, maar niet gedekt door de norm die ze nog steeds werken, b.v. 38400,57600 Baud (bits/s).

om een gegevensblok over te dragen, worden individuele bytes na elkaar verzonden.,

Deze sectie beschrijft hoe RS232 in het algemeen werkt zonder handshake methoden te beschrijven-alleen het eenvoudigste systeem wordt beschreven – Dit is het meest bruikbare en het meest waarschijnlijk te werken!.

Handshake-signalen hebben extra vertaalhardware nodig (een RS232chip met meer I/O) en hoewel eenvoudig zijn meestal niet vereist voor pc om de bediening van het bord te ontwikkelen. U kunt ze nodig hebben voor systemen die meerdere apparaten aansturen waarbij u tijdelijk gegevens van een eenheid moet stoppen. Er is een sectie over handshake signalen later in dit document.,

gegevens worden serieel in één richting over een paar draden verzonden. Datagoing out is gelabeld Tx (met vermelding van de transmissie) terwijl de gegevens komen in islabelled Rx (met vermelding van ontvangst). Om een tweeweg communicatiesysteem te creëren aminimum van drie draden zijn Tx, Rx en GND (grond) nodig. Door Tx& Rx tussen de twee systemen te kruisen, kan elke eenheid met de andere praten.

opmerking: voor elk signaal (TX en RX) is een niveaut-vertaler nodig, omdat hoge spanningen worden gebruikt om de gegevens over de draden te verzenden (typisch output van ±5V tot ±25V).,

elke byte kan op elk moment worden verzonden (zolang de vorige byte is verzonden). De verzonden byte wordt niet gesynchroniseerd met de ontvanger-het is een asynchrone protocol dat wil zeggen Er is geen kloksignaal. Om deze reden moet software aan elk uiteinde van de communicatieverbinding precies zo worden opgezet dat elke seriële decoderchip de seriële datastroom kan decoderen.


opmerking: de inversie van het signaalniveau (logica 1is-12V en logica 0 is +12V).,

baudrate

hoe RS232 werkt in de relatie tussen baudrate en signaalfrequentie.

de baudrate is gewoon de transmissiesnelheid gemeten in bits per second.It definieert de frequentie van elke bit periode.

bij een baudrate van 2400 (2400 bps) is de frequentie 2400Hz en de bitperiode 1/2400 of 416,6 us. Dit is de informatie die een ontvanger gebruikt om de bits uit de datastroom terug te halen.,

hoe RS232 werkt-spanningsniveaus

om het over lange kabels te laten werken, worden hoge spanningen van elke zender verzonden, omdat door de kabelweerstand de spanning vermindert naarmate het signaal verder moet reizen. De specificatie van het outputvoltage is van + 5V aan + 25V (die een logische nul verzenden) en-5V aan-25V (die een logische één verzenden).

Opmerking: alle signalen in de kabel moeten dezelfde spanningsniveaus genereren, bijvoorbeeld DTR, DSR, RTS, CTS. Dus je hebt veel level vertaler chips nodig voor een fullinterface, maar voor zeer korte afstanden heb je alleen TX en RX en grond nodig.,

De maximale spanning van ±25V hoeft niet te worden gebruikt en een gebruikelijke spanning in gebruik is ±12V (uitgang door MAX232 zendontvanger).

een teken (logisch) wordt verzonden als-12V en een spatie (logisch nul) wordt verzonden als+12V, d.w.z. de logische betekenis wordt omgekeerd.

opmerking: het feit dat er hoge spanningen bestaan op de seriële poort staat krachtige apparaten toe die je normaal niet zou verwachten op het te vinden. Maar ze moeten heel weinig stroom trekken.

Ontvangerspanningsniveaus

bij de ontvanger de ingang de minimumspanningsniveaus worden gedefinieerd als ±3V d.w.z., om een logische nul te ontvangen moet de spanning groter zijn dan 3V en om een logische één te ontvangen moet de spanning kleiner zijn dan-3V. dit zorgt voor verliezen als het signaal naar beneden de kabel gaat en zorgt voor ruisonderdrukking, dat wil zeggen dat eventuele onechte ruis tot een niveau van ±3V kan worden getolereerd zonder dat dit enig effect heeft op de ontvanger.

hoe RS232 werkt-TheRS232 Start Bit

het protocol wordt beschreven als asynchroon omdat er helemaal geen klok wordt verzonden. In plaats daarvan wordt een andere methode van klokherstel gebruikt.,

aan het begin van elke transmissie wordt een startbit verzonden die aan de ontvanger aangeeft dat een byte van gegevens op het punt staat te volgen. Omdat de inactieve toestand van de RS232 lijnen laag (-12V) is om een startconditie aan te geven, wordt de lijn hoog(+12V) ingesteld voor 1 bit periode. Dit betekent dat er altijd een overgang op de lijn wordt gegenereerd, zodat een ontvanger weet wanneer de 1e rand van de data burstockt.

de start Bit laat de ontvanger synchroniseren met de data bits omdat het de stijgende rand van het signaal op de lijn kan zien., Wat dit betekent is dat de ontvanger zijn eigen sample klok kan maken in het midden van elk bit – om te beslissen of het bit eigenlijk een data nul of data een is.

zodra de startbit is gevonden, weet de ontvanger waar de volgende Bits zullen zijn als het de sample periode krijgt (afgeleid van de baudrate) als onderdeel van het initialisatieproces. Dit is de reden waarom u dezelfde instellingen moet instellen zowel de ontvanger en de zender hardware dwz baudrate, aantal stop bits, aantal data bits, en pariteit bit (aan of uit)., Als je dat niet doet dan gebeurt er meestal niets-of je ziet rubbishcharacters bij de ontvanger.

hoe RS232 werkt – de Databits

gegevensbits volgen de start bit. Gewoonlijk worden er zeven of acht databits met de lsb als eerste verzonden. De reden dat je kunt kiezen tussen zeven oreight is dat ASCII is opgebouwd uit het alfabet binnen de eerste zeven bits (evenals de controle tekens). Het achtste bit breidt de tekenset uit voorgrafische symbolen.

Als u alleen tekst wilt verzenden, hebt u slechts 7 bits nodig., Dit bespaart abit en verhoogt de transmissiesnelheid bij het verzenden van grote blokken gegevens.Andere gegevensbitgroottes zijn 5, 6, 8 en 9 bits. Echter bitlengte is meestal ingesteld op 8 bits – dit wordt zeer vaak gebruikt.

TIP: aangezien de meeste modules negen bits kunnen verwerken, kunt u een gebruik voor het negende bit definiëren, zoals aangeven dat het datapakket een opdracht definieert. Maar natuurlijk moet je je receiver software aanpassen om die informatie te verwerken.

Opmerking: Als u RS232 gebruikt om ruwe gegevens (binaire gegevens) te verzenden, hebt u 8 gegevensbits nodig.,

hoe RS232 werkt-de pariteitsbit

de RS232 pariteitsbit is een ruw foutdetectiemechanisme.U kunt oneven pariteit of even pariteit of helemaal geen gebruiken (in het diagram hierboven is een pariteit bit opgenomen (tussen de laatste Data bit en de stop bit-hier wordt de pariteit aangegeven als een ‘1’ Wat betekent dat er een oneven aantal Databits. Dus de pariteit in gebruik is oneven-pariteit. Het diagram hieronder (gewoonlijk gebruikt in microcontroller werk) maakt geen gebruik van een pariteit bit.,

het evalueert eenvoudig alle data-bits en voor oneven pariteit geeft een logica terug als er een oneven aantal data-bits is ingesteld. Voor even pariteit een even aantal data bits die zijn ingesteld, stelt de pariteit bit.

bij de ontvanger wordt de pariteitsbit gebruikt om te zien of er een fout is opgetreden tijdens de transmissie. U kunt dit gebruiken in de ontvanger software door het lezen van een vlag in de UART module.

het probleem met foutdetectie met behulp van de pariteit bit is dat als twee bits in fout dan de pariteit controle mislukt., Dit komt omdat elke fout het effect van de andere annuleert (in termen van de pariteitberekening). Elk even aantalfouten veroorzaakt een fout in foutdetectie.

Het zal geen probleem zijn op een bench top gebaseerd systeem (dat geen kritische datatransfer heeft). Over een korte kabel b. v. 6ft zul je waarschijnlijk geen fouten zien. Normaal gebruik ik geen pariteit en is er helemaal geen probleem.

voor systemen die over een lange afstand of in een lawaaierige omgeving lopen, moet een beter systeem worden gebruikt, bijvoorbeeld door een cyclische redundantiecontrole toe te voegen aan de gegevensstroom vóór en nadat deze over de RS232 wordt verzonden., CRCs laat u controleren op en corrigeer een paar fouten zonder opnieuw verzenden van de gegevens.

hoe RS232 werkt-de Stopbit

de RS232 stop bit geeft slechts een periode voordat de volgende start bit kan worden verzonden. Het is de tegenovergestelde zin van het startbitand hierdoor kan de startbit worden gezien dat wil zeggen een stopbit gevolgd door een startbit geeft altijd een stijgende rand signaal voor detectie door de ontvanger.

als er geen stop-bit was, dan zou het laatste bit in de datastroom deparity-bit zijn (of databit als parity niet actief is)., Dit zou veranderen afhankelijk van de verzonden gegevens, dus als het dezelfde zin had als de start bit dan kon de startbit niet worden gezien!

De stop bit kan worden ingesteld door te kiezen uit 1, 1.5 of 2 bit perioden.

bij zeer hoge baudrates zal de periode van stop-bit tot start-bit (ervan uitgaande dat de gegevens continu worden verzonden) zeer klein zijn, bijvoorbeeld bij een baudrate van 115200 baud is de tijd tot één bit 1/115200 = 8,26 us dus door 2 bit-periodes te gebruiken, zal u de tijd verhogen tot 16,5 us., Hierdoor kan de ontvanger de start iets gemakkelijker detecteren, omdat als er capaciteit op de lijn is, de golfvormen een CR-stijgtijd zullen vertonen. Het verlengen van de periode maakt meer capacitieve belasting mogelijk. Het hangt echter ook af van de gebruikte hardware van de ontvanger.

typische Instellingen

typische instellingen voor gebruik op het bureaublad bijvoorbeeld tussen een microcontroller en aterminal emulator programma zoals”Tera Term”:

hoe RS232 werkt : typische baud ratesettings.,
Baud 9600
Data bits 8
Parity None
Stop bits 1
Flow Control None

This can also be compactly written as:

9600 8N1

Hardware Connections 3 (Rx,Tx,GND) – Rx and Tx crossed over.,

“Flow control” in de bovenstaande lijst verwijst naar een hardware flow control signal method die gebruik maakt van de signalen DTR/DSR en RTS/CTS. Zie hier voor meer hierover.

hoe RS232 werkt – signaalniveaus

op een gegeven moment wilt u misschien een software – UART maken om codespace in uw huidige ontwerp op te slaan (misschien hebt u het ontvanggedeelte niet nodig-omdat u alleen variabelen uitvoert) of om een reserve-pin te gebruiken.

Opmerking: U kunt Software USART-code ontvangen en verzenden vinden in de 12f675 Tutorialpages.,

om het te maken heb je de werkelijke signaaldiagrammen nodig die je ziet bij de microcontroller pin (vreemd genoeg zijn deze moeilijk te vinden op het web).

het volgende diagram toont de getimede 0V en 5V bitstroom op de uitgangspin van de microcontroller. Het onderste diagram toont de vertaalde signaalniveaus bij de RS232-uitvoerdrivers die over de seriële kabel worden verzonden.

deze hogere niveaus worden gegenereerd door de 0-5V logische niveaus naar de transceiver-chip te sturen, bijv., MAX232 die een ingebouwde diode / condensator boost conveter heeft die de signaalniveaus verhoogt tot de vereiste RS232 voltage van ±12 volt. Merk op hoe het-12V niveau correspondeert met een logische ‘ 1 ‘en +12v niveau correspondeert met een logische’0’.

opmerking: het uitgangsspanningsniveau kan van ±5 tot ±25V zijn. voor langere afstanden is een hogere spanning nuttig om het verlies te compenseren omdat het signaal langs de kabel loopt, maar voor praktisch gebruik genereren chips lagere spanningen zoals ±12.,
hoe RS232 werkt bij het verzenden van een teken

de onderste golfvorm in het bovenstaande bove-diagram toont het Rs232signaal dat u zou zien met een oscilloscoop op de outputaandrijving van een vertaler spaander zoals MAX232. Merk op dat de RS232 idlevoltage-12V is,

RS232 klok

het bovenstaande diagram toont ook het RS232 timingdiagram waar elke bit periode 1 / frequentie is, dus voor een baudrate van 9600 bps (bits per seconde) is de periode van elke bit 1/9600 of104.,166us dit is effectief de RS232 klokperiode die wordt vereist voor het specifieke baudrate in gebruik.

RS232 golfvorm

in het diagram boven de onderste golfvorm toont het RS232 spanningsignaal dat u kunt verwachten te zien aan de uitgang van de RS232 TX pin(ook dezelfde niveaus op de RX pin) op een oscilloscoop. In sommige chips kan het maximale signaalniveau niet ±12V zijn-de max en min spanning zou kleiner kunnen zijn (omdat er geen grote spanningsval over korte afstanden zal zijn)., Voor lange afstanden moeten deze ±12V zijn – aan het einde van een lange kabel zal de voltage over de weerstand van de kabel vallen, maar moet meer dan ±3V aan het andere uiteinde zijn.

De capaciteit van de kabel zal ook de stijgende en dalende randen vertragen – ze omringen.

hoe RS232 werkt-Handshake signalen

Handshake signalen zijn gewoon een methode om het stromen van gegevens te stoppen. Als een deel van het systeem bezig is kan het niet in staat zijn om meer gegevens te accepteren en in plaats van het te verliezen signalen worden gebruikt aan elk uiteinde van de link om het andere uiteinde te vertellen om te stoppen met het verzenden van gegevens., Er worden twee soorten gebruikt in RS232: hardware handshake en software handshake.

Hardware handshake

  • DTR-Data Terminal Ready.
  • DSR-dataset gereed.
  • RTS-verzoek om te verzenden.
  • CTS-wissen om te verzenden.

Als u deze signalen gebruikt, moeten ze allemaal worden verzonden op theRS232-niveaus, d.w.z. ±25V (of wat voor spanning dan ook wordt gegenereerd door de translatorchip, bijvoorbeeld ±12V, d.w.z. hetzelfde als de TX-uitgang, dus u hebt een RS232-chip nodig met meer niveauvertalers om de signalen te verzenden en te ontvangen.,

onthoud dat het protocol gebaseerd was op een modem (de DCE of datacommunicatie – apparatuur) die op een bureau zat en die (via RS232)op de PC (de DTE of data-eindapparatuur) – de controller. Er is zelfs een ring indicator (RI) die signaleert wanneer de telefoon rinkelde,direct aangesloten op de telefoonlijn, die automatische modemdetectie van een inkomende datastroom mogelijk zou maken.

elk signaal is niet orthogonaal, wat betekent dat er geen equivalent signaal is dat de andere kant op gaat., Dit deel van het protocol groeide na verloop van tijd, dus er zijn verschillende toepassingen van deze signalen, maar in het algemeen wordt het volgende gebruikt:

om gegevens afkomstig van de PC te stoppen, dat wil zeggen om te stoppen met het overweldigen van de modem met gegevens:

  • RTS (PC) naar modem.
  • CTS (modem) naar PC.

de PC geeft aan dat het Gegevens naar het modem wil verzenden.
het modem beweert dat CTS gegevens van de PC ontvangt.

om gegevens afkomstig van het modem te stoppen, d.w.z. om te stoppen met het overweldigen van de PC met gegevens:

  • DTR (PC) naar het modem.
  • DSR (modem) naar PC.,

het modem stelt DSR in om aan te geven dat het Gegevens naar de PC wil verzenden.
De PC asserteert DTR om gegevens van het modem te ontvangen.

Software Handshake

Als u de termen XON en XOFF ziet, is dit een software flow control methode waarbij de ontvanger een speciaal teken (in de ASCIIset) verzendt om de zender te zeggen geen gegevens meer te verzenden. Wanneer de ontvanger is hersteld (een buffer ledigt) dan kan het het Xon-signaal verzenden om de zender opnieuw te starten.

Leave a Comment