1 / 64

第 6 章 微型计算机和外设之间的 数据传输

第 6 章 微型计算机和外设之间的 数据传输. 第 6 章 微型计算机和外设之间的数据传输. 6.1 接口及接口技术 6.2 I/O 端口的编址方式 6.3 微处理器与 I/O 设备数据传送的几种方式. 教学目的和教学要求. 通过本章的学习,使学生掌握接口电路的基本概念、接口电路的主要功能、两种 I/O 端口的编址方式、 32 位微处理器采用 I/O 编址的译码、微处理器与 I/O 设备数据传送的查询式输入输出方式以及中断方式输入输出。 熟悉 32 位微处理器保护模式下的 I/O 空间,直接存储器存取( DMA )方式以及 I/O 处理器控制方式。.

takoda
Télécharger la présentation

第 6 章 微型计算机和外设之间的 数据传输

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第6章 微型计算机和外设之间的数据传输

  2. 第6章 微型计算机和外设之间的数据传输 • 6.1 接口及接口技术 • 6.2 I/O 端口的编址方式 • 6.3 微处理器与I/O设备数据传送的几种方式

  3. 教学目的和教学要求 通过本章的学习,使学生掌握接口电路的基本概念、接口电路的主要功能、两种I/O端口的编址方式、32位微处理器采用I/O编址的译码、微处理器与I/O设备数据传送的查询式输入输出方式以及中断方式输入输出。 熟悉32位微处理器保护模式下的I/O空间,直接存储器存取(DMA)方式以及I/O处理器控制方式。

  4. 本章重点、难点 • 重点: • I/O端口的编址方式 • CPU与I/O设备数据传送的查询式输入输出方式以及中断方式输入输出 • 难点: • 微处理器与I/O设备数据传送的几种方式

  5. 6.1 接口及接口技术 6.1.1 接口电路的概述 所谓接口就是微处理器与外围设备之间的连接电路,它是两者之间进行信息交换时的必要通路,不同的外设有不同的输入/输出接口电路。例如,键盘输入有键盘接口电路,CRT显示器有显示器输出接口电路,打印机也有打印输出接口电路等等。 微型计算机系统的各类接口如图6-1所示:

  6. 图6-1 微型计算机各种接口框图

  7. CPU 接口 电路 I/O 设备 什么是I/O接口(电路)? • I/O接口是位于系统与外设间、用来协助完成数据传送和控制任务的逻辑电路 • PC机系统板的可编程接口芯片、I/O总线槽的电路板(适配器)都是接口电路

  8. 为什么需要I/O接口(电路)? • 微机的外部设备多种多样 • 工作原理、驱动方式、信息格式、以及工作速度方面彼此差别很大 • 它们不能与CPU直接相连 • 必须经过中间电路再与系统相连 • 这部分电路被称为I/O接口电路

  9. 什么是微机接口技术? • 处理微机系统与外设间联系的技术 • 注意其软硬结合的特点 • 根据应用系统的需要,使用和构造相应的接口电路,编制配套的接口程序,支持和连接有关的设备

  10. 6.1.2 接口电路的主要功能 • 设备选择功能 • 数据缓冲功能 • 接收和执行CPU命令的功能 • 寄存外设状态的功能 • 信号的转换功能 • 数据宽度变换的功能 • 可编程功能

  11. 6.1.3 接口技术的发展及分类 微型计算机接口技术的发展,基本上是与微处理器的发展同步进行的。按照接口技术与接口随着微处理器的发展,可将接口电路分为四类: • 固定式接口电路 • 可编程接口电路 • 智能接口与通用外围接口 • 功能接口板

  12. 一、固定式接口电路 早期的微处理器多采用PMOS工艺,集成度低,系统结构与指令系统均比较简单,受半导体工艺的限制,接口芯片的集成度也不高,大都采用TTL与MSI工艺,计算机接口由小规模或中规模集成电路组合而成,要改变其功能与工作方式必须改变硬件连线才能实现,将这种简单接口电路称之为固定式接口电路。

  13. 二、可编程接口电路 16位微处理器(例如8086CPU)的出现,使微型计算机的发展进入了第二代,第二代微处理器采用了NMOS工艺,集成度明显提高,Intel公司推出的与此相适应的接口芯片有中断控制器8259A,并行I/O接口芯片8255A,定时/计数器8253/8254,DMA控制器8237A以及串行通信接口芯片8250等,这些芯片都是采用NMOS工艺的大规模集成(LSI)芯片,而且都是可编程的接口芯片,用户可以通过对接口芯片的在线编程,方便灵活地改变接口的工作方式。

  14. 三、智能接口与通用外围接口 Intel公司于1985年首次推出第三代微处理器80386,1989年又推出X86系列的第四代微处理器80486,这时代的芯片大都是采用了NMOS或CMOS工艺的超大规模集成(VLSI)芯片。与此相应,也开发出了大批集成度更高的接口器件。这一时期接口芯片的显著特点是应用了单片机作通用接口,使接口电路智能化。 智能化接口集单片机技术与接口技术于一体,可直接与外围设备相连,它是一种结构与功能接近于CPU的专用控制器,有独立的指令系统,通过编写完整的I/O管理程序和预处理程序,来实现对许多外设频繁的I/O进行管理,从而减轻了CPU管理I/O设备的负担,大大提高了微机系统的运行速度。

  15. 四 、功能接口板 由于微型计算机使用了各种统一的总线标准,例如:ISA、PCI、SCSI、USB等各种总线,因而从电气特性、机械特性及通信协议等方面都已标准化,开发商已为各种总线开发出了不同功能的专用接口板,可供用户选购,例如:PCI总线的ADC和DAC功能板,PCI的网卡,基于PCI的RS-232串行通行卡等。

  16. 6.2 I/O端口的编址方式   端口是接口电路中能被CPU直接访问的寄存器的地址。由于有的寄存器寄存的二进制信息专门用来被CPU读取,有的寄存器用于专门接收CPU发出来的数据,因此,被CPU访问的寄存器的地址分为输入端口和输出端口,故称为I/O端口。 微机给接口电路中的每个寄存器分配一个端口,即给每个寄存器分配一个地址,当CPU访问这些寄存器时,通过执行I/O指令,由I/O指令中给出的地址就从地址总线上发出去,经接口电路中的地址译码器译码后,便可以选中I/O指令中所指定的寄存器进行R/W访问。

  17. 6.2.1 两种I/O端口的编址方式 一、统一编址 从内存空间划出一部分地址空间留给I/O设备编址,CPU把I/O端口所指的寄存器当作存储单元进行访问,直接用访问内存的指令访问I/O寄存器,这种I/O端口的编址方式被称之为统一编址,或称为存储器映像的I/O编址方式。

  18. 统一编址优缺点     优点:不需要设立专门的I/O指令,用访问内存的指令就可以访问外设,指令类型多,功能齐全,还可以对端口进行算术运算,逻辑运算以及移位操作等。I/O端口空间不受限制。 缺点:是I/O端口占用了内存空间,减少了内存容量。

  19. 二、专门的I/O编址方式 接口电路中所有的I/O端口统一编址,而所有I/O端口建立的地址空间与内存地址空间是两个独立的地址空间,也常称这种方式为独立编址方式。

  20. 专用I/O编址的优缺点 优点:不占用内存空间,使用专门I/O指令访问I/O端口,I/O速度快。  缺点:CPU的引脚上必须具有能区分出访问内存还是访问I/O端口的信号,作为I/O接口电路中端口译码电路以及存储器片选译码电路的输入信号。

  21. 6.2.2 保护模式下的I/O空间  在实地址模式下,80486CPU采用存储器映像I/O编址方式访问I/O端口时,I/O端口占有物理地址从0地址开始的1MB存储空间中的任意地址,在实模式下,采用专门I/O编址方式时,占用0地址开始的64KBI/O地址空间中任意地址 。

  22. 当80486CPU运行在保护模式下,用存储器映像的I/O编址方式寻址,I/O端口可以被映像到物理地址从0地址开始的4GB存储空间中任意地址(0000 0000H~FFFF FFFFH),而采用专门I/O编址方式,I/O寻址的地址空间是从0地址开始的64KB(0000 0000H~0000 FFFFH)I/O地址空间中任意地址。

  23. 32位机在保护模式下,CPU对以上两种I/O寻址方式提供不同的保护机制。 32位机在保护模式下,CPU对以上两种I/O寻址方式提供不同的保护机制。  对于存储器映像I/O的保护由存储器分段与分页保护机制完成,同时还要避免使用系统数据缓冲地址空间被映像来作为I/O操作地址。 对于专用的I/O编址方式,只有当前的特权级(CPL)大于或等于I/O特权级(IOPL)时,即此时的CPL值必须小于或等于IOPL的数值,I/O指令才能被执行,反之,则I/O指令将不被执行,相应还要产生一个普通的保护故障。 

  24. 在保护模式下,32位机任务状态段(TSS)中的I/O允许位,提供了另一种保护机制。I/O允许位中的每一位分别与一个8位的I/O端口相对应。当执行I/O操作时,虽然当前的特权级(CPL)大于或等于I/O特权级(IOPL),但CPU要检查I/O允许位中与该I/O端口对应的那一位,若该位为1,则禁止当前I/O操作的形成,若为0,则允许形成当前的I/O操作。在保护模式下,32位机任务状态段(TSS)中的I/O允许位,提供了另一种保护机制。I/O允许位中的每一位分别与一个8位的I/O端口相对应。当执行I/O操作时,虽然当前的特权级(CPL)大于或等于I/O特权级(IOPL),但CPU要检查I/O允许位中与该I/O端口对应的那一位,若该位为1,则禁止当前I/O操作的形成,若为0,则允许形成当前的I/O操作。 •  在虚拟8086模式下,所有的I/O操作均要受I/O允许位的限制 。

  25. 6.2.3 32位微处理器采用I/O编址的译码电路 一、8位数据端口与低8位数据线的连接

  26. 二、8位数据端口与32位数据线的连接

  27. 例如: MOV DX,3E0H IN AL,DX   ; BE0* 有效,只读端口0 IN AX,DX   ; BE1* 、BE0*有效,             ;读端口1与读端口0 IN EAX,DX   ; BE3* ~ BE0*均有效,             ;读端口3~端口0

  28. 6.3 CPU与I/O设备数据传送的几种方式 6.3.1I/O接口电路的基本结构 一、I/O接口电路的连接

  29. 二、I/O接口电路中的基本寄存器 I/O接口电路中一般具有三种类型的基本寄存器,它们是用于存取数据的寄存器,存取命令信息的寄存器以及存取外设所处状态的寄存器,习惯上把这些寄存器称为端口。  1、数据端口 2、命令端口 3、状态端口

  30. 1.数据端口 • 用于中转数据信息。一种情况是CPU通过数据总线,将待传送给外设的数据先传送到数据端口,然后由I/O设备通过与I/O接口电路相连接的数据线取得该数据。 • 另一种情况是I/O设备首先将输入数据锁存于数据端口,然后,CPU通过数据端口将该数据读入CPU中。数据端口一般既有输出寄存器(或称输出锁存器),又有输入寄存器(或称输入锁存器)。

  31. 2、命令端口   用于传送对I/O设备的命令信息。CPU将命令信息通过数据总线写入I/O接口电路的命令寄存器中,然后传送到I/O设备,以便控制外设的操作。它由输出寄存器组成,命令端口是一个输出端口。

  32. 3、状态端口   用于传送外设所处的状态信息。状态端口是输入端口,CPU通过读取状态端口的数据,以此了解外设当前所处的工作状态,比如,如果是输入设备,则可以通过状态信息了解输入设备是否有了等待输入的新数据,如果是输出设备,CPU通过读入的状态信息,可以了解输出设备是否作好了接受CPU传送新数据的准备。显然,1bit的状态信息可以反应1个外设的两种状态,1个8位的状态端口则可以反应外设的8个状态信息。 

  33.   总之,I/O接口电路中一般有数据端口、命令端口以及状态端口,每个端口地址是不相同的,CPU均通过数据总线来传送三种端口的数据。有些I/O接口中,还有中断控制逻辑电路,以便外设与CPU之间以中断方式进行输入或输出,其优点是可以提高CPU的工作效率。  总之,I/O接口电路中一般有数据端口、命令端口以及状态端口,每个端口地址是不相同的,CPU均通过数据总线来传送三种端口的数据。有些I/O接口中,还有中断控制逻辑电路,以便外设与CPU之间以中断方式进行输入或输出,其优点是可以提高CPU的工作效率。

  34. 6.3.2 CPU与I/O设备传输数据的几种方式 CPU以及I/O设备的种类繁多,CPU与I/O设备所构成的系统不可能完全相同,CPU与I/O设备之间传输数据的方式也不完全相同,接口电路的结构与功能也不同,驱动程序也不相同。    一般可以划分为五种传输数据的方式:无条件I/O传送方式、查询式输入输出方式、中断控制方式、DMA方式以及I/O处理器控制方式。 

  35. 一、无条件输入输出方式 无条件输入输出方式是一种最简单的输入/输出控制方式,其I/O接口电路及软件比较简单,所有的操作均由执行程序来完成。 特点:输入接口电路总是准备好了等待输入给CPU的数据,输出接口电路总是准备好了接受来自CPU的数据。CPU无须查询I/O设备是否准备就绪,直接用汇编语言或高级语言编程,实现输入或输出操作。 此种方式的接口电路是查询式输入输出方式接口电路的基础。

  36. IOR*与IOW*的产生

  37. 无条件输入接口电路及输入时序

  38. 无条件输出接口电路及输出时序

  39. 二、查询式输入输出方式 1.查询式输入方式 当CPU采用查询方式从外设读取数据时,CPU必须首先从状态端口查询外设的数据是否已经准备好,确认已准备好后,才能执行一次数据输入操作 。

  40.  例:假设状态端口与数据端口的地址分别为300H和301H,状态信息从数据总线上的D0位读入CPU中,查询式输入程序段如下: 例:假设状态端口与数据端口的地址分别为300H和301H,状态信息从数据总线上的D0位读入CPU中,查询式输入程序段如下: MOV DX,300H ;状态口地址传送给DX ABC:IN AL,DX ;读入状态信息 TEST AL,01H ;AL∧01H,影响ZF标志 JZ ABC ;如果状态信息为0转ABC MOV DX,301H ;数据端口地址传送给DX IN AL,DX ;读入数据信息

  41. 2.查询式输出方式 当CPU采用查询方式向外设输出数据时,CPU必须首先从状态端口查询外设是否已经作好了接受CPU数据的准备,若没有准备好,则要继续查询,若准备好了,CPU便执行一次数据输出操作。

  42.   例:假设状态端口与数据端口的地址分别为3FOH和3F1H,状态信息从数据线上D7位读入CPU中,查询式输出程序段如下:  例:假设状态端口与数据端口的地址分别为3FOH和3F1H,状态信息从数据线上D7位读入CPU中,查询式输出程序段如下: MOV DX,3F0H ;状态口地址传送给DX CBA:IN AL,DX ;读入状态信息 TEST AL,80H ;AL∧80H,影响ZF标志 JZ CBA ;如果状态信息为0则转CBA MOV DX,3F1H ;数据端口地址传送给DX MOV AL,[SI] ;从内存读取数据给AL OUT DX,AL ;向数据口输出数据

  43. 6.3.2 CPU与I/O设备传输数据的几种方式 例【6-1】 一个查询式A/D转换的基本结构。在数据采集系统中,常采用查询式输入方式来实现A/D转换。运用这种A/D转换方式,也能满足大多监测与控制的实际需要。查询式A/D转换的基本结构图如图6-10:

  44. 查询式A/D转换的基本结构图

  45. 设A/D转换为8位,而且假设、及的地址分别是302H、301H以及300H,如果要顺序采集CH0与CH1两道模拟信号,各采集100次,并将所采集的数据分别存入内存数据段内起始位置为0000H和1000H的内存空间,编写如下程序段:设A/D转换为8位,而且假设、及的地址分别是302H、301H以及300H,如果要顺序采集CH0与CH1两道模拟信号,各采集100次,并将所采集的数据分别存入内存数据段内起始位置为0000H和1000H的内存空间,编写如下程序段: MOV SI,0000H ;存放采集CH0数据的起始地址传送给SI MOV DI,1000H ;存放采集CH1数据的起始地址传送给DI MOV CX ,0064H BGN: MOV DX,300H ;y0* 通道地址给DX MOV AL,00000000B

  46. OUT DX,AL ; 启动信号=0,选CH0 MOV AL,00001000B OUT DX,AL ;启动信号=1,仍选通CH0 MOV AL,00000000B OUT DX,AL ;启动信号=0,仍选通CH0 MOV DX,301H ; 状态口地址给DX ABC: IN AL,DX TEST AL,80H JZ ABC ;如果EOC=0继续查询

  47. MOV DX,302H ; 数据口地址给DX IN AL, DX ; 读入转换后的数字量 MOV [SI],AL ; CH0通道数字量存入内存 INC SI MOV DX,300H ; 选通道地址给DX MOV AL,0000 0001B OUT DX,AL ;启动信号=0,选CH1 MOV AL,0000 1001B OUT DX,AL ;启动信号=1,仍选通CH1 MOV AL,0000 0001B

  48. OUT DX,AL ; 启动信号=0,仍选通CH1 MOV DX,301H ;状态口地址给DX CBA: IN AL, DX TEST AL, 80H ;读入EOC值 JZ CBA ;如果EOC=0,转CBA MOV DX,302H ;数据口地址给DX IN AL, DX ;读入CH1通道转换后数字量 MOV [DI],AL ;CH1通道数字量存入内存 INC DI LOOP BGN

  49. 3.查询式输入输出方式存在的问题

  50. 从图6-11可以看出,当CPU与I/O设备之间采用查询式输入输出方式交换数据时,CPU必须顺序查询每一个外设,当某一个外设不需要服务时,CPU也得按顺序查询一次。外设总是处于被动状态,CPU无法快速响应外设要求及时服务的请求。CPU为了服务外设,其它程序会停止执行,所以,查询式I/O方式不可能是微型计算机外设工作的最佳选择,不适用于实时监控系统

More Related