微机原理与接口技术:第5章 输入输出与接口技术_第1页
微机原理与接口技术:第5章 输入输出与接口技术_第2页
微机原理与接口技术:第5章 输入输出与接口技术_第3页
微机原理与接口技术:第5章 输入输出与接口技术_第4页
微机原理与接口技术:第5章 输入输出与接口技术_第5页
已阅读5页,还剩37页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1第5章输入输出与接口技术2

定义:接口是CPU与“外部世界”的连接电路,负责“中转”各种信息。

分类:存储器接口和I/O接口。

位置:介于系统总线与外部设备之间。1.接口的概念5.1.1I/O接口基本概念5.1接口概述32.为什么要引入接口微机和I/O设备的信息类型和格式可能不一样。微机和I/O设备信号传输处理的速度可能不匹配。不用接口,I/O直接接CPU,随着外设增加,会大大降低CPU的效率。I/O直接接CPU,会使外设硬件结构过于依赖CPU,对外设本身发展不利。43.I/O接口与I/O设备不同I/O设备对应I/O接口不同。I/O接口受CPU控制,I/O设备受I/O接口控制。为增加通用性,I/O接口电路一般均具有可编程功能。微机的应用离不开外部设备接口的设计、选用和连接。CPU接口外设数据数据控制信号控制信号状态信号状态信号可能是单向的5

数据缓冲功能:通过寄存器或锁存器实现。

接口中存放数据的寄存器或锁存器称之为数据口。

接受和执行CPU命令功能:

接口中存放CPU命令代码的寄存器称之为命令口,

控制和监视设备执行功能:

接口中存放执行状态信息的寄存器称之为状态口。

设备选择功能:CPU通过地址译码选择不同外设。

即CPU通过地址译码选择不同I/O接口和I/O接口中连接的不同的设备。

信号转换功能:协调总线信号与I/O设备信号。

转换包括信号的逻辑关系、时序配合和电平转换。

可编程功能:增加接口的灵活性和智能性。5.1.2

I/O接口功能6

接口由接口硬件和接口软件组成。1.接口硬件核心部分5.1.3、I/O接口组成7系统总线侧引脚信号:外设侧引脚信号:数据信号:接口缓冲寄存器与外设间的数据交换;状态信号:外设工作状态送给接口的状态寄存器;控制信号:接口的内部控制逻辑控制外设工作的控制信号和同步信号。地址信号:选择I/O接口中的不同寄存器(端口);数据信号:命令或数据写入到相应寄存器,或者从相关寄存器读出数据或状态;控制信号:控制命令的执行、时序、信号同步和片选;状态信号:接口的部分工作状态信号。内部控制逻辑:

根据控制寄存器、状态寄存器、总线控制信号及外设状态信号控制I/O接口的工作。8常见接口插槽1PS2鼠标PS2键盘千兆网10/100M网卡USB并行口MIDI/游戏接口VGA接口13941394a音箱/线入/麦克风接口串行口9常见接口插槽2声道输入前置扬声器输出麦克风输入中置与重低音后置扬声器输出侧置扬声器输出102.接口软件(设备驱动程序)

初始化程序段:设置接口工作方式及初始条件。

传送方式处理程序段:CPU针对不同的I/O设备有不同的处理方式。如设置中断向量等。

主控程序段:完成接口任务的程序。

程序终止与退出程序段:对接口电路硬件保护及操作系统中数据恢复。

辅助程序段:提供人-机对话手段。115.2.1I/O端口1.I/O端口

I/O端口是供CPU直接存取访问的接口中的寄存器或电路。

接口中的命令口、状态口和数据口均为I/O端口。2.I/O端口地址

是对接口中的不同寄存器或电路的编号,该编号加上该接口的基地址称为该端口的I/O端口地址。

CPU通过向命令端口发命令来对接口,最终对设备进行控制。访问设备实际上是访问相关的端口。3.命令、接口与I/O端口关系

一个接口中有多个I/O端口;

一个I/O端口可接受多种命令,对应多个寄存器。5.2I/O编址与访问121.I/O统一编址(存储器映象I/O编址)

一个I/O端口等同于一个存储器单元。存储单元和I/O端口统一编址。

优点:对I/O端口的访问命令与对存储器单元访问相同,不必使用专用I/O指令;外设数目或I/O寄存器数几乎不受限制。系统读写控制逻辑较简单。

缺点:I/O端口占用部分MEM空间,可用MEM空间减小;对MEM访问指令较长,执行速度较慢;

I/O端口地址译码时间较长。MEM空间I/O空间N-1KK-10存储类指令

应用:Motorola系列和Apple系列均采用此方式5.2.2I/O端口编址132.I/O独立编址I/O端口地址空间与存储器地址空间相互独立。

应用:Z-80系列和x86系列均采用此方式。

优点:MEM地址空间不受I/O端口地址空间影响;I/O端口数量不多,占用地址线少,地址译码简单,速度较快,使得此类指令执行速度快;使用专用I/O命令(IN/OUT),与MEM访问命令(LOAD/STORE、MOV)有明显区别,便于理解和检查。MEMI/O设备N-10存储类指令I/O类指令K-1014

缺点:3.Intel系列微机I/O编址Intel系列微处理器支持I/O独立编址方式和I/O统一编址(存储器映象编址)方式。

Intel系列微机系统仅支持I/O独立编址方式。

专用I/O指令增加指令系统复杂性,且I/O指令类型少,寻址方式也少,程序设计灵活性较差;

要求处理器提供MEMR#/MEMW#和IOR#/IOW#两组控制信号,增加了控制逻辑的复杂性。151.I/O端口地址空间

I/O端口地址空间:有64K个独立编址的8位端口空间。两个连续8位端口可作为16位端口,4个连续的8位端口可作为32位端口处理。注意端口地址对齐。5.2.3IA-32系列微机I/O端口访问00~0FFH(256个端口)地址用于主板100~3FFH(768个端口)地址用于扩展板400~0FFFFH地址用于I/O扩展设备(如PCI设备)源于IBMPC

I/O端口地址信号:借用地址线信号和IOW#/IOR#信号线以及表示DMA正在工作的AEN的反相信号组成。16I/O芯片名称

地址范围

DMAC1DMAC2DMA页面寄存器

0000-001FH00C0-00DFH0080-009FH

中断控制器1中断控制器2

0020-003FH00A0-00BFH

定时器并行接口芯片(键盘接口)RT/CMOSRAM协处理器(现保留)0040-005FH0060-006FH0070-007FH00F0-00FFH

系统板I/O接口芯片口地址(0000H-00FFH):返回地址译码17

扩展槽I/O接口卡端口地址(0100H-03FFH):I/O接口名称地址范围游戏控制卡0200-020FH并行口控制卡1并行口控制卡20370-037FH0270-027FH串行口控制卡1串行口控制卡203F8-03FFH02F8-02FFH原型插件板(用户可用)0300-031FH同步通信卡1同步通信卡203A0-03AF0380-038FH单显MDA彩显CGA彩显EGA/VGA03B0-03BFH03D0-03DFH03C0-03CFH软驱控制卡硬驱控制卡03F0-03FFH01F0-01FFHPC网卡0360-036FH182.I/O端口地址寻址方式

I/O端口支持直接寻址和间接寻址方式。

直接寻址是使用一字节立即数寻址,端口寻址范围为00H~FFH共256个。间接寻址是使用DX寄存器间接给出I/O端口地址,可寻址的范围是0000H~FFFFH共64K个端口。3.I/O端口与累加器间I/O指令——寄存器I/O指令

格式:IN、OUT。

结果:完成I/O端口和EAX、AX、AL之间的数据传送,可使用直接寻址和间接寻址方式。举例:movdx,3fdh moval,36h inal,dx out43h,al194.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端口和连续的存储器空间之间传送数据。5.I/O端口访问CPU通过I/O指令对I/O接口进行访问。

汇编语言指令:IN、OUT。

C语言指令:inportb(inport)、outportb(outport)。

VC++指令:_inp(_inpw)、_outp(_outpw)。20

例:读取CMOS信息。main(){shortinti,j;unsignedcharc_CmosMessage[64];for(i=0;i<=63;i++){j=i|0x80outportb(0x70,j);c_CmosMessage[i]=inportb(0x71);}printf("CMOS信息读取完毕。\n");};功能:读取CMOS信息;调用:AL=CMOS地址;返回:AL=CMOS内容

proc_read_cmosprocclioral,80h;屏蔽NMIout70h,aljmp$+2 ;延迟

inal,71h;读CMOS数据

stiretproc_read_cmosendp21或A19~A16/S6~S3CS8254#0H00H43H[AL]OUT43H,ALWR#(IOW#)IO/M#22作业1

请参照上页OUT43H,AL指令的时序图画出INAL,21H的时序图,假设从21H端口中读到的数据是02H,21H是8259芯片的一个端口地址。23I/O保护在保护模式下有效,在实地址模式下无效。1.I/O特权级IOPL保护

保护通过比较当前任务的特权级CPL和标志寄存器的IOPL字段实现的。

若CPL≤IOPL,可执行IN、OUT、INS、OUTS、CLI、STI等敏感指令(对IOPL敏感);否则不行。

每个任务都有自己的IOPL,用以表示指定的I/O操作处于特权级的哪一级。它在EFLAGS中。0级特权的过程可通过POPF和IRET指令修改任务的IOPL。5.2.4Pentium的I/O保护242.I/O允许位映象保护

I/O允许位映象用来修正IOPL对I/O敏感指令的影响,允许低特权的程序访问某些I/O端口。

I/O允许位映象是一个位向量,每位对应一个端口的操作权限(0表示允许)。

操作系统可通过改变任务TSS中的I/O允许映象来为某任务分配端口。(一定是在0级)253.保护模式下的I/O端口访问执行in,out指令CPL≤IOPL?IOPM相关位=0?进行I/O操作否否产生一个一般保护异常是是IOPM是对所有VM都起作用的权限机制,它以位(bit)来代表每个端口。某位为1,则该代表的端口被禁止访问;某位为0;则允许访问该位所代表的端口。IOPL用以表示指定的I/O操作处于特权级的哪一级。它在EFLAGS中。CPL当前段的I/O优先级,它实际上是CS段选择符的第0~第1位。

26V86模式下(DOSVM)的I/O端口访问执行in,out指令IOPM相关位=0?进行I/O操作否产生一个一般保护异常是272)接口芯片内部端口号:地址线低位直接组成。端口地址=端口所在接口基地址+端口号5.3I/O端口地址译码方法1)片选(CS#)信号:其有效表明该接口芯片可以通过系统总线与CPU进行数据交换使用IOW#/IOR#信号(有效)、AEN信号(无效)和地址线高位(接口基地址)经过译码得到片选信号。5.3.1接口芯片中与地址译码有关的管脚及其运用285.3.2固定式端口地址译码

接口中只有一个端口时可采用门电路构成。

接口中有多个端口时一般采用译码器电路构成,常见的译码器有74LS138、74LS154等。74LS138译码器:工作条件:

G1=1,G2A#

=G2B#

=0。工作原理:

将复合的输入信号变为枚举的输出信号。15Y0#Y7#ABCG2B#G2A#G114131211109712345674LS13829输入输出G1G2A#G2B#CBAY7Y6Y5Y4Y3Y2Y1Y010000011111110100001111111011000101111101110001111110111100100111011111001011101111110011010111111100111011111110XXXXX11111111X1XXXX11111111XX1XXX1111111174LS138真值表30Y0#Y7#ABCG2B#G2A#G11514131211109712345674LS138A5A6A7A8A9AEN’#DMACS#(8237)INTRCS#(8259)T/CCS#(8253)PPICS#(8255)WRTDMAPG#≥1≥1WRTNMIREG#IOW#74LS138在PC机系统板端口译码的应用:转PC例子为何中断控制1端口地址为0020H-003FH?软件上和信号上如何区别访问I/O还是MEMORY?31DMA825982538255系统…空闲00H20H40H60H3FFH1FH3FH5FH7FH::::数据总线地址总线控制总线CPUD7-D0CS#A0WR#RD#设备侧信号D7-D0CS#A1A0WR#RD#设备侧信号82598253MEMY0Y7ABCG2B#G2A#G115141312111097A5A6A7A9A8AEN#74LS138A1A0A0A15-A0D7-D0IOW#IOR#IOW#IOR#325.3.3可选式端口地址译码(1)使用比较器+地址开关方法74LS688比较器:当P0~7≠Q0~7时,

P=1,输出高电平。当P0~7=Q0~7时,

P=0,输出低电平。

比较器和地址开关产生一个信号参与片选。注意:当系统时钟频率很高的时候,译码电路的延迟不能太大33(2)使用异或门+地址开关方法

用异或门代替比较器和地址开关比较。=1=1=1=11234567891011121314VCCGND74LS136

如用2片74LS136代替74LS688。74LS136:逻辑:

3=1⊕2;6=4⊕5;

8=9⊕10;11=12⊕13;连线:

异或门的输入端分别接地址线和开关线。

片选:各异或门的输出“或”的结果。34思考题1?35300H301H302H303H304H305H306H307H思考题1的答案36思考题2Y0Y7ABCG2BG2AG11514131211109712345674LS138__________AEN#00~1FH40~5FH80~9FH_________100~11FH___________________________A9~A0共10根线参与地址译码,请将上图的空填对。37思考题2的答案A6A7A8A5A9

00~1FH40~5FH80~9FH

100~11FHC0~DFH140~15HH180~19FH1C0~1DFHA9A8A7A6A5A4A3A2A1A0第一步?????×××××第二步0???0×××××第三步0CBA0×××××Y0Y7ABCG2BG2AG11514131211109712345674LS138AEN###38思考题3要求接口芯片的端口地址范围为260H,262H,264H,266H,268H,26AH,26CH,26EH,请问A0~A9这10根线需要怎么连。Y6ABC74LS138G1G2A#G2

温馨提示

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

评论

0/150

提交评论