文章目录

  • 一、I/O接口
    • 1-1 I/O接口的功能
    • 1-2 I/O端口及其寻址方式
    • 1-3 CPU与外设间的数据传送方式
    • 1-4 PC机的I/O地址分配
  • 二、8255A的工作原理
    • 2-1 8255A的结构和功能
    • 2-2 8255A的控制字
      • 2-2-1 方式选择控制字
      • 2-2-2 置位/复位控制字
    • 2-3 8255A的工作方式和C口状态字
      • 2-3-1 方式0(必考)
      • 2-3-2 方式1
      • 2-3-3 方式2
      • 2-3-4 C口状态字

一、I/O接口

1-1 I/O接口的功能

(1)计算机与外设之间的信息交换问题

  • 速度不匹配
    CPU的速度很高,而外设的速度要低得多,而且不同的外设速度差异甚大
  • 信号电平不匹配
    CPU所使用的信号都是TTL电平,而外设大多是复杂的机电设备,往往不能为TTL电平所驱动,必须有自己的电源系统和信号电平。
  • 信号格式不匹配
    CPU系统总线上传送通常是8位,16位或32位的并行数据,而各种外设所使用的信息格式各不相同。有些设备上用的是模拟量,而有些人数字量或开关量;有些设备上的信息是电流量,而有些却是电压量,有些设备采用串行方式传送数据,而有些则用并行方式。
  • 时序不匹配
    各种外设都有自己的定时和控制逻辑,与计算机的CPU时序不一致,因此输入输出设备不能直接与CPU的系统总线相连,必须在CPU与外设之间设置专门的接口电路来解决这些问题。

(2)接口的功能

I/O接口电路是外设和计算机之间传送信息的交接部件,它使两者之间能很好的协调工作。每一个外设都要通过接口电路才能和主机相连。随着大规模集成电路技术的发展,出现了许多通用的可编程接口芯片,可用它们来方便地构成集合电路。

  • 设置数据缓冲的解决两者速度差异所带来的不协调问题
    事先把要传送的数据准备在那里,在需要的时刻完成传送,经常使用锁存器和缓冲器,并配以适当的联络信号来实现这种功能。
  • 设置信号电平转换电路
    计算机和外设间的串行通信可采用Max232和Max233的芯片来实现电平转换
  • 设置信息转换逻辑应满足对各自格式的要求
    模拟量必须经模数转换(A/D)变换成数字量后才能送到计算机去处理,而计算机算出的数字信号也必须经数模转换(D/A)变成模拟信号后才能驱动某些外设工作。
  • 设置时序控制电路来同步CPU和外设的工作
    接口电路,接收CPU送来的命令和控制信号,定时信号,实施对外设的控制与管理,外设的工作状态和应答信号也通过接口及时返回给CPU,以握手联络信号来保证主机和外部I/O口操作同实现同步。
  • 提供地址译码电路
    CPU要与多个外设打交道,一个外设往往要与CPU交换几种信息,一个外设接口中通常包含若干个端口,而在同一时刻,CPU只能用同一个端口交换信息。
    在接口电路中还有输入输出控制,读写控制及中断控制等逻辑

1-2 I/O端口及其寻址方式

(1)I/O端口

  • 数据端口
    数据端口用来存放外设送往CPU的数据,以及CPU要输出到外设存的数据,这些数据是主机和外设之间交换的最基本的信息,长度为1~2字节。数据端口主要写数据缓冲的作用。
  • 状态端口
    主要用来指示外设的当前状态
    ▶\blacktriangleright▶准备就绪位
    如果是输入端口,该位为1,表明端口的数据寄存器已准备好数据,等待CPU来读取,当数据被取走后,该为清为零。
    ▶\blacktriangleright▶忙碌位
    用来表明输出设备是否能接受数据,若该位为1表示外设正在进行输出数据传送操作,暂时不允许CPU送新的数据过来。
    ▶\blacktriangleright▶错误位
    如奇偶校验错、溢出错等
  • 命令端口
    命令端口也称为控制端口,它用来存放CPU向接口发出的各种命令和控制字,常见的命令信息有启动位,停止位,允许中断位等。

通常,CPU与外设交换的数据是以字节为单位进行的,因此一个外设的数据端口含有8位,而状态口和命令口可以只包含一位或几位信息,所以不同外设的状态口允许只用一个端口,命令口也可共用,D触发器和三态缓冲器常用来构成这两种端口。

(2)I/O端口的寻址方法

  • 存储器映像寻址方式
    ▶\blacktriangleright▶若把系统中的每一个I/О端口都看作一个存储单元,并与存储单元一样统一编址,这样访问存储器的所有指令均可用来访问I/О端口,不用设置专门的I/O指令,这种寻址方式称为存储器映象的I/O寻址方式( Memory Mapped 1/O)。
    ▶\blacktriangleright▶其优点是微处理器的指令集中不必包含I/O操作指令,简化了指令系统的设计;能用类型多、功能强的访问存储器指令,对I/O设备进行方便、灵活的操作。缺点主要是I/O端口占用了存储单元的地址空间。
  • I/O单独编址方式
    ▶\blacktriangleright▶若对系统中的输入输出端口地址单独编址,构成-一个1/O空间,它们不占用存储空间。
    ▶\blacktriangleright▶这种寻址方式的优点是将输入输出指令和访问存储器的指令明显区分开,使程序清晰﹐可读性好;而且I/О指令长度短﹐执行的速度快。I/О端口不占用内存空间;1/О地址译码电路较简单。不足之处是CPU指令系统中必须有专门的IN和OUT指令,这些指令的功能没有访问存储器指令强;CPU还需提供能够区分访问内存和访问I/O的硬件引脚信号。
    ▶\blacktriangleright▶两种寻址方式各有利弊,一般要根据所用的CPU类型来确定I/O寻址方式。例如,对于Motorola公司的CPU,通常没有专门的IN和OUT指令,因此都采用存储器寻址方式编址,而对于8086/8088系统,习惯上都采用I/O寻址方式。

1-3 CPU与外设间的数据传送方式

(1)程序控制方式

  • 无条件传送方式
    ▶\blacktriangleright▶无条件传送方式也称为同步传送方式,主要用于对简单外设进行操作。
    ▶\blacktriangleright▶对于这类外设,在任何时刻均已准备好数据或处于接收数据状态,或者在某些固定时刻,它们处在数据就绪或准备接收状态,因此程序可以不必检查外设的状态,而在需要进行输人或输出操作时,直接执行输入输出指令。
    ▶\blacktriangleright▶所需要的硬件和软件都较少。

  • 条件传送
    ▶\blacktriangleright▶条件传送方式也称为查询式传送方式。一般情况下,当CPU用输人或输出指令与外设交换数据时,很难保证输入设备总是准备好了数据,或者输出设备已经处在可以接收数据的状态。为此,在开始传送前,必须先确认外设已处于准备传送数据的状态,才能进行传送,于是就提出了查询式传送方式。
    ▶\blacktriangleright▶接口电路包括状态口和输入数据口两部分。

(2)中断方式

  • 用查询方式使CPU与外设交换数据时。CPU要不断读取状态位,CPU的利用率变得很低。
  • 采用中断方式后,CPU平时可以执行主程序,只有当输入设备将数据准备好了,或者输出端口的数据缓冲器已空时,才向CPU发中断请求。CPU响应中断后﹐暂停执行当前的程序,转去执行管理外设的中断服务程序。在中断服务程序中,用输入或输出指令在CPU和外设之间进行-次数据交换。等输人或输出操作完成之后,CPU又回去执行原来的程序。
    (3)DMA方式
  • 当CPU与高速I/O设备交换数据,或者与外设进行成组数据交换时,中断方式仍然显得太慢。
  • 为了解决这个问题,可采用一种称为DMA(Direct Memory Ac-cess)的传送方式,也就是直接存储器存取方式。
  • DMA方式也要利用系统的数据总线、地址总线和控制总线来传送数据。
  • CPU让出对于总线的控制权,用一种称为DMA 控制器的专用硬件接口电路来取代CPU,临时接管总线,控制外设和存储器之间直接进行高速的数据传送
  • 这种控制器能给出访问内存所需要的地址信息,并且能够自动修改地址指针,也能够设定和修改传送的字节数,还能够向存储器和外设发出相应的读/写控制信号。
  • 在 DMA传送结束后,它能释放总线,把对总线的控制权又交还给CPU。

1-4 PC机的I/O地址分配

  • 在IBM PC/XT机中,中断控制、 DMA控制、动态RAM刷新、系统配置识别﹑键盘代码读取及扬声器发声等都是由可编程I/О接口芯片控制的。
  • 这些接口芯片包括:8259A中断控制器、8237A-5 DMA控制器、8255A-5并行接口芯片、8253-5计数器/定时器等。
  • 它们都安装在PC/XT机的系统板上,每块接口芯片都要使用I/О端口地址。
  • 在系统板上还有8个1/O扩展槽,也称为I/O通道。

二、8255A的工作原理

8255A是一种通用的可编程并行I/O接口芯片(Programmable Peripherial Interface,PPI),它是为Intel系列微处理器设计的配套电路,也可用于其它微处理器系统中。通过对它进行编程,芯片可工作于不同的工作方式。

2-1 8255A的结构和功能


(1)数据端口A、B和C

  • 8255A内部包含3个8位的输入输出端口A.B和C。
  • 各端口在结构和功能上有不同的特点:
    ▶\blacktriangleright▶端口A包含一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器,因此,A口作输入或输出时数据均能锁存。
    ▶\blacktriangleright▶端口B包含一个8位的数据输入/输出锁存器/缓冲器,一个8位的数据输入缓冲器。
    ▶\blacktriangleright▶端口C包含一个8位的数据输出锁存器/缓冲器,一个8位的数据输人缓冲器,无输入锁存功能,当它被分成两个4位端口时,每个端口有一个4位的输出锁存器。

(2)A组和B组控制逻辑

  • 它们内部有控制寄存器,用来接收CPU送来的命令字,然后分别决定A组和B组的工作方式,或对端口C的每一位执行置位/复位等操作。
  • 8255A的端口A和端口C的上半部分(PC7∼PC4PC_7\sim PC_4PC7​∼PC4​)由A组控制逻辑管理,端口B和端口C的下半部分(PC3PC_3PC3​~PC0PC_0PC0​)由B组控制逻辑管理。

(3)数据总线缓冲器

  • 这是一个双向三态的8位缓冲器,用作8255A和系统数据总线之间的接口。

(4)读/写控制逻辑

  • 系统送到读/写控制逻辑的信号包括:
    ▶\blacktriangleright▶RESET复位信号,高电平有效。该信号有效时,将8255A 控制寄存器内容都清0,并将所有的端口(A、B和C)都置成输入方式。
    ▶\blacktriangleright▶ CS‾\overline {CS}CS片选信号,低电平有效,由地址总线经I/О端口译码电路产生。只有当该信号有效时,CPU与8255A之间才能进行通信,也就是CPU可对8255A进行读/′写等操作。
    ▶\blacktriangleright▶RD‾\overline {RD}RD读信号,低电平有效。当RD为低时,CPU可从8255A读取数据或状态信息。
    ▶\blacktriangleright▶WR‾\overline {WR}WR写信号,低电平有效。当WR有效时,CPU可向8255A写入数据或控制字。
    ▶\blacktriangleright▶A1A0A_1A_0A1​A0​端口选择信号。在8255A 内部有3个数据端口(A、B、C)和一个控制字寄存器端口。当A1A0A_1A_0A1​A0​=00时,选中端口A1A0A_1A_0A1​A0​=01时,选中端口B;A1A0A_1A_0A1​A0​=10时,选中端口C;A1A0A_1A_0A1​A0​=11时,选中控制宇寄存器端口。
  • 如果8255A与8位数据总线的微机相连,只要将A1A0A_1A_0A1​A0​分别与地址总线的最低两位A1A0A_1A_0A1​A0​相连即可。
  • 如果系统采用的是8086 CPU,则数据总线为16位。CPU在传送数据时,总是将低8位数据送往偶地址端口,将高8位数据送到奇地址端口。
  • 芯片的数据线D1∼D0D_1\sim D_0D1​∼D0​接到系统数据总线的低8位,这样,CPU就要求芯片内部的各个端口都使用偶地址。
  • 地址总线中的A2A1A_2A_1A2​A1​实现端口选择,即将A2A_2A2​连到8255A 的A1A_1A1​引脚,而将A1A_1A1​与8255A 的A0A_0A0​引脚相连。

2-2 8255A的控制字

2-2-1 方式选择控制字

  • 方式0-基本输入输出方式;
    方式1-选通输入输出方式;
    方式2-双向总线I/O方式。

2-2-2 置位/复位控制字

2-3 8255A的工作方式和C口状态字

2-3-1 方式0(必考)

  • 方式0称为基本输入输出(Basic Input/Output)方式,它适用于不需要用应答信号的简单输人输出场合。
  • 在这种方式下,A口和B口可作为8位的端口,C口的高4位和低4位可作为两个4位的端口。这4个端口中的任何一个既可作输人也可作输出,从而构成16种不同的输入输出组态。在实际应用时,C口的两半部分也可以合在一起,构成一个8位的端口。
  • 对于方式0,还规定输出信号可以被锁存,输入不能锁存。

  • D6D5D_6D_5D6​D5​=00,选择A口工作于方式0;D2D_2D2​=0,选择B口工作于方式0;D7D_7D7​=1为标志位;余下的D4D3D_4D_3D4​D3​ 和 D1D0D_1D_0D1​D0​ 这四位可以任意取0或取1,由此构成4个端口的16种不同组态。

2-3-2 方式1

(1)选通输入方式

  • STB‾\overline{STB}STB 选通信号,低电平有效,由外部输入。
  • IBF 输入缓冲器满信号,高电平有效。
  • INTE 中断允许信号
  • INTR 中断请求信号
  • 工作过程:
    ①当外设把一个数据送到端口数据线PA7∼PA0PA_7\sim PA_0PA7​∼PA0​(对于A口)或PB7∼PB0PB_7\sim PB_0PB7​∼PB0​,(对于B口)后,就向8255A发出负脉冲选通信号STB,外设的输入数据锁存到8255A的输人锁存器中。
    ②选通信号发出后,经tSBt_{SB}tSB​时间, IBF有效,它作为对输入设备的回答信号,用于通知外设输人缓冲器已满,不要再送新的数据过来。
    ③选通信号结束后,经 tSITt_{SIT}tSIT​时间,若STB‾\overline{STB}STB、IBF和INTE三者同时为高电平,使 INTR有效。这个信号可向CPU发中断请求,CPU响应中断后,通过执行中断服务程序中的IN指令,使读信号RD‾\overline{RD}RD有效(低电平)。
    ④读信号有效后,经tRITt_{RIT}tRIT​时间后,使 INTR变低,清除中断。
    ⑤读信号结束后,数据已读人累加器,经tRIBt_{RIB}tRIB​时间,IBF变低,表示缓冲器已空,一次数据输入的过程结束,通知外设可以再送一个新的数据来。

(2)选通输出方式

2-3-3 方式2

双向总线方式(Bidirectional Bus)。

2-3-4 C口状态字

当8255A工作于方式0时,C口各位作输入输出用。当它工作于方式1和方式2时,C口产生或接收与外设间的联络信号,这时,读取C口的内容可使编程人员测试或检查外设的状态,用输入指令对C口进行读操作就可读取C口的状态。

微机原理-I/O并行接口和并行接口芯片8255A相关推荐

  1. 【微机原理与接口技术】具体芯片(1)并行接口8255A(1):全局观

    并行接口8255A 首先,它是传输并行数据的,与CPU一样,然后,它是可编程的,也是多功能的,CPU可以对其进行一些控制. 管脚 先从最宏观层面分类 一部分引脚与外设相连 一部分引脚与CPU相连 GN ...

  2. 【微机原理与接口技术】具体芯片(1)并行接口8255A(2):控制字概述

    核心 对于一个多功能可编程接口芯片,我们要想使用它,必须 先确定需求,要用什么芯片去干什么 设置芯片的工作方式 然后再让芯片工作 至于设置的方式,当然是软件编程. 同时重点注意,例如8255A,它一次 ...

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

    文章目录 1.8255A的内部结构与外部引脚 1.1.三个数据端口A.B.C: 1.2.A组控制和B组控制 1.3.数据总线缓冲器 1.4.读写控制逻辑 1.5.8255A的外部引脚 2.8255A的 ...

  4. 【微机原理与接口技术】学习笔记5 I/O接口和并行接口芯片8255A

    文章目录 6.1 I/O接口 6.1.1 I/O接口的功能 1. 采用I/O接口的必要性 2. 接口的功能 6.1.2 I/O端口及其寻址方式 1. I/O端口 2. I/O端口的寻址方法 (1) 存 ...

  5. 微机原理与接口技术 学习笔记(五) 8255(可编程并行接口芯片) 与 8253(可编程定时/计数器)

    文章目录 一,可编程并行接口芯片8255A 1. 8255A的结构 1.1 数据端口 1.2 端口控制逻辑 1.3 数据总线缓冲器 1.4 读/写控制逻辑 2. 方式选择 2.1 方式选择控制字 2. ...

  6. 微型计算机原理8255并行接口实验,微机原理实验二 8255A并行接口应用.pdf

    微机原理实验二 8255A并行接口应用 实验二 8255A 并行接口应用 一.实验目的 1.掌握8255A 的功能及方式0.1 的实现 2 .熟悉8255A 与CPU 的接口,以及传输数据的工作原理及 ...

  7. 实验6 8255并行接口实验【微机原理】【实验】

    实验6 8255并行接口实验[微机原理][实验] 前言 推荐 3.2 8255并行接口实验 3.2.1实验目的 3.2.2实验内容 3.2.3实验原理 3.2.4 实验说明及步骤 3.2.5实验提示 ...

  8. 第八章 可编程接口芯片及应用【微机原理】

    第八章 可编程接口芯片及应用[微机原理] 前言 第8章可编程接口芯片及应用 8.1 可编程定时器/计数器芯片 8253/8254 8.1.1 8253的结构与功能 8.1.2 8253的编程 8.1. ...

  9. 【微机原理 实验】可编程外围接口芯片8255(4)(硬件-含汇编代码)

    实验十  可编程外围接口芯片8255(4) 更多微机实验: Github: https://github.com/Amoiensis/Assembly-language CSDN: https://b ...

  10. 微机原理与接口技术 | 四种可编程芯片的编程要点不完全记录

    注:未记录芯片的引脚和具体工作方式,主要记录芯片的各控制字或命令字的初始化编程要点,其字格式也并未给出,可翻阅书籍查找. CONTENTS 可编程中断控制器Intel 8259A 可编程定时/计数器芯 ...

最新文章

  1. java简体(繁体)转换器
  2. 教你搭建多变量时间序列预测模型LSTM(附代码、数据集)
  3. python 数据增强
  4. orb-slam评价
  5. html在百度地图显示位置,在百度地图显示当前位置.html
  6. 练习-多表图书管理系统
  7. Microsoft.Practices.EnterpriseLibrary连接Oracle
  8. html文本弹性,HTML5 很有趣的文本蹦床/弹性弯曲动效
  9. 数学建模1(历年问题与模型)
  10. win7计算机双击空白,win7系统控制面板“打开或关闭Windows 功能”空白没有任何选项的解决方法...
  11. elasticsearch 海选功能
  12. android 调出键盘表情_keyboard dialog 仿微博表情键盘输入框,keyboarddialog
  13. 开题报告:基于java校园学校球馆运动场地预约系统 毕业设计论文开题报告模板
  14. 小米高通9008授权MiFlash刷机免认证思路
  15. RS-485 通讯协议简介
  16. 简单粗暴理解与实现机器学习之聚类算法(四):模型评估、误差平方和SSE、“肘”方法 、轮廓系数法、CH系数
  17. 智能电话机器人--基于 UniMRCP 实现讯飞 ASR MRCP Server
  18. 建网站怎么选合适的网站模版
  19. 图片扫描文字识别工具:text scanner mac中文版
  20. 斯特林数 java实现_斯特林数 - BILL666 - 博客园

热门文章

  1. 关于mutex的一些理解
  2. 黑莓key2常用软件测试,黑莓KEY2深度评测:兼顾安全与办公效率的商务机回来了...
  3. 研究员 vs Nervos
  4. 本校暑假训练营10_Python数据分析入门6-聚类1
  5. RE-实验吧whatamitoyou
  6. IDM怎么下载电影电视剧?快来GET
  7. 淘宝sdk学习笔记【淘宝装修】------索引
  8. centos阿里镜像下载
  9. Qui-MinPure主题V1.0版发布——免费WP纯文章主题
  10. Java语言 学生信息管理系统