Jak RS232 funguje : RS232 definuje protokol, který podrobně popisuje, jak proud datových bitů issequentially přenáší na vodič, tj. bitový tok. Pořadí a význam každého bitu je definován protokolem. Jednoduché vysvětleníníže stačí pochopit RS232 – není třeba číst velkou příručku!,
RS232 je standardní protokol pro přenos sériových informací, který definuje jak protokol (způsob přenosu dat), tak i fyzický hardware. Tento dokument popisuje, jak to funguje nafyzické úrovni, takže budete vědět, jaké signály můžete očekávat na themicrocontroller piny.
Co je RS232?,
v Podstatě je to metoda přenosu dat přes jediný drát (potřebujete dva dráty získat data zpět, protože každý vodič přenáší data v jednom directiononly):
To je metoda (nebo protokol – schválený standard), která definuje, jak k dat mezi dvěma zařízeními pomocí několika vodičů. Používá metodu serialtransmission, kde jsou bajty dat vyvedeny jeden bit po druhém na asingle wire.
Data jsou přenášena pouze v jednom směrupro každý vodič, takže pro obousměrnou komunikaci (dva směry) potřebujete dva vodiče., Nejedná se tedy o komunikační systém multidrop lan, jako je RS485, ale protokol point-to-point.
tyto dva spolu s pozemním odkazem (celkem: tři dráty) tvoří theminimální konfiguraci, se kterou se můžete dostat pryč.
Poznámka: pro spolehlivější komunikaci přesahující vzdálenosti možná budete muset použít jiná připojení definovaná v RS232standard, jako je DTR DCT atd. signály handshake atd.
v podstatě může přenášet jeden bajt dat přes sériový kabel, který má mezi 3 až 22 signály a běží rychlostí od 100 do 20k baud. Commonbaud sazby používané jsou 2,4 k, 9,6 k, 19,2 k, Délka kabelu může být až 50 stop. Vyšší přenosové rychlosti se používají, ale nejsou pokryty standardem, který stále fungujítěže např. 38400,57600 Baud (bits/s).
pro přenos bloku dat se jednotlivé bajty přenášejí jeden po druhém.,
tato část popisuje, jak RS232 funguje obecně bez popsáníhandshake metody-je popsán pouze nejjednodušší systém – To je themostužitečné a nejpravděpodobnější práce!.
signály Handshake potřebují extra level translation hardware (RS232chip s více I/O) a ačkoli jednoduché nejsou obvykle vyžadovány forPC pro provoz vývojové desky. Možná je budete potřebovat pro systémyjsou ovládání více zařízení, kde možná budete muset dočasně zastavitdata z jednotky. V tomto dokumentu je část o signálech handshake později.,
data jsou přenášena sériově v jednom směru přes pár vodičů. Datagoing out je označen jako Tx (indikující přenos), zatímco data přicházející do islabelled Rx (indikující příjem). Pro vytvoření obousměrného komunikačního systému je zapotřebí aminimum tří vodičů Tx, Rx a GND (ground). Přechod přes Tx& RX mezi oběma systémy umožňuje každé jednotce mluvit s opačným.
každý bajt může být přenášen kdykoli(pokud je přenášen předchozí bajt). Přenášený bajt není synchronizován s přijímačem-jedná se o asynchronní protokol, tj. neexistuje žádný hodinový signál. Z tohoto důvodu musí být software na každém konci komunikačního spojení nastaven přesně tak, aby každý čip sériového dekodéru mohl dekódovat sériový datový tok.
Poznámka: inverze úrovně signálu (logika 1IS – 12V a logika 0 je + 12v).,
přenosová rychlost
jak RS232 pracuje ve vztahu mezi přenosovou rychlostí a signální frekvencí.
přenosová rychlost je jednoduše přenosová rychlost měřená v bitech na second.It definuje frekvenci každého bitového období.
pro přenosovou rychlost 2400 (2400 bps) je frekvence 2400hz a bitperiod je 1/2400 nebo 416.6 us. Toto jsou informace, které používá přijímačzakryjte bity z datového proudu.,
Jak RS232 Funguje – Voltagelevels
Aby to fungovalo přes dlouhé kabely vysokého napětí jsou odesílány z eachtransmitter protože kvůli odpor kabelu napětí snižuje další thesignal má cestovat. SPECIFIKACE výstupního napětí je od + 5V do + 25V (přenos logické nuly) a-5V do-25V (přenos logické).
Poznámka: všechny signály v kabelu musí generovat stejné úrovně napětí, např. Takže budete potřebovat hodně level translator čipy pro fullinterface, ale na velmi krátké vzdálenosti budete potřebovat pouze TX a RX a zem.,
maximální napětí ±25V se nemusí používat a běžné napětí při použití je ±12V (výstup pomocí čipu MAX232 transceiveru).
značka (logická) je odeslána jako-12V a prostor (logická nula) je odeslán jako+12v, tj. logický smysl je obrácen.
Poznámka: skutečnost, že na sériovém portu existují vysoká napětí, umožňujepower zařízení, která byste normálně neočekávali, že na něm najdete. Ale musí čerpat jen velmi málo proudu.
úrovně napětí přijímače
na vstupu jsou minimální úrovně napětí definovány jako ±3V, tj., Chcete-li přijmoutpři logice zero musí být napětí větší než 3V a pro příjem logického napětí musí být napětí menší než-3V. to umožňuje ztráty, když signál pojede kabelem a poskytuje odolnost proti šumu, tj. jakýkoli falešný šum až do úrovně ±3V může být tolerován, aniž by to mělo žádný vliv na přijímač.
jak RS232 funguje-Thers232 Start Bit
protokol je popisován jako asynchronní, protože neexistují žádné hodiny transmittedat all. Místo toho se používá jiná metoda obnovy hodin.,
na začátku každého přenosu je přenášen startovací bit ukazující na přijímač, který má následovat bajt dat. Vzhledem k tomu, že nečinný stav linek RS232 je nízký (-12v), aby signalizoval počáteční stav, je linka nastavena vysoko(+12v) po dobu 1 bitů. To znamená, že přechod na lince je vždyckygenerován tak, aby přijímač věděl, kdy nastane 1. okraj datového burstoccurs.
start bit umožňuje přijímači synchronizovat data bitů, protože to vidět na náběžnou hranu signálu na lince., To znamená, že thereceiver může vytvořit vlastní vzorové hodiny uprostřed každého bitu – rozhodnout, zda je bit ve skutečnosti datová nula nebo datová.
jakmile je počáteční bit nalezen, přijímač ví, kde budou následujícíbity, protože je v rámci procesu inicializace dáno období vzorku (odvozené od rychlosti přenosu). To je důvod, proč musíte nastavit stejné nastavení obou přijímač a vysílač hardware, tj. přenosovou rychlost, počet stop bitů, počet datových bitů, paritní bit (on nebo off)., Pokud tak neučiníte, obvykle se nic nestane-nebo uvidíte na přijímači rubbishcharacters.
jak RS232 funguje-datové bity
následují počáteční bit. Obvykle bude sedm nebo osm databitů s LSB přenášených jako první. Důvod, proč si můžete vybrat mezi sedmi oreight je, že ASCII se skládá z abecedy v prvních sedmi bitů (stejně jako kontrolní znaky). Osmý bit rozšiřuje znakovou sadurafické symboly.
Pokud chcete přenášet pouze text, potřebujete pouze 7 bitů., To šetří abit a zvyšuje rychlost přenosu při přenosu velkých bloků dat.Jiné velikosti datových bitů jsou 5, 6, 8 a 9 bitů. Délka bitů je však obvykleset až 8 bitů-to se velmi běžně používá.
Poznámka: Pokud používáte RS232 k přenosu surových dat (binárních dat), budete potřebovat 8 datových bitů.,
jak RS232 funguje-paritní Bit
paritní bit RS232 je hrubý mechanismus detekce chyb.Můžete použít buď lichou paritu nebo dokonce paritu nebo vůbec žádnou (v diagramu je zahrnut paritní bit (mezi posledním datovým bitem a stop bitem-zde je parita označena jako „1“, což znamená, že existuje lichý početdatabitů. Takže parita v použití je lichá parita. Níže uvedený diagram (běžně používanýv práci mikrokontroléru) nepoužívá paritní bit.,
jednoduše vyhodnotí všechny datové bity a pro lichou paritu vrátí logiku, pokud existuje lichý počet datových bitů, které jsou nastaveny. Pro rovnoměrnou paritu je vyrovnanýpočet datových bitů, které jsou nastaveny, nastaví paritní bit.
na přijímači se paritní bit používá k zjištění, zda došlo k chybě během přenosu. Můžete to použít v softwaru přijímače čtením příznaku vmodul UART.
problém s detekcí chyb pomocí parity bit je, že pokud jsou dva bitsare v chybě, pak kontrola parity selže., Je to proto, že každá chyba zrušíúčinek druhého (z hlediska výpočtu parity). Jakékoli sudé číslo chyb způsobuje selhání detekce chyb.
nebude to problém v systému založeném na bench top (který nemá žádný kritický datatransfer). Přes krátký kabel např. 6ft pravděpodobně neuvidíte žádné chyby. Normálně nepoužívám žádnou paritu a není vůbec žádný problém.
pro systémy běžící na velké vzdálenosti nebo v hlučném prostředí by měl být použit bettersystem, např. přidání cyklické redundance do datových proudů před a po odeslání přes RS232., CRC vám umožní zkontrolovat a opravitpoměrně několik chyb bez opětovného přenosu dat.
jak RS232 funguje-Stopbit
stop bit RS232 pouze poskytuje dobu před tím, než může být přenášen bit start. Je to opačný smysl pro start bitand z tohoto důvodu umožňuje startovací bit být viděn tj. stop bit následoval bya start bit vždy dává stoupající okrajový signál pro detekci přijímačem.
Pokud nebyl stop bit, pak poslední bit v datovém proudu by byl bitparity (nebo datový bit, pokud parita není aktivní)., To by se změnilo v závislosti na odeslaných datech, takže pokud by měl stejný smysl jako počáteční bit, startbit nemohl být viděn!
stop bit lze nastavit výběrem z 1, 1.5 nebo 2 bitových období.
Na velmi vysoké přenosové rychlosti období od stop bit start bit(za předpokladu, že data jsou odesílána průběžně) bude velmi malý, např. pro přenosovou rychlost 115200 baud je čas na jeden bit je 1/115200 = 8.26 nás tak pomocí 2 bit období zvýší čas na 16,5 nás., To může umožnit přijímači detekovat start trochu snadněji, protože pokud je kapacita na lince průběhy budou vykazovat CR vzestup dobu pádu. Prodloužení časového období umožňuje větší kapacitní zatížení. Záleží však na použitém hardwaru přijímače.
typická nastavení
typická nastavení pro použití na ploše např. mezi mikrokontrolérem a emulátorem aterminal, jako je „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.,
„řízení průtoku“ ve výše uvedeném seznamu odkazuje na signalizační metodu řízení průtoku hardwaru, která používá signály DTR/DSR a RTS / CTS. Více o tom najdete zde.
Jak RS232 Funguje – Signál Úrovně
Na nějakém místě, možná budete chtít, aby se software UART možná zachránit codespace v aktuálním designu (možná nepotřebuješ dostávat část – jako ty jen výstup proměnné), nebo použít náhradní pin.
Poznámka: V Tutorialpages 12f675 najdete kód pro příjem a přenossoftware USART.,
Chcete-li jej vytvořit, potřebujete aktuální signální diagramy, které vidíte na pinu themicrocontroller (kupodivu je těžké je najít na webu).
následující diagram ukazuje časovaný 0V a 5V bitový proud na výstupním pinof mikrokontroléru. Dolní diagram zobrazuje přeložené úrovně signálůvýstupní ovladače RS232, které jsou přenášeny přes sériový kabel.
tyto vyšší úrovně jsou generovány odesláním logických úrovní 0-5V na atransceiver čip např., MAX232, který má zabudovaný diodový / kondenzátorový zesilovač, který zvyšuje úroveň signálu na požadované napětí RS232 ±12 voltů. Všimněte si, jak úroveň-12V odpovídá logickému “ 1 „a +12vúroveň odpovídá logickému „0“.
spodní křivky v bové diagram výše ukazuje RS232signal, které byste vidět pomocí osciloskopu na výstupu pohonu ofa překladatel čip jako MAX232. Všimněte si, že RS232 idlevoltage je-12v,
RS232 Clock
výše uvedený diagram také ukazuje RS232 timingdiagram, kde každá bitová perioda je 1 / frekvence, takže pro abaud rychlost 9600 bps (bitů za sekundu) je doba každého bitu 1/9600 or104.,166us toto je účinně doba hodin RS232 potřebná pro konkrétní použitíbaud.
RS232 průběh
ve schématu nad spodním průběhem ukazuje napětí RS232, které můžete očekávat na výstupu kolíku RS232 TX (také stejné úrovně na kolíku Rx)na osciloskopu. V některých čipechmaximální úroveň signálu nemusí být ±12v-maximální a minimální napětí by mohlo býtmaller (protože na krátké vzdálenosti nedojde k velkému poklesu napětí)., Na dlouhé vzdálenosti by měly být ±12V-na konci dlouhého kabelu napětí klesne přes odpor kabelu, ale musí být větší než ±3V na druhém konci.
kapacita kabelu také zpomalí stoupající a padající hrany – zaokrouhlení je vypnuto.
jak RS232 funguje-signály Handshake
signály Handshake jsou jednoduše metodou zastavení toku dat. Když součástí systému je práce nemusí být schopen přijmout více dataa, nikoli ztráta signály jsou použity na každém konci spojení můžeme udělat dobrý druhý konec k zastavení přenosu dat., Existují dva typy použitév RS232: hardware handshake a software handshake.
hardware handshake
- DTR – datový terminál připraven.
- DSR-soubor dat připraven.
- RTS-žádost o odeslání.
- CTS-jasné odeslání.
Pokud používáte tyto signály musí být přenášeny na theRS232 úrovních, tj. ±25V (nebo co to je napětí generované thetranslator čip např. ±12V tj. stejné jako TX výstup, takže budete potřebovat připojení RS232 čip s více úrovní překladatelů, jak přenášet a zobrazit signály.,
nezapomeňte, že protokol byl založen na modemu (zařízení DCE nebo DataCommunication) sedícím na stole a připojeném (přes RS232)k počítači (zařízení DTE nebo datový terminál) – řadič. K dispozici je i indikátor vyzvánění (RI), který signalizuje, když telefon zvoní, připojený přímo k telefonní lince, což by umožnilo automatickou modemdetekci příchozího datového proudu.
každý signál není ortogonální, což znamená, že neexistuje ekvivalentní signál vracející se opačným směrem., Tato část protokolu rostla přesčas, tak tam jsou různé využití těchto signálů, ale obecně platí následující:
zastavit zpracování dat z PC, tj. zastavit zdrcující modemu s data:
- RTS (PC) k modemu.
- CTS (modem) na PC.
počítač tvrdí, že RTS označuje, že chce přenášet data do modemu.
modem tvrdí, že CTS přijímá data z počítače.
Chcete-li zastavit data přicházející z modemu, tj. zastavit ohromující PC s daty:
- DTR (PC) na modem.
- DSR (modem) na PC.,
modem tvrdí, že DSR označuje, že chce přenášet data do počítače.
počítač tvrdí, že DTR přijímá data z modemu.
software Handshake
Pokud vidíte podmínky XON a XOFF jedná se o software flow controlmethod, kde přijímač přenáší speciální znak (v Asciisetu)říci vysílači zastavit odesílání dat. Když se přijímač objevil (vyprazdňuje se vyrovnávací paměť), může přenášet signál XON tak, aby vysílač znovu nastartoval.