输入输出与接口技术课件_第1页
输入输出与接口技术课件_第2页
输入输出与接口技术课件_第3页
输入输出与接口技术课件_第4页
输入输出与接口技术课件_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

3、O接口中连接的不同的设备。,信号转换功能:协调总线信号与I/O设备信号。,转换包括信号的逻辑关系、时序配合和电平转换。,可编程功能:增加接口的灵活性和智能性。,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

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

5、 I/O处理机方式,特点: I/O处理机接管了CPU的各种I/O操作及I/O控制功能,CPU能与IO处理机并行工作。I/O处理机有自己的指令系统,能独立地直接存取主存储器、对外设和I/O过程进行管理。,要求:需要IO处理机支持。,应用:高速I/O归IO处理机管理,低速I/O设备归CPU管理。,输入输出与接口技术,13,5.3.1 I/O端口,1.I/O端口,I/O端口是供CPU直接存取访问的接口中的寄存器或电路。,接口中的命令口、状态口和数据口均为I/O端口。,2.I/O端口地址,是对接口中的不同寄存器或电路的编号,该编号加上该接口的基地址称为该端口的I/O端口地址。,CPU通过向命令端口发命

6、令来对接口,最终对设备进行控制。访问设备实际上是访问相关的端口。,3.命令、接口与I/O端口关系,一个接口中有多个I/O端口;,一个I/O端口可接受多种命令,对应多个寄存器。,5.3 I/O编址与访问,输入输出与接口技术,14,1.I/O统一编址(存储器映象I/O编址),一个I/O端口等同于一个存储器单元。存储单元和I/O端口统一编址。,优点:,对I/O端口的访问命令与对存储器单元访问相同,不必使用专用I/O指令; 外设数目或I/O寄存器数几乎不受限制。 系统读写控制逻辑较简单。,缺点:,I/O端口占用部分MEM空间,可用MEM空间减小; 对MEM访问指令较长,执行速度较慢; I/O端口地址译

7、码时间较长。,应用:Motorola系列和Apple 系列均采用此方式,5.3.2 I/O端口编址,输入输出与接口技术,15,2.I/O独立编址,I/O端口地址空间与存储器地址空间相互独立。,应用:Z-80系列和x86系列均采用此方式。,优点:,MEM地址空间不受I/O端口地址空间影响; I/O端口数量不多,占用地址线少,地址译码简单,速度较快,使得此类指令执行速度快; 使用专用I/O命令(IN/OUT),与MEM访问命令(LOAD/STORE、MOV)有明显区别,便于理解和检查。,MEM,I/O设备,N-1 0,存储类指令,I/O类指令,K-1 0,输入输出与接口技术,16,缺点:,3.In

8、tel系列微机I/O编址,Intel系列微处理器支持I/O独立编址方式和I/O统一编址(存储器映象编址)方式。,Intel系列微机系统仅支持I/O独立编址方式。,输入输出与接口技术,17,2.I/O端口地址寻址方式,I/O端口支持直接寻址和间接寻址方式。 直接寻址是使用一字节立即数寻址,端口寻址范围为00HFFH共256个。 间接寻址是使用DX寄存器间接给出I/O端口地址,可寻址的范围是0000HFFFFH共64K个端口。,1.I/O端口地址空间,I/O端口地址空间:理论上有64K个独立编址的8位端口空间。两个连续8位端口可作为16位端口,4个连续的8位端口可作为32位端口处理。注意端口地址对

9、齐。,5.3.3 PC系列I/O端口访问,输入输出与接口技术,18,4.I/O端口与存储器间I/O指令块I/O指令,格式:INSB/W/D、OUTSB/W/D。,参数:用DX指定I/O端口地址,输入/输出时的目的/源RAM地址用ES:DI(EDI)/DS:SI(ESI)指定。EFLAG寄存器中DF位来决定地址加和减。,结果:通过前缀REP在I/O端口和连续的存储器空间之间传送数据。,3.I/O端口与累加器间I/O指令寄存器I/O指令,格式:IN、OUT。,结果:完成I/O端口和EAX、AX、AL之间的数据传送,可使用直接寻址和间接寻址方式。 举例:mov dx, 3fdhmov al, 36h

10、 in al, dxout 43h, al,输入输出与接口技术,19,或,A19A16/S6S3,CS8254 #,0H,00H,43H,AL,OUT 43H, AL,WR #( IOW# ),IO/M#,输入输出与接口技术,20,作业1 请参照课件P19上OUT 43H, AL 指令的时序图画出IN AL,21H的时序图,假设从21H端口中读到的数据是02H,21H是8259芯片的一个端口地址。,输入输出与接口技术,21,I/O保护在保护模式下有效,在实地址模式下无效。,1.I/O特权级IOPL保护,保护通过比较当前任务的特权级CPL和标志寄存器的IOPL字段实现的。,若CPL IOPL,可

11、执行IN、OUT、INS、OUTS、CLI、STI等敏感指令(对IOPL敏感);否则不行。,每个任务都有自己的IOPL,0级特权的过程可通过POPF和IRET指令修改任务的IOPL。,5.3.4 Pentium的I/O保护,输入输出与接口技术,22,符号 名称 值为“1”的条件 IOPL IO特权位 其值表示该任务使用的I/O操作的特权级 00为最高的核心级,11是最低的用户级 NT 嵌套标志 当前任务嵌套在另一个任务中时 RF 恢复标志 DBUG调试时忽略下一条指令遇到的断点 VM 虚拟8086模式 从保护模式进入到虚拟8086模式 AC 对齐检查 允许进行对齐检查 VIF 虚拟中断位 允许

12、V86扩展或允许保护模式虚拟中断 VIP 虚拟中断挂起位 有虚拟中断被挂起 ID 标识位 对它的读写表明处理器支持CPUID,这部分同8088,OF,3122 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0,DF,IF,TF,SF,ZF,AF,CF,PF,IOPL,NT,RF,VM,AC,VIF,VIP,ID,保 留,IA-32 标志寄存器EFLAG,输入输出与接口技术,23,I/O敏感指令 CLI清除EFLAGS中的IF位CPL=IOPL STI设置EFLAGS中的IF位CPL=IOPL IN从I/O地址读出数据CPL=IOPL

13、或I/O位图许可 INS从I/O地址读出字符串CPL=IOPL或I/O位图许可 OUT向I/O地址写数据CPL=IOPL或I/O位图许可 OUTS向I/O地址写字符串CPL=IOPL或I/O位图许可,输入输出与接口技术,24,2.I/O允许位映象保护,I/O允许位映象用来修正IOPL对I/O敏感指令的影响,允许低特权的程序访问某些I/O端口。,I/O允许位映象是一个位向量,每位对应一个端口的操作权限(0表示允许)。,操作系统可通过改变任务TSS中的I/O允许映象来为某任务分配端口。(一定是在0级),输入输出与接口技术,25,3. 保护模式下的I/O端口访问,执行in, out指令,CPL IO

14、PL?,IOPM相关位=0?,进行I/O操作,否,否,产生一个一般保护异常,是,是,IOPM是对所有VM都起作用的权限机制,它以位(bit)来代表每个端口。某位为1,则该代表的端口被禁止访问;某位为0;则允许访问该位所代表的端口。,IOPL用以表示指定的I/O操作处于特权级的哪一级。它在EFLAGS中。 CPL当前段的I/O优先级,它实际上是CS段选择符的第0第1位。,输入输出与接口技术,26,V86模式下(DOSVM)的I/O端口访问,执行in, out指令,IOPM相关位=0?,进行I/O操作,否,产生一个一般保护异常,是,输入输出与接口技术,27,设某一任务的TSS段如下: TSSSEG

15、 SEGMENT PARA USE16 TSS ;TSS低端固定格式部分 DB 8 DUP(0) ;对应I/O端口00H3FH DB 10000000B ;对应I/O端口40H47H DB 01100000B ;对应I/O端口48H4FH DB 8182 DUP(0ffH) ;对应I/O端口50H0FFFFH DB 0FFH ;位图结束字节 TSSLen = $ TSSSEG ENDS,输入输出与接口技术,28,再假设IOPL=1,CPL=3。那么如下I/O指令哪些能正常执行,哪些些会引起保护异常: in al,21h ; (1) in al,47h ; (2) out 20h,al ; (3

16、) out 4eh,al ; (4) in al,20h ; (5) out 20h,eax ;(6) out 4ch,ax ; (7) in ax,46h ; (8) in eax,42h ; (9),输入输出与接口技术,29,4.4.1 x86系列微机接口分析,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个)为

17、扩展槽所用。,5.4 接口分析与设计方法,输入输出与接口技术,30,系统板I/O接口芯片端口地址(0000H-00FFH):,PC/AT/Pentium:A8=A9=0端口(256个)为系统板所用,其他端口(768个)为扩展槽所用。,返回30页,输入输出与接口技术,31,扩展槽I/O接口卡端口地址(0100H-03FFH):,输入输出与接口技术,32,用户I/O端口地址选用原则:,系统配置占用的端口地址一律不能用;,厂家声明保留的端口地址不要用;,其余端口地址可用,为避免冲突最好采用DIP。,3.I/O端口地址译码方法,一个I/O接口中的多个端口地址是连续的。,I/O接口芯片内部端口地址:,I

18、/O端口地址低位直接组成。,输入输出与接口技术,33,4.I/O端口访问,CPU通过I/O指令对I/O接口进行访问。,汇编语言指令:IN、OUT。,C语言指令:inportb(inport)、outportb(outport)。,VC+指令:_inp(_inpw)、_outp(_outpw)。,输入输出与接口技术,34,例:读取CMOS信息。,main() short int i, j; unsigned char c_CmosMessage64; for (i=0;i=63;i+) j=i|0 x80 outportb(0 x70,j); c_CmosMessagei=inportb(0 x

19、71) ; 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,输入输出与接口技术,35,1.固定式端口地址译码,接口中只有一个端口时可采用门电路构成。,接口中有多个端口时一般采用译码器电路构成,常见的译码器有74LS138、74LS154等。,74LS138译码器:,工作条件:,工作原理:,将复合的

20、输入信号变为枚举的输出信号。,5.4.2 I/O端口地址译码电路的几种形式,输入输出与接口技术,36,74LS138真值表,输入输出与接口技术,37,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机系统板端口译码的应用:,转23页,为何中断控制1端口地址为0020H-003FH?,软件上和信号上如何区别访问I/O还是MEMORY?,输入输出与接口技术,38,输入输出与接口技术,39,2.可选式端口地址译码,(1)使用比较器+地址开关方法,74LS688比较器:,当P07Q07时, P=1,输出高电平。,当P07=Q07时, P=0,输出低电平。,比较器和地址开关产生一个信号参与片选。,输入输出与接口技术,40,(2)使用异或门+地址开关方法,用异或门代替比

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论