可编程接口(含串行)
合集下载
微机原理第八章 串行通信及串行接口

1. 可编程串行接口典型结构
✓状态寄存器
✓控制寄存器
✓数据输入寄存器--串行输入/并行 输出移位寄存器
✓数据输出寄存器--并行输入/串行 输出移位寄存器
2. 串行通信基本概念
在串行通信时,数据和联络信号使用同一条信号线 来传送,所以收发双方必须考虑解决如下问题: ❖ 波特率---双方约定以何种速率进行数据的发送和接收 ❖ 帧格式---双方约定采用何种数据格式 ❖ 帧同步---接收方如何得知一批数据的开始和结束 ❖ 位同步--- -接收方如何从位流中正确地采样到位数据 ❖ 数据校验--- -接收方如何判断收到数据的正确性 ❖差错处理---收发出错时如何处理 收发双方必须遵守一些共同的通信协议才能解决上述问题。
串行通信适于长距离、中低速通信
并行通信
将数据的各位同时在多根并行传输线上进行传输。
D0 0
D1 1
D2 0
源
D3 1
D4 D5
0 1
D6 1
D7 0
D0 D1 D2 D3 目 D4 的 D5 D6 D7
数据的各位同时由源到达目的地 → 快 多根数据线 → 短距离(远程费用高)
并行通信适于短距离、高速通信
工作方式下。
(8)错误检测 • 传输错误 • 覆盖错误
二、 接口与系统的连接
从结构上,可把接口分为两个部分,其中和 外设相连的接口结构与具体外设的传输要求及数 据格式相关,因此,各接口的该部分互不相同; 而与系统总线相连的部分,各接口结构类似,一 般都包括:
1. 总线收发器和相应的逻辑电路
2. 联络信号逻辑电路
接收端需要一个时钟来测定每一位的
时间长度。
波特率/位传输率---每秒传输的离散信号 的数目/每秒传输的位数。 波特率因子---
08 常用接口芯片-微机原理与接口技术(第3版)-牟琦-清华大学出版社

8255的内部结构如图8.2所示。
清华大学出版社
图8.2 8255内部结构
8.1 可编程并行接口8255
1) 面向CPU的接口电路 (1) 数据总线缓冲器:是一个三态双向的8位缓冲器,是8255与系统数据
总线的接口。接口的数据线D7~D0直接与CPU数据总线相连, 以实现CPU与8255接口之间的信息传递。CPU向8255写入控制 字或从8255中读状态信息以及所有数据的输入和输出,都需要 通过数据缓冲器来进行传递。
清华大学出版社
8.1 可编程并行接口8255
(2) 此时接口也可向CPU发出一个中断请求信号,同上面的输入过程相 同,CPU可以用软件查询方式或中断的方式将CPU中的数据通过接 口输出到外设中。当输出数据送到接口的输出缓冲寄存器后,再输 出到外设。
(3) 与此同时,接口向外设发送一个启动信号,启动外设接收数据。外设 接收到数据后,向接口回送一个“输出回答”信号。
清华大学出版社
8.1 可编程并行接口8255
并行接口中包括状态信息、控制信息和数据信息,这些信息分别存放 在状态寄存器、控制寄存器和数据缓冲寄存器中。 1) 状态寄存器:用来存放外设的信息,CPU通过访问这个寄存器来了解某
个外设的状态。 2) 控制寄存器:CPU对外设的操作命令都寄存在控制寄存器中。 3) 数据缓冲寄存器:缓冲器是用来暂存数据的。这是因为外设与CPU交换
(2) 外设接到回答信号后,将撤销“输入数据准备好”信号。在接口 收到数据后,它会在状态寄存器中设置“准备好输入”状态位,以 便CPU对其进行查询。
清华大学出版社
8.1 可编程并行接口8255
(3) 接口向CPU发出一个中断请求信号,这样CPU可以用软件查询方 式或中断的方式将接口中的数据输入到CPU中。
清华大学出版社
图8.2 8255内部结构
8.1 可编程并行接口8255
1) 面向CPU的接口电路 (1) 数据总线缓冲器:是一个三态双向的8位缓冲器,是8255与系统数据
总线的接口。接口的数据线D7~D0直接与CPU数据总线相连, 以实现CPU与8255接口之间的信息传递。CPU向8255写入控制 字或从8255中读状态信息以及所有数据的输入和输出,都需要 通过数据缓冲器来进行传递。
清华大学出版社
8.1 可编程并行接口8255
(2) 此时接口也可向CPU发出一个中断请求信号,同上面的输入过程相 同,CPU可以用软件查询方式或中断的方式将CPU中的数据通过接 口输出到外设中。当输出数据送到接口的输出缓冲寄存器后,再输 出到外设。
(3) 与此同时,接口向外设发送一个启动信号,启动外设接收数据。外设 接收到数据后,向接口回送一个“输出回答”信号。
清华大学出版社
8.1 可编程并行接口8255
并行接口中包括状态信息、控制信息和数据信息,这些信息分别存放 在状态寄存器、控制寄存器和数据缓冲寄存器中。 1) 状态寄存器:用来存放外设的信息,CPU通过访问这个寄存器来了解某
个外设的状态。 2) 控制寄存器:CPU对外设的操作命令都寄存在控制寄存器中。 3) 数据缓冲寄存器:缓冲器是用来暂存数据的。这是因为外设与CPU交换
(2) 外设接到回答信号后,将撤销“输入数据准备好”信号。在接口 收到数据后,它会在状态寄存器中设置“准备好输入”状态位,以 便CPU对其进行查询。
清华大学出版社
8.1 可编程并行接口8255
(3) 接口向CPU发出一个中断请求信号,这样CPU可以用软件查询方 式或中断的方式将接口中的数据输入到CPU中。
第07章 可编程接口芯片

第七章 可编程接口芯片
可编程接口概术 可编程并行输入/输出接口芯片8255A 可编程定时/计数器接口芯片8253
可编程接口概术
一个简单的具有输入功能和输出功能的 可编程接口电路如下图,它包括一个输入接口, 其组成主要是八位的三态门;一个输出接口, 其组成主要是八位的锁存器;另外还有八位的 多路转换开关及控制这个开关的寄存器FF。
1
方式选择控 制字标识位 A组方式选择 00 方式0 01 方式1 1x 方式2
D6
D5
D4
D3
D2
D1
D0
PC3~PC0: 1 输入 (方式0时) 0 输出 端口B: 1 输入 0 输出
端口A 1 输入 0 输出
B组方式选择: 0 方式0 1 方式1 PC7~PC4: 1 输入 (方式0时) 0 输出
LED7
3、IBFA有效使LED点亮。这里含有两个信息,一个是 8255A 通知CPU其A口来了一个新数据,另一个是告 诉用户CPU尚未取走这个这个数据,用户不得再送其 他数据; 4、CPU取走这个数据,LED熄灭; 5、转步骤1。
这个系统的工作过程如下: 1、用户通过改变K0~K7,产生新的键信息; 2、按下开关K,产生选通信号,数据进入A口的缓冲器, 此步骤实际上告诉CPU,8255的A口来了一个新数据; 3、IBFA有效使LED点亮。这里含有两个信息,一个是 8255A 通知CPU其A口来了一个新数据,另一个是告 诉用户CPU尚未取走这个这个数据,用户不得再送其 他数据; 4、CPU取走这个数据,LED熄灭; 5、转步骤1。
C口特点 1、C3 ,C6 ,C7作为A口的联络线, C3 -/INTR; C7 -/ACK;C5-/OBF 2、C4-5可工作在基本的I/O 3、C0-2由B组决定
可编程接口概术 可编程并行输入/输出接口芯片8255A 可编程定时/计数器接口芯片8253
可编程接口概术
一个简单的具有输入功能和输出功能的 可编程接口电路如下图,它包括一个输入接口, 其组成主要是八位的三态门;一个输出接口, 其组成主要是八位的锁存器;另外还有八位的 多路转换开关及控制这个开关的寄存器FF。
1
方式选择控 制字标识位 A组方式选择 00 方式0 01 方式1 1x 方式2
D6
D5
D4
D3
D2
D1
D0
PC3~PC0: 1 输入 (方式0时) 0 输出 端口B: 1 输入 0 输出
端口A 1 输入 0 输出
B组方式选择: 0 方式0 1 方式1 PC7~PC4: 1 输入 (方式0时) 0 输出
LED7
3、IBFA有效使LED点亮。这里含有两个信息,一个是 8255A 通知CPU其A口来了一个新数据,另一个是告 诉用户CPU尚未取走这个这个数据,用户不得再送其 他数据; 4、CPU取走这个数据,LED熄灭; 5、转步骤1。
这个系统的工作过程如下: 1、用户通过改变K0~K7,产生新的键信息; 2、按下开关K,产生选通信号,数据进入A口的缓冲器, 此步骤实际上告诉CPU,8255的A口来了一个新数据; 3、IBFA有效使LED点亮。这里含有两个信息,一个是 8255A 通知CPU其A口来了一个新数据,另一个是告 诉用户CPU尚未取走这个这个数据,用户不得再送其 他数据; 4、CPU取走这个数据,LED熄灭; 5、转步骤1。
C口特点 1、C3 ,C6 ,C7作为A口的联络线, C3 -/INTR; C7 -/ACK;C5-/OBF 2、C4-5可工作在基本的I/O 3、C0-2由B组决定
可编程串行通信接口芯片16550与8250

DSR CTS △RLSD △RI
D1
△DSR
D0
△CTS
△表示变化的状态
△允许发送(CTS) △ 数据装置就绪(DSR) △ 响铃指示 △ 数据载波检测(DCD)
2023年5月4日星期四
7.中断允许寄存器IER
反映了接收器和发送器以及Modem是否允许中 断的情况,通过设置可以指定其中的某些部件 允许中断。它是一个可读可写的寄存器。
其它引脚
1. 电源及时钟VCC,GND,XTLA1,XTLA2 2. 数据线:D7~D0 3. 片选信号:CS0,CS1和/CS2(输入) 4. 选通信号:
地址输入选通: /ADS 数据输入选通:DISTR和/DISTR(接/IOR) 数据输出选通:DOSTR和/DOSTR(接/IOW) 5. 主复位:MR 6. 接收时钟: =接收波特率的16倍 7. 清除发送: /CTS 8. 数据装置(MODEM)准备好: /DSR 9. 接收线路信号检测: /RLSD(有效时表示Modem检测数据载波 10.振铃指示:/RI 有效表示Modem已经接收到一个电话振铃信号
读/写操作 OUT (写) IN (读) IN(读)或 OUT(写) IN(读)或 OUT(写) IN(读)或 OUT(写) IN (读) IN(读)或 OUT(写) IN(读)或 OUT(写) IN(读) IN(读)
2023年5月4日星期四
2.串行接口初始化
串行接口初始化的任务: (1)设置波特率 (2)确定通信的具体格式 (3)设置操作方式 (4)设定是否使用中断、是否自测试操作等
D7 D6 D5 D4
IEE 0 0
0
0
1 允许中断 0 禁止中断 1 允许中断 0 禁止中断
Modem状态中断 接收字符代码错 或接收中止状态中断
D1
△DSR
D0
△CTS
△表示变化的状态
△允许发送(CTS) △ 数据装置就绪(DSR) △ 响铃指示 △ 数据载波检测(DCD)
2023年5月4日星期四
7.中断允许寄存器IER
反映了接收器和发送器以及Modem是否允许中 断的情况,通过设置可以指定其中的某些部件 允许中断。它是一个可读可写的寄存器。
其它引脚
1. 电源及时钟VCC,GND,XTLA1,XTLA2 2. 数据线:D7~D0 3. 片选信号:CS0,CS1和/CS2(输入) 4. 选通信号:
地址输入选通: /ADS 数据输入选通:DISTR和/DISTR(接/IOR) 数据输出选通:DOSTR和/DOSTR(接/IOW) 5. 主复位:MR 6. 接收时钟: =接收波特率的16倍 7. 清除发送: /CTS 8. 数据装置(MODEM)准备好: /DSR 9. 接收线路信号检测: /RLSD(有效时表示Modem检测数据载波 10.振铃指示:/RI 有效表示Modem已经接收到一个电话振铃信号
读/写操作 OUT (写) IN (读) IN(读)或 OUT(写) IN(读)或 OUT(写) IN(读)或 OUT(写) IN (读) IN(读)或 OUT(写) IN(读)或 OUT(写) IN(读) IN(读)
2023年5月4日星期四
2.串行接口初始化
串行接口初始化的任务: (1)设置波特率 (2)确定通信的具体格式 (3)设置操作方式 (4)设定是否使用中断、是否自测试操作等
D7 D6 D5 D4
IEE 0 0
0
0
1 允许中断 0 禁止中断 1 允许中断 0 禁止中断
Modem状态中断 接收字符代码错 或接收中止状态中断
常用接口芯片及应用(3)

方法1:微机利用232C接口连接调制解调 器,用于实现通过电话线路的远距离通信
方法2:微机利用232C接口直接连接进行 短距离通信。不使用调制解调器。
3. RS-232C的电气特性
232C接口采用EIA电平
高电平为+3V~+15V 低电平为-3V~-15V 实际常用±12V或±15V
△CTS 位 1=CTS 引脚电平发生变化 △DSR 位 1=DSR 引脚电平发生变化 △ RI 位 1=RI 引脚电平发生变化
△RLSD 位 1=RLSD 引脚电平发生变化
反映4个控制输入信号的当前状态及其变化
MSR高4位中某位为1,说明相应输入信号当前为低有效,否则为高电平
MSR低4位中某位为1,则说明从上次CPU读取该状态字后,相应输入信号 已发生改变,从高变低或反之
源,当任一个未被屏蔽的中断源有请求时, INTRPT输出高电平向CPU请求中断
(2) 时钟信号
时钟输入引脚XTAL1:8250的基准工作时钟 时钟输出引脚XTAL2:基准时钟信号的输出端 波特率输出引脚BAUDOUT*:基准时钟经8250
内部波特率发生器分频后产生发送时钟 接收时钟引脚RCLK:接收外部提供的接收时钟
站B
半双工
站A
站B
单工
站A
站B
4. 调制解调器
调制(Modulating)
把数字信号转换为电话线路传送的模拟信号
解调(Demodulating)
将电话线路的模拟信号转换为数字信号
调制解调器MODEM
具有调制和解调功能的器件合制在一个装置
二. 串行通信总线(串行接口标准)RS-232C
字符长 00=5 位 01=6 位 10=7 位 11=8 位
方法2:微机利用232C接口直接连接进行 短距离通信。不使用调制解调器。
3. RS-232C的电气特性
232C接口采用EIA电平
高电平为+3V~+15V 低电平为-3V~-15V 实际常用±12V或±15V
△CTS 位 1=CTS 引脚电平发生变化 △DSR 位 1=DSR 引脚电平发生变化 △ RI 位 1=RI 引脚电平发生变化
△RLSD 位 1=RLSD 引脚电平发生变化
反映4个控制输入信号的当前状态及其变化
MSR高4位中某位为1,说明相应输入信号当前为低有效,否则为高电平
MSR低4位中某位为1,则说明从上次CPU读取该状态字后,相应输入信号 已发生改变,从高变低或反之
源,当任一个未被屏蔽的中断源有请求时, INTRPT输出高电平向CPU请求中断
(2) 时钟信号
时钟输入引脚XTAL1:8250的基准工作时钟 时钟输出引脚XTAL2:基准时钟信号的输出端 波特率输出引脚BAUDOUT*:基准时钟经8250
内部波特率发生器分频后产生发送时钟 接收时钟引脚RCLK:接收外部提供的接收时钟
站B
半双工
站A
站B
单工
站A
站B
4. 调制解调器
调制(Modulating)
把数字信号转换为电话线路传送的模拟信号
解调(Demodulating)
将电话线路的模拟信号转换为数字信号
调制解调器MODEM
具有调制和解调功能的器件合制在一个装置
二. 串行通信总线(串行接口标准)RS-232C
字符长 00=5 位 01=6 位 10=7 位 11=8 位
第8章可编程输入输出接口2014(新简)

当A1A0=11时 选择控制端口
20
表8.1 8255A的读写操作控制
21
8.1.2 8255A的控制字及其工作方式
8255A 共有两个控制字:即工作方 式控制字和对C口臵位/复位控制字。 1. 控制字 (1)工作方式控制字: 控制字和各位的含义如图所示。
22
D7
D6 D 5
D4 D3
D2 D1 D0
下图示出 8255A 方式 1 选通输入时的内部 结构图。
35
•STB:选通信号。外设准备好数据发 送STB#,低电平有效。
•IBF:输入缓冲器满信号,STB#下降 沿8255向外设输出IBF信号,表示输入 缓冲器满,高电平有效。
36
INTR:中断请求信号,高电平有效 。STB#上升沿使INTR从无效到有效 ,请求CPU读数据。CPU接到INTR, 读数据发送RD#,RD#下降沿变INTR 有效为无效,表示已经得到响应, RD#上升沿使IBF满变为不满,表示 数据已经读走。 INTE:中断允许信号,它是通过端 口PC4(端口A)或PC2(端口B)的位来编 程的内部位。
ACK: 外设应答信号。该信号的下 降沿使OBF臵高,表示输出缓冲器 空,低电平有效.当外设读取数据以 后,由外设输入给8255,表示数据
42
INTR:中断请求信号。写信 号的下降沿使INTR引脚无效, 表示CPU正在响应中断,高电 平有效。
INTE : 中断允许信号。在中
断允许情况下, ACK 的
出数据均受到锁存。
端口 B 和 C: 都包含一个 8 位数据输入缓
冲器和一个 8位的数据输出锁存器和缓冲器,
输出数据能锁存,输入数据不锁存。
7
端口 C: 可分成两个 4 位端口,分别定义 为输入或输出端口,还可定义为控制、状 态端口,配合端口A和端口B工作。 在实际应用中C口 的8位可分为两个4位
可编程串行通信接口芯片8251A
• 1)在异步发送方式时,发送器为每个字符加上一个起始位,并按照规定加上奇偶 校验位以及1个、1.5个或者2个停止位。然后在发送时钟TXC的作用下,由TXD脚逐 位地串行发送出去。
• 2)在同步发送方式中,发送缓冲器在准备发送的数据前面先插入由初始化程序设 定的一个或两个同步字符,在数据中插入奇偶校验位。然后在发送时钟TXC的作用 下,将数据逐位地由TXD引脚发送出去。
能根据编程为每个字符设置1个、1.5个或2个停止位。 • (4)所有的输入输出电路都与TTL电平兼容。 • (5)全双工双缓冲的接收/发送器。
2
1.1 8251A内部逻辑与工作原理
• 8251A的结构框图如图1.1所示,可分五个主要部分:写控制逻辑电路和调制解调控制电路。
6
(3)接收缓冲器
• 1)在异步接收方式,当“允许接收”和“准备好接收数据”有效时,接收缓冲器 监视RXD线。在无字符传送时,RXD线上为高电平,当RXD线上出现低电平时,即 认为它是起始位,就启动接收控制电路中的一个内部计数器,计数脉冲就是8251A 的接收时钟脉冲RXC,当计数器计到一个数据位宽度的一半(若时钟脉冲频率为波 特率的16倍,则计数到第8个脉冲)时,又重新采样RXD线,若其仍为低电平,则 确认它为起始位,而不是噪声信号。
17
• 1.方式选择控制字:根据题意,方式选择控制字为00111000B(即38H),写入控 制端口,端口地址为91H。
• 2.命令控制字:设置为10010111B(即97H),使8251A进入同步字符检测,出错 标志复位,允许发送和接收,置引脚有效,写入控制端口,端口地址为91H。
• 3.同步字符:2个同步字符,均为3AH。 • 4.初始化程序:
9
1.3 8251A的控制字
• 2)在同步发送方式中,发送缓冲器在准备发送的数据前面先插入由初始化程序设 定的一个或两个同步字符,在数据中插入奇偶校验位。然后在发送时钟TXC的作用 下,将数据逐位地由TXD引脚发送出去。
能根据编程为每个字符设置1个、1.5个或2个停止位。 • (4)所有的输入输出电路都与TTL电平兼容。 • (5)全双工双缓冲的接收/发送器。
2
1.1 8251A内部逻辑与工作原理
• 8251A的结构框图如图1.1所示,可分五个主要部分:写控制逻辑电路和调制解调控制电路。
6
(3)接收缓冲器
• 1)在异步接收方式,当“允许接收”和“准备好接收数据”有效时,接收缓冲器 监视RXD线。在无字符传送时,RXD线上为高电平,当RXD线上出现低电平时,即 认为它是起始位,就启动接收控制电路中的一个内部计数器,计数脉冲就是8251A 的接收时钟脉冲RXC,当计数器计到一个数据位宽度的一半(若时钟脉冲频率为波 特率的16倍,则计数到第8个脉冲)时,又重新采样RXD线,若其仍为低电平,则 确认它为起始位,而不是噪声信号。
17
• 1.方式选择控制字:根据题意,方式选择控制字为00111000B(即38H),写入控 制端口,端口地址为91H。
• 2.命令控制字:设置为10010111B(即97H),使8251A进入同步字符检测,出错 标志复位,允许发送和接收,置引脚有效,写入控制端口,端口地址为91H。
• 3.同步字符:2个同步字符,均为3AH。 • 4.初始化程序:
9
1.3 8251A的控制字
串行通信和可编程接口芯片8251A
ABCD
发送数据
通过将数据写入到8251A的数据寄存器中,然 后启动发送过程。
错误检测与处理
在数据传输过程中,应进行错误检测,如奇偶校 验、帧错误等,并采取相应的处理措施。
使用8251A芯片进行数据传输的示例
设置参数
首先,配置8251A的寄存器以设置数据传输 参数,如数据格式、波特率等。
发送数据
将要发送的数据写入到8251A的数据寄存器 中,然后启动发送过程。
03 8251A芯片与串行通信的 结合
8251A芯片在串行通信中的作用
数据传输
8251A芯片作为串行通信接口, 能够实现数据在串行通道上的传 输,包括发送和接收。
协议转换
8251A芯片可以将并行数据转换 为串行数据,或者将串行数据转 换为并行数据,实现不同协议之 间的转换。
信号调制与解调
8251A芯片可以对信号进行调制 和解调,以适应不同的传输介质 和距离要求。
工业控制
02
03
智能仪表
在工业控制系统中,传感器和执 行器之间的通信通常使用串行通 信。
பைடு நூலகம்
智能仪表之间的通信通常使用串 行通信,例如通过RS-485总线进 行数据传输。
02 8251A芯片介绍
8251A芯片的特点
高度集成
01
8251A是一款高度集成的串行通信芯片,内部包含波特率生成
器、数据接收器和发送器等模块。
异常处理
在协议转换过程中,应处理可能出现的异常情况,如协议不匹配、 数据格式错误等。
05 8251A芯片的常见问题与 解决方案
8251A芯片无法正常工作的问题及解决方案
总结词
无法正常工作
详细描述
8251A芯片无法正常工作可能是由于电源问题、接口连接不良、芯 片损坏等原因。
串行接口芯片16550
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 暂存
8251芯片
接收端初始化程序和接收控制程序
2、发送器DB 数据发送来自冲器工作过程 CPU执行输出指令, 并行数据→发送缓冲器。
发送缓冲器→发送移位寄 存器,向CPU提出中断
异 或 门 0
内部 CLK ÷
申请(TxRDY=1)。
波 特 率
TXD SOUT
内部产生起始、奇偶 检验、停止位,按约定 的波特率从TxD输出。 当数据全部输出结束, 在TXD发出连续低电平 (TxE=1)。
2.两台微型计算机通过8251A相 互通信的举例
分析:初始化程序由两部分组成: ⑴是将一方定义为发送器。发送 端CPU每查询到TXRDY有效,则 向8251A并行输出一个字节数据; ⑵是将对方定义为接收器。接收 端CPU每查询到RXRDY有效,则 从8251A输入一个字节数据,一直 进行到全部数据传送完毕为止。
M O D E M 波特率 发生器
电 话 线 接 口
RTS(Request to Send)数据终端向 MODEM发出请求表 示数据已准备好需 要发送
8251A
RxC TxC 数据终端设备DTE
电 CTS(Clear to Send) 话 MODEM回应终端, 线 若TxEN有效8251可
以发送数据,发送 结束CTS=“1”。
输出第一个同步字符 双同步 输出第二个同步字符
N
输出命令字 复位 传送数据
Y
N
输入状态字
N
传送完
Y
1. 8251复位 电源上电,8251自动进入复位状态,为了确保在送方式字 和命令字之前8251正确复位,可向8251的控制口连续写 入3个“0”,然后再写入一个复位控制字(40H),用软 件使8251可靠复位。 注:对8251的控制口进行一次写入操作,需有写恢复时间。 (写恢复时间一般为16个时钟周期) DELAY1: MOV CX,02H
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5
8255A的内部结构及外部引脚
2,外部引脚
(1),面向I/O设备的信号线
PA7-PA0
PB7-PB0
PC7-PC0
(2),面向系统的信号线 CS:为0时选中该片 A1、A0:端口选择信号 RD:为0时,CPU从8255A指定的端口读取数据 WR:为0时,CPU向8255A指定端口写入控制字或数据 RESET:为1时,8255A内部寄存器均清0,A、B、C口自 动设置为输入端口。
无关
按位置位/复位控制字 标志 0=有效
10
8255A 的工作方式
方式0:基本输入/输出方式 方式1:选通输入/输出方式 方式2:双向数据传送方式 A口可工作在三种方式下 B口可工作在方式0和方式1下 C口可工作在方式0下 当A口、B口工作于方式1或A口工作于方式2时 C口为两个端口提供联络信号 如:A口方式0、输入,B口方式1、输出, PC7-4输出,PC3-PC0输 入,初始化程序: MOV AL,10010101B 11 OUT 1111 1011B,AL
8255A的工作方式
例1:A口方式0、输入,B口方式1、输出,PC7-4输出,PC3 输入 CWB EQU FBH MOV AL, 1001 0101B OUT CWB,AL
例2:利用置位/复位字由PC5产生宽度可调的方波。 LOOP1:MOV AL,00001010B OUT 43H,AL CALL DELAY1 MOV AL,00001011B OUT 43H,AL CALL DELAY2 JMP LOOP1
8
8255A的控制字和初始化编程
1,方式选择控制字
D7 D6 D5 D4 D3 D2 D1 D0 B 组 端口 C (下半部分) 1=输入,0=输出 端口 B 1=输入,0=输出 方式选择 0=方式 0,1=方式 1 A 组 端口 C (上半部分) 1=输入,0=输出 端口 A 1=输入,0=输出 方式选择 00=方式 0 01=方式 1 1=方式 2
1
可编程并行接口Intel 8255A
具有40条引脚,使用单一 +5V电源 实现并行I/O操作 通用性强、使用灵活,可方便使用在PC机上 比传输速度串行通信快 用于远距离数据传输硬件开销大,常用于传 输距离较短的场合
2
8255A的内部结构及外部引脚
A组 控制 A组 端口 A (5) A 组端口 C 上半部 (高 4 位) B 组端口 C 下半部 (低 4 位) I/O PA7~PA0
6
8255A的内部结构及外部引脚
3,端口地址与读写操作
当 CS 有效时, A1 和 A0 的组合选择 8255A 的数据寄存器和
控制寄存器。 A1A0=00 A口数据寄存器
A1A0=01 B口数据寄存器
A1A0=10 C口数据寄存器 A1A0=11 控制寄存器寄存器
7
8255A的内部结构及外部引脚
12
8255A 的工作方式
1,方式0
基本输入/输出方式,即无条件输入/输出 方式,端口和外设间不需要联络信号
13
例,PA0~PA3控制4个开关,PB0~PB7控制七段数码管,要求七 段数码管显示开关所拨通的数字。
字符 代码 1 2 06 5B 3 4F 4 5 6 66 6D 7D 7 07 8 7F 9 6F A 77 B 7C c 39 g d 5E E 79 F 71 b 0 3F
+5V
PA0 PA1 PA2 PA3 40H CS PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7
f com a
a f
a b c d e f g
dp
g e d c
b
dp
e +5V
d com c dp 14
APORT EQU 40H BPORT EQU 41H CONTR EQU 43H DATA SEGMENT TAB1 DB 3FH,06H,5BH,4FH, … …… DATA ENDS CODE SEGMENT ASSUME CS:CODE DS:DATA MAIN: MOV AX,DATA MOV DS,AX MOV AL,1001 0000B OUT CONTR,AL
双向数据 总线 D7~D0
I/O PC7~PC4
数据 总线
I/O PC3~PC0
RD WR A1 A0 RESET CS
读/写 控制 逻辑
B组 控制
B组 端口 B
I/O PB7~PB0
CPU 接口
内部逻辑
外设接口
3
8255A的内部结构及外部引脚
1, 内部结构
数据总线缓冲器
与系统总线相连,实现CPU与端口间信息交换 读/写控制逻辑 地址线A1、A0,片选CS、RD、WR,完成内部端口的 选择和读写操作 A组和B组控制逻辑 A组:管理A口及PC7-4; B组:管理B口及PC3-0 I/O端口 A口、B口、C口,可编程为输入/输出,可数据锁存, C口可编程为两个4位端口
9
方式设置 1=有效
8255A的控制字和初始化编程
2,C口置位/复位控制字
D7 D6 D5 D4 D3 D2 D1 D0 位的置位/复位 1=置位,0=复位 D3 D2 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 位选择 D1 端口 0 位0 1 位1 0 1 0 1 0 1
0
3,端口地址与读写操作
A1 0 0 A0 0 1 RD 0 0 WR 1 1 CS 0 0 从A口读取数据 从B口读取数据
1
0 0
0
0 1
0
1 1
1
0 0
0
0 0
从ቤተ መጻሕፍቲ ባይዱ口读取数据
向A口写入数据 向B口写入数据
1
1 1 -
0
1 1 -
1
1 0 1
0
0 1 1
0
0 1 0 0
向C口写入数据
向控制端口写入命令 总线悬浮 非法条件 总线悬浮
4
8255A的内部结构及外部引脚
2,外部引脚
PA3 PA2 PA1 PA0 RD CS GND A1 A0 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 PB2 PB1 PB0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 PA4 PA5 PA6 PA7 WR RESET D0 D1 D2 D3 D4 D5 D6 D7 VCC PB7 PB6 PB5 PB4 PB3