16550 UART ( eng. receptor/transmițător asincron universal ) este un circuit integrat pentru organizarea comunicațiilor printr- o interfață serială , dezvoltat de National Semiconductor Corporation . Este adesea folosit în computerele compatibile cu IBM PC , unde este de obicei conectat la o interfață RS-232.
Cipul a fost produs inițial de National Semiconductor Corporation . Alți producători au produs cipuri cu nume similare și cu diferite grade de compatibilitate cu cip-ul original de la National Semiconductor. Interfața serială UART compatibilă cu registrul 16550 se găsește în mod obișnuit pe plăcile I/O multifuncționale pentru PC-urile IBM și alte computere.
Înlocuirea cipului 8250 UART instalat din fabrică a devenit o procedură obișnuită de îmbunătățire pentru proprietarii de PC IBM, XT și computere compatibile după ce modemurile de mare viteză au început să apară pe piață. Proprietarii acestor computere au descoperit că atunci când comunică la viteze de peste 9600 baud prin portul serial, computerul nu putea procesa un flux continuu de date fără a pierde caractere. Înlocuirea cipului 8250, care avea doar 1 octet de buffer de intrare, cu 16550 cu reconfigurarea software-ului pentru a funcționa cu un cip nou cu suport FIFO a rezolvat această problemă: stabilitatea și fiabilitatea conexiunii au crescut.
Principalele caracteristici ale 16550:
Software-ul și hardware-ul 16550 sunt compatibile cu cipurile anterioare 8250 UART și 16450 UART . Cea mai recentă versiune a cipului, dezvoltată de National Semiconductor în 1995, are codul 16550D.
Principalul dezavantaj al cipurilor 8250 și 16450 anterioare a fost că trebuiau generate întreruperi pentru fiecare octet primit. Acest lucru a crescut foarte mult frecvența întreruperilor generate. A existat, de asemenea, o probabilitate mare de depășire a memoriei tampon - când sosește un nou octet înainte de a-l citi pe cel vechi. Pentru a rezolva problemele, un buffer FIFO de 16 octeți a fost construit în cipurile din seria 16550, cu o întrerupere setată după primirea a 1, 4, 8 sau 14 octeți.
Din păcate, originalul 16550 a avut o eroare hardware care a împiedicat accesul la acest buffer. În următoarea implementare, 16550A, această eroare a fost corectată. Mulți producători nu au folosit noul nume, codificând cipul actualizat cu fostul nume 16550.
Cu controlul fluxului hardware, se folosește și un buffer FIFO, dar acest lucru nu este atât de critic: în absența acestui buffer, datele nu se pierd, ci apare doar o întârziere în transmiterea lor, adică rata de transmisie reală scade.
UART | |||||||
---|---|---|---|---|---|---|---|
Straturi fizice |
| ||||||
Protocoale |
| ||||||
Domenii de utilizare | |||||||
Implementări |
|