Invia.cz
Last minute
Tunisko
Dovolená v Chorvatsku
Pojeďte do Egypta
Bulharsko
Vydělávejte peníze s INVIA.CZ
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 |
USART může být nakonfigurován v následujících módech:
Synchroní mód používá hodinovou a datovou linku, ale v asynchroní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 asynchroním módu jako o plně duplexním. Nejčastější použití USARTu v asynchroní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.
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.
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 skontroluje 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.
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ě.
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.