工学第17讲输入输出控制、串行接口、并行接口课件_第1页
工学第17讲输入输出控制、串行接口、并行接口课件_第2页
工学第17讲输入输出控制、串行接口、并行接口课件_第3页
工学第17讲输入输出控制、串行接口、并行接口课件_第4页
工学第17讲输入输出控制、串行接口、并行接口课件_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、输入输出控制串行接口、并行接口-学习目标(1) 掌握 PC 机的 I/O 寻址方式并了解 PC 机 I/O 端口地址分配 。(2) 掌握PC机的三种输入 / 输出控制方式:程序控制方式, 中断控制方式及 DMA 控制方式的工作原理。 (3) 掌握与8259A 可编程中断控制器并了解 PC及 PC/AT 兼容的 ISA 总线上的常规中断、新的 PCI 中断、串行中断技术以及高级可编程中断控制子系统 APIC 概况。(4) 掌握与 8237 可编程 DMA 控制器相关的具体内容并了解 PC 中的 DMA 通道。 第1页,共59页。3.5输入/输出及控制3.5.1 输入/输出及控制概述计算机通过输入

2、 / 输出设备与外部交换信息是通过 I/O 操作来实现的。 I/O 操作的任务是将输入设备输入的信息送入内存的指定区域或者将内存指定区域的内容送出到输出设备。与 CPU 执行算术逻辑操作相比 , I/O 操作有如下特点。多数 I/O 设备在操作过程中包含机械动作, 其工作速度比 CPU 慢得多, 因此为提高系统效率, I/O 操作与 CPU 的数据处理操作往往并行进行。第2页,共59页。多个 I/O 设备本身也要能同时工作, 例如一边从键盘输入信息、一边在显示屏上显示,同时还有可能需要打印输出。除键盘、显示器和鼠标等基本的 I/O 设备外, 不同 PC 所配置的 I/O 设备的数量、品种和性能

3、差别很大, 且经常会增减或升级。不同种类的多种 I/O 设备可以以多种不同的方式与主机连接。第3页,共59页。为实现上述各种可能的 I/O 操作需求, 不同 I/O 设备都有自己专用的 I/O 控制器, 它们的任务是接收 CPU 启动 I/O 操作的命令, 独立地控制 I/O 设备工作, 表明 I/O 操作是否完成。I/O 控制器是一组电路 , 不同的设备其控制器的结构和功能也不相同 O 键盘、鼠标、打印 机等的 I/O 控制器比较简单 , 它们已集成在主板芯片组中 ( 见图 3.6) 。第4页,共59页。主机上用于连 接 I/O 设备的各种插头 / 插座及相应的通信规范及电器特性等称为 I/

4、O 设备接口 , 简称 I/O 设 备。第5页,共59页。3.5.2 输入/输出及控制方式1. 程序控制方式是指在程序的控制下进行数据传送,分为元条件传送方式和条件传送方式两种。在传送数据之前不查询外设的状态而直接执行输入指令或输出指令的方式就是无条件传送。无条件传送是输入/输出控制方式最简单的一种 , 该传送方式的条件是, 传送不是太频繁, 并需保证每次传送时, 外设处于就绪状态。第6页,共59页。条件传送也称为查询式传送, CPU 通过执行程序不断读取外设的状态。输入设备处于准备好状态或输出设备处于空闲状态, 则 CPU 执行输入指令或输出指令与外设交换信息。要求接口电路中除了有数据端口外

5、, 还应有状态端口。第7页,共59页。2.中断控制方式当输入设备已将数据准备好或输出设备可以接收数据时 , 便可向CPU发中断请求。 CPU 响应中断请求后, 暂时停止执行当前程序而去执行一个为外设输入/输出数据的服务程序。此服务程序即为中断处理子程序或中断服务子程序。中断服务程序执行完, CPU 又转回到被中断处而继续执行原来的程序。第8页,共59页。在中断控制方式下, CPU 和外设在大部分时间里是并行工作的。 CPU不必在两个输入/输出过程之间对接口的状态进行测试和等待, 而是完成与输入/输出无关的正常的工作信号。当外设准备就绪时, 外设会主动向CPU发中断请求而进入一个传送过程。此过处

6、理完成后, CPU又可以继续执行被中断的任务, 而不是转入等待状态。因此, 采用中断方式可以大大提高 CPU 的效率并具有较高的实时性。第9页,共59页。3. DMA 控制方式与程序控制方式相比 , 采用中断控制方式进行输入 / 输出能提高 CPU 的利用率。但其数据传输仍是通过执行程序来完成的, 并且每次传输都需要保护断点处的现场信息,这又需要 CPU 一定的执行时间。采用中断控制方式传输数据的速度不可能很快, 不能满足高速 I/O 设备以及磁盘设备成组交换数据的需求。第10页,共59页。DMA 方式采用专门的硬件控制器 ( DMAC) 来执行数据传送。 DMAC 可从 CPU 那里接管系统

7、总线的控制权, 并且由 DMAC 本身发出的存储器地址信号以及访问存储器和I/O设备的读写脉冲等控制信号, 使得数据通过总线直接在存储器和I/O设备之间(或I/O设备与存储器之间, 存储器与存储器之间) 进行传送。在DMA接管总线执行数据传送过程中, CPU暂停工作, 不参与数据传送。第11页,共59页。第12页,共59页。使用 DMA 控制方式进行输入/输出操作时, CPU必须先对指定外设的 DMA 通道设定工作方式, 给出 I/O 操作命令, 指出要传送的数据在存 储器中的起始地址及需要传送的字节数目等, 然后才能启动DMAC工作。第13页,共59页。非屏蔽中断请求中断逻辑INT n指令I

8、NT0指令除法错误单步TF=1 IR0 8259A IR1 可编程 IR2 中断 IR3 控制器 IR4 (PIC) IR5 IR6 IR7INTRNMICPUn410系统定时器键盘彩色/图形接口保留(通信)串行通信接口保 留(ALT打印机)软盘保留(打印机)08090A0B0C0D0E0F第14页,共59页。3.5.3 8259A 可编程中断控制器8259A逻辑结构第15页,共59页。1. 8259A 中断控制器结构8259A 是为控制优先级中断而设计的可编程芯片 , 它具有将中断源按优先级排队、辨认中断源、向 CPU提供中断向量等功能 , 可协助 CPU 方便地管理八级中断 中断请求线 I

9、RQO-IRQ7 上的中断请求信号接至 8 位的中断请求寄存器 IRR,IRR 寄存所有中断请求( 对应位置 1 表示有中断请求 ) 第16页,共59页。I/O 设备发出的中断请求信号 IRQi 为高电平的时间必须保 持到 8259A 接收到 CPU 发出的第一个中断响应信号 INTA负脉冲结束时为止。 8259A 接收到第二个中断 响应信号 INTA后 , 将把中断类型码的值输出到数据总线上。8259A 内部的数据总线缓冲器用于连接系统的数据总线和 8259A 的内部总线, 以便CPU对 8259A 写入状态字和控制字 , 或者读出 8259A 的信息读/写控制电路接受I/O 命令, 对82

10、59A初始化命令字(ICW)寄存器和操作命令字(OCW)寄存器进行编程, 以规定 8259A 的工作方式和控制方式,级联缓冲、 比较第17页,共59页。2 . 8259A 编程及示例使用 8259A 进行中断控制时 ,CPU 首先应对 8259A 内部的各寄存器写入相应的初始化命令字 ICW 和控制命令字 OCW, 即要对 8259A 进行初始化编程。初始化命令字共有四个 :ICW1(PC 的主片口地址为 20H, 从片口地址为 A0H, ICW2,ICW3 和 ICW4( 主片口地址都是 21H, 从片口地址都是 A1H) 。编程时 CPU 必须按 ICW1-ICW4 的顺序写 入。第18页

11、,共59页。初始化命令字 ICW例如:ICW1 用于设置 8259A 的基本工作方式 , 其格式D7D6D5D4D3D2D1D0A7A6A51LTIMADISNGLIC4IC4 用于规定是否需要写入初始化命令字I CW :I C4 = 1 , 需要写入 ICW4; IC4 = 0 , 不需写入 ICW4。 SNGL 用于指出使用单片 8259A 还是多片 8259A: SNGL = 1, 单片方式。 SNGL = , 单片方式ICW2 ICW3 ICW4 功能?第19页,共59页。操作命令字CPU 在向 8259A 写完初始化命令字后, 为了进一步提高它的中断处理功能, 例如:为了屏蔽某些中断

12、,为了能够读出 IRR,ISR 中的内容, 为了能够发出中断结束命令EOI等, 还需继续设置 8259A写入操作命令字。操作命令字共有三个 :OCW1( 主片口地址为 21H, 从片口地址为 A1H) OCW2( 主片口地址为 20H, 从片口地址为 AOH)OCW3( 主片口地址为 20H, 从片口地址为 AOH)第20页,共59页。OCW1 用来设置中断屏蔽寄存器 IMR 中各位的值 , 其格式为 :D7 D6 D5 D4 D3 D2 D1 D0M7 M6 M5 M4 M3 M2 M1 MO当 Mi = 1 时 , 对应的第 i 个中断请求被屏蔽 U=0,1,2, ,7)。第21页,共59

13、页。OCW2 用来设置中断结束、优先权循环等操作方式 , 其格式为 D7 D6 D5 D4 D3 D2 D1 DORSLEO I00L2L1LOR: 优先权循环位. R=O 时 ,8 个中断的优先级固定不变 (IRQ7 最低 ,IRQ0 最高 ). R= 1 时 , 优先级循 环。此时优先级采用循环轮转方式 , 一个中断请求 , 例如 IRQ4, 服务完毕后 , 就轮为最低级别的优先级 , 而 和它相邻的中断请求 , 此时为 IRQ5, 变为最高优先级 ,IRQ6 变为次高优先级 , 其他依次类推 第22页,共59页。 ; 8259A 初始化程序段(单片、嵌套中断工作方式)MOV AL, 13

14、H ; ICWl 送入 AL,单片 8259A,边沿触发 OUT 20H,AL ; ICWl 送入 ICWl 口地址MOV AL, 8 ; ICW2 送入 AL, 送中断向量类型码 高5位OUT 2lH,AL ; ICW2 送入 ICW2 口地址MOV AL, 9 ; ICW4 送入 AL, 表示 80 x86 模式, 缓冲方式, 一般嵌套方式OUT 2lH,AL ; ICW4 送入 ICW4 口地址MOV AL, OFFH ; OCWl 送入 AL, 屏蔽所有中断OUT 2lH, AL ; OCWl 送入 OCWl 口地址第23页,共59页。; 查询 8259A 中断屏蔽寄存器程序段MOVA

15、L, 0 ; OCWl 送入 AL, 表示 IMR为全 OOUT2lH,AL ; OCWl 送入OCWl 口地址INAL, 2lH; 读 IMR 状态ORAL, AL; IMR =O?JNZD6 ; 若不为 0, 则转出错程序 D6MOV AL, OFFH ; OCWl 送入 AL, 表示 IMR 为全 lOUT 2lH, ALINAL, 2lH; 读 IMR 状态ADDAL, 1 ; IMR=l?JNZD6 ; 若不为 1 , 则转出错程序 D6第24页,共59页。3. PC 的 ISA 总线中断PC/XT 使用一片 8259A 管理 8 级可屏蔽硬件中断 , PCI AT 及以上的系统使用

16、两片 8259A管理 15 级可屏蔽硬件中断。第25页,共59页。第26页,共59页。 IRQ标准功能总线插槽总线类型使用参考0系统定时器未引出 1键盘控制器未引出 2供第二个8259A级联用未引出 8实时时钟未引出 9可用(类似IRQ2 )引出XT/ISA网卡 10可用引出ISAUSB 11可用引出ISASCSI主适配器 12可用的主板鼠标口引出ISA主板鼠标端口 13数学协处理器未引出 14主IDE引出ISA第一个IDE (硬盘) 15次IDEI可用引出ISA第二个IDE(CD-ROM/磁带) 3串行口2 (COM2)引出XT/ISACOM2/内置MODEM 4串行口1 (COMl)引出X

17、T/ISACOMI 5声音/并行口2 (LPTI)引出XT/ISA声卡 6软盘控制器引出XT/ISA软盘控制器 7并行口1 (LPTl)引出XT/ISALPTl第27页,共59页。4. 中断控制方式下 I/O 的执行过程(1)键盘设备通过中断请求线 IRQl 将 8259A 内部中断请求触发器 IRR 相应位 (IRQl ) 置位。 (2)8259A 收到 IRQl 信号, 将与同时申请中断的其他信号或正挂起的中断信号, 通过内部中断优先级分析器进行分析比较, 如果该中断请求是唯一的, 或优先级为最高, 则由 8259A 的 INT 引脚向 CPU 发出中断请求信号 INTR第28页,共59页

18、。(3)CPU 响应中断, 连续发出两个INTA信号, 第一个 INTA 信号将现行的中断服务寄存器 ISR 相应位置位, 表示正在为它服务, 同时中断请求触发器 IRR 相应位复位, 为再次中断请求 做好准备 (如果中断请求是由从片8259A发出的, 则主片 8259A 将从 CASO _ CAS2 引脚向从片送出识别码) 。第二个 INTA 信号则要求 8259A 将中断信号的类型码送到数据总线上。第29页,共59页。(4)CPU 收到 8 位中断类型码 (键盘中断类型码为 09H)后, 将其乘以4 后作为中断向量的地址 (5) CPU 屏蔽中断, 将中断现场信息 (标志寄存器和 IP及C

19、S 值) 压入系统堆钱, 标志寄存器 I 位(中断允许位) 和T 位 (陷阱标志位) 清零, 并按中断向量地址取得到新的 IP 及 CS 的值(6) CPU 以 CS 的值为段址 , IP 为偏移值 , 转去执行键盘中断服务程序 第30页,共59页。(7)CPU 执行键盘中断服务程序从键盘输入缓冲器中取得输入的数据。 (8)中断服务程序结束时返回到原先被中断的程序继续执行。用中断控制方式的 I/O 处理过程的效率要比程序控制方式高 , 但 CPU理过程也更复杂,如果处理的是高速外部设备,由于频繁地中断, CPU效率会降低, 此时应采用 DMA 控制方式第31页,共59页。3.5.4 8237

20、可编程 DMA 控制器第32页,共59页。1.DMA控制方式的原理第33页,共59页。CS: 片选输入端, 低电平有效。RESET: 复位输入端, 高电平有效。 RESET 有效时 , 屏蔽寄存器置 1 (所有通道工作在屏正式态) , 其他寄存器均清0。复位后 , 8237 处于空闲周期, 它的所有控制线都处于高阻状态,复位之后必须重新初始化, 否则 8237 不能进入DMA 操作。第34页,共59页。READY: 准备就绪信号输入端, 高电平有效。当所选择的存储器或 I/O 端口的速度较慢, 需要延长传输时间时, 使 READY 端处于低电平, 8237 自动在存储器读和存储器写周期中插入等

21、待周期, 当传输完成时 , READY 端为高电平, 表示存储器或外设准备就绪。第35页,共59页。ADSTB: 地址选通输出信号 , 高电平有效。此信号有效时 , 8237 当前地址寄存器的高 8位经数据总线 DB7 - DBO 送到外部锁存器中。AEN: 地址允许输出信号, 高电平有效。 AEN 把外部锁存器中锁存的高 8 位地址放到系统地址总线上, 与芯片直接输出的低 8 位地址共同构成内存单元地址的偏移量。AEN 在DMA传送时也可以用来屏蔽别的系统总线驱动器。第36页,共59页。MEMR: 存储器读信号, 低电平有效, 输出, 只用于 DMA 传送。在 DMA 读周期期间 , 用于从

22、寻址的存储器单元中读出数据MEMW: 存储器写信号, 低电平有效, 输出, 只用于 DMA 传送。在 DMA 写周期期间,用于将数据写入所寻址的存储单元中。第37页,共59页。lOR: I/O 读信号, 低电平有效 , 双向。CPU 控制总线时, 它是输入信号, CPU 利用此信号读取 8237 内部寄存器的状态; 当 8237 控制总线时, 它是输出信号, 与MEMW相配合, 控制 数据由外设传送至存储器。第38页,共59页。lOW: I/O 写信号, 低电平有效, 双向。 CPU 控制总线时, 它是输入信号, CPU 利用它把信息写入 8237 内部寄存器(初始化) ; 当 8237 控制

23、总线时, 它是输出信号, 与 MEMR 互相配合, 把数据从存储器传送至外设。第39页,共59页。EOP: DMA 传送过程结束信号, 低电平有效, 双向。当由外部向DMA控制器送一个EOP信号时, DMA 传送过程被外部强迫结束。当 DMA 控制的任一通道计数结束时, 会从EOP引脚输出一个低电平, 表示 DMA 传输结束。无论是从外部终止 DMA 过程 , 还是内部计数 结束引起 DMA 过程终止, 都会使 DMA 控制器的内部寄存器复位。第40页,共59页。DREQO - DREQ3: DMA 请求输入信号, 有效电平可由编程设定。这 4 条 DMA 请求线是外设为取得DMA 服务而送到

24、各个通道的请求信号。在固定优先级情况下 , DREQO 优先级最高, DREQ3 优先级最低; 在优先级循环方式下 , 某通道的 DMA 请求被响应后 , 随即降为最低级。第41页,共59页。8237 用 DACK 信号作为对 DREQ 的响应, 在相应的 DACK 信号有效之前, DREQ 信号必须维持有效。DACKO - DACK3: DMAC 对各个通道请求的响应信号, 输出, 有效电平可由编程设定。 8237 接收到通道请求后, 向 CPU 发出 DMA 请求信号 HRQ, 当 8237 获得 CPU 送来的总线允许信号 HLDA后 , 产生 DACK 信号送到相应的外设端口, 从而进

25、入 DMA 服务过程第42页,共59页。HRQ: 8237 输出给 CPU 的总线请求信号, 高电平有效。当外设的 I/O 端口要求 DMA 传送时, 向 DMA 控制器发送 DREQ 信号, 如果相应通道屏蔽位为0, 即 DMA 请求未被屏蔽, 则 DMA 控制器的 HRQ 端输出为有效电平 , 从而向 CPU 发总线请求。HLDA: 总线响应信号, 高电平有效, 是 CPU 对 HRQ 信号的应答信号。 CPU 接收到 HRQ 信号后, 在当前总线周期结束之后让出总线 , 并使 HLDA 信号有效。第43页,共59页。程序命令控制逻辑对 CPU 送来的程序命令进行译码, 在 DMA请求服务

26、之前 (即芯片处于空闲周期) , 通过 I/O 地址缓冲器送来的地址 A3 - AO 分别对内部寄存器进行预置; 在 DMA 服务期间 (即芯片处于操作周期) ,对方式控制字的最低两位Dl、DO 进行译码, 以确定DMA 的 操作通道。第44页,共59页。A3-A0: 地址总线低 4 位, 双向。当 CPU 控制总线时, 是地址输入线, CPU 用这 4 条地址线对 DMA 控制器的内部寄存器进行寻址, 完成对 DMA 控制器的编程。当8237控制总线时, 由这 4 条线输出要访问的存储单元的最低 4 位地址。第45页,共59页。A7 -A4: 地址线 , 输出 , 用于 DMA 传送时输出要访问的存储单元低 8 位地址中的高 4 位。DB7 _ DBO: 8 位双向数据线 , 与系统数据总线相连。在 CPU 控制总线时, CPU 可以通过I/O命令从 DMA 控制器中读取内部寄存器的内容送到 DB7 _ DBO, 以了解 8237 的工作情况 , 可以通过 I/O 写命令对 DMA 控制器的内部寄存器进行编程。第46页,共59页。2. 8237 的内部寄存器8

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论