串行接口芯片16550
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2,线路状态寄存器(LSR:Line Status Register):只读存储器, 用来向CPU提供数据接收和发送时的状态。这些状态可以被CPU查 询,也可以触发中断请求。 LSR格式
D7 ER 错误 标志 D6 D5 D4 BI 中止识别 指示 D3 FE 接收格式 错 D2 PE 接收奇 偶错 D1 OE 过载出 错 D0 DR 接收数据 准备
串行接口的基本结构如下(续):
⑷ 输入缓冲寄存器:它从输入移位寄存器中接收并行数 据,然后由CPU取走。
⑸ 控制寄存器:它接收CPU送来的控制字,由控制字的 内容,决定通信时的传输方式以及数据格式等。例如采用 异步方式还是同步方式,数据字符的位数,有无奇偶校验, 是奇校验还是偶校验,停止位的位数等参数。 ⑹ 状态寄存器:状态寄存器中存放着接口的各种状态信 息,例如输出缓冲区是否空,输入字符是否准备好等。在 通信过程中,当符合某种状态时,接口中的状态检测逻辑 将状态寄存器的相应位置“1”,以便让CPU查询。
TEMT THRE 发送器 发送保 空 持寄存 器
0---
0---发
0---等 0--- 无中
止状态
0---正常
1---出错
0---正
常
0---正常 0---数据未
准备好
无错 送器不 待发送 误 空 器 1--FIFO 1---发 1---发 至少 送器空 送器就 绪 有一 个错 误
1---出错 1---出
DLAB 0 0 1 1 X X X X X X A2 A1 A0 被访问的寄存器 000 接收数据寄存器RBR(读); 发送保持寄存器THR(写) 001 中断允许寄存器IER 000 波特率除数寄存器(低字节) 001 波特率除数寄存器(高字节) 010 011 100 101 110 111 中断识别寄存器IIR(只读); FIFO控制器FCR(只写) 线路控制寄存器LCR MODEM控制寄存器MCR 线路状态寄存器LSR MODEM状态寄存器MSR 暂存
时钟信号。XIN和XOUT是16550的主时钟引脚, 晶体振荡器可连接在它们两者之间,或者XIN 与外部时钟源连接。BAUDOUT输出是由发送 器的波特率发生器产生的时钟信号,它常与 RCLK输入连接,产生与发送器相等的接收器 时钟。
与通信设备连接的信号。请求发送RTS、允许 发送CTS、数据终端准备好DTR、数据装置准 备好DSR、振铃RI、载波检测DCD、串行数据 信号RxD和TxD。这些信号经过EIA驱动器驱 动后与9脚D型连接器相连。
功能1 实现串行和并行数据格式之间的转换。 功能2 实现数据缓冲功能。 功能3 控制功能。接收CPU的命令,输出接口的状 态等。
串行I/O接口
二、串行接口的基本结构
串行接口的基本结构如下:
⑴ 输出缓冲寄存器:接收CPU从数据总线上送来的 并行数据,并加以保存。 ⑵ 输出移位寄存器:它接收从输出缓冲器送来的并行 数据,以发送时钟的速率把数据逐位移出,即将并行 数据转换为串行数据输出。 ⑶ 输入移位寄存器:它以接收时钟的速率把出现在 串行数据输入线上的数据逐位移入,当数据装满后, 并行送往输入缓冲寄存器,即将串行数据转换成并 行数据。
读写控制信号。16550有两对读写控制信号,两对信号功能
完全相同,只不过是信号电平不同而已。RD、WR为高电平有 效,!RD、 !WR为低电平有效。
中断控制和复位信号。16550具有中断控制和 中断优先级处理能力,INTR引脚产生高电平 有效地中断请求信号。PC中,使用OUT2来控 制中断请求信号INTR的输出,而OUT1没有使 用。MR是复位信号,通常与系统RESET信号 连接,在系统复位时对16550复位。
WLS0
字符长度选择
1---允许 0---禁止
1---中 1---附加1 止 位 0---正 0---不附 常 加
11---偶校验 01---奇校验 X0---无校验
0---1位停止 位 1---1.5或2位 停止位 根据D1 D0区 分
00---5位 01---6位 10---7位 11---8位
类型1中断 类型2中断 :发送保Leabharlann :接收缓 器空(数据 冲区满(数
发送完毕)
1---允许 0---屏蔽
据接收完毕 )
1---允许 0---屏蔽
只要IER寄存器的相应位写“1”就允许中断请求,写“0”就禁止中 断请求
6,发送保持寄存器(THR:Transmit Holding Register):该寄存器寄存CPU写入的一字节数 据,在发送移位寄存器空闲时,自动转存到发 送移位寄存器。按照编程制定的帧格式,发送 移位寄存器为每一个数据添加起始位、校验位 和停止位,转换成串行数据,在发送器时钟的 控制下,经SOUT端一位一位地发送出去。 7,接收缓冲寄存器(RBR:Receive Buffering Register):在接收器时钟的控制下,接收移 位寄存器从SIN端子接收的一帧数据,去掉起 始位、校验位和停止位,转换成并行数据送接 收缓冲寄存器等待cpu读取。
可编程串行接口芯片16550
1 串行接口系统概述 2 可编程串行接口芯片16550
武必和
1 串行接口系统概述
串行通信方式用于远程通信。
数据在单条传输线上,一位接一位地按顺序传送 的方式称为串行通信。串行通信主要优点是节省 通信线路,但具有数据传输效率低的特点。因此, 串行通信适合于远距离传送,可以从几米到数千 公里。对于长距离、低速率的通信,串行通信往 往是唯一的选择。
4,中断允许寄存器(IER:Interrupt Enable Register):16550有4 级中断,按优先级从高到低依次为:接收出错中断、接收缓冲 器满中断、发送保持寄存器空中断和MODEM输入状态改变中 断。这些中断的允许或屏蔽由IER来控制 D7 0 D6 D5 D4 0 0 0 I0 E 类型0中断 : MODEM 状态改变 1---允许 0---屏蔽 D3 IER格式 D2 I3 E 类型3中断 :接收出错 1---允许 0---屏蔽 I1 E D1 I2 E D0
8,MODEM控制寄存器(MCR)。控制芯片的4个管脚的输出和芯 片的环路检测。MCR的格式如表7所示。 MCR格式 D7 0 D6 0 D5 0 D4 环路检 测 D3 输出2 D2 输出1 1--OUT1 引脚有 效 D1 请求发 送 D0 数据终端就 绪
0---正常 1--OUT2 收发 引脚有 1---内部 效 自循环
数据信号D7---D0:8根数据线和CPU数据总线连接。 与地址有关的信号:CS0、CS1、!CS2、!ADS。当
CS0=CS1=1、!CS2=0时,16550可被CPU访问,并由A2--- A0 选择要访问的寄存器。地址选通信号!ADS为低电平时,锁存 三个片选信号以及A2--- A0的输入状态。
内存映射
DUART有两套完整的寄存器集合(一套为UART0服务 ,一套为UART1服务)。 这两个UART完全相同,只是 UART1的寄存器偏移地址在0x0_4500(本地) UART2的寄存器偏移地址在0x0_4600(本地) 实际调用中,各个寄存器地址:基址寄存器+偏移地址 由于DUART的每个寄存器只有一个字节,所以从第一个 寄存器THR/RBR开始按顺序以后每个寄存器地址+1
串行I/O接口
串行通信方式
异步方式 串行异步接口 通用异步收发器 同步方式 串行同步接口 通用同步收发器
串行I/O接口
一、串行接口的基本功能
串行接口与输入输出设备之间以串行方式传送数据, 与CPU之间以并行方式传送数据。
CPU
并行
串行 接口
串行
外部 设备
串行I/O接口
串行接口的基本功能如下:
以读方式访问RBR, 以写方式访问THR
波特率除数寄存器的高字节TLH与中断允许寄存器
IER使用相同的地址; 波特率除数寄存器的低字节 TLL与接收数据寄存器RBR和发送保持寄存器THR 使用相同的地址,为了区分,借用线路控制寄存器 LCR的最高位DLAB位来区分
16550内部寄存器地址及其选择方法
串行接口芯片16550
PC微机异步通信适配器是微机与微机、微机与 MODEM及微机与外设之间进行异步通信的接口。 其核心是UART。 常见的UART主要有INS8250、PC16450和 PC16550。此外,还有带更大缓冲的UART,称为 PC16650和PC16750。 逻辑结构如下图:
D[7:0]
波特率=(1/16) × (系统时钟频率/分频值) 因此,波特率发生器输出的频率是波特率的16倍。 16为分频系数(即每16个基准时钟频率才会发送一位二进制数据) 注意: 系统基准时钟频率,波特率发生器频率,波特率 关系
16550芯片输入的基准时钟频率为1.18432MHz
常用波特率常数
速率(b/s) 2400 4800 9600 19200 38400 57600 115200 波特率高8位 (写入TLH) 00H 00H 00H 00H 00H 00H 00H 波特率低8位 (写入TLL) 30H 18H 0CH 06H 03H 02H 01H
波特率发生器 除数锁存器(低位)DLL 选 择 和 控 制 逻 辑
BOUDOUT DTR RTS OUT1 OUT2 CTS DSR DCD RI
Modem控制寄存器 MCR Modem状态寄存器 MSR
Modem 控制 逻辑
中断允许寄存器IER 中断识别寄存器IIR 中断控制逻辑
16550引脚简介
1,线路控制寄存器(LCR:Line Control Register) 用于指定异步串行通信的数据格式 表 LCR格式
D7 D6 D5 D4 D3 D2 D1 D0
DLAB
除数寄存器 访问允许
SB
中止 设定
SP
附加奇偶 标志位选 择
EPS
奇偶 校验 选择
PEN
奇偶 校验 允许
STB
停止位选择
WLS1
?
异步传输7位ASCII码,如果需要数据传输速率为240字符/秒 ,使用1位奇偶校验位和1位停止位,则: 1)波特率应该是多少? 2)有效数据位传输位是多少? 3)传输效率是多少?
解: 1)波特率是 (7位数据位+1位起始位+1位校验位+1位停止位)×240 =2400b/s 2)有效数据位传输位是 :7×240=1680b/s 3)传输效率是:1680/2400=70%
1---RTS 1---DTR信 信号有 号有效 效
9, MODEM状态寄存器(MSR)。反映UART与通信设备 (如MODEM)之间联络信号的当前状态以及这些信号的 变化情况。
数据就绪信号。RxRDY和 TxRDY是接收器和 发送器的就绪信号,常用于DMA方式控制数据 传送。
16550内部有12个8位寄存器,但是只有8个端 口地址,用8个地址表示12个寄存器,所采取 的措施如下:
发送保持寄存器THR 和 接收数据寄存器RBR 共用
一个地址,以读写信号来加以区分。
错
1---进入
中止状态
1---FIFO
或接收缓 冲器中有 数据
波特率除数寄存器分为高字节寄存器TLH和低字节寄存器TLL
3,波特率除数寄存器(TLH与TLL)
该寄存器用于存放除数寄存器值,从而确定波特率。除数寄存器 值不同,则波特率不同。(分频系数:在基准时钟频率的基础上所 作的分频。) 除数寄存器值(分频值)=基准时钟频率÷(16×波特率)
数 据 总 线 缓 冲 器
接收缓冲寄存器RBR
接收移位寄存器 接收同步控制
RXD RCLK
线路控制寄存器LCR
接收状态寄存器LSR
发送同步控制 发送移位寄存器 TXD
发送保持寄存器THR DLAB CS0 CS1 CS2 A2 A1 A0 ADS TXRDY DDIS RD RD WR WR MR XIN XOUT 除数锁存器(高位)DLH
串行通信格式
字符
起始位 1 0 数据位 校验位 停止位 空闲位 1
0/1 0/1
…
0/1 0/1
1
1
低位
高位
起始位——每个字符开始传送的标志, 数据位——数据位紧跟着起始位传送。 校验位——用于校验是否传送正确;可 停止位——表示该字符传送结束。停止 空闲位——传送字符之间的逻辑1电平, 起始位采用逻辑0电平 由5~8个二进制位组成,低位先传送 选择奇检验、偶校验或不传送校验位 位采用逻辑1电平,可选择1、1.5或2位 表示没有进行传送