收藏 分享(赏)

现代微机原理与接口技术.ppt

上传人:kuailexingkong 文档编号:1182444 上传时间:2018-06-17 格式:PPT 页数:45 大小:2.07MB
下载 相关 举报
现代微机原理与接口技术.ppt_第1页
第1页 / 共45页
现代微机原理与接口技术.ppt_第2页
第2页 / 共45页
现代微机原理与接口技术.ppt_第3页
第3页 / 共45页
现代微机原理与接口技术.ppt_第4页
第4页 / 共45页
现代微机原理与接口技术.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

1、1,第5章 输入输出与接口技术,2,定义:接口是CPU与“外部世界”的连接电路,负责“中转”各种信息。,分类:存储器接口和I/O接口。,位置:介于系统总线与外部设备之间。,1.接口的概念,5.1.1 I/O接口基本概念,5.1 接口概述,3,2.为什么要引入接口,微机和I/O设备的信息类型和格式可能不一样。微机和I/O设备信号传输处理的速度可能不匹配。不用接口, I/O直接接CPU,随着外设增加,会大大降低CPU的效率。I/O直接接CPU,会使外设硬件结构过于依赖CPU,对外设本身发展不利。,4,3.I/O接口与I/O设备,不同I/O设备对应I/O接口不同。,I/O接口受CPU控制,I/O设备

2、受I/O接口控制。,为增加通用性,I/O接口电路一般均具有可编程功能。,微机的应用离不开外部设备接口的设计、选用和连接。,CPU,接口,外设,数据,数据,控制信号,控制信号,状态信号,状态信号,可能是单向的,5,数据缓冲功能:通过寄存器或锁存器实现。,接口中存放数据的寄存器或锁存器称之为数据口。,接受和执行CPU命令功能:,接口中存放CPU命令代码的寄存器称之为命令口, 控制和监视设备执行功能: 接口中存放执行状态信息的寄存器称之为状态口。,设备选择功能:CPU通过地址译码选择不同外设。,即CPU通过地址译码选择不同I/O接口和I/O接口中连接的不同的设备。,信号转换功能:协调总线信号与I/O

3、设备信号。,转换包括信号的逻辑关系、时序配合和电平转换。,可编程功能:增加接口的灵活性和智能性。,5.1.2 I/O接口功能,6,接口由接口硬件和接口软件组成。,1.接口硬件,5.1.3 I/O接口组成,7,CPU侧引脚信号:,外设侧引脚信号:,内部控制逻辑:,根据控制寄存器、状态寄存器、总线控制信号及外设状态信号控制I/O接口的工作。,8,常见接口插槽,PS2鼠标,PS2键盘,千兆网,10/100M网卡,USB,并行口,MIDI/游戏接口,显示器接口,1394,1394a,音箱/线入接口/麦克风,串行口,9,常见接口插槽2,声道输入,前置扬声器输出,麦克风输入,中置与重低音,后置扬声器输出,

4、侧置扬声器输出,10,2.接口软件(设备驱动程序),初始化程序段:设置接口工作方式及初始条件。,传送方式处理程序段:CPU针对不同的I/O设备有不同的处理方式。如设置中断向量等。,主控程序段:完成接口任务的程序。,程序终止与退出程序段:对接口电路硬件保护及操作系统中数据恢复。,辅助程序段:提供人-机对话手段。,11,5.2.1 程序控制方式,1. 无条件传送方式,2.条件传送方式(查询方式),5.2 数据传输控制方式,12,3.中断传送方式,5.2.2 直接存储器存取(DMA)方式,13,5.2.3 I/O处理机方式,特点: I/O处理机接管了CPU的各种I/O操作及I/O控制功能,CPU能与

5、IO处理机并行工作。I/O处理机有自己的指令系统,能独立地直接存取主存储器、对外设和I/O过程进行管理。,要求:需要IO处理机支持。,应用:高速I/O归IO处理机管理,低速I/O设备归CPU管理。,14,5.3.1 I/O端口,1.I/O端口,I/O端口是供CPU直接存取访问的接口中的寄存器或电路。,接口中的命令口、状态口和数据口均为I/O端口。,2.I/O端口地址,是对接口中的不同寄存器或电路的编号,该编号加上该接口的基地址称为该端口的I/O端口地址。,CPU通过向命令端口发命令来对接口,最终对设备进行控制。访问设备实际上是访问相关的端口。,3.命令、接口与I/O端口关系,一个接口中有多个I

6、/O端口;,一个I/O端口可接受多种命令,对应多个寄存器。,5.3 I/O编址与访问,15,1.I/O统一编址(存储器映象I/O编址),一个I/O端口等同于一个存储器单元。存储单元和I/O端口统一编址。,优点:,对I/O端口的访问命令与对存储器单元访问相同,不必使用专用I/O指令;外设数目或I/O寄存器数几乎不受限制。系统读写控制逻辑较简单。,缺点:,I/O端口占用部分MEM空间,可用MEM空间减小;对MEM访问指令较长,执行速度较慢; I/O端口地址译码时间较长。,应用:Motorola系列和Apple 系列均采用此方式,5.3.2 I/O端口编址,16,2.I/O独立编址,I/O端口地址空

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

8、,I/O端口地址空间:有64K个独立编址的8位端口空间。两个连续8位端口可作为16位端口,4个连续的8位端口可作为32位端口处理。注意端口地址对齐。,5.3.3 IA-32系列微机I/O端口访问,000FFH(256个端口)地址用于主板1003FFH(768个端口)地址用于扩展板4000FFFFH地址用于I/O扩展设备(如PCI设备),源于IBM PC,I/O端口地址信号:借用地址线信号和IOW#/IOR#信号线以及表示DMA正在工作的AEN的反相信号组成。,19,系统板I/O接口芯片口地址(0000H-00FFH):,返回地址译码,20,扩展槽I/O接口卡端口地址(0100H-03FFH):

9、,21,2.I/O端口地址寻址方式,I/O端口支持直接寻址和间接寻址方式。 直接寻址是使用一字节立即数寻址,端口寻址范围为00HFFH共256个。间接寻址是使用DX寄存器间接给出I/O端口地址,可寻址的范围是0000HFFFFH共64K个端口。,3.I/O端口与累加器间I/O指令寄存器I/O指令,格式:IN、OUT。,结果:完成I/O端口和EAX、AX、AL之间的数据传送,可使用直接寻址和间接寻址方式。 举例:mov dx, 3fdhmov al, 36h in al, dxout 43h, al,22,4. I/O端口与存储器间I/O指令块I/O指令,格式:INSB/W/D、OUTSB/W/

10、D。,参数:用DX指定I/O端口地址,输入/输出时的目的/源RAM地址用ES:DI(EDI)/DS:SI(ESI)指定。EFLAG寄存器中DF位来决定地址加和减。,结果:通过前缀REP在I/O端口和连续的存储器空间之间传送数据。,5.I/O端口访问,CPU通过I/O指令对I/O接口进行访问。,汇编语言指令:IN、OUT。,C语言指令:inportb(inport)、outportb(outport)。,VC+指令:_inp(_inpw)、_outp(_outpw)。,23,例:读取CMOS信息。,main() short int i, j; unsigned char c_CmosMessag

11、e64; 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_cmos proc cli or al,80h ;屏蔽NMI out 70h,al jmp $+2 ;延迟 in al,71h ;读CMOS数据 sti ret proc_read_cmos endp,24,或,A19A16/S6S3,CS8254 #,0H,00H,43H,AL,OUT 43H

12、, AL,WR #( IOW# ),IO/M#,25,作业1 请参照上页OUT 43H, AL 指令的时序图画出IN AL,21H的时序图,假设从21H端口中读到的数据是02H,21H是8259芯片的一个端口地址。,26,I/O保护在保护模式下有效,在实地址模式下无效。,1.I/O特权级IOPL保护,保护通过比较当前任务的特权级CPL和标志寄存器的IOPL字段实现的。,若CPL IOPL,可执行IN、OUT、INS、OUTS、CLI、STI等敏感指令(对IOPL敏感);否则不行。,每个任务都有自己的IOPL,0级特权的过程可通过POPF和IRET指令修改任务的IOPL。,5.3.4 Penti

13、um的I/O保护,27,2.I/O允许位映象保护,I/O允许位映象用来修正IOPL对I/O敏感指令的影响,允许低特权的程序访问某些I/O端口。,I/O允许位映象是一个位向量,每位对应一个端口的操作权限(0表示允许)。,操作系统可通过改变任务TSS中的I/O允许映象来为某任务分配端口。(一定是在0级),思考:如何让普通任务访问I/O端口?,通过操作系统提供的接口函数;通过设备驱动程序(其运行在0级上);通过操作系统的漏洞。,思路:设法进入到0级,28,3. 保护模式下的I/O端口访问,执行in, out指令,CPL IOPL?,IOPM相关位=0?,进行I/O操作,否,否,产生一个一般保护异常,

14、是,是,IOPM是对所有VM都起作用的权限机制,它以位(bit)来代表每个端口。某位为1,则该代表的端口被禁止访问;某位为0;则允许访问该位所代表的端口。,IOPL用以表示指定的I/O操作处于特权级的哪一级。它在EFLAGS中。CPL当前段的I/O优先级,它实际上是CS段选择符的第0第1位。,29,V86模式下(DOSVM)的I/O端口访问,执行in, out指令,IOPM相关位=0?,进行I/O操作,否,产生一个一般保护异常,是,30,2) 接口芯片内部端口号:,地址线低位直接组成。,端口地址=端口所在接口基地址+端口号,5.4 I/O端口地址译码方法,1)片选(CS#)信号:其有效表明该接

15、口芯片可以通过系统总线与CPU进行数据交换,使用IOW#/IOR#信号(有效)、AEN信号(无效)和地址线高位(接口基地址)经过译码得到片选信号。,5.4.1 接口芯片中与地址译码有关的管脚及其运用,31,5.4.2 固定式端口地址译码,接口中只有一个端口时可采用门电路构成。,接口中有多个端口时一般采用译码器电路构成,常见的译码器有74LS138、74LS154等。,74LS138译码器:,工作条件:,工作原理:,将复合的输入信号变为枚举的输出信号。,32,74LS138真值表,33,Y0#,Y7#,A,B,C,G2B#,G2A#,G1,15,14,13,12,11,10,9,7,1,2,3,

16、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机系统板端口译码的应用:,转PC例子,为何中断控制1端口地址为0020H-003FH?,软件上和信号上如何区别访问I/O还是MEMORY?,34,数据总线,地址总线,控制总线,D7-D0,CS#,A0,WR#,RD#,设备侧信号,D7-D0,CS#,A1A0,WR#,RD#,设备侧信号,8259,8253,Y0,Y7,A,B,C,G2B#,G

17、2A#,G1,15,14,13,12,11,10,9,7,A5,A6,A7,A9,A8,AEN#,74LS138,A1A0,A0,A15-A0,D7-D0,IOW#,IOR#,IOW#,IOR#,35,5.4.3 可选式端口地址译码,(1)使用比较器+地址开关方法,74LS688比较器:,当P07Q07时, P=1,输出高电平。,当P07=Q07时, P=0,输出低电平。,比较器和地址开关产生一个信号参与片选。,注意:当系统时钟频率很高的时候,译码电路的延迟不能太大,36,(2)使用异或门+地址开关方法,用异或门代替比较器和地址开关比较。,如用2片74LS136代替74LS688。,74LS1

18、36:,逻辑: 3=12;6=45; 8=910;11=1213;,连线: 异或门的输入端分别接地址线和开关线。,片选:各异或门的输出“或”的结果。,37,思考题1,?,38,300H301H302H303H304H305H306H307H,思考题1 的答案,39,思考题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_,A9A0共10根线参与地址译码,请将上图的空填对。,40,思考题2的答案,001FH 405FH 809FH 10011FH,

19、A9A8A7A6A5A4A3A2A1A0,第一步 ? ? ? ? ? ,第二步 0 ? ? ? 0 ,第三步 0 C B A 0 ,41,思考题3,要求接口芯片的端口地址范围为260H,262H,264H,266H,268H,26AH,26CH,26EH,请问A0A9这10根线需要怎么连。,42,思考题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#,260H262H264H266H268H26AH26CH26EH,43,思考题4,按图上的连接方法,该接口芯片一共有几个端口?每个端口的地址分别是多少?,44,思考题4答案,45,思考题5,现在希望一个地址译码能够译码出以下地址:Y0#地址为00000FH/10010FH/20020FH/30030FHY1#地址为01001FH/11011FH/21021FH/31031FH Y7#地址为07007FH/17017FH/27027FH/37037FH请设计这个译码电路。,

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

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报