16550芯片概览

来源:互联网 发布:js去掉最后几个字符 编辑:程序博客网 时间:2024/06/05 06:06

1、基本概念

(1)串行通信:

①同步

需要时钟

简单来说,同步就意味着有等待,一个进程给另一个进程发信号以后,必须要等到这个进程有回应才能继续做下去,否则就一直等着(而异步就是发了信号就不管了)。

②异步

a、不需要时钟,通过起始位和结束位来标志信息收发的开始、结束。

b、为了保证准确性需要用奇偶校验:偶检验(当数据中有偶数个1,这个校验位为0,否则为1),奇校验(当数据中有偶数个1,这个校验位为1,否则为0)

(2)波特率

bit/s

r=f/(v*16)


2、基本工作原理

(1)八个地址线

(2)initialization and operation

①line control register

第0、1位决定数据长度

第2位:stop bit

第3位:允不允许奇偶校验

第4位:校验的类型(0表示奇检验)

stick位(第5位)是1,奇偶校验位不由数据本身决定,由程序员自己决定。

send break:发送断开信号。

最高位:enable divisor latch。为1,除数寄存器打开,写完除数波特率后关闭

②Baud rate generator


需要注意的是:r=f/(v*16)

③FIFO control register(用来输入输出)

最高两位决定接收的深度:接收1,4,8,14个后中断

④operation

status line register:给出了收发的状态、错误信息等。

bit0:是否收到数据

bit1:缓冲器满了还送数据进来,overrun

bit2:奇偶校验错误

bit3:接收到的停止位是错误的(例如:不是1而是0)

bit4:线路断开

bit5:为1,表示数据在holding register没有发送完

bit6:为1,表示发送完了

bit7:fifo错误

注意:编程的时候需要测试TH位(bit5)或者DR位(bit0)


3、应用(详见书)


原创粉丝点击