720 likes | 926 Views
第 6 章. I/O 接口 和 总线. 中国科学技术大学 何克东. CPU. 接口 电路. I/O 设备. 6.1 I/O 接口. 一、 I/O 接口的功能. 什么是 I/O 接口(电路)? I/O 接口是位于系统与外设间、用来协助完成数据传送和控制任务的逻辑电路 PC 机系统板的可编程接口芯片、 I/O 总线槽的电路板(适配器)都是接口电路. 1. 采用 I/O 接口的必要性. (1) 速度不匹配 (2) 信号电平不匹配 TTL 与非 TTL (3) 信号格式不匹配 8 、 16 、 32 位;模、数;串、并;电流、电压
E N D
第 6 章 • I/O 接口和总线 中国科学技术大学 何克东
CPU 接口 电路 I/O 设备 6.1 I/O接口 一、I/O接口的功能 • 什么是I/O接口(电路)? • I/O接口是位于系统与外设间、用来协助完成数据传送和控制任务的逻辑电路 • PC机系统板的可编程接口芯片、I/O总线槽的电路板(适配器)都是接口电路
1.采用I/O接口的必要性 (1)速度不匹配 (2)信号电平不匹配 TTL与非TTL (3)信号格式不匹配 8、16、32位;模、数;串、并;电流、电压 (4)时序不匹配
2. I/O接口的主要功能 (1)设置数据缓冲以解决速度差异所带来的不协调问题 (2)设置信号电平转换电路 (3)设置信息转换逻辑以满足对各自格式的要求 A/D、D/A、串↔并、…… (4)设置时序控制电路来同步CPU和外设的工作 (5)提供地址译码电路
二、简单的I/O接口芯片 对输入输出数据进行缓冲和锁存 输出接口有锁存器;输入接口有缓冲器 实际的电路常见: 输出锁存缓冲器、输入锁存缓冲器
数据寄存器 I/O接口电路 数据总线DB CPU 外设 数据 地址总线AB 状态 控制总线CB 控制 状态寄存器 控制寄存器 三、I/O端口及其寻址 1.I/O端口 1. 接口电路的内部结构 2. 接口电路的外部特性 3. 接口电路芯片的分类 4. 接口电路的可编程性 端口 I/O接口的典型结构
接口电路的内部结构 • CPU与外设主要有数据、状态和控制信息需要相互交换,从应用角度看内部: ⑴ 数据寄存器 • 保存CPU与外设之间传输的数据 ⑵ 状态寄存器 • 保存外设或接口电路的状态 ⑶ 控制寄存器 • 保存CPU给外设或接口电路的命令
接口电路的外部特性 • 主要体现在引脚上,分成两侧信号 面向CPU一侧的信号: • 用于与CPU连接 • 主要是数据、地址和控制信号 面向外设一侧的信号: • 用于与外设连接 • 提供的信号种类繁多 • 功能定义、时序及有效电平等差异较大
接口电路芯片的分类 • 接口电路核心部分往往是一块或数块大规模集成电路芯片(接口芯片): • 通用接口芯片 • 支持通用的数据输入输出和控制的接口芯片 • 面向外设的专用接口芯片 • 针对某种外设设计、与该种外设接口 • 面向微机系统的专用接口芯片 • 与CPU和系统配套使用,以增强其总体功能
接口电路的可编程性 • 许多接口电路具有多种功能和工作方式,可以通过编程的方法选定其中一种 • 接口需进行物理连接,还需编写接口软件 • 接口软件有两类: • 初始化程序段——设定芯片工作方式等 • 数据交换程序段——管理、控制、驱动外设,负责外设和系统间信息交换
2. I/O端口的寻址方法 接口电路占用的I/O端口有两类编排形式 • I/O端口单独编址 • I/O地址空间独立于存储地址空间 • 如8086/8088 • I/O端口与存储器统一编址 • 它们共享一个地址空间 • 如M6800
FFFFF 内存 部分 存储器空间 I/O 部分 00000 (1)I/O端口与存储器统一编址(存储器映象寻址方式) • 优点: • 不需要专门的I/O指令 • I/O数据存取与存储器数据存取一样灵活 • 缺点: • I/O端口要占去部分存储器地址空间 • 程序不易阅读(不易分清访存和访问外设)
FFFFF 内存 空间 FFFF I/O 空间 0 ⑵I/O端口单独编址(I/O映象寻址方式) • 优点: • I/O端口的地址空间独立 • 控制和地址译码电路相对简单 • 专门的I/O指令使程序清晰易读 • 缺点: • I/O指令没有存储器指令丰富 80x86采用I/O端口单独编址
M/IO G1 Y0 G2A Y1 G2B Y2 C B A Y7 + A19 : A14 A13 A12 A11 CE RAM I/O CE A10~A0 RAM: 00000~007FFH I/O: 00800~00FFFH A19A18A17A16A15A14A13A12A11A10A9A8 A7 A6 A5 A4 A3 A2 A1 A0 统一编址
A6 + CE I/O 1# I/O 2# CE A15 : A7 G1 Y0 G2A Y1 G2B Y2 C B A Y7 M/IO A5 A4 A3 A2~A0 1#: 0040~0047H 2#: 0048~004FH A15A14A13A12A11A10A9A8 A7 A6 A5 A4 A3 A2 A1 A0 单独编址
8086只能通过输入输出指令与外设进行数据交换;呈现给程序员的外设是端口(Port),即I/O地址8086只能通过输入输出指令与外设进行数据交换;呈现给程序员的外设是端口(Port),即I/O地址 • 8086用于寻址外设端口的地址线为16条,端口最多为216=65536(64K)个,端口号为0000H ~ FFFFH • 每个端口用于传送一个字节的外设数据
8086的端口有64K个,无需分段,设计有两种寻址方式8086的端口有64K个,无需分段,设计有两种寻址方式 • 直接寻址:只用于寻址00H ~ FFH前256个端口。 • 间接寻址:可用于寻址全部64K个端口,DX寄存器的内容就是端口号 • 对大于FFH的端口只能采用间接寻址方式
数据交换方式 • 如果输入输出一个字节,利用AL寄存器 • 如果输入输出一个字,利用AX寄存器 • 输入一个字,实际上是从连续两个端口输入两个字节,分别送AL(对应低地址端口)和AH(对应高地址端口) • 输出一个字,实际上是将AL(对应低地址端口)和AH(对应高地址端口)两个字节的内容输出给连续两个端口
8086的输入输出指令 • 输入指令(IN:将外设数据传送给CPU内的AL/AX) IN AL,12H ;字节输入 IN AL,DX ;字节输入 IN AX,22H ;字输入 IN AX,DX ;字输入 • 输出指令(OUT:将CPU内的AL/AX数据传送给外设) OUT 12H,AL ;字节输出 OUT DX,AL ;字节输出 OUT 22H,AX ;字输出 OUT DX,AX ;字输出
IN指令实例(从20H端口输入一个字) ;方法3:直接寻址,字节量输入 in al,21h mov ah,al in al,20h ;方法4:间接寻址,字节量输入 mov dx,21h in al,dx mov ah,al dec dx in al,dx ;方法1:直接寻址,字量输入 in ax,20h ;方法2:间接寻址,字量输入 mov dx,20h in ax,dx
OUT指令实例(向300H端口输出一个字节) ;唯一的方法:间接寻址,字节量输出 mov al,bvar ;bvar是字节变量 mov dx,300h out dx,al
四、数据传送方式 • 程序控制下的数据传送——通过CPU执行程序中的I/O指令来完成传送,又分为: 无条件传送(同步)、条件传送(异步/查询传送) • 中断传送—中断传送是一种效率更高的程序传送方式 • 直接存储器存取(DMA)—传送请求由外设向DMA控制器(DMAC)提出,后者向CPU申请总线,最后DMAC利用系统总线来完成外设和存储器间的数据传送 • I/O处理机——CPU委托专门的I/O处理机来管理外设,完成传送和相应的数据处理
1.程序控制方式 (1)无条件(同步)传送方式 • 在CPU与慢速变化的设备交换数据时,可以认为它们总是处于“就绪”状态,随时可以进行数据传送,这就是无条件传送,或称立即传送、同步传送 • 适合于简单设备,如LED数码管、按键或按钮等 • 无条件传送的接口和操作均十分简单 • 这种传送有前提:外设必须随时就绪
无条件传送:输入示例 MOV DX, 160H IN AL, DX
2.条件( 查询)传送方式 • CPU需要先了解(查询)外设的工作状态,然后在外设可以交换信息的情况下(就绪)实现数据输入或输出 • 对多个外设的情况,则CPU按一定顺序依次查询(轮询)。先查询的外设将优先进行数据交换 • 查询传送的特点是:工作可靠,适用面宽,但传送效率低
查询传送的两个环节 输入状态 ⑴ 查询环节 • 寻址状态口 • 读取状态寄存器的标志位 • 若不就绪就继续查询,直至就绪 ⑵ 传送环节 • 寻址数据口 • 是输入,通过输入指令从数据端口读入数据 • 是输出,通过输出指令向数据端口输出数据 就绪? N Y 数据交换
主程序 中断服务程序 中断请求 对外设 进行处理 断点 继续执行 返回断点 2. 中断传送方式 • CPU在执行程序中,被内部或外部的事件所打断,转去执行一段预先安排好的中断服务程序;服务结束后,又返回原来的断点,继续执行原来的程序
中断传送是一种效率更高的程序传送方式 • 进行传送的中断服务程序是预先设计好的 • 中断请求是外设随机向CPU提出的 • CPU对请求的检测是有规律的:一般是在每条指令的最后一个时钟周期采样中断请求输入引脚 • CPU响应可屏蔽中断的条件: 执行完当前指令 无总线请求 允许中断 IF=1
中断工作过程 • 中断响应 • 中断请求 • 关中断 • 断点保护 • 中断识别 • 现场保护 • 开中断 • 中断服务 • 关中断 • 恢复现场 • 开中断 • 中断返回
INTR 中断A 中断B 中断C 锁 存 器 三态 缓冲器 D0~D7 … … IOR 8001H A0~A15 译码 中断查询接口
3. DMA传送方式 • DMA (Direct Memory Access直接存储器存取)方式是用硬件实现存储器与存储器之间、存储器与I/O设备之间直接进行高速数据传送,不需要CPU的干预,减少了中间环节,而且存储器地址的修改和传送完成的报告均由硬件自动完成,所以极大地提高了传送速度。 • DMA传送方式通常用来高速传送大批量的数据块。如磁盘存取、图像处理及高速数据采集系统等。
希望克服程序控制传送的不足: 外设→CPU→存储器 外设←CPU←存储器 • 直接存储器存取DMA: 外设→存储器 外设←存储器 存储器 ↔存储器 • CPU释放总线,由DMA控制器管理
DMAC 外设 CPU DREQ HRQ HOLD HRQ HLDA HLDA DACK HLDA
DMA传送的工作过程 ⑴ CPU对DMA控制器进行初始化设置 ⑵ 外设、DMAC和CPU三者通过应答信号建立联系:CPU将总线交给DMAC控制 ⑶ DMA传送 • DMA读存储器:存储器 → 外设 • DMA写存储器:存储器 ← 外设 • 存储器 ↔存储器 ⑷ 自动增减地址和计数,判断传送完成否
HLDA 发存储器地址 修改地址指针 传送数据 传送结束? DMA结束 DMA传送流程
传送方式的比较 • 无条件传送:慢速外设需与CPU保持同步 • 查询传送: 简单实用,效率较低 • 中断传送:外设主动,可与CPU并行工作,但每次传送需要大量额外时间开销 • DMA传送:DMAC控制,外设直接和存储器进行数据传送,适合大量、快速数据传送
6.2 总线 一、总线的概念 • 所谓总线,是指在多个模块(设备和子系统)之间的一组进行互连和传输信息的公共通道,它是信号线按照某种规范组成的集合。任何系统的研制和外围模块的开发,都必须遵从一定的总线规范。总线的结构不同,性能差别很大。按总线功能或在总线上传输的信号类型以及总线的层次结构,可以把总线分为不同的类型。 • 系统里的设备都是依靠总线相互连接在一起的,任何一个设备发出的信号可以被连接到总线上的所有其他设备接收。如果两个以上的设备同时在总线上发出自己的信号,则会发生信号混乱。因此,在同一时间段内,连接到总线上的多个设备中只能有一个设备主动进行信号的传输,其他设备只能处于被动接收的状态。
1.总线的分类 • 1.按总线功能或信号类型分类 • 按总线功能或信号类型划分,主要有三类总线。 • 数据总线 用于传输数据,采用双向三态逻辑。ISA总线数据线是16位,PCI总线是32位或64位。数据线的宽度表示了总线数据传输的能力,反映了总线的性能。 • 通过数据总线传输的数据类型有: • (1)数值数据 • (2)指令 • (3)设备码 • (4)控制字 • (5)状态字
地址总线 传输地址信息,一般采用单向三态逻辑。地址总线的数据位数决定了该总线构成的微机系统的寻址能力。例如,ISA总线有24位地址线,可寻址16MB(224);PCI总线有32位或64位地址线,寻址到4GB甚至264。地址总线一般是由处理器 (CPU)发出到总线上的各个部件。 • 地址总线通常传输如下信息: • CPU要执行的下一条指令地址 • 进行运算所需的操作数地址 • 外部设备的地址
控制总线传输控制或状态信号,每根线或者是单向的,或者是双向的,它们分别传送控制信息、时序信息和状态信息。比如,输入/输出读/写信号、存储器读/写信号和中断信号等等。控制总线是最能体现总线特色的信号线,它决定总线功能的强弱和适应性。控制总线传输控制或状态信号,每根线或者是单向的,或者是双向的,它们分别传送控制信息、时序信息和状态信息。比如,输入/输出读/写信号、存储器读/写信号和中断信号等等。控制总线是最能体现总线特色的信号线,它决定总线功能的强弱和适应性。 • 控制总线通常包括如下信号线 • 读、写线 • 中断请求和中断响应线 • 同步(选通或时钟)信号线 • 保持、等待就绪(准备好)线
2.按总线的分级结构分类 按照总线的层次结构来分,可以将总线分为四种但随着现代微机的发展,这四种总线的功能也形成了交叉,所以这里的四级总线的分法仅供大家做参考。 • 片级总线 也叫元件级总线,是由芯片内部通过引脚引出的总线,用于芯片一级的互联线,它实现各种芯片间的互联。
系统总线系统总线又称为内部总线、I/O通道总线或板级总线,是用来与扩展槽上的各种扩展卡相连接的总线。比如,ISA总线和EISA总线等。以前微机系统主要是利用系统总线来连接扩展卡,现代微机系统为了加快总线速度,多用局部总线PCI来连接扩展卡。系统总线系统总线又称为内部总线、I/O通道总线或板级总线,是用来与扩展槽上的各种扩展卡相连接的总线。比如,ISA总线和EISA总线等。以前微机系统主要是利用系统总线来连接扩展卡,现代微机系统为了加快总线速度,多用局部总线PCI来连接扩展卡。
外部总线也有称为通信总线的,是微机系统之间或微机与外部设备之间进行通信的总线。如微机和微机之间可以使用RS-232/RE485总线,微机和智能仪表之间可以使用IEEE-488/VXI总线以及现代微机上很流行的USB和IEEE1394通用串行总线。外部总线也有称为通信总线的,是微机系统之间或微机与外部设备之间进行通信的总线。如微机和微机之间可以使用RS-232/RE485总线,微机和智能仪表之间可以使用IEEE-488/VXI总线以及现代微机上很流行的USB和IEEE1394通用串行总线。
局部总线局部总线是在CPU总线和系统总线之间的一级总线,如PCI总线。它的一侧直接面向CPU总线,另一侧面向系统总线,分别由桥片连接。由于局部总线是直连接CPU总线的I/O总线,因此外部设备通过它可以快速地与CPU之间进行数据交换,为外设提供了存取微处理器更宽、更快的高速公路。局部总线局部总线是在CPU总线和系统总线之间的一级总线,如PCI总线。它的一侧直接面向CPU总线,另一侧面向系统总线,分别由桥片连接。由于局部总线是直连接CPU总线的I/O总线,因此外部设备通过它可以快速地与CPU之间进行数据交换,为外设提供了存取微处理器更宽、更快的高速公路。
2.总线标准 • 总线标准是指芯片之间、扩展卡之间以及系统之间,通过总线进行连接和传输信息时,应该遵守的一些协议与规范。这些协议和规范一般包括硬件和软件两个方面,比如总线工作的时钟频率、总线中信号线的定义、总线系统的结构、总线仲裁机构以及配置机构、机械规范和实施总线协议的驱动与管理程序。 • 制定总线标准,使众多的生产厂家在生产部件时,只要在接口处符合所制定的规格标准,就能为该系统所用。总线标准大致有以下几个特性:
①物理特性:物理特性是指总线物理连接的方式,包括总线的根数、总线的插头和插座的形状、尺寸以及引脚是如何排列的等。①物理特性:物理特性是指总线物理连接的方式,包括总线的根数、总线的插头和插座的形状、尺寸以及引脚是如何排列的等。
②功能特性:功能特性描述的是一组总线中每一根线的功能是什么。总线按功能分为数据总线、地址总线和控制总线。地址总线的宽度表示系统中主存储器的最大容量或者说是最大寻址范围。例如,有20根地址线,表示系统的主存最大容量是1MB,有32根地址线A31~A0,则允许系统的最大内存容量为4G。数据总线的宽度表示系统一次数据处理的最大数据位数,例如,有32根数据D31~D0,则允许系统一次最多可以运算或者传送32位数据。控制总线包括各种不同得到控制信号。此外,还有电源线和地线。②功能特性:功能特性描述的是一组总线中每一根线的功能是什么。总线按功能分为数据总线、地址总线和控制总线。地址总线的宽度表示系统中主存储器的最大容量或者说是最大寻址范围。例如,有20根地址线,表示系统的主存最大容量是1MB,有32根地址线A31~A0,则允许系统的最大内存容量为4G。数据总线的宽度表示系统一次数据处理的最大数据位数,例如,有32根数据D31~D0,则允许系统一次最多可以运算或者传送32位数据。控制总线包括各种不同得到控制信号。此外,还有电源线和地线。
③电器特性:电器特性定义每一根线上信号的传递方向以及有效电平范围、负载电流的大小等。一般规定送入CPU的信号为输入信号(IN),从CPU送出的信号称为输出信号(OUT)。地址线通常是单向的,而数据线一般是双向的。有的信号高电平的时候有效,有的信号低电平有效。③电器特性:电器特性定义每一根线上信号的传递方向以及有效电平范围、负载电流的大小等。一般规定送入CPU的信号为输入信号(IN),从CPU送出的信号称为输出信号(OUT)。地址线通常是单向的,而数据线一般是双向的。有的信号高电平的时候有效,有的信号低电平有效。 ④时间特性:时间特性定义了每根线在什么时候有效,这涉及到总线操作的时序问题,即什么时间用户需要把信号送上总线,什么时间用户可以在总线上得到有效的信号。
总线的主要性能参数 • 微机系统中使用的总线种类很多,没有哪个总线能适合所有的场合,但所有的总线都含有一些主要的性能参数。 • ①总线频率:总线的工作频率,以MHz表示。它是总线工作速率的一个重要参数,工作频率越高,速率越高。 • ②总线宽度:是指数据总线的位数,用位(bit)来表示。如8位、16位、32位、64位总线宽度。