16550 UART

integrovaný obvod

16550 UART (univerzální asynchronní přijímač/vysílač, anglicky universal asynchronous receiver/transmitter) je integrovaný obvod navržený pro realizaci rozhraní pro sériovou komunikaci. Před nástupem USB se často používal pro sériové porty osobních počítačů IBM PC a kompatibilních, ve kterých byl obvykle propojen na RS-232 rozhraní pro připojení modemů, sériových myší, tiskáren a podobných periferních zařízení.

Obvod 16550 firmy Exar Corporation

Obvod navrhla a vyráběla firma National Semiconductor. Podobně označené obvody s různou úrovní kompatibility s původní obvodem vyrábí mnoho jiných výrobců. Funkce UART registrově kompatibilní s 16550 je obvykle součástí multifunkčních I/O karet pro počítače kompatibilní s IBM PC a může být zabudována do základních desek jiných kompatibilních počítačů.

Náhrada původních sériových rozhraní s obvody 8250 UART (nainstalovaných z výroby) byla obvyklým upgradem prováděným majiteli počítačů IBM PC, XT a kompatibilních počítačů, když začaly být dostupné vysokorychlostní modemy. Při rychlostech vyšších než 9600 baud nebyly původní obvody schopné zpracovávat spojitý tok dat bez ztráty znaků. Výměna obvodů 8250 (které měly pouze jednobytovou vyrovnávací paměť pro přijatá data) obvody 16550 a případná aktualizace systémového softwaru, aby systém začal využívat vyrovnávací paměti typu FIFO nového obvodu, zlepšila spolehlivost a stabilitu vysokorychlostních spojení.

Vlastnosti editovat

Mezi hlavní vlastnosti obvodu 16550 patří:

  • Schopnost konvertovat data mezi sériovým a paralelní tvarem pomocí posuvných registrů.
  • Vysílací a přijímací rychlost je řízena generátorem přenosové rychlosti na čipu.
  • Softwarově řízené obvody sériového rozhraní pro řízení externích modemů.
  • Funkce přerušení pro vyžádání obsluhy mikroprocesorem.
  • Vyrovnávací paměť typu FIFO pro přijatá i vysílaná data; to dává systému serveru více času na odpověď na přerušení generované obvodem UART bez ztráty dat.

Po hardwarové i softwarové stránce je rozhraní obvodu 16550 zpětně kompatibilní se staršími obvody 8250 UART a 16450 UART. Aktuální verze (od roku 1995) firmy National Semiconductor nese označení 16550D.

16550 FIFO editovat

 
NS16550AFN

Jednou z nevýhod dřívějších obvodů 8250 UART a 16450 UART bylo, že přerušení se generovalo při přijetí každého bytu. Tím byla frekvence přerušení příliš vysoká především při vyšších přenosových rychlostech. Horší je, že s jednobytovou vyrovnávací pamětí existuje skutečné riziko, že přijatý byte bude přepsán, jestliže se obsluha přerušení zpozdí. Pro zabránění těmto problémům řada 16550 UART obsahuje 16bytovou vyrovnávací paměť s přístupem FIFO programovatelným přerušení při 1, 4, 8 nebo 14 bytech.

Původní obvody 16550 obsahovaly chybu, která bránila používání interního FIFO. National Semiconductor začal později vyrábět obvod 16550A, který tuto chybu opravil. Ne všichni výrobci však převzali toto označování, a tak obvod se stále označuje jako 16550.[1]

Podle jiných zdrojů byla chyba FIFO opravena pouze u verze 16550AF, ale verze A je stále vadná. (Verze C a CF jsou podle tohoto zdroje také opravené.) Verze 16550AFN přidala možnost DMA přenosů.[2]

16550 také zahrnuje vysílací FIFO, i když tato vlastnost je není tak kritická jako zpoždění v obsluze přerušení, protože vede pouze ke snížení rychlosti přenosu dat, ne však ke ztrátě dat.

Odkazy editovat

Reference editovat

V tomto článku byl použit překlad textu z článku 16550 UART na anglické Wikipedii.

  1. What are UART and How Do They Affect Performance?
  2. Richard W. D. Nickalls; R. Ramasubramanian. Interfacing the IBM-PC to Medical Equipment: The Art of Serial Communication. [s.l.]: Cambridge University Press, 1995. Dostupné online. ISBN 978-0-521-46280-8. 

Související články editovat

Externí odkazy editovat