Hvordan RS232 fungerer : RS232 definerer en protokoll som beskriver hvordan en strøm av data biter issequentially overføres til en ledning, dvs. en bit stream. Ordren andmeaning av hver bit er definert av protokollen. Den enkle explanationbelow er tilstrekkelig til å forstå RS232 – ingen trenger å lese en stor manuell!,
RS232 er en seriell informasjon transfer protocol standardthat definerer både protokollen (metode for overføring av data) og thephysical maskinvare til å gjøre det. Dette dokumentet beskriver hvordan det fungerer på thephysical nivå slik at du vet hvilke signaler du kan forvente å se på themicrocontroller pinner.
Hva er RS232?,
Fundamentalt det er en metode for å overføre data over en enkelt ledning (dere trenger to ledninger for å få data tilbake siden hver overføringer av data i en directiononly):
Det er en metode (eller protokoll – en avtalt standard) som definerer hvordan totransfer data mellom to enheter ved hjelp av et par ledninger. Den bruker en serialtransmission metode der byte av data er utgang én bit om gangen på asingle wire.
Data er bare overføres i en directionfor hver ledning, slik at for toveis kommunikasjon (to retninger) dere trenger to ledninger., Så dette er ikke et multidrop lan kommunikasjon system som RS485 men en punkt-til-punkt-protokoll.
Disse to sammen med en bakken referanse (total: tre ledninger) utgjør theminimum-konfigurasjonen som du kan komme unna med.
Merk: For mer pålitelig kommunikasjon lenge avstander du kan få behov for å bruke andre forbindelser som er definert i RS232standard som DTR DCT etc. handshake-signaler osv.
i Utgangspunktet kan den overføre en eneste byte av data over en seriell kabel havingbetween 3 til 22 signaler og kjører i hastigheter fra 100 til 20k baud. Commonbaud priser som brukes er 2.4 k, 9.6 k, 19.2 k, Og lengden på kabelen kan være opp til 50ft. Høyere baud priser er brukt, men som ikke er dekket av standarden de fortsatt workthough f.eks. 38400,57600 Baud (bits/s).
for Å overføre en blokk av data enkelte byte som er overført en afteranother.,
Dette avsnittet beskriver hvordan RS232 fungerer generelt uten describinghandshake metoder – bare den enkleste systemet er beskrevet – dette er det themostuseful og mest sannsynlig til å jobbe!.
Håndtrykk signaler trenger ekstra nivå oversettelse maskinvare (en RS232chip med mer I/O) og selv enkle er vanligvis ikke nødvendig forPC til utvikling bord drift. Du trenger dem for systemer thatare kontrollere flere enheter der du kan få behov for å midlertidig stopdata fra en enhet. Det er en del av handshake-signaler senere i dette dokumentet.,
Data som er overført sammen i én retning over et par av ledninger. Datagoing ut er merket Tx (indikerer overføring), mens data som kommer i islabelled Rx (indikerer resepsjonen). For å skape en toveis kommunikasjon system aminimum av tre ledninger er nødvendig Tx, Rx-og GND (jord). Kryssing over Tx& Rx mellom de to systemene kan hver enhet snakk motsatt ett.
Hver byte kan sendes når som helst (så lenge den forrige byte hasbeen overføres). De overførte byte er ikke synkronisert til mottakeren -det er en asynkron protocol, dvs. det er ingen klokke signal. For dette reasonsoftware i hver ende av kommunikasjon link må være satt opp akkurat sameso at hver serie dekoder brikke som kan dekode den serielle datastrømmen.
Merk: signalet nivå inversjon (logikk 1is -12V og logikk 0 er +12V).,
Baud-Rate
Hvordan RS232 fungerer i forholdet mellom hastighet og signalfrequency.
overføringshastigheten er rett og slett hastigheten målt i bits per sekund.Den definerer frekvensen av hver bit periode.
For en overføringshastighet på 2400 (2400 bps) frekvensen er 2400Hz og bitperiod er 1/2400 eller 416.6 oss. Dette er informasjonen som mottakeren bruker torecover den biter fra datastrømmen.,
Hvordan RS232 Fungerer – Voltagelevels
for Å få det til å fungere over lange kabler høyspenning er sendt fra eachtransmitter siden på grunn av kabel motstand spenning reduserer ytterligere thesignal har til å reise. Den utgangsspenning spesifikasjonen er fra +5 til +25V(overføring av en logisk null) og -5V til -25V (overføring av en logisk ett).
Merk: alle signaler i kabel har til å generere den samme spenningen nivåer e.g.DTR, DSR, RTS, CTS. Så du trenger mye av nivå oversetter chips for en fullinterface men for svært korte avstander trenger du bare TX og RX og bakken.,
maksimal spenning på ±25V trenger ikke å bli brukt, og en commonvoltage i bruk er ±12V (utgang av MAX232 transceiver chip).
Et-merke (logisk ene) er sendt som-for 12V og en plass (logisk null) er sendt som+12V dvs. logikk forstand er det omvendt.
Merk: Det faktum at høye spenninger finnes på seriell port allowspowering enheter som du normalt ikke ville forvente å finne på det. Men theymust trekker svært lite strøm.
– Mottaker spenningsnivåer
På mottakeren innspill minimum spenning nivåene er definert som ±3V dvs., for å receivea logikk null spenning må være større enn 3V, og til å få en logikk en thevoltage må være mindre enn -3V. Dette gjør det mulig for tap som signal travelsdown kabelen og gir støy immunitet dvs. alle falske støy opp til alevel på ±3V kan tolereres uten at det har noen effekt på mottakeren.
Hvordan RS232 fungerer – TheRS232 Starte Litt
protokollen er beskrevet som asynkron så det er ingen klokke transmittedat alle. I stedet en annen metode for klokke recovery er brukt.,
i begynnelsen av hver overføring, for en start bit er overført indicatingto mottakeren som en byte av data er i ferd med å følge. Siden den er inaktiv ofthe RS232 linjer er lav (12V) for å signalisere en start-tilstand linjen er satt høyt(+12V) for 1 bit periode. Dette betyr en overgang på linjen er alwaysgenerated slik at mottaker vet når den 1. kanten av data burstoccurs.
start bit lar mottakeren synkronisere data biter siden det cansee den stigende flanke på signal på linje., Hva dette betyr er at thereceiver kan lage sin egen prøve klokke på midten av hver bit – for å avgjøre om biten er faktisk en data null eller data man.
Når start bit er funnet mottakeren vet hvor followingbits vil beas det er gitt eksempel perioden (avledet fra overføringshastighet (baud) som en del av theinitialization prosessen. Dette er grunnen til at du må stille de samme innstillingene inboth mottakeren og senderen maskinvare dvs. baud rate, antall stoppbiter, antall databiter, og paritet bit (på eller av)., Hvis youdon ikke så vanligvis vil ingenting skje, eller du vil se rubbishcharacters på mottakeren.
Hvordan RS232 fungerer – Det Databits
Data biter følg start-bit. Det vil vanligvis være sju eller åtte databits med lsb overføres først. Grunnen til at du kan velge mellom syv oreight er at ASCII er gjort opp i alfabetet i løpet av de første syv bits (så vel som kontroll-tegn). Den åttende bit utvider tegnsett forgraphical symboler.
Hvis du bare ønsker å overføre teksten så du trenger bare 7 bits., Dette sparer abit og øker hastigheten når du overfører store blokker av data.Andre data bit størrelser er 5, 6, 8, og 9 biter. Men biters lengde er usuallyset 8 biter – dette er svært vanlig.
Merk: Hvis du bruker RS232 å overføre rådata (binære data), så du willneed 8 data bits.,
Hvordan RS232 fungerer – Paritet Litt
RS232-bit paritet er en grov feil detection-mekanisme.Du kan bruke enten odde paritet eller selv paritet eller ingen i det hele tatt (i diagramabove en bit paritet er inkludert (mellom siste data bit og stopp-bit -Her paritet er angitt som » 1 » betyr at det er et ulikt antall ofdatabits. Så paritet i bruk er odde paritet. Diagrammet under (ofte usedin mikrokontroller arbeid) ikke bruk en bit paritet.,
Det rett og slett evaluerer alle data biter og for odde paritet returnerer en logikk oneif det er et odde antall databiter som er satt. For selv paritet en evennumber av data biter som er satt, setter bit paritet.
På mottakeren paritet bit brukes til å fortelle om det oppsto en feil duringtransmission. Du kan bruke dette i mottakeren programvare ved å lese et flagg i UART-modulen.
problemet med feil-deteksjon ved hjelp av paritet bit er at hvis to bitsare i feil så paritet sjekk mislykkes., Dette er fordi hver feil cancelsthe effekten av den andre (i form av paritet beregningen). Noen selv numberof feil fører til en svikt i feilregistrering.
Det vil ikke være et problem på en benk toppen, basert system (som ikke har noen kritiske datatransfer). I løpet av en kort kabel for eksempel 6ft du sannsynligvis ikke se noen errorsanyway. Normalt bruker jeg ingen paritet og det er ikke noe problem i det hele tatt.
For systemer som kjører over en lang avstand, eller i støyende omgivelser en bettersystem bør brukes til f.eks. å Legge en syklisk redundans sjekk til data streambefore og etter at det er sendt via RS232., Crc lar deg kontrollere for og correctquite noen feil på nytt uten å sende data.
Hvordan RS232 fungerer – Det Stopbit
RS232 stopp bit bare gir en periode før thenext start bit kan overføres. Det er det motsatte fornuftig å starte bitand på grunn av dette kan de starte litt for å bli sett, dvs. en stopp bit fulgt bya start bit gir alltid en stigende flanke signal for påvisning av mottakeren.
Hvis det var ingen stopp bit, så den siste biten i datastrømmen ville være theparity bit (eller data bit hvis paritet er ikke aktiv)., Dette ville endre dependingon data som sendes så hvis det hadde samme følelse som start-bit, så det startbit ikke kunne sees!
stopp bit kan stilles inn ved å velge fra 1, 1,5 eller 2 bit perioder.
Ved svært høye baud priser perioden fra stopp bit til å begynne bit(forutsatt at data blir sendt fortløpende) vil være svært liten, f.eks. for en overføringshastighet på 115200 baud den timeing til en bit er 1/115200 = 8.26 oss så ved hjelp av 2 bit perioder du vil øke tiden til 16,5 oss., Dette canallow mottakeren til å oppdage starten litt mer enkelt fordi dersom det er kapasitet på linje bølgeformene vil vise en CR stige falle tid. Utvide tidsperioden gir mer kapasitiv lasting. Men italso avhengig av mottaker-maskinvare som brukes.
Typiske Innstillinger
med Typiske innstillinger som passer for bruk på skrivebordet f.eks. mellom en mikrokontroller og aterminal emulator program som «Tera Term»:
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» i listen ovenfor henviser til en maskinvare-flytkontroll signalering metode som bruker signaler DTR/DSR og RTS/CTS. Se her for mer om det.
Hvordan RS232 Fungerer – Signal Nivåer
På et tidspunkt du ønsker kanskje å lage en software-UART kanskje for å spare codespace i din nåværende design (kanskje du trenger ikke får del – som youare bare gi ut variabler), eller for å bruke et ekstra pin-kode.
Merk: du kan finne motta og transmitsoftware USART-kode i 12F675 Tutorialpages.,
for Å skape det du trenger den faktiske signal diagrammer som du ser på themicrocontroller pin-koden (merkelig disse er vanskelig å finne på nettet).
følgende diagrammet viser den tidsbestemte 0V og 5V bit stream på utgang pinof mikrokontrolleren. Det nederste diagrammet viser oversatt signal nivåer atthe RS232 utgang drivere som overføres over den serielle kabelen.
Disse høyere nivåer er generert ved å sende 0-5V logikk nivåer for å atransceiver f.eks. chip, MAX232 som har en diode/kondensator øke conveter builtin som øker signalet nivåer til nødvendig RS232 voltageof ±12 volt. Legg merke til hvordan 12V nivå tilsvarer en logisk ‘1’ og +12Vlevel tilsvarer en logisk ‘0’.
Den lavere bølgeform i bove diagrammet ovenfor viser RS232signal at du vil se ved hjelp av et oscilloskop på output-stasjon ofa oversetter chip som MAX232. Vær oppmerksom på at RS232 idlevoltage er 12V,
RS232 Klokke
diagrammet over viser også RS232 timingdiagram hvor hver bit perioden er 1/frekvens så for abaud pris på 9600 bps (bit per sekund) perioden for hver bit er 1/9600 or104.,166us dette er effektivt RS232 klokke perioden som er nødvendig for specificbaud pris i bruk.
RS232 Bølgeform
I diagrammet ovenfor nedre bølgeform viser RS232 voltagesignal at du kan forvente å se på resultatet av RS232-TX-pin-koden(også samme nivå på RX pin-kode) på et oscilloskop. I noen chips themaximum signal nivå kan ikke være ±12V – maks og min spenning kan besmaller (som det ikke vil være et stort spenningsfall over korte avstander)., Forlong avstander disse bør være ±12V – på slutten av en lang kabel voltagewill slippe ned over motstanden i kabelen, men må være mer enn ±3V atthe andre enden.
kabelen kapasitans vil også sakte stigende og fallende kanter – roundingthem av.
Hvordan RS232 Fungerer – Handshake Signaler
Håndtrykk signaler er ganske enkelt en metode for å stoppe data flyter. Ifsome del av systemet er opptatt, kan det ikke være i stand til å ta imot flere dataand snarere enn å miste det signaler er brukt på hver ende av lenken totell den andre enden for å stoppe overføring av data., Det er to typer usedin RS232: hardware handshake og programvare håndtrykk.
Hardware handshake
- DTR – Data Terminal Ready.
- DSR – Data Set Ready.
- RTS – Forespørsel om Å sende med.
- CTS – Klar til Å Sende.
Hvis du bruker disse signalene må de alle være overført på theRS232 nivåer dvs. ±25V (eller hva spenning er generert av thetranslator chip f.eks. ±12V det vil si det samme som den TX-utgang, slik at du trenger en RS232-chip med flere nivå oversettere for å både sende og receivethe signaler.,
Husk at protokollen var basert på en modemet (DCE eller DataCommunication Utstyr) sitte på en pult og en er koblet (via RS232)til PC-en (den DTE eller Data Terminal Equipment) – kontrolleren. Det’seven en ring indicator (RI) som signaliserer når telefonen kimte,er koblet direkte til telefonlinjen, som ville tillate automatisk modemdetection av et innkommende data stream.
Hvert signal er ikke ortogonale noe som betyr at det er ikke et tilsvarende signal gå tilbake den andre veien., Dette er en del av den protokoll som vokste overtid så det er ulik bruk av disse signalene, men generelt thefollowing er brukt:
for Å stoppe data som kommer fra PC-dvs. å stoppe overveldende modemet med data:
- RTS (PC) for å modem.
- CTS (modem) til PC.
PC hevder RTS for å indikere at den ønsker å overføre data til modemet.
modem hevder CTS å motta data fra datamaskinen.
for Å stoppe data som kommer fra modemet jeg.e å stoppe overveldende PC med data:
- DTR (PC) for å modem.
- DSR (modem) til PC.,
modem hevder DSR til å indikere at det vil ha å overføre data til PC-en.
PC hevder DTR til å motta data fra modemet.
Software Handshake
Hvis du ser vilkårene XON og XOFF dette er en programvare flow controlmethod hvor mottakeren sender en spesiell karakter (i ASCIIset) til å si til senderen slutte å sende data. Når mottakeren hasrecovered (en buffer er tømming) deretter kan den overfører XON-signaler totell senderen for å re-starte overføringen.