1 / 41

第 7 章 输入 / 输出系统

第 7 章 输入 / 输出系统. 7.1 概 述. 7.1.1 接口电路. 定义: 是 CPU 与 “ 外部世界 ” 的 连接电路 ,负责 “ 中转 ” 各种 信息 。. I/O 接口与 I/O 设备. 不同 I/O 设备对应 I/O 接口不同。. I/O 接口受 CPU 控制, I/O 设备受 I/O 接口控制。. 为增加通用性, I/O 接口的接口电路一般均具有可编程功能。. 微机的应用离不开与外部设备接口的设计、选用和连接。. 微机接口技术是编程人员的一项基本技能。. 1 I/O 接口功能. 数据缓冲功能: 通过寄存器或锁存器实现。.

lorin
Download Presentation

第 7 章 输入 / 输出系统

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第7章 输入/输出系统

  2. 7.1 概 述 7.1.1 接口电路 定义:是CPU与“外部世界”的连接电路,负责“中转”各种信息。

  3. I/O接口与I/O设备 不同I/O设备对应I/O接口不同。 I/O接口受CPU控制,I/O设备受I/O接口控制。 为增加通用性,I/O接口的接口电路一般均具有可编程功能。 微机的应用离不开与外部设备接口的设计、选用和连接。 微机接口技术是编程人员的一项基本技能。

  4. 1 I/O接口功能 数据缓冲功能:通过寄存器或锁存器实现。 存放数据的寄存器或锁存器称之为数据口。 接受和执行CPU命令功能: 存放CPU命令代码的寄存器称之为命令口, 存放执行状态信息的寄存器称之为状态口。 设备选择功能:CPU通过地址选择不同外设。 即CPU通过地址选择不同I/O接口。 信号转换功能:协调总线信号与I/O设备信号。 转换包括信号的逻辑关系、时序配合和电平转换。 可编程功能:增加接口的灵活性和智能性。

  5. 2 接口电路分类 接口按通用性可分为两类:专用接口和通用接口。 通用接口是可供多种外部设备使用的标准接口,它可以连接各种不同的外设而不必增加附加电路。 接口按可编程性也分为两类:可编程接口和不可编程接口。 接口按与外设数据的传送方式可分为并行I/O接口和串行I/O接口两种。

  6. I/O接口组成 接口由接口硬件和接口软件组成。 1.接口硬件

  7. CPU侧引脚信号: 地址信号:选择I/O接口及CPU命令分类; 数据信号:根据命令类型,送到对应的REG中,或从REG中取得数据或状态; 控制信号:控制命令的执行、时序、信号同步; 状态信号:接口的部分工作状态信号。 外设侧引脚信号: 数据信号:接口缓冲REG与外设间的数据交换; 状态信号:外设工作状态送给接口的状态REG; 控制信号:接口的内部控制逻辑控制外设工作的控制信号和同步信号。

  8. 内部控制逻辑: 根据控制REG、状态REG、总线控制信号及外设状态信号控制I/O接口的工作。 2.接口软件(设备驱动程序) 初始化程序段:设置接口工作方式及初始条件。 传送方式处理程序段:CPU针对不同的I/O设备有不同的处理方式。 主控程序段:完成接口任务的程序。 程序终止与退出程序段:接口电路硬件保护及操作系统中数据恢复。 辅助程序段:提供人-机对话手段。

  9. 7.1.2 输入/输出端口 1.I/O端口 供CPU直接存取访问的接口中的寄存器或电路。 接口中的命令口、状态口和数据口均为I/O端口。 2.I/O端口地址 接口中的不同寄存器或电路的编号。 CPU通过命令对接口进行控制。 3.命令、接口与I/O端口关系 接口:I/O端口:命令----1:n:m*n。 CPU通过I/O端口地址区分不同的接口。

  10. 二、I/O端口编址 1.I/O统一编址(存储器映象I/O编址) 一个I/O端口等同于一个存储器单元。 优点: 对I/O端口的访问命令与对存储器单元访问相同,不必使用专用I/O指令(统一用LOAD/STORE) ; 外设数目或I/O寄存器数几乎不受限制。 缺点: I/O端口占用部分MEM空间,可用MEM空间减小; 对MEM访问指令较长,执行速度较慢; I/O端口地址译码时间较长。

  11. 2.I/O独立编址 I/O端口地址空间与存储器地址空间相互独立。 应用:Z-80系列和x86系列均采用此方式。 优点: MEM地址空间不受I/O端口地址空间影响; I/O端口数量不多,占用地址线少,地址译码简单,速度较快; 使用专用I/O命令(IN/OUT),与MEM访问命令(LOAD/STORE)有明显区别,便于理解和检查。

  12. 要求处理器提供MEMR/MEMW和IOR/IOW两组控制信号,增加了控制逻辑的复杂性。要求处理器提供MEMR/MEMW和IOR/IOW两组控制信号,增加了控制逻辑的复杂性。 缺点: 专用I/O指令增加指令系统复杂性,且I/O指令类型少,程序设计灵活性较差; 3.Intel系列微机I/O编址 Intel系列微处理器支持I/O独立编址方式和I/O统一编址(存储器映象编址)方式。 I/O统一编址时,I/O地址不能缓存。 Intel系列微机系统仅支持I/O独立编址方式。

  13. I/O端口地址信号:由地址线信号和IOW/IOR信号线组成。I/O端口地址信号:由地址线信号和IOW/IOR信号线组成。 三、PC系列微机I/O端口访问 1.I/O端口地址空间 I/O端口地址空间:64K(A0-A15)个8位端口空间。 2.I/O端口地址寻址方式 I/O端口支持直接寻址和间接寻址方式。 OUT 60H,AL ; OUT DX,34H ; 3.I/O端口与累加器间I/O指令 格式:IN、OUT。

  14. 控制信号线:IOW/IOR与MEMW/MEMR 4.I/O端口与存储器间I/O指令 格式:INSB(W、D)、OUTSB(W、D)。 参数:用DX指定I/O端口地址,输入/输出时的目的/源RAM地址用ES:DI(EDI)/DS:SI(ESI)指定。 结果:通过前缀REP连续传送。 5.I/O端口与存储器端口访问的区别 命令类型:IN/OUT与LOAD/STORE 地址信号线:A0-A15与A0-A31

  15. 四、Pentium的I/O保护 I/O保护在保护模式下有效,在实地址模式下无效。 1.I/O特权级IOPL保护 保护通过比较当前任务的特权级CPL和标志寄存器的IOPL字段实现的。 若CPL≤IOPL,可执行IN、OUT、INS、OUTS、CLI、STI等敏感指令(对IOPL敏感);否则不行。 每个任务都有自己的IOPL,0级特权的过程可通过POPF和IRET指令修改任务的IOPL。

  16. 2.I/O允许位映象保护 I/O允许位映象用来修正IOPL对I/O敏感指令的影响,允许低特权的程序访问某些I/O端口。 I/O允许位映象是一个位向量,每位对应一个端口的操作权限(0表示允许)。 操作系统可通过改变任务TSS中的I/O允许映象来为某任务分配端口。

  17. 第四节 接口分析与设计方法 一、x86系列微机接口分析 1.I/O接口硬件分类 系统板上I/O芯片和I/O扩展槽接口卡。 2.I/O端口地址分配 PC系列I/O地址线有16根,对应64K空间; PC/XT的I/O端口译码只使用了A0-A9,共1024个端口,地址范围为0000H~03FFH。 不同的微机系统对I/O端口地址的分配不同。 初期:A9=0端口(512个)为系统板所用,其他端口(512个)为扩展槽所用。

  18. PC/AT:A8=A9=0端口(256个)为系统板所用,其他端口(768个)为扩展槽所用。PC/AT:A8=A9=0端口(256个)为系统板所用,其他端口(768个)为扩展槽所用。 系统板I/O接口芯片端口地址(0000H-00FFH): 返回29页

  19. 扩展槽I/O接口卡端口地址(0100H-03FFH):

  20. IOW/IOR信号(有效)、AEN信号(无效)和I/O端口地址高位。 用户I/O端口地址选用原则: 系统配置占用的端口地址一律不能用; 厂家声明保留的端口地址不要用; 其余端口地址可用,为避免冲突最好采用DIP。 3.I/O端口地址译码方法 一个I/O接口对应多个连续I/O端口。 I/O接口芯片片选(CS)译码: I/O接口芯片内部端口译码: I/O端口地址低位。

  21. 数据总线 D0-D7 PA0-7 PB0-7 PC0-7 RD WR RESET 控制总线 RESET 8255A AEN IO/M A9-A2 A1 地址总线 A1 A0 CS RD WR A0 例1:并行接口使用8255A芯片,地址空间60H-63H。 返回下页 多个接口时,采用单独译码/集中译码?

  22. 15 1 Y0 A 14 2 B 74LS138 13 00H CPU MEM 3 C 12 : 5 11 1FH 20H 数据总线 4 10 : 地址总线 6 9 G1 3FH 控制总线 7 Y7 40H : 5FH 60H : D7-D0 D7-D0 CS CS 7FH WR RD RD WR 设 备 侧 信 号 设 备 侧 信 号 3FFH Ax-A0 Ax-A0 8253 8259 G2A G2B 例2:多个接口集中译码。 如何区分MEM和I/O? 转上页 返回26页

  23. 4.I/O端口访问 CPU通过I/O指令对I/O接口进行访问。 汇编语言指令:IN、OUT。 C语言指令:inportb(inport)、outportb(outport)。 VC++指令:_inp(_inpw)、_outp(_outpw)。 例:读取CMOS信息。 ;功能:读取CMOS信息 ;调用:AL=CMOS地址 ;返回:AL=CMOS内容 proc_read_cmos proc cli or al,80h ;屏蔽NMI out 70h,al jmp $+2 ;延迟 in al,71h ;读CMOS数据 sti ret proc_read_cmos endp main() { int i; unsigned char c_CmosMessage[64]; for (i=0;i<=63;i++) { outportb(0x70,i); c_CmosMessage[i]=inportb(0x71) ; } printf("CMOS信息读取完毕。\n"); }

  24. 控制总线:IOW有效、IOR无效、MEMR/MEMW无效、 AEN无效。 译 码 器:根据DX高位译码,Y2有效,其他Yx无效。 5.I/O指令与接口实现 执行CPU指令:MOV DX,42H OUT DX,8AH 转24页 地址总线:将42H写入A9~A0。 接口芯片:8253工作,其他接口芯片不工作。 接口电路:8253对应接口电路应答选中信号,8253根据DX低位选择相应的寄存器。 8253: 接受数据总线(D7~D0)数据(8AH),写入所选寄存器。

  25. 15 1 Y0 A 14 2 B 74LS138 13 3 C 12 5 11 4 10 6 9 G1 7 Y7 G1=1,G2A=G2B=0。 G2A G2B 二、I/O端口地址译码电路的几种形式 1.固定式端口地址译码 接口中只有一个端口时可采用门电路构成。 接口中有多个端口时一般采用译码器电路构成,常见的译码器有74LS138、74LS154等。 74LS138译码器: 工作条件: 工作原理: 将复合的输入信号变为枚举的输出信号。

  26. 输入/输出真值表: CBA连续时,Y0~Y7亦为连续的。

  27. 15 1 Y0 A5 A DMACS(8237) 14 2 A6 INTRCS(8259) B 74LS138 13 3 T/C CS(8253) A7 C 12 PPICS(8255) 5 11 A8 WRTDMAPG ≥1 4 10 A9 WRTNMIREG ≥1 6 9 G1 AEN’ 7 Y7 IOW AEN’=AEN∩IO/M。 G2A G2B 74LS138在PC机系统板端口译码的应用: 转20页 为何中断控制1端口地址为0020H-003FH?

  28. 15 1 Y0 A3 A 14 2 ?~? A4 B 74LS138 13 3 A5 C 12 5 11 A6 ?~? ≥1 A8 4 10 A9 6 9 G1 AEN’ 7 Y7 G2A G2B 8个 08H(88H)、20H(A0H) 每个出端对应接口的端口数量? Y1、Y4对应端口地址?

  29. 7.2 微机系统与与输入/输出设备信息交换 7.2.1 无条件传送方式 特点:I时假设外设已准备好,O时假设外设空闲。 要求:接口I时加缓冲器,O时加锁存器。 应用:对简单外设的操作。 7.2.2 查询方式 工作原理:CPU查询外设已准备好后,才传送数据。 特点:CPU与外设间自然同步。 要求:不需要增加额外的硬件电路。 应用:适用在CPU不太忙且传送速度要求不高时。

  30. 7.2.3 中断传送方式 特点:CPU与外设可同时工作。 要求:接口中需要中断控制逻辑支持。 应用:适用于非高速度大量数据传送时。 7.2.4 直接存储器存取(DMA)方式 特点:数据的传送不经过CPU,I/O设备管理由CPU控制,简化CPU对I/O的控制。 要求:需要DMA控制器及相关逻辑支持。 应用:适用与高速度大量数据传送时。

  31. 7.2.5 I/O处理机(IOP)方式 特点: I/O处理机接管了CPU的各种I/O操作及I/O控制功能,CPU能与IOP并行工作。 要求:需要IOP支持。 应用:高速I/O归IOP管理,低速I/O设备归CPU管理。

  32. 7.3 可编程计数/定时器8254 8253的组成与功能 如图4.6、图4.7所示为8253/8254的内部结构及引脚图。 • 1.3个独立的16位计数器 3个计数器分别为计数器0、计数器1、计数器2,每个计数器的内部逻辑结构如图4.8所示。

  33. 图4.6 8253/8254的内部结构示意图

  34. 图4.7 8253引脚图

  35. 图4.8 8253/8254计数器内部逻辑图

  36. 此寄存器用来保存来自CPU送入的控制字。每个计数器都有一个控制命令寄存器,用于保存该计数器的控制信息。控制字将决定计数器的工作方式、计数形式及输出方式,也能决定应如何装入计数器初值。8253的3个控制寄存器只占用一个地址号,而靠控制字中最高二位来指定当前的控制字是发给哪一个计数器的。控制寄存器只能写入,不能读取。此寄存器用来保存来自CPU送入的控制字。每个计数器都有一个控制命令寄存器,用于保存该计数器的控制信息。控制字将决定计数器的工作方式、计数形式及输出方式,也能决定应如何装入计数器初值。8253的3个控制寄存器只占用一个地址号,而靠控制字中最高二位来指定当前的控制字是发给哪一个计数器的。控制寄存器只能写入,不能读取。 • 2.控制命令寄存器

  37. 3.读/写逻辑 读/写逻辑的任务是接收来自CPU的控制信号,完成对8253各计数寄存器的读/写操作。这些控制信号包括读信号RD、写信号WR、片选信号CS和片内寄存器对址信号A0、A1。

  38. 4.数据总线缓冲器 这是一个双向、三态8位缓冲器。它用于8253和系统数据总线连接。CPU通过数据总线缓冲器将控制命令字和计数值写入8253计数器,或者从8253计数器读取当前计数值。 8253的8位数据线D0~D7通常与系统数据总线D0~D7相连。8253共占用4个I/O地址。 8253各端口的地址分配见表4.8所示。

  39. 表4.8 8253端口的地址分配 返回本节

  40. 8253与系统的连接应用实例 • 图4.9为8253用作方波发生器与8088总线的接口方法。图中仅用了A7~A2作为8253片选地址线,产生片选信号Y1与8253的CS端相连。要求计数器2用作方波发生器产生40KHz方波输出。已知CLK2时钟端输入信号频率为2MHz。

  41. 图4.9 8253与8088总线的连接 返回本节

More Related