版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Chapter 6 微型计算机和外设的数据传输6.1为什么要用接口电路两类接口电路:微机正常工作所需的辅助电路(时钟、中断接收等)输入输出接口电路,完成CPU与外设间数据接收与发送。常用外设:键盘、打印机、磁盘机,测控设备都通过输入输出接口与主机相连。 为什么需要接口?存储器却不需要?外设能与三总线直接相连吗? 外设的输入输出操作与存储器的读写操作不同 存储器功能单一、传送方式单一、品种有限(ROM RAM),速度与CPU匹配 外设的功能多样:输入、输出、测量、控制等等,数字、模拟,串行、并行(CPU是并行),多台设备,速度通常很低可见,接口主要是解决计算机和外设间的信息变换。接口技术:研究C
2、PU和外设间数据传送方式、电路工作原理、使用方法 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 查询式输入的接口电路查询式输入程序段POLL: IN AL, STATUS_PORT; 读状态端口 TEST AL, 80H; 检查Ready是否为1 JE POLL ; 未Ready,再查询 IN AL, DATA_PORT; Ready了,读数据图4.4 查询方式输出的接口电路 查询式输出程序段POLL: IN AL, STATUS_PORT; 读状态端口 TEST AL, 80H; 检查BUSY是否为1 JNE POLL ; 若BUSY,再查询 MOV AL, STORE; 否则,从缓冲区取数 OUT DATA_PORT,AL; 不BUSY了,输出
6、例子:从终端往缓冲区输入一个字符行,当遇到回车符(0DH),或者字符行超过80个字符,输入便结束,并自动加上一个换行符(0AH)。如果在输入的81个字符中未见到回车符,则在终端上输出信息:“BUFFER OVERFLOW” 7位ASC码采用偶校验输入端口52H 输出端口54H 状态端口56H状态端口第1位:输入缓冲器准备好;第0位,输出缓冲器空。 DATA_SEG SEGMENTMESSAGEDBBUFFER OVERFLOW,0DH,0AH。 。DATA_SEG ENDSCOM_SEGSEGMENTBUFFERDB82 DUP(?);接收缓冲区COUNT DB?;计数器COM-SEGENDS
7、 CODE SEGMENTASSUMEDS:DATA_SEG,ES:COM_SEG,CS:CODESTAT:MOVAX,DATA_SEG;对DS作初始化MOVDS,AXMOVAX,COM-SEG;对ES作初始化MOVES,AXMOVDI,OFFSET BUFFER;计数器值向缓冲区首址MOVCOUNT,DI MOVCX,81;字符行长度CLD NEXT_IN:INAL,56H读入状态TESTAL,02 ;测状态寄存器第1位,输入缓冲器是否就绪JZNEXT_IN;未准备好,则等待再测IN AL,52H;准备好,则输入字符OR AL,0;校验JPENO_ERROR;校验正确,则转NO-ERROR
8、JMPERROR;校验出错误,则转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;字符数NEXT_OUT:INAL,56H;读状态寄存器TESTAL,01H;测状态寄存器第
9、0位 JZ NEXT_OUT;如没有就绪,则再测LODSB;将字符串取到AL中OUT54H,AL;输出字符LOOPNEXT_OUT;输出下一个字符。 。对上面程序的几点说明: 程序中用ES和DI作为段寄存器和变址寄存器指向输入缓冲区,CX寄存器控制循环次数,一开始CX中设置为最大字符行的长度 DF清0是为了地址增量修改 NEXT-IN后面三条指令为测试接口状态,未绪则等待 奇偶校验是通过把输入字符与0相或CMP指令判断遇到的字符为0DH时,程序紧接一个换行符0AH,满足程序要求 查询方式输入输出会遇到一个问题,多个设备都是查询方式,如何处理?轮流查询,例子:三个设备TREE-IN:MOVFLA
10、G,0;清除标志INPUT:INAL,STAT1;读入第一个设备的状态TESTAL,20H;是否准备就绪JZDEV2;否,则转DEV2CALLPROC1;就绪,则调PROC1 CMPFLAG,1 ;如标志被清除,则输入另一个数JNZINPUTDEV2:INAL,STAT2;读入第二个设备的状态TESTAL,20H;是否准备就绪JZDEV3;未准备好,则转DEV3CALLPROC2;如准备就绪,则调PROC2CMPFLAG,1;如标志被清除,则输入另一个数JNZINPUT DEV3:INAL,STAT3;读入第三个设备的状态TESTAL,20H;是否准备就绪JZNO-INPUT;未准备好,则转N
11、O-INPUTCALLPROC3;准备好,则调PROC3NO-INPUT:CMPFLAG,1;如标志被清除,则输入另一个数JNZINPUT 上面程序几点说明: 程序中状态寄存器没有赋予具体地址,用STAT1、STAT2、STAT3 PROC1PROC3没有具体写出 3个接口的状态寄存器均用第5位来表示准备就绪程序中设置了一个标志FLAG,是个任选单元,使第1设备优先 查询方式时,设备可以同等优先,具体程序如下: INTREE:MOV FLAG,0;清除标志INPUT:INAL,STAT1;读入第一个设备的状态TESTAL,20H;测试状态是否准备好JZDEV2;未准备好,则转DEV2CALL
12、PROC1;如准备好,则调PROC1DEV2:INAL,STAT2;读入第二个设备的状态TESTAL,20H;测试是否准备好 JZDEV3;如未准备好,则转DEV3CALLPROC2;如准备好,则调PROC2 DEV3:INAL,STAT3;读入第三个设备的状态TESTAL,20H;测试是否准备好JZNO-INPUT ;如未准备好,则转NOINPUTCALLPROC3;如准备好,则调PROC3NO-INPUT:CMPFLAG,1;如标志仍为0,则继续进行输入JNZINPUT 例2.数据采集系统,利用查询方式进行数据采集,8个模拟量,经多路开关每次接通一个模拟量,由D2D1D0选择,D4位控制A
13、/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;否则输入数据STOSB ;存至内存 INC DL ;修改多路开关控制信
14、号,指向下一个模拟量JNC CAIJI;8个模拟量未采完,继续,否则,跳出 4.4.1 中断方式1. 中断传送方式的原理查询式比无条件传送可靠,但缺点是: CPU不断读取和检测状态字,如外设未准备好,则等待,浪费大量时间。以每秒打入10个字符记,时间浪费99.99不具备实时性,系统有多个外设时速度差别较大,轮流查询不合适。为节省CPU时间,提高效率,可以用中断方式,优点是: CPU不必花大量时间查询,外设就绪时会主动发中断请求。在两个中断服务之间,CPU可以并行地其它操作 图5.6 中断方式输入时的接口电路 关于NMI:8086有两个中断引腿:NMI、INTRINTR引入的中断可被IF屏蔽,I
15、F=1时,CPU才会通过INTA发两个负脉冲,作为应答信号。NMI引入的是非屏蔽信号,来源于监测电源电压、时钟等基本系统。 图5.7为可屏蔽中断响应过程 2. 中断优先级问题的解决三种解决办法:软件查询、简单硬件菊花链、专用硬件。软件查询方式借助于简单的硬件电路,以8个外设为例,可将8个中断信号相或后,作为INTR信号端,并把它们的状态位相或后作状态字。 只要在中断处理子程序的开始部分安排一段查询语句,可区分3个设备的中断优先级,查询的顺序,就是优先顺序。 简单硬件方式菊花链法图5.8a菊花链 5.8b优先权排队逻辑电路 当有两个设备同时发中断请求,越接近CPU越优先得到响应。 专用硬件方式图
16、6-14 编码器和比较器实现优先权排队电路 中断控制器8259A最常用。图4.9 典型的可编程中断控制器内部结构框图 本节重点 中断控制器8259A的编程结构和工作原理 8259A的工作方式 8259A的初始化命令字、操作命令字及其使用 8259A的初始化流程和初始化编程 主从式8259A中断系统的连接和工作原理 DMA控制器8237A的编程结构和工作原理 8237A的工作模式 8237A的模式寄存器、控制寄存器和状态寄存器的格式7.1 中断控制器8259A 8259A的工作特点: 能管理8级中断 可编程 只需一组5V电源 7.1.1 8259A的引脚信号、编程结构和工作原理1. 8259A的
17、外部引脚信号: D7D0 CS INT A0 INTA IR7IR0 RD CAS2CAS0 WR SP/EN 图6.17 8259A的外部引腿 2 . 8259A的编程结构和工作原理 编程结构(1)上半部分:处理部件中断请求寄存器IRR中断优先级裁决器PR当前中断服务寄存器ISR(2)下半部分:7个寄存器 ICW1ICW4 OCW1OCW37.1.2 8259A的工作方式 1. 设置优先级的方式 (1) 全嵌套方式 (2) 特殊全嵌套方式 (3) 优先级自动循环方式 (4) 优先级特殊循环方式 2 . 屏蔽中断源的方式 (1) 普通屏蔽方式 (2) 特殊屏蔽方式 3. 结束中断处理的方式 (
18、1) 中断自动结束方式 (2) 一般的中断结束方式 (3) 特殊的中断结束方式 4 . 连接系统总线的方式 (1) 缓冲方式 (2) 非缓冲方式 5 . 引入中断请求的方式 (1) 边沿触发方式 (2) 电平触发方式 (3) 中断查询方式 中断查询方式的特点:不向CPU发中断请求信号CPU内部的中断允许触发器复位CPU要使用软件查询来确认中断源7.1.3 8259A的初始化命令字和操作命令字 1. 8259A的初始化命令字(1) ICW1的格式和含义 (2) ICW2的格式和含义ICW2和中断类型码之间的关系 ICW2是任选的; ICW2高5位影响中断类型码,而中断类型码的低3位由IR0IR7
19、决定(3) ICW3的格式和含义 如是主片,格式如下: 如是从片,则ICW3的格式如下: (4) ICW4的格式和含义 8259的初始化流程 2. 初始化流程 对初始化流程的几点说明 ICW1写入偶端口,ICW2ICW4写入奇端口 ICW1ICW4的设置次序固定 ICW1和ICW2须设置,ICW3和ICW4非必须 在级联时,主片和从片各设置ICW3对8259A设置初始化命令字的例子 MOV AL,13HOUT 80H,AL;设置ICW1MOV AL,18HOUT 81H,AL;设置ICW2MOV AL,0DHOUT 81H,AL;设置ICW4 3 . 8259A的操作命令字 (1) OCW1的
20、格式和含义 :中断屏蔽操作命令字(2) OCW2的格式和含义 OCW2的功能(1)设置优先级循环方式(2)组成两类中断结束命令:一般的中断结束命令特殊的中断结束命令(3) OCW3的格式和功能 功能:(1)设置和撤销特殊屏蔽方式(2)设置中断查询方式(3)设置对内部寄存器的读出命令 7.1.4 8259A使用举例 1. 关于中断全嵌套方式的例子 关于如何使用中断结束命令的例子 两个重要结论: 中断处理程序执行STI指令才允许嵌套 中断处理程序如执行STI指令,并清除对应的ISn位,则未必符合优先级规则 7.1.5 多片8259A组成的主从式中断系统 中断初始化举例7.2 DMA控制器8237A
21、 7.2.1 DMA控制器的一般结构和概要 DMA控制器的初始化 传送缓冲区的起始地址或结束地址 设置传输的字节数或字数 7.2.2 DMA控制器8237A的原理 1. 8237A的编程结构和外部连接 (1) 编程结构 4个通道分别包含: 16位的地址寄存器16位的字节计数器8位的模式寄存器 4个通道公用控制寄存器和状态寄存器 (2) 对外连接信号 CLK时钟 CS#片选RESET复位READY准备就绪ADSTB地址选通AEN地址允许MEMR#存储器读MEMW#存储器写IOR# 输入输出设备读 IOW#输入输出设备写 EOP#DMA传输过程结束 DREQ通道DMA请求输入 DACK DMA控制
22、器送给I/O接口的回答 HRQ 总线请求 HLDA总线响应 A3A0地址 A7A4地址 DB7DB0双向数据 (3) 8237A工作时各信号的配合 作为从模块工作时 作为主模块工作时 2. 8237A的工作模式和模式寄存器的格式 工作模式: 单字节传输模式 块传输模式 请求传输模式 级联传输模式 模式寄存器的格式 3. 控制寄存器的格式和有关问题 (1) 内存到内存的传输 (2) 8237A的启动和停止 (3) 状态及时序类型(4) 关于扩展写信号功能 (5) 优先级问题的解决 (6) DREQ信号和DACK信号的极性 8237A的典型时序 4. 状态寄存器的格式 5. 请求标志和屏蔽标志的设
23、置 DMA请求寄存器的格式 :屏蔽寄存器的格式 8237A综合屏蔽命令的格式 6 . 复位命令和清除先/后触发器命令 7. 8237A各寄存器对应的端口地址 有了中断控制器,CPU的INTR引腿和INTA引腿连接中断控制器,另一方面,来自输入输出接口的中断请求信号并行送到中断优先级管理电路,当一个外部请求送到中断控制器。 。 6.4.2 DMA方式1. DMA方式的提出中断方式下,仍须执行程序来传送,每次中断都要清除指令队列、保护寄存器值、断点地址和PSW进出栈,效率不高。DMA实现数据按块传输,适合速度与存储器匹配的外设,传输率外设决定DMA方式下,外设用专用接口与存储器交换数据,接口向CP
24、U发HOLD 不经过CPU,CPU发HOLDA让出总线控制权。 1. DMA控制器的功能和DMA传送的原理DMA控制器应具备以下功能: 当外设准备就绪,会向DMA控制器发DMA请求HOLD高,DMA接收后能向CPU发请求CPU接到总线请求信号后允许则发出DMA响应信号 放弃总线HLDA高 DMA控制器得到总线控制权后,发地址信号,并每发一字节修改地址,因此内部有地址寄存器和字节计数器。DMA传送期间,DMA控制器能发读写控制信号 DMA控制器内部有字节计数器,减为0时,DMA过程结束。DMA过程结束时,控制器应向CPU发结束信号总线交权HOLD低,CPU重获控制权 HLDA也变低 DMA控制器
25、得到总线控制权后,发地址信号,并每发一字节修改地址,因此内部有地址寄存器和字节计数器。DMA传送期间,DMA控制器能发读写控制信号 图6.17 用DMA方式传输单个数据(输出) 如果从接口往内存DMA方式传输一个数据块,系统如下动作: 接口往DMA控制器发一个DMA请求;HOLD 如允许CPU送来HLDA,交出总线控制权 DMA控制器中地址寄存器的内容送到地址总线上 DMA控制器向接口发确认信号,通知接口收发数据 数据送到地址总线所指的内存单元地址寄存器的值加1 字节计数器减1如字节计数器的值不为0,则回到第1步,否则结束。 图4.11 DMA控制器的内部最小配置和接口要求 DMA控制器内部有一个控制寄存器、状态寄存器、字节计数器 如果从接口往内存DMA方式传送一个数据块,系统如下动作: 接口往DMA控制器发一个DMA请求HOLD。 DMA控制器发总线请求,收到CPU的应答HLDA后,获总线控制权 DMA控制器中地址寄存器的内容送到地址总线上。DMA控制器向接口发一个确认DMA传输的信号,送数或锁数。 数据送到地址总线所致的内存单元 地址寄存器的值加1 字节计数器的值减1如字节计数不为0,则回到第1步,否则结束。 考虑到接口的双向工作,对接口有下述要求: 控制寄存器中专门有一位
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机关内部监察制度
- 机关单位内部惩罚制度
- 机动车检测站内部流程审批制度
- 天津生物工程职业技术学院《虚拟现实设计》2024-2025学年第二学期期末试卷
- 林业站内部控制制度
- 检查内部管理制度
- 欢乐合唱团内部管理制度
- 民幼协会内部控制制度
- 民警内部追责制度
- 流通企业内部核算制度
- 《铁路技术管理规程》(普速铁路部分)
- 《泡茶与品茶》课件
- 部编版2020部编道德与法治四年级下册全册教案教学设计
- 2024年北京科技职业学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 2016-2023年江苏城市职业学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 数字化技术在工程管理中的应用
- 包皮过长手术临床路径
- ERAS标准病房评审标准表
- 前言 马克思主义中国化时代化的历史进程与理论成果
- 21ZJ111 变形缝建筑构造
- 智能制造概论PPT全套完整教学课件
评论
0/150
提交评论