USART
Author
Albert FloresUSART je zkratka pro Universal Synchronous Asynchronous Receiver Transmitter, což je standardní sériová komunikační sběrnice používaná v mikrokontrolérech a dalších zařízeních pro přenos dat. USART kombinuje funkce synchronního a asynchronního přenosu dat. Podporuje přenos jednoho bitu za časovou jednotku pomocí synchronního přenosu a také asynchronní přenos s příznakem startu a stopu. USART je schopen přenášet data různými rychlostmi a podporuje různé formáty dat, včetně řízení toku dat. USART je velmi důležitým prvkem pro komunikaci mezi mikrokontrolérem a dalšími periferními zařízeními, jako jsou senzory, displeje nebo další mikrokontroléry.
Zapojení USARTu na PIC16F877 Synchronní / asynchronní sériové rozhraní USART (Universal Synchronous / Asynchronous Receiver and Transmitter). Jde o zařízení pro sériovou komunikaci, které lze nastavit buď pro asynchronní režim (SCI - např. pro linky RS232 resp. RS485), anebo pro synchronní režim (běžně označovaný jako SPI). Rozšířenou implementací byl např. integrovaný obvod USART 8251 firmy Intel, jako jeden ze sériových I/O modulů je USART implementován v některých mikrokontrolérech řady PICmicro® MCU a většině MCU firmy Atmel.
Asynchronní přenos
Asynchronní 8bitový přenos USART vysílá data na pinu označovaném obvykle jako TX (transmit), přijímá na pinu RX (receive). +more Klidová úroveň signálu je log. 1 (pokud neprobíhá vysílání ani příjem). Vysílání je zahájeno změnou hodnoty signálu na log. 0 po dobu jednoho bitu (tzv. start-bit). Následovně se posílá nejnižší datový bit, poslední nejvýznamnější datový bit je následován stop bitem, který má opět úroveň log. 1. Po odvysílání stop-bitu může začít přenos dalšího bajtu. Na obrázku je to vyznačeno tečkovaně.
Blok USART v mikrokontrolérech PICmicro®
Nastavení pinů pro vstup a výstup v mikropočítači se provádí prostřednictvím nastavení v registrech SPEN (bit RCSTA) a TRISC.
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. +more * Synchronní (half duplex) - Druhá možnost je nakonfigurovat USART jako „poloduplexní“ synchronní systém, který může komunikovat např. s perifériemi jako jsou A/D a D/A převodníky, sériová 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ě operace 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 sériového portu a protokolu RS-232. USART můžeme nastavit pro vysílání (transmit), resp. příjem (receive) v osmi nebo devítibitovém režimu v registru TXSTA v bitu TX9, resp. v registru RCSTA v bitu RX9.
Vyslání bajtu
Blokový diagram pro odeslání 8 bitů Jakmile jsou data zapsána do registru TXREG, všechny bity jsou přepsány do registru pro vysílání (Transmit Shift Register). +more 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ě zefektivňuje komunikaci.
Příjem bajtu
Blokový diagram pro příjem 8 bitů Po detekci start bitu na pinu RX, se další data bit po bitu přesunou do registru pro příjem (receive shift register). +more Po přesunutí posledního bitu se zkontroluje stop bit a data se pošlou do bufferu, který je předá registru RXREG, pokud je prázdný. Tento buffer a registr RXREG jsou dva elementy FIFO. Separátní 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 bity a dále přijímat třetí bite ještě předtím, než jsou data „vytažena“ z registru RXREG.
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. +more * 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í příznaku přerušení a aktivační bit pro povolení generování interruptu USARTu. Příznak přerušení lze využít také pro určení, zda je linka volná pro příjem / vysílání dat.
Externí odkazy
[url=http://microchip. com]Microchip[/url] * [url=https://web. +morearchive. org/web/20100329192905/http://www. intersil. com/]Intersil[/url] * [url=http://www. ti. com/]Texas Instruments[/url] * [url=http://www. datasheetcatalog. org/datasheet/TelComSemiconductor/mXusvqu. pdf]Dokumentace TC232[/url] - podrobná dokumentace k integrovanému obvodu TC232 (v anglickém jazyce).