8250 UART

8250 UART (通用非同步收发传输器) 是一种设计用于进行串行通信的集成电路芯片。这种芯片最初由美国国家半导体发明。它曾在个人计算机与调制解调器，打印机等外设的通讯中被广泛使用。8250芯片具有片上可编程比特率生成器，允许其以外部晶体振荡器生成的时钟信号为基准产生各种比特率与其他设备通讯。  

这种芯片的型号以字母为后缀来标明修订版本。比如，在最初版本的8250发布之后，8250A和8250B马上紧随其后用于修正Bug。  早期的8250在第一次发送时如果CTS线没有被同步下拉则有可能导致一个字符被重复发送。

出于其优异的市场表现，其他厂商很快推出了兼容型号的芯片。 比如西部数据以异步通信介面适配器(ACIA)和异步通讯组件(ACE)的名义推出了WD8250系列8250兼容芯片。

8250的改进版本16450(A)被广泛用于IBM PC/AT系列个人计算机，在传输速率和功能方面做出了改善。   

随着OS/2， Windows NT 以及各种 UNIX 这类的多任务操作系统进入个人电脑，8250每个字符触发一次的高频中断成为了问题，因此16550(A)内置了16字节的先进先出数据缓存器用于收集收到的数据。   

之后的各个改进型号则大大的增强了速率与性能。现在，8250类的UART控制器已经被嵌入Super I/O甚至片上系统芯片，成为计算机系统的一部分。

功能 
对外接口包括:
SOUT, SIN, /RTS, /DTR, DSR, /DCD, /CTS, /RI

时钟接口包括:
XIN, XOUT, /BAUDOUT, RCLK

配置及数据接口包括:
D0..D7, /RD, /WR, INTRPT, MR, A0, A1, A2, ADS, WR, RD, /CS2, CS1, CS0

中断线在IER位被置位的情况下会在以下事件发生时被拉高: 接收线被触发, 接收数据完成 发送数据为空,MODEM状态触发。

并且在进行了正确的中断服务或者被重置(通过MR)时复位到低电平。

参考

外部链接 

 Serial and UART Tutorial
 archive.pcjs.org: National Semiconductor PC16450C/NS16450, PC8250A/INS8250A Universal Asynchronous Receiver Transmitter (datasheet, dated 1990)

集成电路