微机原理讲义(6)IO

上传人:努力****83 文档编号:163167503 上传时间:2022-10-20 格式:DOC 页数:24 大小:9.43MB
收藏 版权申诉 举报 下载
微机原理讲义(6)IO_第1页
第1页 / 共24页
微机原理讲义(6)IO_第2页
第2页 / 共24页
微机原理讲义(6)IO_第3页
第3页 / 共24页
资源描述:

《微机原理讲义(6)IO》由会员分享,可在线阅读,更多相关《微机原理讲义(6)IO(24页珍藏版)》请在装配图网上搜索。

1、Chapter 6 微型计算机和外设的数据传输6.1为什么要用接口电路两类接口电路:微机正常工作所需的辅助电路(时钟、中断接收等)输入输出接口电路,完成CPU与外设间数据接收与发送。常用外设:键盘、打印机、磁盘机,测控设备都通过输入输出接口与主机相连。为什么需要接口?存储器却不需要?外设能与三总线直接相连吗? 外设的输入输出操作与存储器的读写操作不同 存储器功能单一、传送方式单一、品种有限(ROM RAM),速度与CPU匹配 外设的功能多样:输入、输出、测量、控制等等,数字、模拟,串行、并行(CPU是并行),多台设备,速度通常很低可见,接口主要是解决计算机和外设间的信息变换。接口技术:研究CP

2、U和外设间数据传送方式、电路工作原理、使用方法6.2 CPU和输入输出设备之间的信号6.2.1数据信息1. 数字量二进制形式或ASC码表示的数据或字符,通常是8位的。2. 模拟量用于控制的微机系统的输入输出量,各种物理量的电信号等,须经A/D,D/A才能与CPU通信。3. 开关量开关的开合,阀门的开闭等,1位二进制数即可。4. 状态信息反映当前外设的工作状况,方向:外设接口CPUREADY:输入外设表明输入数据准备好否BUSY :输出设备表明自身空闲否5.控制信息控制外设的工作,如起停,方向:CPU接口外设CPU和外设交换数据时,只有IN 、OUT指令,三种信息都可看成数据,但在接口中他们进入

3、不同的寄存器。6.3 接口部件的IO端口每个接口部件都包含一组寄存器I/O端口,相应有端口地址。数据端口、状态端口、控制端口(命令口)图6.2 外设通过接口与系统的连接有些计算机内存和IO统一编址,统一的地址空间,MOV指令访问端口。8086采用两个地址空间,有IN、OUT指令。CPU要往数据端口或状态、命令口交换信息,先送地址,再送控制,最后实现数据交换。一个双向工作的接口芯片通常有4个端口:数据出、入、状态、控制。只需共用两个端口地址号。6.4 CPU和外设之间的数据传送方式各种外设速度相差很大,CPU何时从输入设备读取数据,何时往输出设备写入数据,成为复杂的定时问题。解决方式有三:程序(

4、查询)方式、中断方式、DMA方式。6.4.1程序方式在程序控制下进行信息传送,又分为无条件传送和条件传送方式。1. 无条件传送方式计算机随时确信外设已准备就绪,无需查询外设状态,直接传输。条件是传送不太频繁,只用于简单设备如开关、7段显示管等。 无条件传送方式的工作原理输入直接用三态缓冲器与数据总线相连,输出需要锁存器。2. 条件传送方式条件传送也称查询方式,CPU执行程序不断读取外设状态,如外设准备好(输入设备)或空闲状态(输出设备),则CPU执行输入输出指令,与外设交换信息。条件传送过程3个环节: CPU从接口中读取状态字 CPU测试状态字中的相应位是否满足“就绪”条件,不满足回第一步 如

5、“就绪”,则传送数据。图4.3 查询式输入的接口电路图4.4 查询方式输出的接口电路例子:从终端往缓冲区输入一个字符行,当遇到回车符(0DH),或者字符行超过80个字符,输入便结束,并自动加上一个换行符(0AH)。如果在输入的81个字符中未见到回车符,则在终端上输出信息:“BUFFER OVERFLOW”7位ASC码采用偶校验,输入端口52H 输出端口54H状态端口56H状态端口第1位:输入缓冲器准备好;第0位,输出缓冲器空。DATA_SEG SEGMENTMESSAGEDBBUFFER OVERFLOW,0DH,0AH。 。DATA_SEG ENDSCOM_SEGSEGMENTBUFFERD

6、B82 DUP(?);接收缓冲区COUNT DB?;计数器COM-SEGENDS。 。CODE SEGMENTASSUMEDS:DATA_SEG,ES:COM_SEG,CS:CODESTAT:MOVAX,DATA_SEG;对DS作初始化MOVDS,AXMOVAX,COM-SEG;对ES作初始化MOVES,AXMOVDI,OFFSET BUFFER;计数器值向缓冲区首址MOVCOUNT,DIMOVCX,81;字符行长度CLDNEXT_IN:INAL,56H读入状态TESTAL,02 ;测状态寄存器第1位,输入缓冲器是否就绪JZNEXT_IN;未准备好,则等待再测IN AL,52H;准备好,则输入

7、字符OR AL,0;校验JPENO_ERROR;校验正确,则转NO-ERRORJMPERROR;校验出错误,则转ERRORNO_ERROR: AND AL,7FH;清除校验位STOSB;将字符送缓冲区 CMP AL,0DH;是否为回车符?LOOPNENEXT_IN;不是回车,则再输入JNEOVERFLOW;不是回车且溢出,则转OVERFLOWMOVAL,0AH;加一个换行符STOSB;存入缓冲区SUBDI,COUNT;计算输入字符MOVCOUNT,DI;COUNT中为输入字符数。 。OVERFLOW: MOV SI,OFFSET MESSAGE;SI中为字符串首址MOVCX,17;字符数NEX

8、T_OUT:INAL,56H;读状态寄存器TESTAL,01H;测状态寄存器第0位JZ NEXT_OUT;如没有就绪,则再测LODSB;将字符串取到AL中OUT54H,AL;输出字符LOOPNEXT_OUT;输出下一个字符。 。对上面程序的几点说明: 程序中用ES和DI作为段寄存器和变址寄存器指向输入缓冲区,CX寄存器控制循环次数,一开始CX中设置为最大字符行的长度 DF清0是为了地址增量修改 NEXT-IN后面三条指令为测试接口状态,未绪则等待 奇偶校验是通过把输入字符与0相或 CMP指令判断遇到的字符为0DH时,程序紧接一个换行符0AH,满足程序要求查询方式输入输出会遇到一个问题,多个设备

9、都是查询方式,如何处理?轮流查询,例子:三个设备TREE-IN:MOVFLAG,0;清除标志INPUT:INAL,STAT1;读入第一个设备的状态TESTAL,20H;是否准备就绪JZDEV2;否,则转DEV2CALLPROC1;就绪,则调PROC1CMPFLAG,1 ;如标志被清除,则输入另一个数JNZINPUTDEV2:INAL,STAT2;读入第二个设备的状态TESTAL,20H;是否准备就绪JZDEV3;未准备好,则转DEV3CALLPROC2;如准备就绪,则调PROC2CMPFLAG,1;如标志被清除,则输入另一个数JNZINPUTDEV3:INAL,STAT3;读入第三个设备的状态

10、TESTAL,20H;是否准备就绪JZNO-INPUT;未准备好,则转NO-INPUTCALLPROC3;准备好,则调PROC3NO-INPUT:CMPFLAG,1;如标志被清除,则输入另一个数JNZINPUT。 。上面程序几点说明: 程序中状态寄存器没有赋予具体地址,用STAT1、STAT2、STAT3 PROC1PROC3没有具体写出 3个接口的状态寄存器均用第5位来表示准备就绪 程序中设置了一个标志FLAG,是隔任选单元,使第1设备优先查询方式时,设备可以同等优先,具体程序如下:INTREE:MOV FLAG,0;清除标志INPUT:INAL,STAT1;读入第一个设备的状态TESTAL

11、,20H;测试状态是否准备好JZDEV2;未准备好,则转DEV2CALL PROC1;如准备好,则调PROC1DEV2:INAL,STAT2;读入第二个设备的状态TESTAL,20H;测试是否准备好JZDEV3;如未准备好,则转DEV3CALLPROC2;如准备好,则调PROC2DEV3:INAL,STAT3;读入第三个设备的状态TESTAL,20H;测试是否准备好JZNO-INPUT;如未准备好,则转NOINPUTCALLPROC3;如准备好,则调PROC3NO-INPUT:CMPFLAG,1;如标志仍为0,则继续进行输入JNZINPUT例2.数据采集系统,利用查询方式进行数据采集,8个模拟

12、量,经多路开关每次接通一个模拟量,由D2D1D0选择,D4位控制A/D转换器的启动与停止。转换READY信号2口送CPU,4为控制口;3为数据口。实现程序为:BEGIN: MOV DL,0F8H;设置启动A/D转换信号LEA DI,DSTOR;输入缓冲区首址DICAIJI:MOV AL,DLAND AL,0EFH;使D4等于0OUT 4,AL; 停止A/D转换CALL DELAY; 等待停止A/D操作的完成MOV AL,DLOUT 4,AL;启动AD,且选择模拟量A0POLL:IN,AL,2;输入状态信息SHR AL,1JNC POLL;若未READY,循环等待IN AL,3;否则输入数据ST

13、OSB ;存至内存INC DL ;修改多路开关控制信号,指向下一个模拟量JNC CAIJI;8个模拟量未采完,继续,否则,跳出4.4.1 中断方式1. 中断传送方式的原理查询式比无条件传送可靠,但缺点是: CPU不断读取和检测状态字,如外设未准备好,则等待,浪费大量时间。以每秒打入10个字符记,时间浪费99.99 不具备实时性,系统有多个外设时速度差别较大,轮流查询不合适为节省CPU时间,提高效率,可以用中断方式,优点是: CPU不必花大量时间查询,外设就绪时会主动发中断请求。 在两个中断服务之间,CPU可以并行地其它操作。图5.6 中断方式输入时的接口电路关于NMI:8086有两个中断引腿:

14、NMI、INTRINTR引入的中断可被IF屏蔽,IF=1时,CPU才会通过INTA发两个负脉冲,作为应答信号。NMI引入的是非屏蔽信号,来源于监测电源电压、时钟等基本系统。图5.7为可屏蔽中断响应过程2. 中断优先级问题的解决三种解决办法:软件查询、简单硬件菊花链、专用硬件。软件查询方式借助于简单的硬件电路,以A、B、C三个外设为例,可将三个中断信号相或后,作为INTR信号端,并把它们的状态位相或后作状态字。只要在中断处理子程序的开始部分安排一段查询语句,可区分3个设备的中断优先级。简单硬件方式菊花链法图5.8a菊花链 5.8b优先权排队逻辑电路当有两个设备同时发中断请求,越接近CPU越优先得

15、到响应。专用硬件方式图6-14 编码器和比较器实现优先权排队电路中断控制器8259A最常用。图4.9 典型的可编程中断控制器内部结构框图有了中断控制器,CPU的INTR引腿和INTA引腿连接中断控制器,另一方面,来自输入输出接口的中断请求信号并行送到中断优先级管理电路,当一个外部请求送到中断控制器。 。6.4.2 DMA方式1. DMA方式的提出中断方式下,仍须执行程序来传送,每次中断都要清除指令队列、保护寄存器值、断点地址和PSW进出栈,效率不高。DMA实现数据按块传输,适合速度与存储器匹配的外设,传输率外设决定DMA方式下,外设用专用接口与存储器交换数据,接口向CPU发HOLD不经过CPU

16、,CPU发HOLDA让出总线控制权。2. DMA控制器的功能和DMA传送的原理DMA控制器应具备以下功能: 当外设准备就绪,会向DMA控制器发DMA请求HOLD高,DMA接收后能向CPU发请求 CPU接到总线请求信号后允许则发出DMA响应信号 放弃总线HLDA高 DMA控制器得到总线控制权后,发地址信号,并每发一字节修改地址,因此内部有地址寄存器和字节计数器。 DMA传送期间,DMA控制器能发读写控制信号 DMA控制器内部有字节计数器,减为0时,DMA过程结束。 DMA过程结束时,控制器应向CPU发结束信号总线交权HOLD低,CPU重获控制权 HLDA也变低图6.17 用DMA方式传输单个数据

17、(输出过程)如果从接口往内存DMA方式传输一个数据块,系统如下动作: 接口往DMA控制器发一个DMA请求;HOLD 如允许CPU送来HLDA,交出总线控制权 DMA控制器中地址寄存器的内容送到地址总线上 DMA控制器向接口发确认信号,通知接口收发数据 数据送到地址总线所指的内存单元 地址寄存器的值加1 字节计数器减1 如字节计数器的值不为0,则回到第1步,否则结束。图4.11 DMA控制器的内部最小配置和接口要求DMA控制器内部有一个控制寄存器、状态寄存器、字节计数器。如果从接口往内存DMA方式传送一个数据块,系统如下动作: 接口往DMA控制器发一个DMA请求HOLD。 DMA控制器发总线请求

18、,收到CPU的应答HLDA后,获总线控制权 DMA控制器中地址寄存器的内容送到地址总线上。 DMA控制器向接口发一个确认DMA传输的信号,送数或锁数。 数据送到地址总线所致的内存单元 地址寄存器的值加1 字节计数器的值减1 如字节计数不为0,则回到第1步,否则结束。考虑到接口的双向工作,对接口有下述要求: 控制寄存器中专门有一位,指出数据传输方向 控制寄存器有一位用来启动IO操作,这一位的设置启动外设动作 状态寄存器中必须有一位用来指出设备当前是否处于忙状态对于DMA控制寄存器,也提出了一些要求: 控制寄存器中专门有一位,作为DMA允许位 控制寄存器中专门有一位,确定DMA方向,发读还是写信号

19、 控制寄存器中还要有一位,决定进行一次传输后,是否放弃总线控制权 状态寄存器中必须有一位,表示数据块传输是否结束对DMA控制器和接口的初始化: 往DMA控制器的字节计数器设置初值,决定传输长度。 往DMA控制器的地址寄存器中设置地址初值,确定存储区首地址。 设置DMA控制字,指出数据传输方向,是否进行块传输 启动DMA 对接口部件设置控制字,指出数据传输方向,并启动IO操作。例子:启动数据块输入的程序段INTSTAT:接口的状态寄存器INTCON:接口的控制寄存器DMACON:DMA控制器中的控制寄存器BYTE-REG:字节计数器ADD-REG:地址寄存器各控制、状态位的含义见124页,程序如

20、下:IDLE:INAL,INTSTAT;检测设备是否处于忙状态TESTAL,04 JNZIDLEMOVAX,COUNT;设置计数值OUTBYTE-REG,AXLEAAX,BUFFER;设置地址初值OUTADD-REG,AXMOVAL,DMACON;取原DMA控制字ORAL,49H;设置方向、块传输和允许标志OUTDMACON,AL;置DMA控制字MOVAL,INTCON;设置接口的传输方向及允许标志ORAL,05HOUTINTCON,AL;设置接口的控制字。 。数据块传输结束时,DMA控制器状态寄存器中有一个传输结束标志被置1(可供状态查询),同时DMA控制器会从引腿上送出一个传输结束信号(可作中断请求,但DMA控制器不能提供中断类型号)如DMA控制器上接了多个接口,还要增加一些寄存器的数目。3. DMA控制器的工作特点它一方面是个接口电路,有IO端口地址,可被CPU读写操作。DMA控制器传输时不用指令,通过硬件逻辑电路用固定顺序发地址、读写信号来实现高速数据传输。输入输出过程中的几个共性问题(查询、中断、DMA)1. 系统如何知道接口部件已经准备好数据等待CPU提取或者准备接受CPU送来的数据?2. 当系统中有几个设备处于同一传输方式下,同时发出请求时,如何处理?3. 缓冲区的概念。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!