
Intel微处理器chapter11章节.ppt
238页1,第11章 基本 I/O接口,输入与输出接口的操作 译码8位、16位和32位I/O设备 信号交换 连接并编程82C55可编程并进行接口 将LCD显示器, LED显示器,键盘, ADC, DAC以及其他各种器件连接到82C55上 连接并编程16550串行通信接口适配器 将一个模/数转换器和一个数/模转换器连接到微处理器上,2,I/O接口简介,IN, OUT: 在I/O设备和累加器之间传送数据 INS, OUTS: 在存储器和I/O设备之间传送数据 固定地址:8位形式 (p8) 可变地址: DX中的16位I/O地址,3,4,但使用IN或OUT指令传送数据时,常被称为端口号(或端口)的I/O地址出现在地址总线上 8位固定端口号出现在地址总线A7-A0上,此时A15-A8 为00000000B 对I/O指令来说,A15以上的地址线没有定义 16位可变端口号(DX)出现在地址线A15-A0上,5,这意味着开始的256个I/O端口地址(00H-FFH)由固定的和可变的I/O指令访问 但0100H-FFFFH中的任一I/O地址只能由可变I/O指令访问 INS和OUTS指令使用DX寄存器来寻址I/O设备,6,独立编址I/O与存储器映像I/O,7,8,独立编址I/O设备的地址称为端口,与存储器是隔离的 独立编址I/O的一个缺点是,在 I/O与微处理器的累加器或存储器之间传送的数据必须由IN, INS, OUT及 OUTS 指令存取 I/O空间独立的控制信号由M/IO和W/R产生,它们指示一次I/O读(/IORC) 或一次I/O写(/IOWC)操作,独立编址 I/O,9,存储器映像 I/O,与独立编址I/O不同,存储器映像I/O不使用IN, INS, OUT或OUTS指令 相反,它使用任一在微处理器与存储器间传送数据的指令 存储器映像I/O设备被视为存储器映像中的一个存储单元,10,PC的 I/O映像,在端口0000H~03FFH的I/O空间通常留给计算机系统和ISA总线 位于0400H-FFFFH的I/O端口一般用于用户应用、主板功能及PCI 总线,11,12,基本输入接口与基本输出接口,基本输入设备是一组三态缓冲器 基本输出设备是一组数据锁存器,13,14,外部TTL数据(切换开关) 被连接到缓冲器的输入上 缓冲器输出与数据总线相连 选择信号/SEL变为逻辑0时,微处理器读取8个开关的内容 一旦执行IN指令,开关的内容就被复制到AL寄存器中,基本输入接口,15,当微处理器执行IN指令时,I/O端口地址被译码,在/SEL上产生逻辑0 74LS244缓冲器的输出控制引脚(/1G和/2G)被置为0,使得数据输入线(A)与数据输出线(Y)相连 74LS244缓冲器的输出控制引脚/1G和/2G置为1,则器件进入三态高阻抗模式,从而有效地将开关与数据总线断开,16,基本输出接口,当输出指令执行时,来自AL,AX或EAX的数据通过数据总线传送给锁存器 每次OUT指令执行时,锁存器的/SEL信号被激活,捕获从任意8位数据总线上输出给锁存器的数据 数据一直保持到下一条OUT指令执行,17,18,信号交换 或 查询,许多I/O设备接收或发送信息的速度比微处理器慢得多 I/O控制的另一种方法被称为信号交换或查询,可使I/O设备与微处理器同步 一个需要信号交换的设备,如并行打印机,每秒可打印 100个字符(Character Per Second,简称CPS) 显然微处理器可以超过100 CPS的速度给打印机发送数据,19,数据通过一组数据线(D7-D0)传送 BUSY 指示打印机“忙”状态 /STB 是一个时钟脉冲,用于给打印机发送数据,进行打印 一旦打印机接收到数据,它就将BUSY引脚置1,表明打印机正忙于打印数据 微处理器软件查询或测试BUSY引脚,以决定打印机是否“忙”,20,21,22,关于接口电路的注释,TTL: 0 (0-0.8V), 1 (2.0-5.0V),23,输入设备,24,输出设备,25,26,27,I/O端口地址译码,存储器译码的是A31-A0, A23-A0或A19-A0;而独立编址I/O译码的是A15-A0 如果I/O设备只使用固定I/O寻址,则只译码A7-A0 使用/IORC和/IOWC激活I/O设备执行一次读或写操作 在早期微处理器中,使用IO/M= 1与/RD或/WR激活I/O 设备 而在最新的微处理器中,使用M/IO=0与W/R激活I/O设备,28,译码8位 I/O地址,固定I/O指令使用出现在A15-A0上的8位I/O端口地址,地址为0000H-00FFH 如果一个系统包含肯定不超过256个的I/O设备,则常常只译码地址引脚A7-A0作为8位端口地址,因此可以忽略地址引脚A15-A8 DX寄存器也可寻址I/O端口的00H-FFH,29,30,31,AUTHOR Barry B. Brey COMPANY BreyCo DATE 7/1/99 CHIP DECODER8 PAL16L8 Pins 1 2 3 4 5 6 7 8 9 10 A0 A1 A2 A3 A4 A5 A6 A7 NC GND Pins 11 12 13 14 15 16 17 18 19 20 NC F7 F6 F5 F4 F3 F2 F1 F0 VCC EQUATIONS /F0= A7*A6*A5*A4*/A3*/A2*/A1*/A0 /F1= A7*A6*A5*A4*/A3*/A2*/A1*A0 /F2= A7*A6*A5*A4*/A3*/A2*A1*/A0 /F3= A7*A6*A5*A4*/A3*/A2*A1*A0 /F4= A7*A6*A5*A4*/A3*A2*/A1*/A0 /F5= A7*A6*A5*A4*/A3*A2*/A1*A0 /F6= A7*A6*A5*A4*/A3*A2*A1*/A0 /F7= A7*A6*A5*A4*/A3*A2*A1*A0,32,译码16位 I/O地址,33,AUTHOR Barry B. Brey COMPANY BreyCo DATE 7/2/99 CHIP DECODER9 PAL16L8 Pins 1 2 3 4 5 6 7 8 9 10 A0 A1 A2 A3 A4 A5 A6 A7 NAND GND Pins 11 12 13 14 15 16 17 18 19 20 NC EFFFH EFFEH EFFDH EFFCH EEEBH EFFAH EFF9H EFF8H VCC EQUATIONS /EFF8H= A7*A6*A5*A4*A3*/A2*/A1*/A0*/NAND /EFF9H= A7*A6*A5*A4*A3*/A2*/A1*A0*/NAND /EFFAH= A7*A6*A5*A4*A3*/A2*A1*/A0*/NAND /EFFBH= A7*A6*A5*A4*A3*/A2*A1*A0*/NAND /EFFCH= A7*A6*A5*A4*A3*A2*/A1*/A0*/NAND /EFFDH= A7*A6*A5*A4*A3*A2*/A1*A0*/NAND /EFFEH= A7*A6*A5*A4*A3*A2*A1*/A0*/NAND /EFFFH= A7*A6*A5*A4*A3*A2*A1*A0*/NAND,34,8位与16位 I/O端口,由于存在两个I/O存储体,所以任意8位I/O写操作需要一个独立的写选通才能正确操作 图11-14给出了一个系统,它包含两个不同的8位输出设备,分别位于8位I/O地址40H和41H处 端口40H和41H每个可作为独立的8位端口被寻址,或者一起作为一个16位端口被寻址,35,36,37,AUTHOR Barry B. Brey COMPANY BreyCo DATE 7/1/99 CHIP DECODER8 PAL16L8 Pins 1 2 3 4 5 6 7 8 9 10 BHE IOWC A0 A1 A2 A3 A4 A5 A6 GND Pins 11 12 13 14 15 16 17 18 19 20 A7 NC NC NC NC NC NC 40 41 VCC EQUATIONS /40= /A0*/IOWC*/A7*A6*/A5*/A4*/A3*/A2*/A1 /41= /BHE*/IOWC*/A7*A6*/A5*/A4*/A3*/A2*/A1,38,当选择16位宽的I/O设备时,/BLE (A0)与/BHE引脚不起作用,因此两个I/O存储体被一起选中 图11-15给出了一个16位输入设备,其8位I/O地址为64H 和65H PAL16L8译码器没有地址位/BLE (A0)和/BHE引脚,因为这些信号在16位I/O设备上不同,39,40,AUTHOR Barry B. Brey COMPANY BreyCo DATE 7/5/99 CHIP DECODER8 PAL16L8 Pins 1 2 3 4 5 6 7 8 9 10 IORC A1 A2 A3 A4 A5 A6 A7 NC GND Pins 11 12 13 14 15 16 17 18 19 20 NC NC NC NC NC NC NC NC 06X VCC EQUATIONS /6X= /IORC*/A7*A6*A5*/A4*/A3*A2*/A1,41,32位 I/O端口,图11-16给出了80386DX或80486微处理器的一个32位输入端口 此电路译码的I/O端口为8位端口70H-73H 这里只译码8位I/O端口地址,42,可编程外围设备接口,82C55有24个引脚可用于I/O,每组12个引脚可进行编程 以3种不同的操作方式工作 可将任一TTL兼容的I/O设备与微处理器相连接 被用做键盘和并行打印机端口的接口 它还可以为每个输出提供至少2.5mA的吸收(逻辑0)电流,最大为4.0mA,43,第四次实验:基本I/O和地址译码实验 1、8/32位I/O接口设计实验 2、地址译码电路设计实验,44,82C55基本描述,82C55有3个I/O端口(标识为A, B和C)按两组进行编程 A组由端口A(PA7-PA0)和端口C的高半部分(PC7-PC4)组成, B组由端口B(PB7-PB0) 和端口C的低半部分 (PC3-PC0)组成 82C55由/CS引脚选中,进行端口编程、读或写 寄存器选择是通过A1和A0输入引脚实现的, A1和A0选择一个内部寄存器进行编程或I/O操作,45,46,47,图11-18给出了与80386SX相连的一个82C55,其8位I/O端口地址为C0H (端口A), C2H (端口B), C4H (端口C) 和C6H (命令寄存器) 一旦微处理器复位,输入到82C55的RESET信号就使器件初始化 输入到82C55的RESET信号使得所有端口设置成为用方式0操作的简单输入端口,48,49,82C55编程,82C55是通过两个内部命令寄存器进行编程 位7 选择命令字节A或命令字节B B组的引脚(端口B及端口C的低位部分)可编程为输入或输出引脚 B组可工作在方式0或方式1下 方式0是基本输入/输出方式,它允许B组的引脚被编程为简单输入和锁存的输出引脚 方式1操作是B组的选通操作方式,数据通过端口B传送,信号交换信号由端口C提供,50,A组的引脚(端口A及端口C的高位部分)可编程为输入或输出引脚 A组可工作在方式0、方式1和方式2下 。
