《微机系统与接口教学资料第六章》由会员分享,可在线阅读,更多相关《微机系统与接口教学资料第六章(56页珍藏版)》请在金锄头文库上搜索。
1、6.1概述概述6.2CPU与外设数据传送的方式与外设数据传送的方式6.3端口地址分配和译码端口地址分配和译码6.4DMA控制器控制器8237第六章第六章 输入输入/输出接口输出接口6.1 概述概述一、接口电路的分类和功能一、接口电路的分类和功能外设必须通过接口电路与外设必须通过接口电路与CPU相连接相连接数数据据总总线线控控制制总总线线地地址址总总线线接口电路接口电路外外部部设设备备数据线数据线控制线控制线状态线状态线一、接口电路的分类和功能一、接口电路的分类和功能接口电路的功能:接口电路的功能:1)缓冲锁存数据)缓冲锁存数据2)地址译码)地址译码3)传递命令)传递命令4)码制转换)码制转换5
2、)电平转换)电平转换一、接口电路的分类和功能一、接口电路的分类和功能接口电路按通用性分为两类:通用接口和专用接口接口电路按通用性分为两类:通用接口和专用接口通用接口:可供多种外部设备使用的标准接口,目的是使微机正常通用接口:可供多种外部设备使用的标准接口,目的是使微机正常 工作工作通用接口通常制造成集成电路芯片,称为接口芯片。通用接口通常制造成集成电路芯片,称为接口芯片。最初的最初的IBM-PC使用了使用了6块接口芯片:块接口芯片:8284、8288、8255、8259、8237、8253后来的微机将这些芯片集成为大规模集成电路芯片,称为芯片后来的微机将这些芯片集成为大规模集成电路芯片,称为芯
3、片组。组。如如82430TX芯片组,由两片芯片组成:芯片组,由两片芯片组成:北桥:北桥:82439TX南桥:南桥:82371AB一、接口电路的分类和功能一、接口电路的分类和功能二、接口电路的基本结构二、接口电路的基本结构接口电路通常包含一组能够与处理器交换信息的寄存器,称为接口电路通常包含一组能够与处理器交换信息的寄存器,称为I/O端口寄存器,简称为端口寄存器,简称为I/O端口端口1)数据端口)数据端口存放数据信息存放数据信息2)状态端口)状态端口存放状态信息,(忙、空闲、准备好等机器状态)存放状态信息,(忙、空闲、准备好等机器状态) 即反映外设当前工作状态的信息即反映外设当前工作状态的信息3
4、)控制端口)控制端口存放控制信息(启动、停止等动作)存放控制信息(启动、停止等动作)状态信息与控制信息可以广义地看作数据信息,因此可以通过数状态信息与控制信息可以广义地看作数据信息,因此可以通过数据总线传送据总线传送数据信息分数据量、模拟量和开关量三类。数据信息分数据量、模拟量和开关量三类。接口电路组成接口电路组成三、三、I/O端口的编址方式端口的编址方式I/O端口与存储单元统一编址(端口与存储单元统一编址(MOTOROLA公司公司68系列)系列)I/O端口独立编址(端口独立编址(INTEL 86 系列)系列)PC系列系列机采用机采用I/O端口独立编址方式端口独立编址方式Port 65535P
5、ort 255Port 3Port 2Port 1Port 0Port 0(16位位)Port 1(16位位)Port 0 (32位位)三、三、I/O端口的编址方式端口的编址方式I/O端口与存储单元统一编址(端口与存储单元统一编址(MOTOROLA公司公司68系列)系列)三、三、I/O端口的编址方式端口的编址方式I/O端口独立编址(端口独立编址(INTEL 86 系列)系列)1、地址相互独立、地址相互独立2、控制信号不同、控制信号不同三、三、I/O端口的编址方式端口的编址方式端口地址是一种重要资源端口地址是一种重要资源三、三、I/O端口的编址方式端口的编址方式端口的寻址端口的寻址把端口地址放在
6、把端口地址放在DX寄存器中,对该端口进行读写寄存器中,对该端口进行读写IN AL, DX (8位位) 或或 IN AX,DX (16位位)OUT DX, AL(8位位) 或或 OUT DX,AX (16位位)可寻址的端口号为可寻址的端口号为065535(FFFFH)端口地址小于或等于端口地址小于或等于FFH(255),可以用立即数表示端口地址可以用立即数表示端口地址IN AL, 42H (8位位) 或或 IN AX,42H (16位位)OUT 43H, AL (8位位) 或或 OUT 43,AX (16位位)6.2 CPU与外设数据传送的方式与外设数据传送的方式3.DMA传送方式传送方式无条件
7、传送无条件传送程序查询传送(条件传送)程序查询传送(条件传送)一、程序传送方式一、程序传送方式(一)无条件传送(一)无条件传送CPU与外设间的数据交换在程序控制下进行与外设间的数据交换在程序控制下进行不查询外设状态,认为外设已经准备就绪,直接与外设传送数据不查询外设状态,认为外设已经准备就绪,直接与外设传送数据外设准备就绪外设准备就绪:对于输入设备,已经把数据放入接口电路的数:对于输入设备,已经把数据放入接口电路的数据输入寄存器,据输入寄存器,CPU可以读取;对于输出设备,已经准备好接可以读取;对于输出设备,已经准备好接收数据(接口电路的数据输出寄存器已空),收数据(接口电路的数据输出寄存器已
8、空),CPU可以向它输可以向它输出数据出数据由于不查询外设状态,接口电路不需要状态寄存器由于不查询外设状态,接口电路不需要状态寄存器输入方式输入方式输出方式输出方式IN AL, 0A0HOUT 0A1H, ALA1A0CE例:采用同步传送系统例:采用同步传送系统 查询式输入接口电路查询式输入接口电路数据端口数据端口状态端口状态端口 D7 D6 D0 D78位位1位位状态口状态口数据口数据口I/O控制线控制线控制线控制线Poll: In al, S_port Test al, 80h Jz poll In al, D _port(二)条件传送(二)条件传送 查询式输出接口电路查询式输出接口电路P
9、oll: In al, S_port Test al, 80h Jnz poll mov al, store Out D_port, al状态口状态口数据口数据口I/O控制线控制线控制线控制线例:采用查询方式传送的数据采集系统例:采用查询方式传送的数据采集系统例:采用查询方式传送的数据采集系统例:采用查询方式传送的数据采集系统Start: mov dl, 0f8h ;1111,1000 启动启动A/D转换转换 lea di, detor ;输入数据存放地址;输入数据存放地址 Again: mov al, dl ; and al, 0efh ; 1110,1111,AL=1110,1000 ou
10、t 4, al ;停止;停止A/D转换,并选择模拟量转换,并选择模拟量A0 call delay ; mov al, dl ; AL=1111,1000 out 4, al ;启动;启动A/D转换转换poll: in al, 2 ;输入状态信息;输入状态信息 shr al, 1 ; jnc poll ;若未;若未Ready,等待等待 in al, 3 ;否则,输入数据;否则,输入数据 stosb ;将数据存入内存;将数据存入内存 inc dl ;取下一个模拟量;取下一个模拟量 jne again ;状态端口状态端口数据口数据口状态口状态口控制口控制口A7 A0 D0程序查询传送的小结程序查询传
11、送的小结在执行输入输出前,要先查询接口中状态寄存器的状态。在执行输入输出前,要先查询接口中状态寄存器的状态。输入时,状态寄存器的状态指示要输入的数据是否已经准备就绪输入时,状态寄存器的状态指示要输入的数据是否已经准备就绪输出时,状态寄存器的状态指示输出设备是否空闲输出时,状态寄存器的状态指示输出设备是否空闲图图1.6 程序查询方式流程图程序查询方式流程图二、中断传送方式二、中断传送方式使用查询方式,使用查询方式,CPU必须检测接口电路的状态寄存器,如果设备必须检测接口电路的状态寄存器,如果设备未准备好,未准备好,CPU就要不断地查询,降低了就要不断地查询,降低了CPU的运行效率的运行效率中断方
12、式:当外设作好传送准备后,主动向中断方式:当外设作好传送准备后,主动向CPU请求中断,请求中断,CPU响应中断后在中断处理程序中与外设交换数据。若外设未准备好,响应中断后在中断处理程序中与外设交换数据。若外设未准备好,CPU可以执行其他程序,提高了可以执行其他程序,提高了CPU的利用率的利用率每条指令完成后,每条指令完成后,CPU均可响应中断,因此当设备准备好时,可均可响应中断,因此当设备准备好时,可及时与及时与CPU交换数据,提高了实时性交换数据,提高了实时性三、三、DMA传送方式传送方式对于高速外设(如磁盘、高速对于高速外设(如磁盘、高速A/D),中断方式不能满足数据),中断方式不能满足数
13、据传输速度的要求。传输速度的要求。DMA=Direct Memory Access直接存储器访问直接存储器访问DMA方式是一种由专门的硬件电路执行方式是一种由专门的硬件电路执行I/O的数据传送方式,的数据传送方式,它可以让外设接口直接与内存进行高速的数据传送,而不必经它可以让外设接口直接与内存进行高速的数据传送,而不必经过过CPU。这种专门的硬件电路称为。这种专门的硬件电路称为DMA控制器,简称控制器,简称DMAC 几种传送方式的比较:几种传送方式的比较:几种传送方式的比较:几种传送方式的比较:1. 1.无条件传送无条件传送无条件传送无条件传送:只能用于外部设备与只能用于外部设备与CPU 动作
14、同步时,否则出错。这种方式已动作同步时,否则出错。这种方式已 较少使用。较少使用。2 2. .查询传送查询传送查询传送查询传送: 接口简单,接口简单, 但在传送过程中,若外设数据没有准备好,则但在传送过程中,若外设数据没有准备好,则CPU一直在查询、等待,而一直在查询、等待,而 不能做其他事情。不能做其他事情。CPU的效率低下。的效率低下。3.3.中断传送中断传送中断传送中断传送: 只有当外设数据准备好时只有当外设数据准备好时(向向CPU发出请求),发出请求),CPU才进行数据传送(在才进行数据传送(在 中断服务程序中),其余时间中断服务程序中),其余时间CPU可以做其他事情。可以做其他事情。
15、CPU效率大大提高。效率大大提高。 但是,每传送一次数据,但是,每传送一次数据,CPU都要执行一次中断服务程序,在中断服务程都要执行一次中断服务程序,在中断服务程 序中,除执行序中,除执行 ININ 和和 OUTOUT 指令外,还要进行下列工作:指令外,还要进行下列工作: 保护断点、保护标志寄存器、保护某些通用寄存保护断点、保护标志寄存器、保护某些通用寄存 、恢复等一、恢复等一 些工作,些工作, 95%的时间是额外开销,从而传送效率并不高。的时间是额外开销,从而传送效率并不高。 4.DMA4.DMA传送传送传送传送:在在DMAC的控制下,外设直接和存储器(也可外设与外设,存储的控制下,外设直接
16、和存储器(也可外设与外设,存储 器与存储器之间)进行数据传送,而不必经过器与存储器之间)进行数据传送,而不必经过CPU ,传送速度基,传送速度基 本取决于外设与存储器的速度,从而传送效率大大提高。本取决于外设与存储器的速度,从而传送效率大大提高。6.3 I/O地址分配和地址译码地址分配和地址译码一、一、I/O地址分配表地址分配表6.3 I/O地址分配和地址译码地址分配和地址译码二、二、I/O地址译码原理地址译码原理关键是如何由地址信号产生接口芯片的片选信号。关键是如何由地址信号产生接口芯片的片选信号。6.3 微机系统的微机系统的I/O通道与总线通道与总线1. I/O通道的作用通道的作用 (1)
17、支持双向数据传输。)支持双向数据传输。 (2)支持)支持MB级物理地址空间。级物理地址空间。(3)支持接口读写控制。)支持接口读写控制。 (4)支持多级向量中断。)支持多级向量中断。(5)支持)支持DMA传输通道。传输通道。(6)支持多处理器共享总线。)支持多处理器共享总线。 2 常见的几种常见的几种I/O通道通道 1ISA总线(总线(Industrial Standard Architecture)2EISA总线(总线(Extended Industrial Standard Architecture)3 局部总线局部总线表表1.2为常见微机系统总线主要参数。为常见微机系统总线主要参数。(1
18、)VL总线标准总线标准(2)PCI总线总线(3)AGP总线总线3. 常见微机系统总线主要参数表6.4DMA控制器控制器8237一、一、DMA概述概述 DMA DMA方式就是直接存储器存取工作方式。在方式就是直接存储器存取工作方式。在DMADMA方式方式下,外设通过下,外设通过DMADMA控制器向控制器向CPUCPU提出接管总线控制权的总提出接管总线控制权的总线要求,线要求,CPUCPU在当前的总线周期结束后,响应在当前的总线周期结束后,响应DMADMA请求,请求,并把总线控制权交给并把总线控制权交给DMADMA控制器。在控制器。在DMADMA控制器的管理下,控制器的管理下,外设和寄存器之间就可
19、以直接进行数据交换。外设和寄存器之间就可以直接进行数据交换。返回本节返回本节二、二、DMA的功能的功能(1 1)外设通过)外设通过DMADMA控制器向控制器向CPUCPU提出提出DMADMA申请。申请。(2 2)DMADMA控控制制器器接接受受外外设设的的DMADMA请请求求,取取得得总总线线控控制制权。权。(3 3)总总线线载载决决逻逻辑辑对对总总线线申申请请进进行行载载决决,把把总总线线控控制权交给制权交给DMADMA控制器。控制器。(4 4)DMADMA控控制制器器通通知知外外设设DMADMA应应答答,开开始始进进入入DMADMA传传输。输。(5 5)DMADMA控控制制器器按按传传输输
20、数数据据的的长长度度直直接接控控制制外外设设与与RAMRAM进行数据交换。进行数据交换。(6 6)DMADMA操操作作结结束束,DMADMA控控制制器器向向外外设设输输出出计计数数终终止止信信号号,通通过过接接口口提提出出中中断断申申请请,并并把把总总线线控控制制权权交交给给CPUCPU,完成一次,完成一次DMADMA数据传控。数据传控。返回本节返回本节三、三、8237A的内部结构的内部结构其内部结构如图其内部结构如图4.1所示。所示。1地址寄存器地址寄存器地址寄存器、基地址寄存器、当前地址寄存器地址寄存器、基地址寄存器、当前地址寄存器 2字节数寄存器字节数寄存器字节数寄存器、基本字节寄存器、
21、当前字节计数器字节数寄存器、基本字节寄存器、当前字节计数器图图 4.1 8237A 的内部结构图的内部结构图返回本节返回本节四、四、8237A外部引脚及其功能特性外部引脚及其功能特性8237A的的外外部部引引脚脚共共有有40个个,如如图图4.2所所示示。各各引引脚脚功功能能特性如下:特性如下:CLK:时时钟钟频频率率,为为输输入入信信号号。它它控控制制DMA数据传送的速率及数据传送的速率及8237A内部操作的定时。内部操作的定时。CS:片选信号,为输入信号。低电平有效。:片选信号,为输入信号。低电平有效。RESET:复位信号,为输入信号,高电平有效。:复位信号,为输入信号,高电平有效。READ
22、Y:准准备备就就绪绪信信号号,为为输输入入信信号号,高高电电平有效。平有效。ADSTB:地地址址选选通通信信号号,为为输输出出信信号号,高高电电平平有效。有效。AEN:地地址址允允许许信信号号,为为输输出出信信号号,高高电电平平有有效。效。MEMR:寄寄存存器器读读信信号号,为为输输出出信信号号,低低电电平平有有效效。当当此此信信号号有有效效时时,被被选选中中的的寄寄存存器器单单元元的内容被读到数据总线上。的内容被读到数据总线上。MEMW:寄寄存存器器写写信信号号,为为输输出出信信号号,低低电电平平有有效效。当当此此信信号号为为低低电电平平时时,数数据据总总线线上上的的内内容容被被写入被选中的
23、寄存器单元。写入被选中的寄存器单元。IOR:I/O设备读信号,为双向信号,低电平有效。设备读信号,为双向信号,低电平有效。 IOW:I/O设备写信号,双向信号,低电平有效。设备写信号,双向信号,低电平有效。 EOP:DMA传输结束信号,双向信号,低电平有传输结束信号,双向信号,低电平有效。效。8 DREQ:DMA请求信号,属输入信号,请求信号,属输入信号,高电平有效。高电平有效。DACK:DMA响应信号,属于输出信号,响应信号,属于输出信号,高电平有效。高电平有效。 HRQ:总线请求信号,属于输出信号,高:总线请求信号,属于输出信号,高电平有效。电平有效。HLDA:总线响应信号,属于输入信号,
24、高电:总线响应信号,属于输入信号,高电平有效。平有效。 A7A4:高:高4位地址线,双向信号在进行位地址线,双向信号在进行DMA传输时提供高传输时提供高4位地址。位地址。A3A0:低:低4位地址线,双向信号。位地址线,双向信号。 DB7DB0:8位双向数据线。位双向数据线。 五、五、8237A内部寄存器及其作用内部寄存器及其作用1工作方式工作方式(1)单字节传输方式)单字节传输方式(2)块传输方式)块传输方式(3)请求传输方式)请求传输方式(4)级连传输方式)级连传输方式8237A8237A各寄存器的端口地址各寄存器的端口地址表表4.6 8237A操作端口地址与命令一览表操作端口地址与命令一览
25、表返回本节返回本节六、六、 8237A的编程及其应用的编程及其应用1DMA的系统结构及主要性能的系统结构及主要性能图图 4.3 DMA系统逻辑结构示意图系统逻辑结构示意图2 28237A8237A编程编程 (1)初始化通道方式寄存器。)初始化通道方式寄存器。(2)预预置置该该通通道道的的基基地地址址和和当当前前地地址址寄寄存存器器(低(低16位)与页面寄存器(高位)与页面寄存器(高4位或高位或高8位)。位)。(3)求求传传输输的的字字节节数数,将将其其值值减减1并并预预置置该该通通道的基地址及当前字节(或字节计数器)。道的基地址及当前字节(或字节计数器)。(4)判判断断传传输输的的数数据据量量
26、是是否否已已经经超超出出边边界界,若出界则返回错误代码。若出界则返回错误代码。(5)开放通道,并允许)开放通道,并允许DREQ请求。请求。返回本节返回本节七、七、 编程实例编程实例(1)初始化通道方式寄存器。)初始化通道方式寄存器。(2)预预置置该该通通道道的的基基地地址址和和当当前前地地址址寄寄存存器与页面寄存器。器与页面寄存器。(3)求求传传输输的的字字节节数数,将将其其值值减减1并并预预置置该该通道的基地址及当前字节。通道的基地址及当前字节。(4)判判断断传传输输的的数数据据量量是是否否已已经经超超出出边边界界,若出界则返回错误代码。若出界则返回错误代码。(5)开放通道,并允许)开放通道
27、,并允许DREQ请求。请求。;初始化通道;初始化通道2;入口参数:;入口参数:AL=DMA方式字节方式字节;读盘(;读盘(DMA写)写)=046H;写盘(;写盘(DMA读)读)=04AH;DH=传输的扇区数传输的扇区数;ES:BX=RAM缓冲区首地址缓冲区首地址;定义要使用的符号;定义要使用的符号DMA EQU 0 ;第;第0片片DMA通道端口通道端口下下面面为为PC/AT机机的的软软盘盘驱驱动动器器与与存存储储器器RAM之间进行数据交换的实例。之间进行数据交换的实例。DMA1 EQU 0C0H ;第;第1片片DMA通道端口通道端口DAM08 EUQ 08 ;第;第0片片DMA命令寄存器地址命
28、令寄存器地址DMA18 EUQ 0D0H ;第;第1片片DMA命令寄存器地址命令寄存器地址DSET PROC NEAR ;DMA 初始化过程初始化过程 PUSH CX ;保存;保存CX寄存器寄存器 CLI ;关中断;关中断OUT DMA+12 ,AL ;清除先;清除先/后触发器后触发器JMP SHORT $+2 ;满足;满足DMA的的I/O定时要求定时要求 ;初始化方式寄存;初始化方式寄存OUT DMA+11,AL ;写方式寄存;写方式寄存MOV AX,ES ;取寄存器;取寄存器RAM段地址段地址MOV CL,4 ;ROL AX,CL ;循环左移;循环左移4MOV CH,AL ;高;高4位保存
29、在位保存在CHAND AL,0F0H ;取低落;取低落6位地址位地址ADD AX,BXJNC J1INC CH ;有进位加到高;有进位加到高4位地址位地址 ;初始化地址寄存器和页面寄存器;初始化地址寄存器和页面寄存器J1:PUSH AX ;保存;保存16位地址位地址OUT DMA+4,AL ;预置通道;预置通道2地址寄存地址寄存JMP SHORT $+2MOV AL ,AHOUT DMA+4,AL ;先低字节,后高字节;先低字节,后高字节MOV AL,CH ;取最高;取最高4位地址位地址JMP SHORT $+2AND AL,0FHOUT 08LH, AL ;预预置置通通道道2对对应应的的页面
30、寄存器页面寄存器;初始化字节计数器;初始化字节计数器MOV AH,DH ;取传输扇区;取传输扇区SUB AL,AL ;乘以;乘以256(AL=0)SHR AX,1 ;右移,即变成乘以;右移,即变成乘以128PUSH AX ;保存;保存“扇区与扇区与128的乘积的乘积”MOV BX,6 ;取软盘基数:每扇区字节数;取软盘基数:每扇区字节数CALL GET PARM ;调用取基数子程序;调用取基数子程序MOV CL,AH ;返返回回到到AH基基数数N,保保存存在在CLPOP AX ;取出乘积值;取出乘积值SHL AX,CL ;右移返回值次数;右移返回值次数DEC AX ;传输字节值减;传输字节值减
31、1PUSH AX ;保存字节数;保存字节数OUT DMA+5,AL ;预防、置字节数计数器;预防、置字节数计数器JMP SHORT $+2 ;MOV AL,AHOUT DMA+5,AL ;先低字节,后高字节;先低字节,后高字节 ;判断;判断DMA是否出界是否出界STI ;开中断;开中断POP CX ;传输字节数至;传输字节数至CX寄存器寄存器POP AX ;位移地址至;位移地址至AXADD AX,CX ;相加,若溢出段界则;相加,若溢出段界则CF=1POP CX ;恢复入口寄存器;恢复入口寄存器 ;开通道;开通道2MOV AX,2 ;清除通道;清除通道2屏蔽位屏蔽位OUT DMA+10,AL ;写屏蔽寄存器;写屏蔽寄存器RET ;返回;返回DSET ENDP ;DMA结束结束返回本节返回本节八、八、8237A DMA可编程控制与微机系统的可编程控制与微机系统的接口电路接口电路1用于将数据从存储器传送到用于将数据从存储器传送到I/O接口的接口的DMA控制电路控制电路2用于将数据从用于将数据从I/O接口传送到内存的接口电路接口传送到内存的接口电路图图4.4 使用使用DMA通道实现内存到通道实现内存到I/O接口的电路接口的电路图图4.5 使用使用DMA通道实现通道实现I/O到内存接口的电路到内存接口的电路返回本节返回本节