微型计算机原理与接口技术-第7章_第1页
微型计算机原理与接口技术-第7章_第2页
微型计算机原理与接口技术-第7章_第3页
微型计算机原理与接口技术-第7章_第4页
微型计算机原理与接口技术-第7章_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

第7章

输入/输出系统

7.1输入/输出系统概述

一.概述

1.接口电路的作用

CPU数据→

输出接口电路→

输出设备

CPU←

输入接口电路←

输入设备数据接口:是CPU与外部设备交换信息的中转站

I/O设备与总线之间的连接输出接口电路输出设备输入接口电路输入设备系统总线I/O接口电路2.接口电路的功能

应具有数据暂存功能

应有端口地址译码器

(便于使用IN,OUT指令读写数据)

与外设之间有联络功能

有中断管理能力

有数据转换功能(并→

串,串→

并)3.关于端口的概念

“端口”是接口电路中,能与CPU交换信息(使用IN,OUT)的寄存器。

端口分类:数据口:存放CPU向外设输出或外设输入的数据。控制口:存放控制信息--控制接口电路、外设的工作。状态口:存放状态信息反映外设的状态。注意:接口电路必须具有数据口。注:每个端口,系统都为它编了一个地址,系统只要给出某个地址,通过译码电路,就能找到相应的I/O接口电路中的端口寄存器。问题:系统给出的地址是内存单元地址还是I/O端口寄存器的地址?解决方案:合理安排I/O端口寄存器的编址方式。4.端口的编址方式

存储器映像方式把端口和存储单元等同看待,统一编址。特点:凡访问存储单元的指令都可访问

I/O端口,端口地址占用存储空间。

I/O端口独立编址特点:I/O端口不占用存储空间,

CPU要有专用的I/O指令。5.PC系列机的端口编址

PC系列机采用端口独立编址;从8088~奔腾微处理器,设计时用A15~A0

低16位地址寻址I/O端口;所以,CPU的端口寻址能力为216=65536个;基于微处理器的PC系列,实际使用A9~A0

做I/O地址;所以,PC系列机I/O端口地址最多为

210=1024个。这1024个口地址,系统本身(主板上,以及常规I/O接口)已经占用了一部分。

端口地址(I/O空间)没有分段的概念。

二.最常用的I/O指令1.直接寻址I/O指令设n为8位端口地址INAL,n;口地址为n的端口中取数→

ALOUTn,AL;AL内容→口地址为n的端口寄存器INAX,n;(n)→

AL,(n+1)→

AHOUTn,AX;AL→

n口,AH→

n+1口如:INAL,61HOUT61H,AL2.DX间址的I/O指令

当口地址n>8位二进制数时,用DX间址注意:I/O指令只能在端口和AL,AX,EAX之间交换信息,用DX间址,但不能使用方括号,

即不能写成:INAL,[DX]。INAL,DX;[DX]的端口内容→

ALOUTDX,AL;AL→[DX]的端口寄存器INAX,DX;[DX]→

AL,[DX+1]→

AHOUTDX,AX;AL→

[DX],AH→

[DX+1]

的端口寄存器如:MOVDX,3F8HINAL,DX;从3F8H端口取数→

AL7.2微机系统与外设交换信息的方式微机系统与I/O端口的信息交换有四种方式:

无条件传送查询方式中断方式DMA方式采用何种方式与接口的硬件电路有直接关系1.无条件传送

输入接口:八个三态门地址译码器IOR数据线外设8入出控控=0,出=入控=1,出为高阻入出控入出控控=1,出=入控=0,出为高阻…执行IN指令之前,外设数据已经准备好。

输出接口锁存器地址译码器IOW数据线外设8

QCPD…...D7D0执行OUT指令时:AL内容→

数据线,口地址→

地址线上,IOW=低,把数据锁存到锁存器中。【例】

假设微机系统外扩了6位共阴极数码管电路,要求每隔一秒完成一次“8”字左移,循环往复,直到主机键盘按下任意键时停止。h共阴结构abcdefghcom对应关系(200H选中)D7-D0(201H选中)D0D7D6D5D4D3D2D1abcdefghCSCS7FH6位数码管接口电路8位锁存器(段选)8位锁存器(位选)COMD7-D06位反相驱动器D0D520H00000111111001111111数码管显示原理

使用段选码和位选码进行控制段选码:显示什么字符。6个数码管的同名段共享连接,并且a接D0;b接D1、…;g接D6、h接D7。显示字符“8”的段选码是01111111B=7FH。

位选码:选择被点亮的数码管(仅D5-D0有效)。点亮第6个,位选码为00100000B(20H)点亮第5个,位选码为00010000B(10H)点亮第4个,位选码为00001000B(08H)点亮第3个,位选码为00000100B(04H)点亮第2个,位选码为00000010B(02H)点亮第1个,位选码为00000001B(01H)[设计思路]

主要解决四个问题:(1)字符“8”的显示控制问题,包括段选码和位选码;(2)时间间隔1秒钟如何实现;(3)每隔一秒钟“8”如何左移一位显示;(4)显示过程如何结束

MOVDX,201HMOVAL,7FH;“8”的段选码OUTDX,ALMOVDX,200HMOVAL,位选码;初值=20HOUTDX,ALSHR位码,1:SCAN:MOVAL,1INT16HJZSCAN

结束准备【程序清单】.486DATASEGMENTUSE16ORIGINDB20H;数码管位选码初值TTTDW100;延时时间DATAENDSCODESEGMENTUSE16ASSUMECS:CODE,DS:DATABEG:MOVAX,DATAMOVDS,AX

;DS段赋值

MOVDX,201HMOVAL,7FHOUTDX,AL

;输出“8”字型码

LAST:MOVAL,ORIGINMOVDX,200HOUTDX,AL;输出位选码

CALLDELAY;延时1秒

SHRORIGIN,1JNCNEXTMOVORIGIN,20HNEXT:MOVAH,1INT16H;有键入?

JZLAST

;否

MOVAH,4CHINT21H;延时子程序DELAYPROCMOVAH,2DHMOVCX,0MOVDx,0INT21HREAD:MOVAH,2CHINT21HMOVAL,100MULDHMOVDH,0ADDAX,DXCMPAX,TTTJCREADRETDELAYENDPCODEENDSENDBEG2.查询方式

用查询方式交换信息,必先了解外设的状态。

查询方式输入流程从状态口读取状态信息数据准备好?执行IN指令,取出数据YN从状态口读取状态信息外设空闲否?执行OUT指令,输出一个数据YN

查询方式输出流程查询方式输入接口示意图地址译码器地址总线IOR锁存器(8)三态缓冲器

(8)CPU数据线数据

输入设备输入选通信号RDQ+5V状态标志寄存器IOR地址译码器数据口选中接数据线D7位

查询式输入核心程序设状态口地址=200H

数据口地址=201H

RSCAN:MOVDX,200HINAL,DXTESTAL,80HJZRSCANMOVDX,201HINAL,DX

查询式输出接口示意图“0”为空闲锁存器(8)数据IOW地址译码器地址总线IOR数据总线数据口选中ACK

输出设备QD

+5V状态标志状态口选中接数据线D0位R

查询式数据输出核心程序设状态口地址=200H=数据口地址

TSCAN:MOVDX,200HINAL,DXTESTAL,1JNZTSCANMOVDX,200HMOVAL,某数

OUTDX,AL3.中断控制方式

在有多个外设的系统中,多个外设要求CPU为它服务是随机的若采用查询方式工作,就不能保证系统实时地对外设的请求作出响应为了提高CPU的效率,使系统有实时性能,导致了中断处理技术的产生特点:在外设没有作好数据传送准备时,CPU可执行与传送数据无关的其它指令当外设作好传送准备后,主动向CPU请求中断若CPU响应这一请求,则暂停正在运行的程序,转入中断服务程序,完成数据传送待服务完毕后,自动返回原来运行的程序4.直接存储器存取(DMA)方式为什么要有DMA?什么是DMA?特点:用硬件实现在外设与内存间直接进行数据交换,而不通过CPU

数据传送速度的上限就取决于存储器的工作速度速度快7.3DMA控制器1.DMA(DirectMemoryAccess):直接存储器存取,习惯上称DMA传送。

DMA传送:利用硬件完成高速外设与系统RAM之间的信息交换。2.DMAC:DMA控制器。它是实现DMA传送的核心芯片。3.专用术语:DMA读传送:在DMAC控制下,

读取RAM的内容I/O端口。DMA写传送:I/O端口信息系统RAM某单元。存储单元读/写传送:在DMAC控制下,实现系统

RAMRAM。注意:在PC系列机中禁止RAMRAM传送。4.DMA传送的过程HOLDCPUHLDAHRQDREQ

DMACHLDADACKI/O接口RAM总线保持请求总线响应DMA请求DMA响应ABDBCBHOLDCPUHLDAHRQDREQ

DMACHLDADACKI/O接口RAM总线保持请求总线响应DMA请求DMA响应ABDBCB

系统的三总线分别受到CPU和DMAC的控制。

CPU可以向地址总线、数据总线、控制总线上发送信息,DMAC也可以向地址总线、数据总线、控制总线上发送信息,但同一时间,三总线只能受一个器件的控制,所以,两者之间必须有联络信号:HOLDCPUHLDAHRQDREQ

DMACHLDADACKI/O接口RAM总线保持请求总线响应DMA请求DMA响应ABDBCB高速外设,通过其接口电路向DMAC发出“DMA请求”信号(请求DMAC为其传送数据)。DMAC检测到有DMA请求之后,即向CPU提出总线保持请求(请求CPU脱离总线)。HOLDCPUHLDAHRQDREQ

DMACHLDADACK

I/O接口RAM总线保持请求总线响应DMA请求DMA响应ABDBCBCPU执行完当前指令的当前总线周期之后脱离系统总线,并向DMAC发出“总线保持响应”信号。DMAC收到“总线响应”信号之后,接管系统总线的

控制权,并向I/O接口发出DMA响应信号。HOLDCPUHLDAHRQDREQ

DMACHLDADACKI/O接口RAM总线请求总线响应DMA请求DMA响应ABDBCB在这之后,由DAMC控制系统总线,进行DMA传送。

a.若进行DMA读传送:DMAC把RAM地址地址总线上

DMAC发出存储器读命令和I/O写命令

b.若进行DMA写传送

DMAC把RAM地址地址总线上

DMAC发出I/O读命令和存储器写命令

HOLDCPUHLDAHRQDREQ

DMACHLDADACK

I/O接口RAM总线请求总线响应DMA请求DMA响应ABDBCB预定的字节数全部传送完毕,DMAC脱离系统总线,CPU再次控制系统总线,完成被中断指令的后继总线周期。5.DMA传送与中断方式的比较响应时间:CPU接到“中断请求”后要等到当前指

令执行完毕才响应,而CPU接到DMAC的“总线请

求”后,只要当前指令的当前总线周期执行完毕就

响应!数据传送速度:DMAC传送比中断传送要快!

中断服务程序:

保护现场

(I/O端口)CPUCPURAM

送中断结束命令恢复现场

IRET

由此看出,中断传送是由软件完成的,执行一次中断服务程序,就完成一字节的I/O写传送。而DMA传送是由硬件完成的,每传送一个字节只占用CPU的一个总线周期。中断请求分为内部中断和外部中断。

DMA请求的方式也有两种:

硬件DMA请求和软件DMA请求。一片8237有4个DMA通道。一.8237内部结构8237提供4种DMA传送方式:

单字节读/写传送数据块读/写传送请求传送级连传送

一次DMA传送的最大字节数是64K8237每个通道只能访问64KRAM,PC系列机由于增加了“页面寄存器”,所以一个通道能访问16兆内存。7.3.18237ADMA控制器控制寄存器请求寄存器状态寄存器屏蔽寄存器请求触发器屏蔽触发器方式寄存器基地址寄存器当前地址寄存器基本字节寄存器当前字节寄存器通道0暂存寄存器

通道1

通道2

通道3READYDREQ0DACK0DREQ1DACK1DREQ2DACK2DREQ3DACK3HRQHLDACLKAENADSTBDB7~DB0A3~A0A7~A4IORMEMRIOWMEMWHOLDHLDACLK8237A的内部结构框图二.8237内部寄存器组分二类:一类是4个通道共用的,

一类是每个通道专用的。

1.控制寄存器(共用)

寄存器初始化命令字,命令字格式如下页图:

D7D6D5D4D3D2D1D00:禁止存储器到存储器传送1:允许存储器到存储器传送存储器到存储器传送时:0:源地址不保持1:源地址保持不变0:启动8237工作1:停止8237工作0:正常时序1:压缩时序0:DACK低电平有效1:DACK高电平有效0:DREQ高电平有效1:DREQ低电平有效0:不扩展写信号1:扩展写信号0:固定优先级1:循环优先级8237A控制寄存器格式

注意:系统机加电后,由BIOS完成DMAC的初始化,控制命令字=0,即:各个通道禁止RAMRAM,允许读/写传送,使用正常时序,不扩展写信号,DMA请求高电平有效,DMA应答信号低电平有效,各通道的DMA请求是固定优先级,即:DREQ0最高,REQ3最低。用户没有必要也不应当改变控制寄存器的内容。2.方式寄存器(共用)寄存方式字,选择各通道的传送方式。方式字格式,如下页图:D7D6D5D4D3D2D1D0通道选择:00选择通道001:选择通道110:选择通道211:选择通道3传送类型的选择:00校验传送01:写传送10:读传送11:无意义通道传送方式选择:00:请求传送方式01:单字节传送方式10:数据块传送方式11:级联方式地址增减方式选择

0:地址加11:地址减1自动重装功能选择:0:禁止

1:允许8237A方式寄存器格式8237DMAC规定4种传送方式,即:

单字节读/写传送,数据块读/写传送,

单字节请求读/写传送,级联传送。

各通道还有一个6位的方式寄存器。8237根据共用的方式寄存器D1、D0位,再截取D7~D2位相应通道的方式寄存器中。

假设:方式命令字=01

0

0

10

01

单字节传送地址加1修改无自动重装功能读传送通道

1表示:令CH1进行单字节读传送,自动加1变址,没有自动重装功能。MOVAL,01001001BOUT方式寄存器口地址,AL基地址寄存器(16位)低16位RAM地址自动重装功能选择:方式寄存器

D4=1,允许

D4=0,禁止当前地址寄存器(16位)系统地址总线A15~A0自动±1每个通道有一对。3.基地址寄存器和当前地址寄存器(各通道专用)基地址寄存器(16位)低16位RAM地址自动重装功能选择:方式寄存器

D4=1,允许

D4=0,禁止当前地址寄存器(16位)系统地址总线A15~A0自动±1初始化编程时,低16位RAM地址基地址寄存器,后者自动转存到当前地址寄存器中。基地址寄存器(16位)低16位RAM地址自动重装功能选择:方式寄存器

D4=1,允许

D4=0,禁止当前地址寄存器(16位)系统地址总线A15~A0自动±1进行DMA读/写传送时,当前地址寄存器的内容系统地址线上,选中某一单元。基地址寄存器(16位)低16位RAM地址自动重装功能选择:方式寄存器

D4=1,允许

D4=0,禁止当前地址寄存器(16位)系统地址总线A15~A0自动±1一个字节传送完毕,当前地址寄存器中的内容自动+1

或–1(由方式寄存器D5的选择而定)。

基地址寄存器(16位)低16位RAM地址自动重装功能选择:方式寄存器

D4=1,允许

D4=0,禁止当前地址寄存器(16位)系统地址总线A15~A0自动±1预定字节传送完毕,若方式寄存器D4位=1,则基地址寄存器中的内容自动重装当前地址寄存器。4.基本字节寄存器和当前字节寄存器(各通道专用)“欲传送的字节数–1”基本字节寄存器(16位)自动重装功能选择自动–1当前字节寄存器(16位)EOP

计数值由0–1时,

引脚EOP=每通道有一对。“欲传送的字节数–1”基本字节寄存器(16位)自动重装功能选择自动–1当前字节寄存器(16位)EOP

计数值由0–1时,

引脚EOP=初始化时“欲传送的字节数–1”基本字节寄存器,后者自动写入当前字节寄存器。“欲传送的字节数–1”基本字节寄存器(16位)自动重装功能选择自动–1当前字节寄存器(16位)EOP

计数值由0–1时,

引脚EOP=每传送一个字节,当前字节寄存器自动–1。“欲传送的字节数–1”基本字节寄存器(16位)自动重装功能选择自动–1当前字节寄存器(16位)EOP

计数值由0–1时,

引脚EOP=当前字节寄存器的值由0–1时,引脚EOP=,表明预定的字节数传送完毕。若方式寄存器D4=1,则完成计数值自动重装当前字节寄存器。5.先/后触发器(共用)

地址寄存器、字节寄存器都是16位,而8237A与CPU之间的数据线只有8根,所以地址值(字节值)要分2次写入。先/后触发器规定了写入地址寄存器中的初值,以及写入字节寄存器中的初值的写入顺序。先/后触发器为0,则先写入的是低8位,后写入的是高8

位,初始化时:

使先/后触发器为0

低8位RAM地址基本地址寄存器中8位RAM地址基本地址寄存器“欲传送的字节数-1”其低8位基本字节寄存器“欲传送的字节数-1”其高8位基本字节寄存器6.屏蔽寄存器(共用)

功能:屏蔽某一通道的DMA请求。

8237A有2个屏蔽寄存器—单通道屏蔽寄存器、多通道屏蔽寄存器

无用D2D1D01:使相应通道的屏蔽触发器为10:使相应通道的屏蔽触发器为0D1D0选中00011011CH0CH1CH2CH3

每写入一次,只能预置一个通道的屏蔽触发器。单通道屏蔽寄存器

多通道屏蔽寄存器(共用)D3D2D1D0无用选中CH0Di=1:使相应通道的屏蔽触发器为1Di=0:使相应通道的屏蔽触发器为0

写入一次,可使4个通道的屏蔽寄存器分别置1或置0。

CH1CH2CH37.软件请求寄存器(共用)无用1:使相应通道的请求触发器置10:使相应通道的请求触发器置0

D1D0选中00011011CH0CH1CH2CH3D2D1D0

硬件DMA请求:由引脚DREQ0~3的有效信号,使通道的“请求触发器”置1。软件DMA请求:由于预置“请求寄存器”,而从内部使通道的“请求触发器”置1。实验表明:某通道的屏蔽触发器置1后,该通道的硬件、软件DMA请求都将被屏蔽。8.状态寄存器CH3CH2CH1CH0CH3CH2CH1CH0D7D4D3D0Di=1表示有DMA请求Di=1表示该通道DMA传送结束三、8237A在PC系列机中的应用1.用2片8237A级连提供7个DMA通道

HRQDREQ0DACK0DREQ1DACK1DREQ2DACK2DREQ3DACK3DACK0DACK1DACK2DACK3

HRQDREQ0DACK0DREQ1DACK1DREQ2DACK2DREQ3DACK3HRQ至CPUDACK5DACK6DACK7DREQ0DREQ1DREQ2DREQ3DMAC1DMAC2DREQ5DREQ6DREQ78237A的每个通道地址寄存器是16位,进行DMA传送时,当前地址寄存器的内容系统地址线上。我们知道:16位地址可寻址64K内存

20位地址可寻址1兆内存

24位地址可寻址16兆内存在PC/XT中,内存为1兆,高四位地址由谁给出?

在PC/AT中,内存为16兆,高8位地址由谁给出?为此,在DMA接口电路中,以8237A为核心为每一通道增加了一个“页面寄存器”,用来存放高4位(AT机中为高8位)地址。2.如何扩充8237A的寻址范围(增设页面地址寄存器)地址锁存器当前地址寄存器页面寄存器系统数据线初始化时,写入高8位RAM地址A19~A16地址驱动器中8位RAM地址低8位RAM地址A15~A8A7~A08237A某通道3.页面寄存器口地址CH0CH1CH2CH3DMAC1DMAC2CH0CH1CH2CH3页面寄存器口地址87H83H81H82H/8BH89H8AH7.3.28237A的初始化编程(1)命令字写入控制寄存器。(2)屏蔽字写入屏蔽寄存器,屏蔽要初始化的通道。(3)方式字写入方式寄存器,为通道规定传送类型及工作方式。(4)置0先后触发器,为后继的地址寄存器和字节寄存器规定写入顺序。(5)计算存储单元的20位物理地址。(6)将物理地址的高8位存入页面寄存器,

低16位→基本地址寄存器,字节数-1→基本字节寄存器。(7)解除屏蔽,准备响应DMA请求。4.DMA读/写传送实验举例按图完成电路接线,采用“硬件DMA请求”的方式,将用户程序数据段3行测试电文写入到实验电路中的6116存储器(它们是本实验的I/O端口寄存器),然后再将6116存储器中的电文传送到用户程序的数据段缓冲区,最后把缓冲区中的电文显示在屏幕上,验证DMA读写传送的结果,电文如下:THEQUICKBROWNFOXJUMPSOVERLAZYDOGA8~A1B8~B1GDIR74LS2456116D7~D0A10~A0CSWRRDQ10~Q02*74LS393清0端进位脉冲+5VDMA按键总线B18DRQ1DMA请求电路IORIOWDACK1IOWIORDACK1清0电路2Kx8[程序清单]DISPMACROVARMOVAH,9MOVDX,OFFSETVARINT21HENDMSCANKEYMACROLOCALLLLLLL:MOVAH,1INT16HJZLLLMOVAH,0INT16HENDMDATASEGMENTTEXTDB'THEQUICKBROWNFOXJUMPSOVERLAZYDOG'DB0DH,0AHDB'THEQUICKBROWNFOXJUMPSOVERLAZYDOG'DB0DH,0AHDB'THEQUICKBROWNFOXJUMPSOVERLAZYDOG'DB0DH,0AH,'$'COUNTEQU$-TEXTBUFDBCOUNTDUP(?)MESGDB'TomakeaDMArequest!'DB'thenstrikeanyKey',0DH,0AH,'$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATABEG:MOVAX,DATAMOVDS,AXCALLI8237R;DMACH1读出初始化

DISPMESG;给出操作提示

SCANKEYLAST1:INAL,08H;读DMA状态寄存器

ANDAL,02HJZLAST1;CH1传送未结束,转

CALLI8237W;DMACH1写入初始化

DISPMESG;给出操作提示

SCANKEYLAST2:INAL,08H;读DMA状态寄存器

ANDAL,02HJZLAST2;CH1传送未结束,转

DISPBUF显示DMA读/写传送的最后结果

MOVAH,4CHINT21HI8237RPROC;DMACH1读出初始化

MOVAL,05HOUT0AH,AL;置CH1屏蔽触发器置1MOVAL,01001001B;CH1方式字:单字节读传送

OUT0BH,AL;自动加1变址、不自动预置

温馨提示

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

评论

0/150

提交评论