微机原理与接口技术:并行接口

news2024/9/23 13:23:58

文章目录

    • 1.8255A的内部结构与外部引脚
      • 1.1.三个数据端口A、B、C:
      • 1.2.A组控制和B组控制
      • 1.3.数据总线缓冲器
      • 1.4.读写控制逻辑
      • 1.5.8255A的外部引脚
    • 2.8255A的控制字
      • 2.1.方式选择控制字
      • 2.2.端口C按位置位/复位控制字
    • 3.8255A的工作方式
      • 3.1.方式0:基本输入输出方式
      • 3.2.方式1:选通输入输出方式
      • 3.3.双向输入输出方式
      • 4.8255A与CPU的连接

芯片概述

  • 8255A是Intel公司生产的可编程并行接口芯片。
  • 它不需要附加外部电路就可以和大多数并行传输数据的外部设备直接连接。
  • 可以通过软件编程的方法分别设置它的3个8位I/O端口的工作方式。

1.8255A的内部结构与外部引脚

1.1.三个数据端口A、B、C:

数据端口概述:8255A芯片内部有3个8位的输入输出端口,分别为A口、B口、C口,可以通过指令分别将它们设置为输入或输出端口。

端口A

  • 端口A包含一个8位数据输入锁存器和一个8位的数据输出锁存器/缓冲器;
  • 端口A无论是作为输入口还是输出口,其数据都可以受到锁存。

端口B

  • 端口B包含一个8位数据输入缓冲器和一个8位的数据输出锁存器/缓冲器;
  • 端口B在作为输出口时,其数据能够得到锁存。端口B的输入口没有锁存能力, 因此外部设备的输入必须维持到被CPU读取为止。

端口C

  • 包含一个8位数据输入缓冲器和一个8位的数据输出锁存器/缓冲器;
  • 端口C和端口B相同,作为输入口时没有锁存能力。

使用方式

  • 端口A和端口B一般作为独立的I/O口使用,与外部设备的数据线相连;
  • 端口C可以作为一个独立的8位I/O口,也可以拆分为高4位和低4位两个4位
    端口,作为两个独立的4位I/O口使用;
  • 端口C的某些位还可以与端口A和端口B配合,用作它们的联络信号线。

1.2.A组控制和B组控制

8255A将端口A、B、C分为两组:端口A和端口C的高四位构成A组,由A组控制逻辑电路进行控制;端口B和端口C的低4位构成B组,由B组控制逻辑电路进行控制。

1.3.数据总线缓冲器

数据总线缓冲器是一个双向三态的8位缓冲器,是8255A与CPU之间传输信息的通道,与系统的数据总线连接。

1.4.读写控制逻辑

  • 读写控制逻辑负责管理8255A的数据传输过程。
  • 它接收来自控制总线的控制信号,形成对端口的读写控制,并通过A组控制和B组控制电路实现对数据、状态和控制信息的传输。

1.5.8255A的外部引脚

与CPU相连的信号线

  • D7-D0:8255A的双向三态数据线,与系统的数据总线相连;
  • #CS:芯片片选信号。信号有效时表示被选中,可以进行读写。通常与地址译码电路的输出端相连接。
  • A1 A0:端口地址选择信号。在#CS有效时,A1A0为00、01、10、11时分别表示选择A、B、C和控制端口。
  • #RD:读信号。当片选信号和读信号同时有效时,CPU可以从8255A读端口内的信息。
  • #WR:写信号。当片选信号和写信号同时有效时,CPU可以向8255A写入数据或命令。
  • RESET:复位信号。当为高电平时清除8255A所有内部寄存器的内容,并将3个数据端口置为方式0下的输入端口。
  • Vcc和GND:电源和地线。

与外部设备相连的信号线

  • PA7-PA0:A口与外部设备连接的信号线,由A口的工作方式决定这些引脚用作输入、输出和双向。
  • PB7-PB0:B口与外部设备连接的信号线,由B口的工作方式决定这些引脚用作输入、输出和双向。
  • PC7-PC0:C口输入输出数据线,这些引脚的用途由A组、B组的工作方式决定。

2.8255A的控制字

8255A的两类控制字

  • 一类用于定义各端口的工作方式,称为方式选择控制字。
  • 另一类用于对C端口的某一位进行置位或复位操作,称为C端口置位/复位控制字。

2.1.方式选择控制字

8255A的3种基本工作方式

  • 方式0:基本的输入输出方式;
  • 方式1:带选通的输入输出方式;
  • 方式2:双向传输方式。

8255A方式选择控制字的格式
在这里插入图片描述

  • 标志位:D7:D7位是方式选择控制字的标志位,必须为1。
  • 工作方式选择:D6D5用于选择A组的工作方式,D2用于选择B组的工作方式。
  • 输入输出方向选择:D4、D3、D1和D0分别用于选择A口、C口高4位、B口和C口低4位的输入输出方向。置一时表示输入,置零时表示输出。

各个端口的工作方式

  • 端口A:端口A可以工作在三种工作方式中的任何一种。
  • 端口B:端口B只能工作在方式0或方式1。
  • 端口C:端口C可以独立工作也可以配合端口A和端口B工作,为这两个端口的输入输出传输提供控制信号和状态信号。

2.2.端口C按位置位/复位控制字

控制字作用:端口C置位/复位控制字用于对端口C的任何一位置一或清零,同时不影响该端口其他位的状态。

控制字格式
在这里插入图片描述

  • 位选择:通过D3-D1设置进行置位或复位的数位。
  • 置位或复位:通过设置最低位进行选择。

3.8255A的工作方式

3.1.方式0:基本输入输出方式

方式特点:该方式下8255A对3个端口24条数据线的用途没有任何强制性的规定,完全由使用者选择决定。

端口划分:可以将3个数据端口划分为4个可以进行独立输入输出的部分:端口A、端口B、端口C的高4位和端口C的低4位。

适用情况:该方式使用在无条件传送和查询式传送两种场合。

无条件传送下的使用方式:无条件传送一般用于连接简单的外部设备,此时接口和外部设备之间不使用联络信号,CPU可以随时对外部设备进行读写。

查询式传送下的使用方式:端口A和端口B作为数据的输入输出端口,端口C的若干位用作联络信号:通常把端口C的一组(4位)设置为输入,另一组(4位)设置为输出。将端口C的若干个输出引脚定义为端口A和端口B的控制信号,若干个输入引脚用作端口A和端口B的外部设备状态信号输入。

3.2.方式1:选通输入输出方式

方式特点:端口A和端口B用作8位数据的输入输出,端口C的一些引脚被规定为端口A、端口B的联络信号,不能再用于一般的输入输出。

引脚信号:如下图所示。

在这里插入图片描述

  • #STBA和#STBB:外部设备数据输入选通信号,连接输入设备时使用,由外部设备送给8255A。该信号有效表示输入设备已经将数据准备好,已经出现在端口A或端口B的数据线上。这个信号同时使输入缓冲区满信号IBF变为有效。对于端口A,STBA信号将外部设备送往端口A的数据锁存到端口A输入锁存器内,端口B没有输入锁存功能。
  • IBFA和IBFB:输入缓冲区满信号,连接输入设备时使用。IBF信号有效时,表示8255A相应端口已经接收到输入数据,但未被CPU取走,输入缓冲器已满。CPU可以通过读端口C得到IBFA和IBFB的状态。该信号一方面可供CPU查询,另一方面送给外部设备,组织外部设备发送新的数据。IBF信号由#STB信号置位,由CPU读信号的后沿将其复位。
  • #OBFA和#OBFB:输出缓冲区满信号,连接输出设备时使用,由8255A输出给外部设备。当信号有效时,表示相应端口已经收到了来自CPU的数据,它的输出缓冲器数据有效,外部设备可以取走该数据。CPU可以通过读C端口获取#OBFA和#OBFB的状态。
  • #ACKA和#ACKB:输出设备接收到数据后的应答信号,由外部设备输出给8255A。外部设备送回该信号表示外部设备已经接收到数据并输出完成,同时该信号会清除输出的#OBFA或#OBFB信号。CPU通过读端口C,获取#OBF为无效时,可以输出下一个数据给8255A相应的端口。
  • INTEA和INTEB:端口A和端口B的中断允许信号。
  • INTRA和INTRB:中断请求信号,由8255A输出给CPU或中断控制器。哪一个信号有效就表示哪一个端口正在申请中断。

工作特点:端口A和端口B中每有一个工作在方式1,则端口C中需要3位作为该方式的联络信号。

适用情况:如果外部设备能够向8255A提供输入数据选通信号和输出数据接收应答信号,就可以采用方式1,方便有效地传输数据。

具体应用场合

  • 中断方式:将INTE置为1,A组和B组可以使用各自的INTR信号申请中断。
  • 查询方式:CPU通过读端口C,可以查询各个信号的当前状态,决定是否进行数据传输。

3.3.双向输入输出方式

方式特点:该方式下外设可以在端口的8位数据线上分别向8255A发送数据或从8255A接收数据,但是不能同时进行。只有端口A可以工作在方式2。

联络信号:该方式需要占用端口C的5位作为联络信号。

  • INTE1:输出中断允许信号。信号有效时,8255输出缓冲器空时通过INTRA向CPU发出输出中断请求信号,为0时屏蔽。
  • INTE2:输入中断允许信号。为1时允许,为0时屏蔽输入中断。

使用场合:如果一个外部设备既是输入设备也是输出设备,并且输入和输出是分时进行的,那么将此设备与8255A的端口A相连,并使得端口A工作在方式2就非常方便。

4.8255A与CPU的连接

  • 与8088的连接:8088使用8位数据总线,8255A中的A1和A0可以直接与系统地址总线中的A1和A0连接。
  • 与8086的连接:8086使用16位数据总线,访问8255A的四个端口时,编程地址应该是4个连续的偶地址。A0总是假定为0,8255的A1和A0引脚分别连接系统地址总线的A2和A1。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/69014.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【视频+源码】登录鉴权的三种方式:token、jwt、session实战分享

前言 因为我既对接过session、cookie,也对接过JWT,今年因为工作需要也对接了gtoken的2个版本,对这方面的理解还算深入。 尤其是看到官方文档评论区又小伙伴表示看不懂,所以做了这期视频内容出来: 内容提要&#xff1…

【Centos】Docker停止容器服务后,磁盘I/O仍然迟迟不下降。(未解决)

记录前言问题复现,故障演练准备工作dcim-local演练过程系统日志message结论前言 安装了docker的服务器只运行了一个容器服务,停止容器服务后,磁盘I/O仍然迟迟不下降。对该现象进行问题复现,故障演练 问题复现,故障演…

STM32CUBEMX开发GD32F303(17)----移植兆易创新SPI Nor Flash之GD25Q64Flash

概述 本章STM32CUBEMX配置STM32F103,并且在GD32F303中进行开发,同时通过开发板内进行验证。 本例程主要讲解如何对芯片自带Flash进行读写,用芯片内部Flash可以对一些需要断电保存的数据进行保存,无需加外部得存储芯片&#xff0c…

UE4/5 PBR模型(带材质)导出Blender/UE4低版本/Unity方法

在项目中,经常会遇到,将UE5/UE4.27中制作好的模型导出。 一共有三种方法: 一、gltf文件导出 例:在UE5 5.1版本中,新建一个网格体,并赋予一个自定义材质 在UE5 中,打开Plugins ,勾选 gltf Exp…

今天杂志今天杂志社今天编辑部2022年第22期目录

理论专著 关于农村小学青年教师培养成长工作的几点思考 (1) 丁少乾 初中美术教学与学生研学旅行结合研究 (4) 刘媛 农村小学劳动教育与小学数学学科整合实践策略研究 (7) 张雪萍 浅谈中职学校《会计电算化》课程革命典型案例 (10) 赵雪梅 问题导向教学法在初中…

Python 常见单词-集合

为了方便大家更好的入门 Python 学习,已经整理好了 Python 语言入门常见 的英文单词,词汇量不大,大概百十来个,多敲多练,预估两周左右可以熟记!大家 加油噢~ 一、交互式环境与 print 输出 1、print&#x…

【JVM】对象实例化内存布局与访问定位

对象实例化 面试题 美团: 对象在JVM中是怎么存储的? 对象头信息里面有哪些东西? 蚂蚁金服: Java对象头有什么? 对象创建方式 new:最常见的方式、单例类中调用getInstance的静态类方法,XXXF…

spark技术特点

一、Hadoop是什么?Hadoop和Spark有什么区别 Hadoop是什么? Hadoop是一个开源的框架,可编写和运行分布式应用处理大规模数据,是专为离线和大规模数据分析而设计的,并不适合那种对几个记录随机读写的在线事务处理模式。HadoopHDFS&#xff0…

COHERENT VERDI 18w激光电源维修注意事项

主要功能: 该激光器可以进行皮秒、飞秒两种模式间的转换,为我们实现皮秒、飞秒级时间内的很快确定性激发提供了基础。同时激发激光需要有足够的功率,才能在少数甚至一个脉冲内确定性的将离子激发到激发态,按照计算选取了泵浦光18…

UAVDT数据集转化为MOT数据集(用作MOTR模型训练)

文章目录UAVDT数据集转化为MOT数据集MOT17 数据集格式traindet.txtgt.txtseqinfo.initestdet.txtUAVDT1. 自行创建下面文件夹路径2. 操作并得到gt.txtseqinfo.ini代码UAVDT数据集转化为MOT数据集 MOT17 数据集格式 ├── MOT17 │ ├── images │ ├── labels_with_…

人工智能期末考试

第一章-绪论 1. 人工智能的定义 定义:使机器的软件或程序,通过某些算法进行数据学习,并使用所学进行仿人决策。 2. 人工智能的各种认知观 符号主义(symbolism) 原理:基于物理符号系统假设和有限合理性原理,起源于数…

SoviChart数据可视化:燃尽图(Burn down chart)

在一个完美的世界里,敏捷项目中的每个Sprint都会完全按计划进行,用户将提供充足的时间表,项目的各个方面都将保持正轨。但是,在现实世界中,会出现范围变化和不可预见的问题,这可能会导致会议和项目时间表延…

Oracle数据表ID自增操作

1、SQL编写 -- 新建用户 create user root IDENTIFIED by 123456; -- 将默认的USERS空间分配给用户 alter user root default tablespace users; -- 授权角色以及权限(默认三个角色:connect、resource、dba) grant create session,create ta…

Java数据结构与Java算法学习Day07---优先队列(简略笔记记录)

目录 一、优先队列 106 1.1优先队列的概念 106 1.2最大优先队列API设计 107 1.3最小优先队列 109 1.3.1最小优先队列API设计 110 1.4索引优先队列 (添加两个数组解决该问题)112 1.4.1索引优先队列的原理 112 1.4.2 索引优先队列API设计 113 1…

Spark Windows10 安装

目录一、Scala的安装二、Spark的安装1、Spark的几个版本的意思2、Spark的最新版本:[Spark最新版](https://spark.apache.org/downloads.html)3、安装Spark4、下载winutils在我们安装Spark之前,由于Spark基于Scala的,所以我们需要先安装Scala。…

机床测头应用二:自动补偿功能,提升生产良率

机床测头仿形加工功能可以保证“第一件和第一百件尺寸一致”机床测头应用一:仿形加工功能,降低废品率,此外它的自动补偿功能,也是批量生产中不可缺少的重要质量控制手段。机床测头的自动补偿能实现加工前准确找到工件中心自动更新…

从零开始学习JMETER性能测试

从零开始学习JMETER性能测试 顶级 Jmeter 讲座通过实时示例解释负载测试,包括材料和查询支持 课程英文名:Learn JMETER from Scratch on Live Apps Performance Testing 此视频教程共17.0小时,中英双语字幕,画质清晰无水印&…

实战项目演练丨九哥带你搭建精美的博客后台管理系统!

本项目是一个博客后台管理系统,主要包含四个大模块:用户、分类、博客和评论。项目启动后需要通过管理员身份进入系统,进入系统后会呈现后台管理主界面,通过后左侧的导航菜单,实现不同模块的数据维护。 一. 基本简介 …

美食杰项目(七)菜谱大全

本文目录前言:1.具体样式2.实现的具体功能和代码思路3.element ui具体样式的网址4.相关代码5.总结:前言: 本文给大家讲的是美食杰项目中菜谱大全项目的具体样式,代码思路和具体代码,希望能帮助到你 1.具体样式 2.实现…

Zabbix6.0使用教程 (一)—zabbix新增功能介绍1

使用zabbix的小伙伴应该都有关注到目前zabbix的大版本已经更新到了6.0,后面乐乐将会对如何使用zabbix6.0做一个使用教程的系列,大家可以持续关注,这篇我们主要聊聊zabbix6.0新增的一些功能介绍。 一、Zabbix server 的高可用集群 新版本附带…