16550 UART

16550 UART ( eng.  universell asynkron mottagare/sändare ) är en integrerad krets för att organisera kommunikation via ett seriellt gränssnitt , utvecklad av National Semiconductor Corporation . Det används ofta i IBM PC -kompatibla datorer, där det vanligtvis är anslutet till ett RS-232-gränssnitt.

Chipet tillverkades ursprungligen av National Semiconductor Corporation . Andra tillverkare producerade chips med liknande namn och varierande grad av kompatibilitet med originalchippet från National Semiconductor. Det 16550 registerkompatibla UART seriella gränssnittet finns vanligtvis på multifunktions I/O-kort för IBM PC :er och andra datorer.

Att ersätta det fabriksinstallerade 8250 UART-chippet har blivit en vanlig förbättringsprocedur för ägare av IBM PC, XT och kompatibla datorer efter att höghastighetsmodem började dyka upp på marknaden. Ägarna till dessa datorer fann att när den kommunicerade med hastigheter över 9600 baud över serieporten kunde datorn inte behandla en kontinuerlig ström av data utan att förlora tecken. Att ersätta 8250-chippet, som bara hade 1 byte av ingångsbuffert, med 16550 med omkonfigurering av programvaran för att fungera med ett nytt chip med FIFO -stöd löste detta problem: stabiliteten och tillförlitligheten hos anslutningen ökade.

Huvuddragen hos 16550:

16550 mjukvara och hårdvara är bakåtkompatibla med de tidigare 8250 UART och 16450 UART chipsen . Den senaste versionen av chippet, utvecklad av National Semiconductor 1995, har koden 16550D.

FIFO

Den största nackdelen med de tidigare 8250 och 16450 chipsen var att avbrott måste genereras för varje mottagen byte. Detta ökade avsevärt frekvensen av genererade avbrott. Det fanns också en stor sannolikhet för ett buffertspill - när en ny byte kommer innan den gamla läses. För att lösa problem byggdes en 16-byte FIFO-buffert in i 16550-seriens chips, med en avbrottsuppsättning efter att ha tagit emot 1, 4, 8 eller 14 byte.

Tyvärr hade den ursprungliga 16550 ett hårdvarufel som förhindrade åtkomst till denna buffert. I nästa implementering, 16550A, korrigerades detta fel. Många tillverkare använde inte det nya namnet och kodade det uppdaterade chippet med det tidigare namnet 16550.

Med hårdvaruflödeskontroll används också en FIFO-buffert, men detta är inte så kritiskt: i frånvaro av denna buffert går inte data förlorade, utan endast en fördröjning inträffar i deras överföring, det vill säga den faktiska överföringshastigheten minskar.

Se även