USART
Z Wikipedie, otevřené encyklopedie
Tento článek potřebuje úpravy. Můžete Wikipedii pomoci tím, že ho vylepšíte. Jak by měly články vypadat, popisuje stránka Vzhled a styl, konkrétní problémy tohoto článku mohou být specifikovány na diskusní stránce.
Synchroní a asynchroní seriové rozhraní USART (Addressable universal Synchronous Asynchronous Receiver Transmitter) je jeden ze dvou seriových I/O modulů používáných v PICmicro® MCU. Někdy je nazýván též seriové komunikační rozhraní (SCI - Serial Communications Interface). Nastavení pinů pro vstup a výstup v mikropočítači se provádí prostřednictvým nastavení v registrech SPEN (bit RCSTA<7>) a TRISC<bity 7:6>.
Obsah |
[editovat] Módy USARTu
USART může být nakonfigurován v následujících módech:
- Asynchronní (full duplex) – V tomto módu je nakonfigurován jako plně duplexní asynchronní systém, který může komunikovat s periferiemi jako jsou např. CRT terminály, osobní počítače (PC) atd..
- Synchronní (half duplex) – Druhá možnost je nakonfigurovat USART jako „polodulpexní“ synchronní systém, který může komunikovat např. s perifériemi jako jsou A/D a D/A převodníky, seriová EEPROM atd. Tento synchronní mód můžeme nastavit jako - Master nebo Slave.
Synchronní mód používá hodinovou a datovou linku, ale v asynchronním není tento hodinový signál použit. Jeden pin je použit pro vysílání a jeden pro příjem. Obě oparace mohou probíhat nezávisle na sobě. A mohou dokonce probíhat zároveň – proto mluvíme o asynchronním módu jako o plně duplexním. Nejčastější použití USARTu v asynchronním módu je pro komunikaci s PC prostřednictvím seriového portu a protokolu RS-232.
USART můžeme nastavit pro vysílání (transmit), resp. příjem (receive) v osmi nebo devíti bitovém režimu v registru TXSTA v bitu TX9, resp. v registru RCSTA v bitu RX9.
[editovat] Způsob odeslání bytu
Jakmile jsou data zapsána do registru TXREG, všechny bity jsou přepsány do registru pro vysílání (Transmit Shift Register). A odtud jsou dále přeposlány na TX pin, přičemž je jim přiřazen na začátek start a na konec stop bit. Použití speciálního registru pro vysílání umožňuje načítání nových dat do registru TXREG už během vysílání dat předchozích. To maximálně zefiktivňuje komunikaci.
[editovat] Způsob příjmutí bytu
Po detekci star bitu na pinu RX, se další data bit po bitu přesunou do registru pro příjem (receive shift register). Po přesunutí posledního bitu se zkontroluje stop bit a data se pošlou do bufferu, který je předá registru RCREG, pokud je prázdný. Tento buffer a registr RCREG jsou dva elementy FIFO. Separatní použití registru pro příjem a FIFO bufferu poskytuje softwaru bežícímu na PICmicro® MCU čas k přečtení doručených dat bez rizika přepsání těchto dat dalšími doručenými. Je tedy možné obdržet první dva byty a dále přijímat třetí byte ještě předtím, než jsou data „vytažena“ z registru RCREG.
[editovat] Asynchroní 8 bitový přenos
USART vysílá a přijímá na TX a RX pinech PICmicro® MCU logické úrovně signálů. Signál je na vysoké úrovni, pokud neprobíhá vysílání ani příjem a klesne na nízkou úroveň pokud začne vysílání. Tento pokles při vysílání je pro synchronizaci příjemce pro příjem dat. Tento signál zůstane na nízké úrovni během celého start bitu a dále je jeho úroveň podle posílaných dat. První se posílá byt nejnižší, poslední nejvyšší bit je následován stop bitem, který je opět na vysoké úrovni. Poté, co je stop bit kompletní, může začít přenos dalšího bytu. Na obrázku je toto vyznačeno tečkovaně.
[editovat] Převodíky úrovní
USART používá pětivoltovou logickou úroveň. To znamená, že pokud je signál okolo 5-ti voltů jedná se o úroveň vysokou (high) a pokud je okolo nuly, bude úroveň nízká (low). Pokud PICmicro® MCU komunikuje s přístroji, které potřebují jiné úrovně signálů, použivá se konvertor signálů, který převádí tyto úrovně do požadovaných velikostí. Firma Microchip doporučuje svůj konvertor TC232, ale na trhu je více podobných součástek – např. HIN232 od společnosti Intersil nebo jeden z nejpoužívanějších - Integrovaný obvod MAX232 vyráběný firmou Texas Instruments.
[editovat] Registry používané pro nastavení USARTu
- SPBRG registr slouží k nastavení baudové rychlosti přenosu.
- TXSTA a RCSTA registry se používají ke kontrole vysílání a příjmu.
- TXREG a RCREG registry jsou pro zápis vysílaných a přijímaných dat.
- PIR1 a PIE1 registry obsahují bit pro nastavení flagu interruptu a aktivační bit pro povolení generování interruptu USARTu. Interrupt je používán, když je PICmicro právě zaměstnán a data pro poslání nebo příjmutí potřebují běžet na pozadí. Flag interruptu není používán jen pro přerušení, ale také pro určení, jestli data mohou být vysílána, resp. přijímána.
[editovat] Externí odkazy
- Microchip
- Intersil
- Texas Instruments
- umístění 1 - podrobná dokumentace k integrovanému obvodu TC232 (v anglickém jazyce)

