null第五章 微型计算机接口和外设的数据传输第五章 微型计算机接口和外设的数据传输本章重点本章重点接口电路的功能
接口部件和I/O端口
CPU和外设之间的三种数据传输方式、各自优缺点和使用场合
中断传输方式的原理和可屏蔽中断的响应过程
DMA方式的原理和DMA控制器的功能 I/O接口概述I/O接口概述接口电路按功能可分为两类:
使微处理器正常工作所需的辅助电路
输入输出接口电路(2)为什么要用接口电路
为什么需要I/O接口(电路)? 微机的外部设备多种多样,其工作原理、驱动方式、信息格式、以及工作速度方面彼此差别很大,它们不能与CPU直接相连,必须经过中间电路再与系统相连5.2 CPU和输入输出设备之间的信号 5.2 CPU和输入输出设备之间的信号 CPU和输入输出设备之间有以下几类信号 :
(1)数据信息,又分为:
数字量
模拟量
开关量
(2)状态信息
(3)控制信息 5.3 接口部件的I/O端口 5.3 接口部件的I/O端口 数据端口
状态端口
控制端口或命令端口 I/O接口的主要功能I/O接口的主要功能寻址功能
输入/输出功能
数据转换功能
联络功能
中断管理功能
复位功能
可编程功能
错误检测功能外设通过接口和系统的连接 外设通过接口和系统的连接 5.4 CPU和外设之间的数据传送方式 5.4 CPU和外设之间的数据传送方式 解决定时问题的三种传送方式:
程序方式
中断方式
DMA方式 5.4.1 程序方式 5.4.1 程序方式 1. 无条件传送方式 图 无条件传送方式的工作原理无条件传送方式及其接口无条件传送方式及其接口在CPU与慢速变化的设备交换数据时,可以认为它们总是处于“就绪”状态,随时可以进行数据传送,这就是无条件传送,或称立即传送、同步传送(演示)
适合:简单设备,如LED数码管、按键或按纽等
优点:无条件传送的接口和操作均十分简单
前提:外设必须随时就绪
无条件传送:输入示例无条件传送:输入示例MOV DX, 160H
IN AL, DX无条件传送:输入实例无条件传送:输入实例MOV DX, 160H
IN AL, DX无条件传送:输出示例无条件传送:输出示例MOV DX, 160H
MOV AL, [BX]
OUT DX, AL无条件传送:输出实例无条件传送:输出实例MOV DX, 160H
MOV AL, [BX]
OUT DX, AL无条件传送:输入输出接口无条件传送:输入输出接口next: mov dx,8000h ;DX指向数据端口
in al,dx ;从输入端口读开关状态
not al ;反相
out dx,al ;送输出端口显示
call delay ;调子程序延时
jmp next ;重复无条件传送实例无条件传送实例例:用无条件传送方式编写产生任意波形、任意频率的脉冲信号程序。
现给定三种波形A、B和C。
其中时间间隔T=10ms,每种波形由T1~T8共八个状态组成,
连续重复发送T1~T8信号。2 . 条件传送方式 2 . 条件传送方式 (1)条件传送的概念
(2)条件传送的三个环节:
CPU从接口中读取状态字
CPU检测状态字
传送数据
查询传送的两个环节查询传送的两个环节⑴ 查询环节
寻址状态口
读取状态寄存器的标志位
若不就绪就继续查询,直至就绪
⑵ 传送环节
寻址数据口
是输入,通过输入指令从数据端口读入数据
是输出,通过输出指令向数据端口输出数据
查询式输入的接口电路 查询式输入的接口电路 查询式输出的接口电路 查询式输出的接口电路 null 查询式输入过程的流程图查询输入接口查询输入接口 mov dx,8000h ;DX指向状态端口
status: in al,dx ;读状态端口
test al,01h ;测试标志位D0
jz status ;D0=0,未就绪,继续查询
inc dx ;D0=1,就绪,DX指向数据端口
in al,dx ;从数据端口输入数据查询输出接口查询输出接口 mov dx,8000h ;DX指向状态端口
status: in al,dx ;读取状态端口的状态数据
test al,80h ;测试标志位D7
jnz status ;D7=1,未就绪,继续查询
inc dx ;D7=0,就绪,DX指向数据端口
mov al,buf ;变量buf送AL
out dx,al ;将数据输出给数据端口查询方式的EEPROM编程查询方式的EEPROM编程next: mov al,55h ;写入内容=55H
mov [bx],al ;写入存储单元
nop ;空操作指令,起延时作用
nop
next1: in al,dx ;查询状态口
test al,01h ;测试D0
jz next1 ;D0=0,芯片还在写入
inc bx ;D0=1,写毕,指针移动
loop next ;循环至全部字节写完查询式数据采集系统查询式数据采集系统8086/8088
CPUA/D转换234多路开关数据端口读选通8位数据1位状态控制端口写选通状态端口读选通启动 D4数据READYD7D0D1D21个模拟量8个
输入
模拟量A0A7…查询传送方式及其接口查询传送方式及其接口CPU需要先了解(查询)外设的工作状态,然后在外设可以交换信息的情况下(就绪)实现数据输入或输出
对多个外设的情况,则CPU按一定顺序依次查询(轮询)。先查询的外设将优先进行数据交换
查询传送的特点是:工作可靠,适用面宽,但传送效率低5.4.2 中断方式5.4.2 中断方式CPU在执行程序中,被内部或外部的事件所打断,转去执行一段预先安排好的中断服务程序;服务结束后,又返回原来的断点,继续执行原来的程序流程5.4.2 中断方式 5.4.2 中断方式 1. 中断传送方式的原理 可屏蔽中断的响应和执行 可屏蔽中断的响应和执行 2 . 中断优先级问题的解决 2 . 中断优先级问题的解决 (1)解决中断优先级的三种办法:
软件查询方式
简单硬件方式——菊花链法
专用硬件方式
(2)三种方法的优缺点
中断优先级菊花链及其逻辑电路 中断优先级菊花链及其逻辑电路 (a) 菊花链 典型的可编程中断控制器 典型的可编程中断控制器 5.4.3 DMA方式 5.4.3 DMA方式 1. DMA传送方式的提出
DMA传送方式的优点
数据传输率DMA传送方式DMA传送方式希望克服程序控制传送的不足:
外设→CPU→存储器
外设←CPU←存储器
直接存储器存取DMA:
外设→存储器
外设←存储器
CPU释放总线,由DMA控制器管理DMA传送的工作过程DMA传送的工作过程⑴ CPU对DMA控制器进行初始化设置
⑵ 外设、DMAC和CPU三者通过应答信号建立联系:CPU将总线交给DMAC控制
⑶ DMA传送
DMA读存储器:存储器 → 外设
DMA写存储器:存储器 ← 外设
⑷ 自动增减地址和计数,判断传送完成否DMA传送流程DMA传送流程流程 DMA控制器的功能:
向CPU发总线请求信号
实行对总线的控制
修改所用的 存储器或接口的地址指针
发读写控制信号
存放数据长度
交还总线控制权
DMA传输单个数据(输出过程)的原理DMA传输单个数据(输出过程)的原理 DMA控制器的内部最小配置和接口要求DMA控制器的内部最小配置和接口要求 从接口往内存传输一个数据块的过程: 从接口往内存传输一个数据块的过程: ① 接口往DMA控制器发一个DMA请求
② 得到总线控制权
③ 地址寄存器的内容送地址总线
④ 通知接口将数据送到数据总线
⑤ 数据送到所指单元
⑥ 地址寄存器的值加1
⑦ 字节计数器的值减1
⑧ 如字节计数器的值不为0,则回到①;否则结束 DMA传输对接口的要求:DMA传输对接口的要求:① 控制寄存器有1位指出数据传输方向
② 控制寄存器有1位用来启动I/O操作
③ 状态寄存器有1位指出设备当前是否处于忙状态 DMA传输对DMA控制寄存器的要求: DMA传输对DMA控制寄存器的要求: ① 有1位作为DMA允许位
② 有1位用来确定DMA方向
③ 有1位决定进行一次传输后放弃还是维持对总线的控制权
④ 状态寄存器有1位
示数据块传输是否结束对DMA控制器和接口部件预置的信息: 对DMA控制器和接口部件预置的信息: ① 往DMA控制器的字节计数器设置初值
② 往DMA控制器的地址寄存器中设置地址初值
③ 对DMA控制器设置控制字并启动DMA操作
④ 对接口部件设置控制字并启动I/O操作 启动数据块输入的例子启动数据块输入的例子IDLE:IN AL,INTSTAT ;检测设备是否处于
忙状态,如是,则等待
TEST AL,04
JNZ IDLE
MOV AX,COUNT ;设置计数
OUT BYTE-REG,AX
LEA AX,BUFFER ;设置地址初值
OUT ADD-REG,AX MOV AL,DMAC ;取原DMA控制字
OR AL,49H ;设置方向、块传输
;和允许标志
OUT DMACON,AL ;置DMA控制字
MOV AL,INTC ;设置接口的传输方向
;及允许标志
OR AL,05H
OUT INTCON,AL ;设置接口的控制字 3. DMA控制器的工作特点 3. DMA控制器的工作特点 是一个接口电路
能够控制系统总线
操纵外设和存储器之间的数据传输
5.4.4 输入输出过程中提出的几个问题 5.4.4 输入输出过程中提出的几个问题 1.系统如何知道接口已准备好数据等待CPU提取或者准备接收CPU的数据?
2.当系统中有几个设备处于同一种传输方式之下、而且同时发传输请求时,系统到底先响应哪个请求?
传送方式的比较传送方式的比较无条件传送:慢速外设需与CPU保持同步
查询传送: 简单实用,效率较低
中断传送:外设主动,可与CPU并行工作,但每次传送需要大量额外时间开销
DMA传送:DMAC控制,外设直接和存储器进行数据传送,适合大量、快速数据传送本章学习到此结束,谢谢!本章学习到此结束,谢谢!多种多样的外设多种多样的外设工作原理不同
机械、电子、机电、电磁……
传送信息类型多样
数字量、模拟量、开关量
传送速度差别极大
传送方式不尽相同
串行、并行
编码方式不同
二进制、BCD码、ASCII码……返回输出接口的锁存环节输出接口的锁存环节返回输出接口的锁存、缓冲环节输出接口的锁存、缓冲环节返回输入接口的缓冲环节输入接口的缓冲环节返回输入接口的锁存、缓冲环节输入接口的锁存、缓冲环节返回端口(PORT)端口(PORT)端口泛指I/O地址,通常对应寄存器
一个接口电路可以具有多个I/O端口,每个端口用来保存和交换不同的信息
数据寄存器、状态寄存器和控制寄存器占有的I/O地址常依次被称为数据端口、状态端口和控制端口,用于保存数据、状态和控制信息
输入、输出端口可以是同一个I/O地址一定要理解返回IN AL, 21HIN AL, 21H返回OUT 43H, ALOUT 43H, AL返回无条件传送流程无条件传送流程返回就绪(Ready)就绪(Ready)在输入场合
“就绪”说明输入接口已准备好送往CPU的数据,正等着CPU来读取
该状态也可用接口中数据缓冲器已“满”来描述
在输出场合
“就绪”说明输出接口已做好准备,等待接收CPU要输出的数据
该状态也可用接口数据缓冲器已“空”、或者用接口(外设)“闲”或不“忙(Busy)”来描述就绪:满,空、闲、不忙返回查询传送流程查询传送流程返回中断传送流程中断传送流程返回DMA传送流程DMA传送流程返回本章学习到此结束!本章学习到此结束!