type
status
date
slug
summary
tags
category
icon
password
2 可编程并行接口芯片8255A
8255A是一种通用的可编程并行I/O接口芯片,广泛用于几乎所有系列的微型机系统中,如8086、MCS51、Z80CPU系统等。8255A具有3个带锁存或缓冲的数据端口,可与外设并行进行数据交换。用户可用程序来选择多种操作方式,通用性强。使用灵活,可为CPU与外设之间提供并行输入/输出通道。
2.1 8255A的结构和引脚功能
(1)接口总览
- 与CPU的接口
- 数据总线缓冲器
- 读/写控制逻辑
- 内部逻辑
- A组 控制
- B组 控制
- 外设接口
- A组 A口 PA~7~ ~PA~0~
- A组 C口上半部 PC~7~ ~PC~4~
- B组 C口下半部 PC~3~ ~PC~0~
- B组 B口 PB~7~ ~PB~0~
(2)引脚总览
8255A是双列直插式,40(24+8+2+6)个引脚
- 24根端口数据线——接外设(A口、B口、C口)
- 8根系统数据线——接CPU数据总线D~7~~D~0~
- 电源线:+5V,地线
- 6根输入控制线
- RESET:复位信号,RESET=1时,8255内部复位,所有内部寄存器清零,A、B、C三个端口自动为基本型(方式0)输入口
- CS‾CS:片选信号,CS=0时,该芯片被选中
- RD‾RD:来自CPU的I/O读命令
- WR‾WR:来自CPU的I/O写命令
- A1、A0:接CPU的地址线A1、A0
(3)端口总览
- 端口:接口电路中能和CPU直接交换信息的寄存器 8255A有4个端口寄存器
- 与非门前要都是1才能输入0,片选选中 如果系统产生片选信号的译码电路如图,则:(00 0110 00A1A2)
- A数据口地址=60H
- B数据口地址=61H
- C数据口地址=62H
- 控制口地址=63H
A1 | A0 | WR(上划线) | RD(上划线) | CS(上划线) | 对应完成功能 |
0 | 0 | 0 | 1 | 0 | CPU数据→A口数据寄存器 |
0 | 1 | 0 | 1 | 0 | CPU数据→B口数据寄存器 |
1 | 0 | 0 | 1 | 0 | CPU数据→C口数据寄存器 |
1 | 1 | 0 | 1 | 0 | CPU送来的命令字→控制寄存器 |
0 | 0 | 1 | 0 | 0 | 读A口数据→CPU |
0 | 1 | 1 | 0 | 0 | 读B口数据→CPU |
1 | 0 | 1 | 0 | 0 | 读C口数据→CPU |
- CS为低电平有效,即0.
- WR,RD均为低电平有效,W为读信号,R为写信号
- A1A0为片内寄存器选择信号,00为A,01为B,10为C,11为控制信号
2.2 8255A的工作方式
方式 | 说明 | 适用端口 |
方式0 | 基本的输入输出 | A、B、C上半口、C下半口 |
方式1 | 选通的输入输出 | A、B(C配合) |
方式2 | 双向传输 | A(C配合) |
(非基本控制方式) | 单独控制每个位的输出电平 | C |
(1)方式0——基本输入输出
1.此方式适用于所有端口,C的上下半口可以分别配置为输入输出
2.此方式没有规定固定的用于应答的联络信号线
3.端口配置为方式0,则其作为输入时具有缓冲功能;作为输出时具有锁存功能
(2)方式1——选通输入输出(应答式输入输出)
1.此方式适用于端口A、B,需要C口某些为配合作为控制或通讯联络信号
2.C口在配合A、B时有固定的搭配关系
3.C口中当前不需要配合A、B工作的引脚,可以单独定义为I/O使用
(3)方式2——双向输入输出
1.此方式仅适用于A端口,C组端口配合其工作
2.此方式规定了固定的用于应答的联络信号线
3.它实际是方式1输入和输出的组合,区别在于C口某些选通控制或应答信号有些区别,此外输入和输出共用一共一个选通信号
4.因为输入输出中断共用一个信号,因此INTR为高时,需要对中断类型再进行判断(通过查C口状态)
5.因为方式2是方式1两种状态的组合,其工作原理是显而易见的
2.3 8255A的初始化
(1)方式选择控制字(D7=1)
实现对8255A的各个端口的选择,用于确定各端口的工作方式及数据传输方向
(2)C口按位置/复位控制字(D7=0)
实现对端口C的每一位进行控制
(3)8255A的初始化编程
例:在8086系统中,设8255A的A口输出,B口输入,PC1置位,PC2复位。已知:8255端口地址为60H~63H,试编程对8255A进行初始化。
8255工作方式控制字为:
编写对8255的初始化程序片段,要求:使A口为方式0输入,B口为方式0输出,C口作为8位的输出口使用。8255控制端口的地址为12BH。如果要读8255 A口数据,程序如何?
2.4 8255A的应用举例
例1:设8255A的A口和B口工作在方式0,A口作为输入端口,接有2个开关;B口为输出端口,接有8个发光二极管。系统硬件电路如图所示,不断扫描开关Ki,当开关K0闭合时,点亮LED0、LED2、LED4、LED6,其它LED暗;当开关K1闭合时,点亮LED1、LED3、LED5、LED7,其它LED暗;当开关K0和K1同时闭合时退出。设8255A端口A、端口B、端口C及控制端口的地址分别为200H~203H。试编写程序
解:8255A的控制字为:
3 可编程串行接口芯片8251
3.1 串行通信概述
(1)并行通信和串行通信
串行通信和并行通信都是一种通信传输方式,都适用于计算机与计算机、计算机与外设之间的数据通信,在传输中存在相互转换的关系。
- 并行数据通信是以字节(8bit)或字为单位的数据传输方式,需要多根数据线和控制线,在工业通信中很少使用。
- 串行数据通信是以二进制的位(bit)为单位的数据传输方式,每次只传送一位。串行通信最少只需要两根线就可以连接多台设备,组成控制网络,可用于距离较远的场合。工业控制设备与计算机之间的通信几乎都采用串行通信方式。
两者主要区别如下:
- 一次传输的传输量不同
并行通信传送八路信号,一次并行传送传送完整的一个字节信息。串行通信在一个方向上只能传送一路信号,一次只能传送一个二进制位,传送一个字节信息时,只能一位一位地依次传送。
- 传输速度不同
串行的传输速度慢,但是对线路的要求低一些。 并行的对线路的要求高,但是速度快。
- 传输距离不同
串行线路仅使用一对信号线,线路成本低并且抗干扰能力强,因此可以用在长距离通讯上;而并行线路使用多对信号线(还不包括额外的控制线路),线路成本高并且抗干扰能力差,因此对通讯距离有非常严格的限制。
(2)同步通信与异步通信
(3)串行通信的传送方向
单工--半双工--全双工
- 单工:数据只在一个方向上传输,不能实现双方通信。
例如:电视、广播。
- 半双工:允许数据在两个方向上传输,但是同一时间数据只能在一个方向上传输,其实际上是切换的单工。
例如:对讲机。
- 全双工:允许数据在两个方向上同时传输。
例如:手机通话。
(4)信号的调制与解调
(5)异步通信规程
3.2 串行接口原理
3.3 可编程通信8251A USART
概述
基本功能:
- 数据格式的自动生成
- 串并转换
- 传输速率控制
- 错误检测
- 电平转换
结构
- 面向CPU的连接信号
- D0-D7三态双向数据线
- ~RD & ~WR读写信号线
- ~CS片选
- RESET芯片复位,需要宽度大于6个时钟周期的高电平
- C/~D地址线。高电平访问控制寄存器,低电平访问数据寄存器
- 状态信号
- TxRDY(out)发送器准备好。可以作为中断请求信号
- RxRDY(out)接收器准备好。可以作为中断请求信号
- TxE(out)发送器空
- 时钟信号
- ~TxC(in)发送时钟,异步方式下为x1/x16/x64倍波特率。下降沿移出数据
- ~RxC(in)接受时钟,同上
- CLK(in)工作始终
编程
- 方式命令字 - 设定通信方式和数据格式
- 工作命令字 - 指定芯片完成某种操作(如发送、接收、内部复位、检测同步字符等
- 状态字 - 报告芯片状态
异步方式命令字:
同步方式命令字:
工作命令字:
间断符(中止符) - 大于连续10个0,通知对方停止发送
状态字:
错误标志:
- 奇偶错误PE(Parity Error) - 奇偶校验失败
- 帧错误FE(Frame Error) - 收到的字符格式不符合规定(如缺少停止位
- 重叠错误OE(Overrun Error) - 接收寄存器还没有把数据送出时就受到新的数据
8251A初始化流程:
📎 参考文章——第11章
- 一些引用
- 引用文章
有关问题,欢迎您在底部评论区留言,一起交流~
- Author:Koreyoshi
- URL:https://Koreyoshi1216.com/article/149c7b13-c6a7-80a9-9740-c79e3a7abfa8
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts