hur RS232 fungerar

hur RS232 fungerar : RS232 definierar ett protokoll som beskriver hur en ström av databitar överförs sekventiellt till en tråd, dvs. en bitström. Ordningen ochmening av varje bit definieras av protokollet. Den enkla förklaringennedan är tillräcklig för att förstå RS232-inget behov av att läsa en stor handbok!,

RS232 är en seriell informationsöverföringsprotokollstandard som definierar både protokollet (metod för överföring av data) och denfysiska hårdvaran för att göra det. Detta dokument beskriver hur det fungerar påfysisk nivå så att du vet vilka signaler Du kan förvänta dig att se på themicrocontroller pins.

vad är RS232?,

i grunden är det en metod för att överföra data över en enda tråd (dubehöver två ledningar för att få data tillbaka eftersom varje tråd överför data i en riktningendast):

det är en metod (eller protokoll – en överenskommen standard) som definierar hur manöverför data mellan två enheter med några trådar. Den använder en serialtransmission metod där byte data matas ut en bit i taget på asingle tråd.

Data överförs endast i en riktningför varje tråd så för dubbelriktad kommunikation (två riktningar) dubehöver två ledningar., Så det här är inte ett multidrop lan-kommunikationssystem som RS485 utan ett punkt-till-punkt-protokoll.

dessa två tillsammans med en markreferens (totalt: tre ledningar) utgör theminimum konfiguration som du kan komma undan med.

Obs: För mer tillförlitlig kommunikation överlånga avstånd kan du behöva använda andra anslutningar som definieras i RS232standard som DTR DCT etc. handskakningssignaler etc.

mer formellt RS232 är ett asynkront kommunikationsprotokoll som låter dig överföra data mellan elektroniska enheter.,

i grund och botten kan det överföra en enda byte av data över en seriell kabel som harmellan 3 till 22 signaler och körs i hastigheter från 100 till 20k baud. Commonbaud priser som används är 2,4 k, 9,6 k, 19,2 k, Kabellängd kan vara upp till 50ft. Högre baud-priser används men omfattas inte av standarden som de fortfarande arbetar med, t. ex.38400,57600 Baud (bitar/s).

för att överföra ett block av data överförs enskilda Byte en efter en annan.,

det här avsnittet beskriver hur RS232 fungerar i allmänhet utan att beskrivashandshake – metoder – bara det enklaste systemet beskrivs-det här är detmestanvändbart och det mest sannolika att fungera!.

handskakningssignaler behöver extra nivåöversättningshårdvara (en RS232chip med mer i/O) och även om enkla vanligtvis inte krävs förpc till utvecklingskort. Du kan behöva dem för system somstyr flera enheter där du kan behöva tillfälligt stoppdata från en enhet. Det finns ett avsnitt om handskakningssignaler senare i detta dokument.,

data överförs seriellt i en riktning över ett par trådar. Datagoing out är märkt Tx (indikerar överföring) medan data som kommer in islabelled Rx (indikerar mottagning). För att skapa ett tvåvägskommunikationssystem behövs aminimum av tre ledningar Tx, Rx och GND (jord). Crossing over TX& RX mellan de två systemen låter varje enhet prata med den motsatta.

Obs: varje signal (TX och RX) kräver en nivå översättare eftersom högspänningar används för att överföra data på ledningarna (typicallyoutput från ±5V till ±25V).,

varje byte kan överföras när som helst (så länge som föregående byte har överförts). Den överförda byte synkroniseras inte till mottagaren – det är ett asynkront protokoll dvs det finns ingen klocksignal. Av denna anledningprogramvara i varje ände av kommunikationslänken måste ställas in exakt sammaså att varje seriell dekoderchip kan avkoda den seriella dataströmmen.


Obs: inversion av signalnivån (logic 1is-12V och logic 0 är +12V).,

Baud Rate

hur RS232 fungerar i förhållandet mellan baud rate och signalfrequency.

baudhastigheten är helt enkelt överföringshastigheten mätt i bitar per second.It definierar frekvensen för varje bitperiod.

För en baudrate 2400 (2400 bps) frekvensen är 2400Hz och bitperiod är 1/2400 eller 416.6 oss. Detta är den information som en mottagare använder för attåtervinna bitarna från dataströmmen.,

hur RS232 fungerar – Voltagelevels

för att få det att fungera över långa kablar högspänningar skickas från varjetransmittor eftersom spänningen på grund av kabelmotstånd minskar ytterligare thesignal måste resa. Utgångsspänningsspecifikationen är från +5V till + 25V (sänder en logisk noll) och-5V till-25V (sänder en logisk).

Obs! alla signaler i kabeln måste generera samma spänningsnivåer, t.ex.DTR, DSR, RTS, CTS. Så du behöver en hel del nivå översättare chips för en fullinterface men för mycket korta avstånd behöver du bara TX och RX och marken.,

den maximala spänningen på ±25V behöver inte användas och en commonvoltage som används är ±12V (utgång av MAX232 transceiver chip).

ett märke (logisk en) skickas som-12V och ett utrymme (logisk noll) skickas som+12V dvs logisk känsla inverteras.

Obs: det faktum att höga spänningar finns på serial port allowspowering enheter som du normalt inte skulle förvänta sig att hitta på den. Men demåste dra väldigt lite ström.

mottagare spänningsnivåer

vid mottagaren ingången minsta spänningsnivåer definieras som ±3V dvs, för att få en logisk nollspänning måste spänningen vara större än 3V och för att få en logisk en spänningen måste vara mindre än-3V. detta möjliggör förluster som signalen ressdown kabeln och ger brusimmunitet dvs eventuella falska buller upp till alevel ±3V kan tolereras utan att det har någon effekt på mottagaren.

hur RS232 fungerar – TheRS232 Start Bit

protokollet beskrivs som asynkron eftersom det inte finns någon klocka som överförtstill allt. Istället används en annan metod för klockåterställning.,

i början av varje överföring överförs en startbit som indikerartill mottagaren att en byte av data håller på att följa. Eftersom TOMGÅNGSTILLSTÅNDET för RS232-linjerna är lågt (- 12V) för att signalera ett starttillstånd är linjen inställd hög(+12V) under 1 bitarsperiod. Detta innebär en övergång på linjen är alwaysgenerated så att mottagaren vet när den 1: a kanten av data burstoccurs.

startbiten låter mottagaren synkronisera till databitarna eftersom den kanse signalens stigande kant på linjen., Vad det betyder är att thereceiver kan skapa sin egen provklocka i mitten av varje bit-för att bestämma om biten faktiskt är en data noll eller data en.

När startbiten hittas vet mottagaren var följande bit kommer att varasom den ges provperioden (härledd från baud-hastigheten) som en del avinitialiseringsprocessen. Det är därför du måste ställa in samma inställningar ibåde mottagaren och sändarhårdvaran, dvs baudhastighet, antal stoppbitar, antal databitar och paritetsbit (på eller av)., Om du inte då vanligtvis ingenting kommer att hända – eller du kommer att se skräp characters på mottagaren.

hur RS232 fungerar – databitarna

databitarna följer startbiten. Det kommer vanligtvis att finnas sju eller åtta databiter med lsb överförs först. Anledningen till att du kan välja mellan sju ellerhöjd är att ASCII består av alfabetet inom de första sju bitarna (samt kontrolltecken). Den åttonde biten förlänger teckenuppsättningen förgrafiska symboler.

om du bara vill överföra text behöver du bara 7 bitar., Detta sparar abit och ökar överföringshastigheten vid överföring av stora datablock.Andra databitstorlekar är 5, 6, 8 och 9 bitar. Men bitlängd är vanligtvisuppsättning till 8 bitar – det här används ofta.

tips: eftersom de flesta moduler kan hantera nio bitar kan du definiera en användning för den nionde biten, till exempel att datapaketdefinierar ett kommando. Men självklart måste du justera din mottagarprogramvara tillprocess den informationen.

Obs! Om du använder RS232 för att överföra rådata (binär data) behöver du 8 databitar.,

hur RS232 fungerar – Paritetsbiten

RS232 paritetsbiten är en rå feldetekteringsmekanism.Du kan använda antingen udda paritet eller ens paritet eller ingen alls (i diagramabove ingår en paritetsbit (mellan den sista databiten och stoppbiten-här anges pariteten som en ” 1 ” vilket innebär att det finns ett udda antaldatabits. Så pariteten i bruk är udda-paritet. Diagrammet nedan (vanligen användsi mikrokontroller arbete) använder inte en paritetsbit.,

det utvärderar helt enkelt alla databitar och för udda paritet returnerar en logikom det finns ett udda antal databitar som är inställda. För jämn paritet en jämnantal databitar som är inställda ställer du in paritetsbiten.

vid mottagaren används paritetsbiten för att berätta om ett fel uppstod underöverföring. Du kan använda detta i mottagarprogramvaran genom att läsa en flagga iuart-modulen.

problemet med feldetektering med paritetsbiten är att om två bitsare i fel misslyckas paritetskontrollen., Detta beror på att varje fel avbrytereffekten av den andra (när det gäller paritetsberäkningen). Ett jämnt antal fel orsakar ett fel vid feldetektering.

det kommer inte att vara ett problem på ett bänkbaserat system (som inte har någon kritisk dataöverföring). Över en kort kabel t. ex. 6ft du förmodligen inte kommer att se någon errorsanyway. Normalt använder jag ingen paritet och det finns inga problem alls.

för system som körs över en lång sträcka eller i en bullrig miljö bör ett bättre system användas, t.ex. genom att lägga till en cyklisk redundanskontroll i dataströmmen före och efter det att den har skickats över RS232., CRCs låter dig kontrollera och korrigeraganska fel utan att överföra data igen.

hur RS232 fungerar – Stoppbiten

STOPPBITEN RS232 ger bara en tidsperiod innan startbiten kan överföras. Det är motsatt mening till startbitoch på grund av detta gör att startbiten kan ses, dvs en stoppbit följt aven startbit ger alltid en stigande kantsignal för detektering av mottagaren.

om det inte fanns någon stoppbit skulle den sista biten i dataströmmen vara partybiten (eller databiten om pariteten inte är aktiv)., Detta skulle förändras beroendepå data som skickas så om det hade samma mening som startbiten kunde startbiten inte ses!

stoppbiten kan ställas in genom att välja mellan 1, 1.5 eller 2 bitarsperioder.

Vid mycket höga baudhastigheter perioden från och med sluta lite till start-bit(förutsatt att data skickas kontinuerligt) kommer att vara mycket liten, exempelvis för en hastighet på 115200 baud den timeing att en bit är 1/115200 = 8.26 oss, så med hjälp av 2-bitars perioder kommer du öka tiden till 16,5 oss., Detta kanlåta mottagaren att upptäcka start bit lättare eftersom om det finns kapacitans på linjen vågformerna kommer att uppvisa en CR stiga falltid. Förlängning av tidsperioden möjliggör mer kapacitiv belastning. Det beror dock också på vilken maskinvara som används i mottagaren.

Typiska Inställningar

Typiska inställningar för användning på skrivbordet t ex mellan en mikrokontroller och aterminal emulator program som ”Tera Sikt”:

Hur RS232 fungerar : Typiska 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.,

”flödeskontroll” i ovanstående lista hänvisar till en signaleringsmetod för hårdvaruflödeskontroll som använder signalerna DTR/DSR och RTS/CTS. Se här för mer om det.

hur RS232 fungerar – signalnivåer

vid något tillfälle kanske du vill göra en programvara UART kanske för att spara kodrymd i din nuvarande design (kanske du inte behöver den mottagande delen – som youare bara mata ut variabler) eller att använda en reservstift.

Obs! Du kan hitta ta emot och överföra USART-kod i 12f675 Tutorialpages.,

för att skapa den behöver du de faktiska signaldiagram som du ser på themicrocontroller pin (konstigt är det svårt att hitta på webben).

Följande diagram visar den tidsinställda 0V-och 5V-bitströmmen vid mikrokontrollens utgångsstift. Det nedre diagrammet visar de översatta signalnivåerna vid RS232-utmatningsdrivrutinerna som överförs via den seriella kabeln.

dessa högre nivåer genereras genom att skicka 0-5V logiska nivåer till atransceiver chip t. ex., MAX232 som har en diod/kondensator boost conveter builtin som ökar signalnivåerna till den erforderliga RS232 voltageav ±12 volt. Observera hur-12V-nivån motsvarar en logisk ” 1 ”och + 12V-nivå motsvarar en logisk ”0”.

Obs: utgångsspänningsnivån kan vara från ±5 till ±25V. Forlonger avstånd en högre spänning är användbar för att kompensera förlusten som signaltravelerna ner kabeln men för praktisk användning chips generera lägre spänningar suchas ±12.,
hur RS232 fungerar vid överföring av acharacter

den nedre vågformen i bove-diagrammet ovan visar RS232signal som du skulle se med ett oscilloskop på utmatningsenheten aven översättare chip som MAX232. Observera att RS232 idlevoltage är -12V,

RS232-Klocka

diagrammet ovan visar också RS232 timingdiagram där varje bit period är 1/frekvens, så för abaud priser på 9600 bps (bitar per sekund) den period av varje bit är 1/9600 or104.,166us detta är effektivt RS232-klockperioden som krävs för den specifika baud-hastigheten som används.

RS232 vågform

i diagrammet ovanför den nedre vågformen visar RS232 voltagesignal som du kan förvänta dig att se vid utgången av RS232 TX pin (även samma nivåer på RX pin) på ett oscilloskop. I vissa marker themaximum signalnivå kan inte vara ±12V – Max-och min-spänningen kan varamindre (eftersom det inte kommer att finnas ett stort spänningsfall över korta avstånd)., För långa avstånd bör dessa vara ±12V – i slutet av en lång kabel kommer spänningen att falla ner över kabelns motstånd men måste vara mer än ±3V i den andra änden.

kabelkapacitansen kommer också att sakta ner de stigande och fallande kanterna – roundingthem off.

hur RS232 fungerar – Handskakningssignaler

Handskakningssignaler är helt enkelt en metod för att stoppa dataflödet. Omnågon del av systemet är upptagen kanske det inte kan acceptera mer dataoch istället för att förlora det signaler används i varje ände av länken totell den andra änden för att sluta överföra data., Det finns två typer som användsi RS232: hårdvara handslag och programvara handslag.

maskinvaruhandskakning

  • DTR – dataterminal klar.
  • DSR – Data Set klar.
  • RTS – begäran att skicka.
  • CTS – klart att skicka.

om du använder dessa signaler måste de alla överföras på theRS232 nivåer dvs ±25V (eller vilken spänning som genereras avtranslatorchipet t. ex. ±12V dvs samma som TX-utgången så att du behöver ett RS232-chip med fler nivåöversättare för att både överföra och ta emot signalerna.,

Kom ihåg att protokollet var baserat på ett modem (DCE eller Datakommunikationsutrustning) som sitter på ett skrivbord och en ansluten (via RS232)till datorn (dte eller Dataterminalutrustning) – styrenheten. Det finns även en ringindikator (RI) som signalerar när telefonen ringer,som är direkt kopplad till telefonlinjen, vilket skulle tillåta automatisk modemdetektion av en inkommande dataström.

varje signal är inte ortogonal vilket innebär att det inte finns någon motsvarande signal som går tillbaka åt andra hållet., Denna del av protokollet växte övertid så det finns olika användningsområden för dessa signaler men i allmänhet följande används:

för att stoppa data som kommer från datorn, dvs för att stoppa överväldigande modemet med data:

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

datorn hävdar RTS för att indikera att den vill överföra data till modemet.
modemet hävdar CTS för att ta emot data från DATORN.

för att stoppa data som kommer från modemet dvs för att stoppa överväldigande datorn med data:

  • DTR (PC) till modem.
  • DSR (modem) till PC.,

modemet hävdar DSR för att indikera att det vill överföra data till datorn.
datorn hävdar DTR för att ta emot data från modemet.

programvara handslag

om du ser villkoren XON och XOFF detta är en programvara flöde controlmetod där mottagaren sänder ett specialtecken (i ASCIIset) att säga till sändaren sluta skicka data. När mottagaren hartäckt (en buffert tömmer) kan den överföra XON-signalen totell sändaren för att starta om överföringen.

Leave a Comment