第章基本输入输出接口.ppt

上传人:本田雅阁 文档编号:2565613 上传时间:2019-04-09 格式:PPT 页数:66 大小:2.14MB
返回 下载 相关 举报
第章基本输入输出接口.ppt_第1页
第1页 / 共66页
第章基本输入输出接口.ppt_第2页
第2页 / 共66页
第章基本输入输出接口.ppt_第3页
第3页 / 共66页
亲,该文档总共66页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第章基本输入输出接口.ppt》由会员分享,可在线阅读,更多相关《第章基本输入输出接口.ppt(66页珍藏版)》请在三一文库上搜索。

1、1,第3章 输入/输出与接口技术,3.1.1 I/O接口基本概念,3.1 接口概述,I/O接口(input/output interface)技术是实现计算机与外部设备之间信息交换的一门技术,在微机系统设计和应用过程中占有极其重要的地位。 I/O接口电路介于主机与外部设备之间,是微处理器与外部设备信息交换的桥梁。外部设备通过I/O接口电路把信息传送给微处理器进行处理,而微处理器将处理结果通过I/O接口电路传送到外部设备。,2,定义:接口是CPU与“外部世界”的连接电路,负责“中转”各种信息。,1.接口的概念,分类:存储器接口和I/O接口。,位置:介于系统总线与外部设备之间。,3,2.为什么要引

2、入接口,微机和I/O设备的信息类型和格式可能不一样。 微机和I/O设备信号传输处理的速度可能不匹配。 微机和I/O设备信号的电平不一样。 不用接口, I/O直接接CPU,随着外设增加,会大大降低CPU的效率。 I/O直接接CPU,会使外设硬件结构过于依赖CPU,对外设本身发展不利。,4,I/O接口种类繁多,并且适用的场合也不同,有用于数据通信的,有用于数据格式转换的,有用于电平转换的,也有用于系统定时/计数和DMA传送的,等等。各种功能归纳如下:,3.1.2、I/O接口功能,存放数据的寄存器或锁存器称之为数据口。,(1)对传送数据提供缓冲、隔离和寄存 由于I/O设备与CPU的定时标准不同,数据

3、处理速度也不同,所以需要对传送数据提供缓冲、隔离和寄存(或锁存)。在输出接口中,一般都设计有寄存器或锁存器。在输入接口中,一般设计有寄存器和缓冲隔离环节(如三态门),用来存放输入的数据,并起到隔离作用,只有被CPU选中的设备才能将数据送到系统总线上,供CPU读取。,5,存放CPU命令代码的寄存器称之为命令口, 存放执行状态信息的寄存器称之为状态口。,(2)与CPU和I/O设备进行联络 I/O接口处于CPU和I/O设备之间,在传送数据时,I/O接口一方面与CPU进行联络,另一方面与外设进行联络。联络信号有:状态信号(如设备准备就绪)、请求信号(如中断请求)和控制信号(如中断响应)等。,6,(3)

4、对信号的形式和数据的格式进行转换 当计算机与I/O设备所用的信号形式、数据格式不同时,I/O接口能进行相互之间的转换。如数字量与模拟量的转换、串行数据与并行数据的格式转换,以及TTL与CMOS之间的电平转换等。,(4)对I/O端口进行寻址 在实际应用中,I/O接口包含有若干个寄存器或功能电路,称为I/O端口。每一个I/O端口都有一个编号,称为端口地址,简称口地址。与访问存储单元类似,CPU与I/O端口交换信息时,总是先给出端口地址,被选中的端口才可以与CPU进行信息交换。,(5)可编程功能:增加接口的灵活性和智能性。,7,接口由接口硬件和接口软件组成。,1.接口硬件,3.1.3、I/O接口组成

5、,图3.2,8,数据寄存器:是可读可写的寄存器,用来存放CPU与I/O设备交换的数据信息。 控制寄存器:只能写不能读,用来存放CPU向外部设备发送的控制命令和工作方式命令字等。 状态寄存器:能读不能写,用来存放外部设备当前的工作状态信息,供CPU查询。 数据缓冲器:是CPU与I/O备数据信息交换的通道,它与CPU的数据总线DB连接。 读/写控制逻辑单元:与CPU的地址总线AB、控制总线CB连接,接收CPU发送到I/O接口的读/写控制信号和端口选择信号,选择接口内部的寄存器进行读/写操作。 目前,I/O接口可分为中小规模集成电路芯片、可编程接口芯片和多功能接口芯片三大类。前两种在微型计算机出现时

6、就已经被采用,后一种出现得较晚,从80386微机开始批量应用,现在的高档微机广泛采用多功能接口芯片,9,CPU侧引脚信号:,外设侧引脚信号:,内部控制逻辑:,根据控制寄存器、状态寄存器、总线控制信号及外设状态信号控制I/O接口的工作。,10,常见接口插槽,PS2鼠标,PS2键盘,千兆网,10/100M网卡,USB,并行口,MIDI/游戏接口,显示器接口,1394,1394a,音箱/线入接口/麦克风,串行口,11,2.接口软件(设备驱动程序),初始化程序段:设置接口工作方式及初始条件。,传送方式处理程序段:CPU针对不同的I/O设备有不同的处理方式。如设置中断向量等。,主控程序段:完成接口任务的

7、程序。,程序终止与退出程序段:对接口电路硬件保护及操作系统中数据恢复。,辅助程序段:提供人-机对话手段。,12,3.2.1 程序控制方式,1. 无条件传送方式,2.条件传送方式(查询方式),3.2 数据传输控制方式,3.中断传送方式,3.2.2 直接存储器存取(DMA)方式,3.2.3 I/O处理机方式,13,3.2.1 程序控制方式,1. 无条件传送方式,在CPU与慢速变化的设备交换数据时,可以认为它们总是处于“就绪”状态,随时可以进行数据传送,这就是无条件传送,或称立即传送、同步传送 适合于简单设备,如LED数码管、按键或按纽等 无条件传送的接口和操作均十分简单 这种传送有前提:外设必须随

8、时就绪,14,无条件传送:输入示例,15,无条件传送:输入实例,16,无条件传送:输出示例,17,无条件传送:输出实例,18,无条件传送:输入输出接口,19,CPU需要先了解(查询)外设的工作状态,然后在外设可以交换信息的情况下(就绪)实现数据输入或输出 对多个外设的情况,则CPU按一定顺序依次查询(轮询)。先查询的外设将优先进行数据交换 查询传送的特点是:工作可靠,适用面宽,但传送效率低,2.条件传送方式(查询方式),20,就绪(Ready),在输入场合 “就绪”说明输入接口已准备好送往CPU的数据,正等着CPU来读取 该状态也可用接口中数据缓冲器已“满”来描述 在输出场合 “就绪”说明输出

9、接口已做好准备,等待接收CPU要输出的数据 该状态也可用接口数据缓冲器已“空”、或者用接口(外设)“闲”或不“忙(Busy)”来描述,就绪:满,空、闲、不忙,21,查询传送的两个环节, 查询环节 寻址状态口 读取状态寄存器的标志位 若不就绪就继续查询,直至就绪 传送环节 寻址数据口 是输入,通过输入指令从数据端口读入数据 是输出,通过输出指令向数据端口输出数据,流程,22,查询输入接口,23,查询输出接口,24,CPU在执行程序中,被内部或外部的事件所打断,转去执行一段预先安排好的中断服务程序;服务结束后,又返回原来的断点,继续执行原来的程序,3.中断传送方式,25,中断传送与接口,中断传送是

10、一种效率更高的程序传送方式 进行传送的中断服务程序是预先设计好的 中断请求是外设随机向CPU提出的 CPU对请求的检测是有规律的:一般是在每条指令的最后一个时钟周期采样中断请求输入引脚 本书主要论述中断在输入和输出方面的应用 中断还有着非常广泛的应用,26,希望克服程序控制传送的不足: 外设CPU存储器 外设CPU存储器 直接存储器存取DMA: 外设存储器 外设存储器 CPU释放总线,由DMA控制器管理,3.2.2 直接存储器存取(DMA)方式,27,DMA传送的工作过程, CPU对DMA控制器进行初始化设置 外设、DMAC和CPU三者通过应答信号建立联系:CPU将总线交给DMAC控制 DMA

11、传送 DMA读存储器:存储器 外设 DMA写存储器:存储器 外设 自动增减地址和计数,判断传送完成否,28,通道结构的I/O处理机(IOP)(如86系列中的8089IOP) 专用处理机(如网卡、显卡上的处理机) 外围处理机(PPU) 通用机(如双CPU服务器) 功能: 数据转换、数据搜索、数据格式转换、检错纠错、编码/译码,打包/解包,3.2.3 I/O处理机方式,特点: I/O处理机接管了CPU的各种I/O操作及I/O控制功能,CPU能与IO处理机并行工作。I/O处理机有自己的指令系统,能独立地直接存取主存储器、对外设和I/O过程进行管理。,要求:需要IO处理机支持。,应用:高速I/O归IO

12、处理机管理,低速I/O设备归CPU管理。,29,传送方式的比较,无条件传送:慢速外设需与CPU保持同步 查询传送: 简单实用,效率较低 中断传送:外设主动,可与CPU并行工作,但每次传送需要大量额外时间开销 DMA传送:DMAC控制,外设直接和存储器进行数据传送,适合大量、快速数据传送,30,3.3.1 I/O端口,1.I/O端口,I/O端口是供CPU直接存取访问的接口中的寄存器或电路。,接口中的命令口、状态口和数据口均为I/O端口。,2.I/O端口地址,是对接口中的不同寄存器或电路的编号,该编号加上该接口的基地址称为该端口的I/O端口地址。,CPU通过向命令端口发命令来对接口,最终对设备进行

13、控制。访问设备实际上是访问相关的端口。,3.命令、接口与I/O端口关系,一个接口中有多个I/O端口;,一个I/O端口可接受多种命令,对应多个寄存器。,3.3 I/O编址与访问,31,1.I/O统一编址(存储器映象I/O编址),一个I/O端口等同于一个存储器单元。存储单元和I/O端口统一编址。,应用:Motorola系列和Apple 系列均采用此方式,3.3.2 I/O端口编址,32,优点:,对I/O端口的访问命令与对存储器单元访问相同,不必使用专用I/O指令; 外设数目或I/O寄存器数几乎不受限制。 系统读写控制逻辑较简单。,缺点:,I/O端口占用部分MEM空间,可用MEM空间减小; 对MEM

14、访问指令较长,执行速度较慢; I/O端口地址译码时间较长。,33,2.I/O独立编址,I/O端口地址空间与存储器地址空间相互独立。,应用:Z-80系列和x86系列均采用此方式。,34,缺点:,优点:,MEM地址空间不受I/O端口地址空间影响; I/O端口数量不多,占用地址线少,地址译码简单,速度较快,使得此类指令执行速度快; 使用专用I/O命令(IN/OUT),与MEM访问命令(LOAD/STORE、MOV)有明显区别,便于理解和检查。,35,3.Intel系列微机I/O编址,Intel系列微处理器支持I/O独立编址方式和I/O统一编址(存储器映象编址)方式。,Intel系列微机系统仅支持I/

15、O独立编址方式。,4.I/O端口访问,CPU通过I/O指令对I/O接口进行访问。,36,输入指令(IN:将外设数据传送给CPU内的AL/AX) IN AL,i8 ;字节输入 IN AL,DX ;字节输入 IN AX,i8 ;字输入 IN AX,DX ;字输入 输出指令(OUT:将CPU内的AL/AX数据传送给外设) OUT i8,AL ;字节输出 OUT DX,AL ;字节输出 OUT i8,AX ;字输出 OUT DX,AX ;字输出,C语言指令:inportb(inport)、outportb(outport)。,VC+指令:_inp(_inpw)、_outp(_outpw)。,37,1

16、PortReadByte; 语法 :BOOL PortReadByte(DWORD address, BYTE *pdata); 功能描述:读该板卡某个的IO端口值。 参数: address:指明要读的IO端口地址 pdata:该函数执行完后,address所指明的端口值被填入该地址 返回值:如果读成功,则返回True,否则返回False,PortWriteByte; 语法 :BOOL PortWriteByte(DWORD address, BYTE data); 功能描述:将给定值写入该板卡所指明的IO端口。 参数: address:指明要写的硬件IO端口地址 data: 该函数执行完后,

17、data将被写入address所指明的IO端口 返回值:如果读成功,则返回True,否则返回False 备注:应用程序使用该函数前必须先调用Startup。,38,例:读取CMOS信息。,main() short int i, j; unsigned char c_CmosMessage64; for (i=0;i=63;i+) j=i|0x80 outportb(0x70,j); c_CmosMessagei=inportb(0x71) ; printf(“CMOS信息读取完毕。n“); ,;功能:读取CMOS信息 ;调用:AL=CMOS地址 ;返回:AL=CMOS内容 proc_read_

18、cmos proc cli or al,80h ;屏蔽NMI out 70h,al jmp $+2 ;延迟 in al,71h ;读CMOS数据 sti ret proc_read_cmos endp,39,3.3 I/O地址的译码方法及特点: 部分译码时,通常是中间地址线不连接 部分译码也有最低地址线不连接的情况 每个接口电路通常只占用几个I/O地址,这时可以利用基本逻辑门电路进行地址译码 除采用译码器、门电路进行译码外,I/O地址译码还经常采用可编程逻辑器件PLD 为了给系统一定的选择余地,有些接口电路利用比较器、开关或跨接器等进行多组I/O地址的译码,40,3.4.1 x86系列微机接口

19、分析,1.I/O接口硬件分类,系统板上I/O芯片和I/O扩展槽接口卡。,2.I/O端口地址分配,PC系列I/O地址线有16根,对应64K空间;,I/O端口译码只使用了A0-A9,共1024个端口,地址范围为0000H03FFH。,不同的微机系统对I/O端口地址的分配不同。,初期:A9=0端口(512个)为系统板所用,其他端口(512个)为扩展槽所用。,3.4 接口分析与设计方法,41,系统板I/O接口芯片端口地址(0000H-00FFH):,PC/AT/Pentium:A8=A9=0端口(256个)为系统板所用,其他端口(768个)为扩展槽所用。,42,扩展槽I/O接口卡端口地址(0100H-

20、03FFH):,43,用户I/O端口地址选用原则:,系统配置占用的端口地址一律不能用;,厂家声明保留的端口地址不要用;,其余端口地址可用,为避免冲突最好采用DIP。,3.I/O端口地址译码方法,一个I/O接口中的多个端口地址是连续的。,I/O接口芯片内部端口地址:,I/O端口地址低位直接组成。,44,1.固定式端口地址译码,接口中只有一个端口时可采用门电路构成。,接口中有多个端口时一般采用译码器电路构成,常见的译码器有74LS138、74LS154等。,74LS138译码器:,工作条件:,工作原理:,将复合的输入信号变为枚举的输出信号。,3.4.2 I/O端口地址译码电路的几种形式,45,74

21、LS138真值表,46,Y0,Y7,A,B,C,G1,15,14,13,12,11,10,9,7,1,2,3,4,5,6,74LS138,A5,A6,A7,A8,A9,AEN#,DMACS#(8237),INTRCS#(8259),T/C CS#(8253),PPICS#(8255),WRTDMAPG#,1,1,WRTNMIREG#,IOW#,74LS138在PC机系统板端口译码的应用:,为何中断控制1端口地址为0020H-003FH?,软件上和信号上如何区别访问I/O还是MEMORY?,47,数据总线,地址总线,控制总线,D7-D0,CS#,A0,WR#,RD#,设 备 侧 信 号,D7-D

22、0,CS#,A1 A0,WR#,RD#,设 备 侧 信 号,8259,8253,Y0,Y7,A,B,C,G2B#,G2A#,G1,15,14,13,12,11,10,9,7,A5,A6,A7,A9,A8,AEN#,74LS138,A1 A0,A0,A15-A0,D7-D0,IOW#,IOR#,IOW#,IOR#,48,2.可选式端口地址译码,(1)使用比较器+地址开关方法,74LS688比较器:,当P07Q07时, P=1,输出高电平。,当P07=Q07时, P=0,输出低电平。,比较器和地址开关产生一个信号参与片选。,注意:门电路与IOR#/IOW#信号延迟不能太大。,49,(2)使用异或门

23、+地址开关方法,用异或门代替比较器和地址开关比较。,如用3片74LS136代替74LS688。,74LS136:,逻辑: 3=12;6=45; 8=910;11=1213;,连线: 异或门的输入端分别接地址线和开关线。,片选:各异或门的输出“或”的结果。,50,思考题1,?,51,300H 301H 302H 303H 304H 305H 306H 307H,思考题1 的答案,52,思考题2,Y0,Y7,A,B,C,G1,15,14,13,12,11,10,9,7,1,2,3,4,5,6,74LS138,_,_,_,_,_,AEN#,001FH 405FH 809FH _ 10011FH _

24、_ _,A9A0共10根线参与地址译码,请将上图的空填对。,53,思考题2的答案,001FH 405FH 809FH 10011FH,A9A8A7A6A5A4A3A2A1A0,第一步 ? ? ? ? ? ,第二步 0 ? ? ? 0 ,第三步 0 C B A 0 ,54,思考题3,要求接口芯片的端口地址范围为260H,262H,264H,266H,268H,26AH,26CH,26EH,请问A0A9这10根线需要怎么连。,55,思考题3答案,A9 A8 A7 A6 A5 A4 A3 A2 A1 A0,1 0 0 1 1 0,Y6,A,B,C,74LS138,G1,A0,A1,CS#,A2,某接口芯片,&,IOR#,IOW#,260H 262H 264H 266H 268H 26AH 26CH 26EH,56,思考题4,按图上的连接方法,该接口芯片一共有几个端口?每个端口的地址分别是多少?,57,思考题4答案,58,IBM PC/XT主机板的I/O译码电路,59,60,或,A19A16/S6S3,CS8254 #,0H,00H,43H,AL,OUT 43H, AL,WR #( IOW# ),IO/M#,61,无条件传送流程,62,IN AL, 21H,63,OUT 43H, AL,64,查询传送流程,65,中断传送流程,66,DMA传送流程,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1