510 likes | 648 Views
第 6 章. 第 6 章 输入输出和接口技术. 教学重点 接口与接口控制原理 I/O 端口地址的译码方法 数字通道接口及其应用 模拟通道接口. 6.1 接口基本概念. 为什么需要 I/O 接口(电路)? 微机的外部设备多种多样 工作原理、驱动方式、信息格式、以及工作速度方面彼此差别很大 它们不能与 CPU 直接相连 必须经过中间电路再与系统相连 这部分电路被称为 I/O 接口电路. 多种外设. CPU. 接口 电路. I/O 设备. 6.1 接口基本概念 (续 1 ). 什么是 I/O 接口(电路)?
E N D
第6章 输入输出和接口技术 教学重点 接口与接口控制原理 I/O端口地址的译码方法 数字通道接口及其应用 模拟通道接口
6.1 接口基本概念 为什么需要I/O接口(电路)? • 微机的外部设备多种多样 • 工作原理、驱动方式、信息格式、以及工作速度方面彼此差别很大 • 它们不能与CPU直接相连 • 必须经过中间电路再与系统相连 • 这部分电路被称为I/O接口电路 多种外设
CPU 接口 电路 I/O 设备 6.1接口基本概念(续1) 什么是I/O接口(电路)? • I/O接口是位于系统与外设间、用来协助完成数据传送和控制任务的逻辑电路 • PC机系统板的可编程接口芯片、I/O总线槽的电路板(适配器)都是接口电路
数据寄存器 I/O接口电路 数据总线DB CPU 外设 数据 地址总线AB 状态 控制总线CB 控制 状态寄存器 控制寄存器 6.1.2 I/O接口的典型结构 1. 接口电路的内部结构 2. 接口电路的外部特性 3. 接口电路芯片的分类 4. 接口电路的可编程性
1. 接口电路的内部结构 • CPU与外设主要有数据、状态和控制信息需要相互交换,于是从应用角度看内部: ⑴ 数据寄存器 • 保存外设给CPU和CPU发往外设的数据 ⑵ 状态寄存器 • 保存外设或接口电路的状态 ⑶ 控制寄存器 • 保存CPU给外设或接口电路的命令 理解端口
2. 接口电路的外部特性 • 主要体现在引脚上,分成两侧信号 面向CPU一侧的信号: • 用于与CPU连接 • 主要是数据、地址和控制信号 面向外设一侧的信号: • 用于与外设连接 • 提供的信号五花八门 • 功能定义、时序及有效电平等差异较大
3. 接口电路芯片的分类 • 接口电路核心部分往往是一块或数块大规模集成电路芯片(接口芯片): • 通用接口芯片 • 支持通用的数据输入输出和控制的接口芯片 • 面向外设的专用接口芯片 • 针对某种外设设计、与该种外设接口 • 面向微机系统的专用接口芯片 • 与CPU和系统配套使用,以增强其总体功能
4. 接口电路的可编程性 • 许多接口电路具有多种功能和工作方式,可以通过编程的方法选定其中一种 • 接口需要进行物理连接,还需要编写接口软件 • 接口软件有两类: • 初始化程序段——设定芯片工作方式等 • 数据交换程序段——管理、控制、驱动外设,负责外设和系统间信息交换
6.1.3 接口控制原理 • 1. I/O数据的传送方式 • 并行 • 一个数据单位(通常为字节)的各位同时传送 • 速度快、距离短、成本高 • 例:PC机的并行接口(通常用于连接打印机) • 串行 • 数据按位进行传送 • 速度慢、距离远、成本低 • 例: PC机的串行接口(通常用于串行通信)
串行通信 • 串行通信:将数据分解成二进制位用一条信号线,一位一位顺序传送的方式 • 串行通信的优势:用于通信的线路少,因而在远距离通信时可以极大地降低成本 • 串行通信适合于远距离数据传送,也常用于速度要求不高的近距离数据传送 • PC系列机上有两个串行异步通信接口、键盘、鼠标器与主机间采用串行数据传送
异步串行通信 • 串行通信时的数据、控制和状态信息都使用同一根信号线传送 • 收发双方必须遵守共同的通信协议(通信规程),才能解决传送速率、信息格式、位同步、字符同步、数据校验等问题 • 串行异步通信以字符为单位进行传输,其通信协议是起止式异步通信协议
字符 起始位 数据位 校验位 停止位 空闲位 … 1 0 1 1 1 高位 低位 0/1 0/1 0/1 0/1 起止式异步通信协议 • 起始位——每个字符开始传送的标志,起始位采用逻辑0电平 数据位——数据位紧跟着起始位传送。由5~8个二进制位组成,低位先传送 校验位——用于校验是否传送正确;可选择奇检验、偶校验或不传送校验位 停止位——表示该字符传送结束。停止位采用逻辑1电平,可选择1、1.5或2位 空闲位——传送字符之间的逻辑1电平,表示没有进行传送
数据传输速率 • 数据传输速率也称比特率(Bit Rate) • 每秒传输的二进制位数bps • 字符中每个二进制位持续的时间长度都一样,为数据传输速率的倒数 • 当进行二进制数码传输,且每位时间长度相等时,比特率还等于波特率(Baud Rate) • 过去,串行异步通信的数据传输速率限制在50 bps到9600 bps之间。现在,可以达到115200 bps或更高
2. 数据传送方式 • 查询方式——通过CPU执行程序中的I/O指令来完成传送,又分为:无条件传送、查询传送 • 中断方式--外设要与CPU传送数据时,向CPU发送请求,CPU响应后再传送数据 • 直接存储器存取(DMA)——传送请求由外设向DMA控制器(DMAC)提出,后者向CPU申请总线,最后DMAC利用系统总线来完成外设和存储器间的数据传送 • I/O处理机——CPU委托专门的I/O处理机来管理外设,完成传送和相应的数据处理
(1)无条件传送方式及其接口 • 在CPU与慢速变化的设备交换数据时,可以认为它们总是处于“就绪”状态,随时可以进行数据传送,这就是无条件传送,或称立即传送、同步传送 • 适合于简单设备,如LED数码管、按键或按纽等 • 无条件传送的接口和操作均十分简单 • 这种传送有前提:外设必须随时就绪
(2)查询传送方式及其接口 • CPU需要选了解(查询)外设的工作状态,然后在外设可以交换信息的情况下(就绪)实现数据输入或输出 • 对多个外设的情况,则CPU按一定顺序依次查询(轮询)。先查询的外设将优先进行数据交换 • 查询传送的特点是:工作可靠,适用面宽,但传送效率低 就绪?
输入状态 N 就绪? Y 数据交换 查询传送的两个环节 ⑴ 查询环节 • 寻址状态口 • 读取状态寄存器的标志位 • 若不就绪就继续查询,直至就绪 ⑵ 传送环节 • 寻址数据口 • 是输入,通过输入指令从数据端口读入数据 • 是输出,通过输出指令向数据端口输出数据 传送流程
主程序 中断服务程序 中断请求 对外设 进行处理 断点 继续执行 返回断点 (3) 中断传送方式 • CPU在执行程序中,被内部或外部的事件所打断,转去执行一段预先安排好的中断服务程序;服务结束后,又返回原来的断点,继续执行原来的程序 传送流程
中断传送与接口 • 中断传送是一种效率更高的程序传送方式 • 进行传送的中断服务程序是预先设计好的 • 中断请求是外设随机向CPU提出的 • CPU对请求的检测是有规律的:一般是在每条指令的最后一个时钟周期采样中断请求输入引脚 • 中断除了在输入和输出方面的应用外,中断还有着非常广泛的应用
(4)DMA传送方式 • 希望克服程序控制传送的不足: 外设→CPU→存储器 外设←CPU←存储器 • 直接存储器存取DMA: 外设→存储器 外设←存储器 • CPU释放总线,由DMA控制器管理
DMA传送的工作过程 ⑴ CPU对DMA控制器进行初始化设置 ⑵ 外设、DMAC和CPU三者通过应答信号建立联系:CPU将总线交给DMAC控制 ⑶ DMA传送 • DMA读存储器:存储器 → 外设 • DMA写存储器:存储器 ← 外设 ⑷ 自动增减地址和计数,判断传送完成否 传送流程
HLDA 发存储器地址 修改地址指针 传送数据 传送结束? DMA结束 DMA传送流程
传送方式的比较 • 无条件传送:慢速外设需与CPU保持同步 • 查询传送: 简单实用,效率较低 • 中断传送:外设主动,可与CPU并行工作,但每次传送需要大量额外时间开销 • DMA传送:DMAC控制,外设直接和存储器进行数据传送,适合大量、快速数据传送
6.1.4 接口控制信号 • 两类:总线控制信号、输入输出控制信号 总线控制信号:数据线、地址线、IOW*、IOR*等 输入输出控制信号:数据线、输入输出应答信号等 • 现代微机系统都是采用总线接口方式
6.2 I/O指令和I/O地址译码 • 微处理器进行I/O操作时完成两种选择:片选、字选; • 两种I/O接口结构:标准的I/O接口、存储器映射I/O结构。
6.2.1 I/O端口的编址 • 接口电路占用的I/O端口有两类编排形式 • I/O端口单独编址(标准的I/O接口) • I/O地址空间独立于存储地址空间 • 如8086/8088 • I/O端口与存储器统一编址(存储器映射I/O结构) • 它们共享一个地址空间 • 如M6800
FFFFF 内存 空间 FFFF I/O 空间 0 1. I/O端口单独编址 • 优点: • I/O端口的地址空间独立 • 控制和地址译码电路相对简单 • 专门的I/O指令使程序清晰易读 • 缺点: • I/O指令没有存储器指令丰富 80x86采用I/O端口独立编址
FFFFF 内存 部分 存储器空间 I/O 部分 00000 2. I/O端口与存储器统一编址 • 优点: • 不需要专门的I/O指令 • I/O数据存取与存储器数据存取一样灵活 • 缺点: • I/O端口要占去部分存储器地址空间 • 程序不易阅读(不易分清访存和访问外设)
6.2.2 8088/8086的输入输出指令 • 输入指令 IN AL,i8 ;字节输入 IN AX,DX ;字输入 • 输出指令 OUT i8,AL ;字节输出 OUT DX,AX ;字输出 功能演示 功能演示
控制总线:IOW有效、IOR无效、MEMR/MEMW无效、 AEN无效。 译 码 器:根据DX高位译码,Y2有效,其他Yx无效。 I/O指令与接口实现 执行CPU指令:MOV DX,42H OUT DX,8AH 地址总线:将42H写入A9~A0。 接口芯片:8253工作,其他接口芯片不工作。 接口电路:8253对应接口电路应答选中信号,8253根据DX低位选择相应的寄存器。 8253: 接受数据总线(D7~D0)数据(8AH),写入所选寄存器。
6.2.3 I/O地址的译码 • 因为对I /O端口的寻址与存贮器寻址相似,即必须进行片选和字选。所以其译码方法也相似。通常采用两级译码方法,译码地址的高位作为片选,以选择某一组(某一片 I /O)。低位组地址直接接到I /O接口芯片的地址输入端,以选择片内寄存器(即具体端口)或低位再译码,以选择多个寄存器。 • PC机的I /O端口地址译码只用低10位地址(A0~A9)。210 = 1024 个口地址,而实际上并未配上1K个外设端口,所以常采用部分译码法对10位地址的高位译码作为片选信号,片内对低位地址译码以选择具体寄存器端口。
ALS138译码器 DMA控制器1(00H~1FH) 中断控制器1 (20H~3FH) 定时计数器(40H~5FH) 并行接口电路(60H~7FH) DMA页面寄存器(80H~9FH) 中断控制器2 (A0H~BFH) DMA控制器2 (C0H~DFH) 协处理器(E0H~FFH) A5 A6 A7 A8 A9 A B C G2A G2B G1 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 AEN A0~A4 接口芯片内部译码 IBM PC/AT主机板的I/O译码电路
IBM PC/AT主机板的I/O译码(续) * 所有I /O译码必须有AEN(Address Enable 地址允许) 参与译码,此信号用来隔离处理器,其他装置与I /O通道,而使DMA传送得以进行。即AEN=1,DMA控制三总线,进行DMA传送。 在此AEN=1,即AEN=0开启I /O系统,并非DMA周期。 * 部分译码,如 y0DMA的CS , 地址000~01FH,而A3~A0 DMA的A3~A0端片内译码,而A4并未参与译码,所以地址有重叠。
以上都是直接利用低位AB线参与再次译码直接地址译码;实际应用中,当端口地址不够用时,可利用低位DB线参与再次译码间接端口地址译码;以选择多个I/O端口地址,如下面图 所示 。 这种电路可节省系统地址空间,但必须把地址作为DB输出寄存,所以多使用一条OUT指令输出DB做地址。即由 D1、D0及IOR、IOW译码8个I /O端口。
6.3 IBM PC的输入/输出系统 • 主机和外设交换数据即输入/输出;利用DOS系统功能INT 21H,和BIOS功能调用,可实现对各种标准外设的 输入/输出。此时,可不考虑输入/输出设备的 特性,也不必了解数据的 传送方式,只要按子程序的约定方法调用标准子程序即可。但实际应用上往往不全是标准的 接口设备,而是自行设计接口。此时则利用I/O指令实现输入/输出操作,则应了解内部细节,内部结构。
PC机的输入/输出能力强,主要表现在其输入/输出的地址空间的分配和I/O通道的 设计上。 • PC系统结构可描述为: • 总线接口——即时序中的CPU系统,地址锁存器373,双向数据收发器245,总线控制器8288,产生系统三总线。 • I/O通道(扩展槽)——外设和主机连接的通道,每个槽均为62个插脚的插座,本质就是提供了系统总线——PC总线。用户开发接口,就是利用该总线。
1.系统I/O端口地址分配 • 本来8088的AB的低16位都可作为I/O端口地址, 216=64K个端口地址,但实际上PC设计中仅使用A9-A0低10位AB作为I/O端口地址, 210=1024个端口地址,即0~3FFH,但实际上PC系统已占用大部分地址,用户自己开发接口时,一定要避口已用地址,以免发生地址冲突。
∴ 设计前应了解系统I/O端口分配。详细分配查手册。具体机器有些区别。 大致: 000~ 1FFH( A9=0)512口地址为系统板占用。 (包括8237DMA控制器,8259中断控制器,8253定时/计数器,8258并行接口)。 200~3FFH( A9=1 ) 512个口地址为I/O扩展槽占用。 自行开发接口在此部分寻找空闲地址。
2. 系统总线 • PC机有极强的扩充能力,主要表现在其系统总线的设计上。系统总线是把微机各部分连接起来的公共通道。系统总线的性能直线关系到计算机的总体性能,系统总线也随着CPU的不断升级发展也在不断更新和发展。 • IBM PC机的I/O扩展槽的62个信号线,本质上就是系统总线PC总线,后修改为80286微机的系统总线,即PC AT总线,后定名为(16位)ISA总线,后继续发展为80386/80486的系统总线EISA总线(32位ISA总线)。 • ISA总线,结构简单,成本低,价格便宜,主要用于低速外设。随着高速外设的发展,92年都推出了PCI总线外部设备互连局部总线,它是介于CPU总线和系统总线之间的一级总线。它一则直接面向CPU总线,另一则面向系统总线。局部总线离CPU更近,所以通过它与CPU之间的数据传送速率大大加快。
PCI总线传输速率高,多总线共存(通过 • PCI-ISA/EISA桥接组件芯片,将PCI总线与 • ISA/EISA总线桥接,构成一个分层次的多总线 • 系统),独立于CPU,自动识别与配置的外设。
3. I/O通道及总线信号 • 即I/O扩展槽,即有5个(PC机)或8个(XT机)62芯插座,它适用于未来的发展,便于扩展开发系统。连到插座上的即62个信号线PC系统总线。 • 用户自己开发接口,即插入此扩展槽即可。 • 62根信号线。注意:元件面为A面,A1~A31. 焊接面为B面,B1~B31. 可分为五类信号: ①地址总线: 20位地址。 ②数据总线 : 8位数据线。 ③控制总线:22根。 ④时钟与复位:3根。 ⑤地源与地线:8根+保留1根。 • 一般用户接口设计最常用的是:地址线﹑数据线﹑AEN(地址允许)、IOR﹑IOW﹑RESET﹑CLK﹑IRQ9(中断请求)、电源。
常见系统总线 图示 • 在微机发展和应用中出现了许多种内、外总线标准 • 第一个标准化的微机总线S-100总线 • 面向工业控制领域的STD总线 • 32位PC机上的ISA系统总线、EISA总线、VESA总线、PCI总线、USB总线等
4. 简易通用I/O接口保护卡 • 为了在PC系列微机上学习,扩展用户的接口,我们设计了一通用型接口保护卡。因为在实验中接口错误可能损坏主机。将简易保护口插入扩展槽,通过扁平电缆将系统三总线引到主机机箱的实验装 置即可实验。
保护卡由三部分组成: ①地址译码PS低有效。地址范围:380H~39FH。注意:IOR和IOW参与译码控制。 ②数据线隔离(由数据收发接收器245,由PS控制允许端G,PS为高则隔离;由IOR控制传送方向,IOR有效时,B→A(即输入),IOR无效时,A→B(即输出)。 ③部分地址与控制线隔离电路由三态缓冲器74LS244组成,它是单向传送A→Y,G为输出控制,8个三态门分成两组。因为地址线在此使用的控制线都是单向传送。 ④还直接引出+5V,地,CLK,共20个信号至实验板。