单片机的输入输出与接口技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CPU对接口的控制与接口对外设的控制是独立的! 例:并行接口8255有三个设备端8位口,如何设计
其外部接口?如何节省端口数量?
转上三页
ቤተ መጻሕፍቲ ባይዱ
8
2、接口软件(设备驱动程序) 初始化程序段:设置接口工作方式及初始条件。 传送方式处理程序段:CPU针对不同的I/O设备有不
同的处理方式。
主控程序段:完成接口任务的程序。 程序终止与退出程序段:接口电路硬件保护及操作 系统中数据恢复。 辅助程序段:提供人-机对话手段。
OUT 60H,AL
OUT DX,34H
;
;
3、I/O端口与CPU的REG间I/O指令 种类:IN、OUT。 格式:IN AL,DX
OUT DX,AL
18
4、I/O端口与MEM间I/O指令 种类:INSB(W、D)、OUTSB(W、D)。 参数:用DX指定I/O端口地址,I/O时的目的/源RAM
地址用ES:DI(EDI)/DS:SI(ESI)指定。
地址总线
A1
A0
A1
A0
思考:多个接口同时存在时,如何简化译码电路?
返回6页
返回下页
29
例2:多个接口的集中译码。
CPU
数据总线 地址总线 控制总线
MEM
DMA 8259
8253
8255
设 备 侧 信 号
1 2 3 5 4 6
A 14 B 74LS138 13 C
G2B G2A G1 Y7
12 11 10 9 7
3
二、I/O接口功能
数据缓冲功能:通过寄存器或锁存器实现。
存放数据的寄存器或锁存器称之为数据口。
接受和执行CPU命令功能:
存放CPU命令代码的寄存器称之为命令口,
存放执行状态信息的寄存器称之为状态口。
信号转换功能:协调总线信号与I/O设备信号。
转换包括信号的逻辑关系、时序配合和电平转换。
可编程功能:增加接口的灵活性和智能性。
结果:通过前缀REP连续传送。
5、I/O端口与存储器端口访问的区别
命令类型:IN/OUT与MOV 寻址方式:直接、间接与多种方式
控制信号线:IOW/IOR与MEMW/MEMR
地址信号线:A0-A15与A0-A31
19
6、I/O端口访问例题
写出向8255A第2和第3个端口写数据的 指令,说明接口CPU侧信号变化过程。
0300-031FH
03A0-03AF 0380-038FH 03B0-03BFH 03D0-03DFH 03C0-03CFH 03F0-03FFH 01F0-01FFH 0360-036FH 返回17页
27
用户扩展卡I/O端口地址选用原则: 系统配置占用的端口地址一律不能用; 厂家声明保留的端口地址不要用; 其余端口地址可用,为避免冲突最好采用DIP。 3、I/O端口地址分配的实现
返回上页 返回35页 21
四、Pentium的I/O保护
I/O保护在保护模式下有效,在实地址模式下无效。 1、I/O特权级IOPL保护 保护通过比较当前任务的特权级CPL和标志REG(当前 任务的标志REG副本)的IOPL字段实现的。 若CPL≤IOPL,可执行IN、OUT、INS、OUTS、CLI、 STI等敏感指令(对IOPL敏感);否则不行。 每个任务都有自己的IOPL,0级特权的过程可通过 POPF和IRET指令修改任务的IOPL。
15
3、Intel系列微机I/O编址
Intel系列微处理器支持I/O独立编址方式和I/O统一 编址(存储器映象I/O编址)方式。 I/O统一编址时,I/O地址不能缓存。 Intel系列微机系统仅支持I/O独立编址方式。
16
三、PC系列微机I/O端口访问
1、I/O端口地址空间 I/O端口地址空间:64K个8位端口空间。
转上页 转29页
6
(2)外设侧引脚信号
数据信号:接口的缓冲REG与外设间的数据交换信 号,缓冲REG分输入和输出缓冲; 状态信号:外设工作状态送给接口的状态REG; 控制信号:接口的内部控制逻辑控制外设工作的控 制、时序和同步信号。 思考1:从哪些方面实现CPU侧数据与外设侧数据的 转换? 思考2:外设侧信号及时序的源头在哪里?
I/O芯片名称 DMAC1 DMAC2 DMA页面寄存器 中断控制器1 中断控制器2 定时器 并行接口芯片(键盘接口) RT/CMOS RAM 协处理器 返回35页 地址范围 0000-001FH 00C0-00DFH 0080-009FH 0020-003FH 00A0-00BFH 0040-005FH 0060-006FH 0070-007FH 00F0-00FFH
转上二页
7
(3)内部控制逻辑 根据总线信号完成与CPU的通讯(CS#有效时); 根据控制/状态REG、数据缓冲器控制外设侧信号。
CPU
I/O接口 CPU侧 外设侧
OUT DX,AL 接收新命令 按旧命令控制外设 按I/O接口信号处理
I/O设备
其它与接口无关指令 不与CPU通信 按新命令控制外设 按I/O接口信号处理
MOV OUT MOV OUT DX,21H DX,XXH DX,22H DX,YYH
DMA
8255 空闲
00H : 1FH 20H : 3FH 40H : 3FFH
思考1:为何8255A的地址从20H开始? 系统设计时约定8255A的地址从20H开始。 思考2:如何实现8255A的地址从20H开始? 系统实现:当命令为IN/OUT、地址为20H~23H时,
指令长度
指令执行速度 存储 空间 大小 相互影响 可扩展性
长
慢 略小 MEM受I/O影响 MEM可扩展性差 较长 简单
短
快 较好 MEM、I/O相互不影响 均较好 较短 复杂(控制信号种类多)
地址译码时间 总线控制复杂性
接口电路复杂性
复杂
简单
应用:Z-80系列和x86系列均采用独立编址方式; 68000系列和Apple 6502均采用统一编址方式。
9
第二节
一、程序控制方式
1、无条件传送方式
数据传输控制方式
特点:I时假设外设已准备好,O时假设外设空闲。 要求:接口I时加缓冲器,O时加锁存器。
应用:对简单外设的操作。
2、条件传送方式(查询方式) 工作原理:CPU查询外设已准备好后,才传送数据。 特点:CPU与外设间自然同步、串行工作。 要求:不需要增加额外的硬件电路。 应用:适用在CPU不太忙且传输速度要求不高时。
使8255A的CS#有效。
转下页
20
命令
MOV
T1
OUT DX,XXH
T2 T3 T4 T5
MOV
T6 T7
OUT DX,YYH
T8 T9 T10
CLK A15-A8 AD7-AD0 21H 00H XXH 22H 00H YYH
ALE
IO/M WD RD CS8255A CS其他
注意:CS#无效期间,接口与外设间仍在工作。
约定:一个I/O接口对应多个连续的I/O端口。
I/O接口芯片片选(CS)译码: IO/M信号(高电平)、AEN信号(无效)和I/O端口地 址高位。 I/O接口芯片内部端口译码: I/O端口地址低位。
28
例1:并行接口使用8255A芯片,地址空间60H-63H。
数据总线 RD WR 控制总线 RESET IO/M AEN A9-A2 D0-D7 PA0-7 RD WR RESET 8255A CS PB0-7 PC0-7
22
2、I/O允许位映像保护 I/O允许位映像用来修正IOPL对I/O敏感指令的影响, 允许低特权的程序访问某些I/O端口。
I/O允许位映像是一个位向量,每位对应一个端口的
操作权限(0表示允许)。 操作系统可通过改变任务TSS中的I/O允许映像来为
某任务分配端口。
思考:如何让普通任务访问I/O端口? 通过操作系统提供的接口函数; 通过设备驱动程序(其运行在0级上);
1、I/O统一编址(存储器映象I/O编址) 一个I/O端口等同于一个存储器单元。
N
I/O设备
X X-1 X-1
MEM
0 0
MEM
MOV指令
N-X
I/O设备
0
MOV指令
IN/OUT指令
2、I/O独立编址 I/O端口地址空间与存储器地址空间相互独立。
14
3、I/O两种编址方式比较
统一编址 指令种类 MOV 独立编址 MOV和IN/OUT
Y0 15
D7-D0
D7-D0 设 备 侧 信 号
WR
RD CS Ax-A0
WR
RD CS Ax-A0
00H : 1FH 20H : 3FH 40H : 5FH 60H : 7FH
4
三、I/O接口组成
I/O接口由接口硬件和接口软件组成。 1、接口硬件
返回下页
返回下二页
返回下三页
返回35页
5
(1)CPU侧引脚信号 思考1:CPU对接口有哪些操作?如何表示? 思考2:CPU对接口的软件命令如何分解的?
思考3:接口如何识别已分解的软件命令?
地址总线信号(I):区分接口的不同端口或CPU命令; 数据总线信号(I/O):根据端口或命令类型,送数 据到对应的REG中,或从REG中取得数据或状态; 控制总线信号(I):接口识别总线命令并控制执行; 状态总线信号(O):接口为完成总线命令所需的响 应信号。
通过操作系统的漏洞。
23
几种模式下I/O保护示意图:
I/O指令 实模式 Y 保护模式 N 虚拟8086模式
CPL≤IOPL
Y
I/O允许位映象 允许
N
允许访问
不允许访问
24
第四节
接口分析与设计方法
一、X86系列微机接口分析
1、I/O接口硬件分类 系统板上I/O芯片和I/O扩展槽接口卡。 2、I/O端口地址分配
I/O端口地址空间划分:
约定不同的接口占有不同的空间; 约定同一接口不同端口是连续的。 I/O端口地址空间实现: 由A0-A15、IOW/IOR及IO/M(高电平)信号组成。 不同接口端口地址不同的实现: 通过门、译码电路等方法实现。 思考:MEM的地址空间及实现如何?
转27页
17
2、I/O端口地址寻址方式 I/O端口支持直接寻址和间接寻址方式。 直接寻址时地址仅8位,间接寻址时可支持16位。
PC系列I/O地址线有16根,对应64K空间; PC/XT的I/O端口译码只使用了A0-A9,共1024个端口,
地址范围为0000H~03FFH。
不同的微机系统对I/O端口地址的分配不同。
初期:A9=0端口(512个)为系统板所用,其他端口
(512个)为扩展槽所用。
25
PC/AT:A8=A9=0端口(256个)为系统板所用,其他端 口(768个)为扩展槽所用。 系统板I/O接口芯片端口地址(0000H-00FFH):
接口中的命令口、状态口和数据口均为I/O端口。
2、I/O端口地址
接口中的不同REG或电路的编号。 CPU通过命令中地址对接口中不同端口进行访问。 3、命令、接口与I/O端口关系 接口:I/O端口:命令----1:n:m*n。 CPU通过I/O端口地址(已约定)区分不同的接口。
13
二、I/O端口编址
26
扩展槽I/O接口卡端口地址(0100H-03FFH):
I/O接口名称 游戏控制卡 并行口控制卡1 并行口控制卡2 串行口控制卡1 串行口控制卡2 地址范围 0200-020FH 0370-037FH 0270-027FH 03F8-03FFH 02F8-02FFH
原型插件板(用户可用)
同步通信卡1 同步通信卡2 单显MDA 彩显CGA 彩显EGA/VGA 软驱控制卡 硬驱控制卡 PC网卡
第二章
输入输出与接口技术
1
第一节
一、I/O接口基本概念
1、接口定义
接口概述
定义:是CPU与“外部世界”的连接电路,负责“中
转”各种信息。
2
分类:存储器接口和I/O接口。 位置:介于系统总线与外部设备之间。 2、I/O接口与I/O设备
不同I/O设备对应I/O接口不同。
I/O接口受CPU控制,I/O设备受I/O接口控制。 为增加通用性,I/O接口的接口电路一般均具有可编 程功能。 微机的应用离不开与外部设备接口的设计、选用和 连接。 微机接口技术是编程人员的一项基本技能。
10
3、中断传送方式 特点:CPU与外设可同时工作。 要求:接口中需要中断控制逻辑支持。
应用:适用于非高速度大量数据传输时。
二、直接存储器存取(DMA)方式
特点:数据传输不经过CPU,I/O设备管理由CPU控制,
简化CPU对I/O的控制。 要求:需要DMA控制器及相关逻辑支持。 应用:适用与高速度大量数据传输时。
11
三、I/O处理机(IOP)方式
特点: I/O处理机接管了CPU的各种I/O操作及I/O控 制功能,CPU能与IOP并行工作。
要求:需要IOP支持。
应用:高速I/O归IOP管理,低速I/O设备归CPU管理。
12
第三节
一、I/O端口
1、I/O端口
I/O编址与访问
供CPU直接访问的接口中的REG或电路。