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、应用(详见书)
本文介绍了16550芯片的基本概念,包括串行通信的同步与异步方式,以及波特率的定义。详细阐述了16550芯片的工作原理,涉及地址线、初始化和操作过程,如line control register的功能,Baud rate generator的计算,以及FIFO control register在输入输出中的作用。同时,总结了status line register中各种状态位的意义,用于检测通信中的错误和状态。最后提到了16550芯片在实际应用中的情况。

2万+

被折叠的 条评论
为什么被折叠?



