16_32位微机原理、汇编语言及接口技术教程 2020
2020-06-24 22:59:27 13 举报
AI智能生成
16_32位微机原理、汇编语言及接口技术教程 2020
作者其他创作
大纲/内容
2020复习要点
CPU
- 1,8086/88 CPU内部的EU,BIU划分和功能;区别4点;;EU相同,BIU不同;
- 2,8086/88的基本的总线周期T1,T2,T3,T4和READY,TW的功能;
- 3,8086/88标志寄存器FLAG的控制标志IF,TF,DF的含义;
- 4,三总线AB,DB,CB及功能;
- 5,分时复用;
- 6. M,I/O的区别在高4位地址,读写区别在T2;
- 7,CPU在RESET时,CS=全1,其余为0;
- 8,20位地址形成;
- 9,最大最小模式,是否使用8288总线控制器;RQ*/GT*代替HOLD,HLDA*
存储器
- 1,了解8086/88 CPU的存储器读写时序;
- 2,RAM(SRAM,DRAM),ROM(EPROM,EEPROM)的划分,刷新电路;
- 3,存储器片选的全译码,线选和部分译码;
- 4,详细了解部分译码和全译码法的区别和优缺点;
- 5,存储器内部的单译码,双译码(X,Y译码);
- 6,位扩充,字扩充;
I/O
I/O基本知识
- 1,接口与端口的含义;3种内部寄存器:数据,状态,控制寄存器;
- 2,8086/88 CPU寻址I/O端口的地址线(A0-A15,64K,和寻址1M存储器相比较,A0-A19);
- 3,CPU寻址外设的两种方式,8086/88 CPU采用的寻址方式;
- 4,8086/88 CPU与I/O传送数据的方式:直接传送(无条件传送),查询传送(条件传送),中断传送,DMA传送;
- 5,详细了解查询式输入和输出接口的工作原理;
- 6,理解8255的三种工作方式:方式0,方式1,方式2;
- 7,8255的PA,PB,PC三口的区别;(重点在C口。)
- 8,8255中,STB*,IBF;ACK*,OBF* 联络线的含义;
- 9,8253的6种方式;(分为电平,周期,脉冲三类);
- 10,8253 的 CR,CE,OL的含义;通过8位DB操作16位CR的方法;
I/O应用
- 1,掌握8255,8253,8259的控制字;
- 2,8255,8253,8259的初始化和应用编程;(参考课件上的相关举例。)
- 3,74LS138译码器原理;
中断
- 1,8086/88 CPU的矢量型中断的含义;(中断矢量×4→中断服务程序首地址)
- 2,中断矢量表的含义及中断服务程序首地址形成;(0-3FF的1K存储器内容);
- 3,8086/88 CPU响应外设中断时的2个中断总线周期;
- 4,IF与TF的含义;INTR与NMI的区别;
- 5,8259的IRR,ISR,IMR的含义;初始化:CS*=0,A0=0,D4=1;
- 6,8259的ICW1-4,OCW1-3的含义;OCW2中,R,EOI,SL的组合使用;
- A0=0,寻址ICW1,OCW2,OCW3;A0=1,寻址OCW1,ICW2,ICW3,ICW4;
- 7,级联与ICW3(主从片的区别);ICW2中,中断矢量高5位与低3位的构成;
- 8,CPU处理中断的过程,8259处理中断的过程;
DMA
- 1,DMA的含义和特点;(不由CPU控制而由DMAC控制下的M与I/O间的高速数据传送);
- 2,8237的时序(空闲周期:CPU控制总线;有效周期:DMAC控制总线;)
- 3,8237的4种传送方式和4种操作类型;现行与基:源,目的,字节数寄存器;
- 4,8237内部数据暂存器的作用;
- 5,压缩时序;
- 6,3条软件命令。
第二章 微处理器结构
8088/8086的功能结构
区别
8086内部指令队列为6字节,每次取2字节,8088为4字节,每次取1字节
8086对外的数据总线是16位,8088 CPU的外部数据总线为8位
(1) AD15~AD0的定义不同:在8086中都定义为地址/数据复用总线;而在 8088中,由于只需用8条数据总线,因此,对应予8086的AD15~AD8这8条引脚,只作地址线使用。
(2)34号引脚的定义不同:在8086中定义为BHE信号;而在8088中定义为SS0,它与DT/R,IO/M一起用作最小方式下的周期状态信号。
(3)28号引脚的相位不同: 在8086中为M/IO;而在8088中被倒相,改为IO/M,以便与8080/8085系统的总线结构兼容。
(2)34号引脚的定义不同:在8086中定义为BHE信号;而在8088中定义为SS0,它与DT/R,IO/M一起用作最小方式下的周期状态信号。
(3)28号引脚的相位不同: 在8086中为M/IO;而在8088中被倒相,改为IO/M,以便与8080/8085系统的总线结构兼容。
总线接口单元
执行单元
第四章 总线
总线技术
总线类型
芯片总线|局部总线
内总线|系统总线
微机系统中功能单元(模板)与功能单元间连接的总线,用于微机主机内部的模板级互连
外总线
微机系统与其外设或微机系统之间连接的总线,用于设备级互连。
数据传输
总线操作
1)总线请求和仲裁(Bus Request&Arbitration)阶段:需要使用总线的主模块提出申请,由总线仲裁机制确定把总线分配给哪个请求模块。
2)寻址(Addressing)阶段:取得总线使用权的主模块发出将要访问的从模块(如存储器或I/O端口)地址信息以及有关命令,启动从模块。
3)数据传送(Data Transfer)阶段:主从模块进行数据交换,数据由源模块发出,经数据总线传送到目的模块。
4)结束(Ending)阶段:主从模块的数据、地址、状态、命令信息均从总线上撤除,让出总线,以便其他主模块继续使用总线。
对简单的单处理器系统来说,总线主要由作为主模块的处理器占有,不存在总线请求、仲裁和撤除问题,总线操作只有寻址和数据传输两个阶段。当DMA控制器、其他处理器需要占用总线时,则必须请求总线。
同步方式
同步时序
总线操作的各个过程由共用的总线时钟信号控制,具有固定的时序,主控模块和受控模块之间没有应答联络信号。时钟一次高电平和低电平的转换代表了一个时钟周期,总线操作过程就跟随着高电平和低电平的转换进行动作,多数过程在一个时钟周期完成。
半同步传输方式
异步时序
传输类型
以数据总线宽度为单位的读取(Read)和写入(Write)
数据块传送,即成组、猝发(Burst)传送
只要给出起始地址,后续读写总线周期将固定块长的数据一个接一个地从相邻地址读出或写入。
写后读和读修改写操作
地址只提供一次,然后先写后读,或者先读后写同一个地址单元。前者适用于校验,后者适用于对共享数据的保护。
性能指标
总线的宽度
频率
带宽
8088
8088的两种组态模式
最小组态
最大组态
地址/数据信号
AD7~AD0
8个地址/数据分时复用引脚,用作地址总线时是单向输出信号,用作数据总线时是双向信号,具有三态输出能力。在访问存储器或外设的总线操作中,这些引脚在第一个时钟周期输出存储器或I/O端口的低8位地址A7~A0,其他时间用于传送8位数据D7~D0。
A15~A8——8位地址引脚,具有三态能力的输出信号。这些引脚在访问存储器或外设时,提供20位地址的中间8位地址A15~A8。
A19/S6~A16/S3——4个地址/状态分时复用引脚,是一组具有三态能力的输出信号。这些引脚在访问存储器的第一个时钟周期输出高4位地址A19~A16,在访问外设的第一个时钟周期输出低电平无效,其他时间输出状态信号(反映CPU的一些基本工作状态)。
读写控制信号
1.基本读写引脚
ALE——地址锁存允许引脚
是一个三态、输出、高电平有效的信号
有效时,表示复用引脚(AD7~AD0和A19/S6~A16/S3)上正在传送地址信号,也标志着一次数据传输的开始。
系统可以利用ALE信号锁存地址供存储器或I/O端口使用
IO/M——I/O或者存储器引脚
是一个三态输出信号,高、低电平均有效,但具有不同的功能。
该引脚高电平(IO)时,表示CPU将访问I/O接口,此时地址总线A15~A0提供16位的I/O地址。
该引脚低电平(M)时,表示CPU将访问存储器,此时地址总线A19~A0提供20位的存储器物理地址。
WR(Write)——写控制引脚
是一个三态、输出、低电平有效的信号。
有效时,表示微处理器正将数据写到存储单元或I/O端口。
RD(Read)——读控制引脚
是一个三态、输出、低电平有效的信号
有效时,表示微处理器正在从存储单元或I/O端口读取数据。
2.基本总线操作
1)存储器读(Memory Read)
处理器从存储器读取代码(取指)或操作数。每条指令在执行前都需要经过取指操作进入处理器,以存储单元为源操作数的指令在执行时需要从主存获取操作数,这些操作都将启动一个存储器读总线操作。
2)存储器写(Memory Write)
处理器向存储器写入操作数。以存储单元为目的操作数的指令在执行时需要将结果保存在主存中,它会启动一个存储器写总线操作。
3)I/O读(Input/Output Read)
处理器从外设读取操作数。8088处理器只有在执行输入指令IN时才启动一个I/O读总线操作。
4)I/O写(Input/Output Write)
处理器向外设写出操作数。8088处理器只有在执行输出指令OUT时才启动一个I/O写总线操作。
3.同步操作引脚
处理器在进行读写操作时应该保证外部数据按时到达,也就是存储器或外设与处理器必须实现读写操作的同步,否则将出错。如果处理器与外部器件不能实现速度匹配,可以让快速的处理器等待。这时,需要慢速的I/O或存储器发出一个请求等待或表明可以进行数据读写的信号。
READY——(存储器或I/O端口)就绪引脚
是一个输入给处理器的信号,高电平有效表示可以进行数据读写
存储器或I/O端口可利用该信号无效来请求处理器等待数据的到达。处理器在进行读写前如果检测到READY引脚为低无效信号,将进入等待状态,直到READY信号为高有效信号才进行读写操作。
4.其他控制信号
1.中断请求和响应引脚
INTR——可屏蔽中断请求引脚
是一个高电平有效的输入信号
该引脚信号有效时,表示中断请求设备向微处理器申请可屏蔽中断
8088通过关中断指令CLI可清除标志寄存器中的中断IF标志,从而禁止对该中断请求进行响应。可屏蔽中断主要用于实现与外设进行实时数据交换。
INTA——可屏蔽中断响应引脚
是一个低电平有效的输出信号
该引脚信号有效时,表示来自INTR引脚的中断请求已被微处理器响应。INTR和INTA是一对可屏蔽中断请求和响应的应答信号
NMI——不可屏蔽中断请求引脚
是一个利用上升沿有效的输入信号
该引脚信号有效时,表示外界向微处理器申请不可屏蔽中断。该中断的优先权显然高于可屏蔽中断请求INTR,因为微处理器无法在内部对其屏蔽,只能予以响应,也因此无须设计不可屏蔽中断响应信号。利用其不可被屏蔽的特点,不可屏蔽中断常用于发生故障等紧急情况时的系统保护。
2.总线请求和响应引脚
HOLD——保持即总线请求引脚
是一个高电平有效的输入信号
该引脚有效时,表示其他总线主控设备向处理器申请使用原来由微处理器控制的总线。该信号从有效回到无效时,表示总线主控设备对总线的使用已经结束,通知微处理器收回对总线的控制权
HLDA(HOLD Acknowledge)——保持响应即总线响应引脚
该引脚有效时,表示微处理器已响应总线请求并释放总线。此时微处理器的地址总线、数据总线及具有三态输出能力的控制总线将呈现高阻状态,使总线请求设备可以控制总线。请求信号HOLD转为无效,响应信号HLDA也随之转为无效,微处理器将重新掌管总线。HOLD和HLDA是一对总线请求和响应的应答信号。
3.其他引脚
RESET——复位引脚
该引脚有效时,将迫使微处理器回到其初始状态;当它从有效转为无效时,微处理器重新开始工作。数字电路和电子设备一般都设计有复位请求信号或按钮,以便使电路或设备从初始状态开始工作。
8088复位后,寄存器CS=FFFFH,IP=0000H,所以复位后第一条执行的指令在物理地址FFFF0H处,即主存地址高端。通常系统会在此处安排一条段间无条件转移指令JMP,将控制转移到系统程序入口
CLK(Clock)——时钟输入引脚
时钟信号是一个频率稳定的数字信号,数字电路都需要一个时钟信号作为基本操作节拍。微处理器的时钟信号作为内部定时信号,其频率就是微处理器的工作频率,工作频率的倒数就是时钟周期的时间长度
TEST——测试输入引脚
用于与数学协处理器8087保持同步操作
8088的总线时序
最小组态
写总线周期
T1状态——输出存储器地址或I/O地址
T2状态——输出控制信号
T3和Tw状态——总线操作持续,并检测READY以决定是否延长时序
T4状态——完成数据传送
读总线周期
IBM PC总线
(1)数据和地址总线
D7~D0——8位双向数据线。
A19~A0——20位输出地址线。
(2)读写控制信号线
ALE——地址锁存允许,每个CPU总线周期的T1状态高电平有效。
MEMR——存储器读,输出、低有效。
MEMW——存储器写,输出、低有效。
IOR——I/O读,输出、低有效。
IOW——I/O写,输出、低有效。
I/OCHRDY——I/O通道准备好,输入、高有效。
这个信号除用于CPU总线周期外,在DMA传送的总线周期也起同样的作用。
这个信号除用于CPU总线周期外,在DMA传送的总线周期也起同样的作用。
(3)中断请求信号线
IRQ2~IRQ7——6个中断请求信号,输入、高有效。
它们接到8259A中断控制器的输入端,
优先权从高到低为IRQ2,IRQ3,…,IRQ7,对应中断向量号为0AH~0FH
它们接到8259A中断控制器的输入端,
优先权从高到低为IRQ2,IRQ3,…,IRQ7,对应中断向量号为0AH~0FH
(4)DMA传送控制信号线
AEN——地址允许信号,输出、高有效。
它由DMA控制器发出,AEN高有效说明此时正由DMA控制器控制系统总线进行DMA传送
它由DMA控制器发出,AEN高有效说明此时正由DMA控制器控制系统总线进行DMA传送
DRQ1~DRQ3——3个DMA请求信号,输入、高有效。
它们接到8237 DMA控制器上,优先权从高到低为DRQ1、DRQ2、DRQ3
它们接到8237 DMA控制器上,优先权从高到低为DRQ1、DRQ2、DRQ3
DACK~DACK——4个DMA响应信号,输出、低有效
T/C——计数结束信号,输出、正脉冲有效。
它由DMA控制器发出,用于表示进行DMA传送的通道其编程时规定传送的字节数已经传送完。
但它并没有说明是哪个通道,这要结合DMA响应信号DACK~DACK哪个有效来判断
它由DMA控制器发出,用于表示进行DMA传送的通道其编程时规定传送的字节数已经传送完。
但它并没有说明是哪个通道,这要结合DMA响应信号DACK~DACK哪个有效来判断
(5)其他信号线
RESET——复位信号,输出、高有效。
RESET是系统输出的复位信号,表示系统正处于复位状态,而不是要求系统复位的输入信号。
当冷启动或热启动微机时,RESET输出有效信号用以复位整个系统;当它从有效转为无效时系统将开始进行初始化。
RESET是系统输出的复位信号,表示系统正处于复位状态,而不是要求系统复位的输入信号。
当冷启动或热启动微机时,RESET输出有效信号用以复位整个系统;当它从有效转为无效时系统将开始进行初始化。
I/OCHCK——I/O通道校验,输入、低有效。
它有效说明扩充接口板上出现奇偶校验,并将产生NMI中断。
PC中为了保证读写存储器数据的可靠性,每个字节单元都增加了一个奇偶校验位。
当发生存储器读写错误时,将产生NMI中断,通常会引起系统死机。
通过I/O通道扩充的存储器扩展板上的存储单元出现读写错误时,则通过系统总线的I/OCHCK信号引入系统。
它有效说明扩充接口板上出现奇偶校验,并将产生NMI中断。
PC中为了保证读写存储器数据的可靠性,每个字节单元都增加了一个奇偶校验位。
当发生存储器读写错误时,将产生NMI中断,通常会引起系统死机。
通过I/O通道扩充的存储器扩展板上的存储单元出现读写错误时,则通过系统总线的I/OCHCK信号引入系统。
OSC——晶振频率脉冲,输出14.31818MHz的主振频率信号,占空比为50%。
CLK——系统时钟,输出4.77MHz的系统时钟信号,占空比为33%。
CARDSLCTD——扩充接口卡选中信号,输入、低有效。它仅在机箱外扩充I/O插槽时使用,表明机箱外有I/O插槽。
第五章 主存储器
分类
制造工艺
双极型
主板上的高速缓存
MOS型
使用属性
RAM
SRAM
触发器电路
DRAM
单个MOS管
ROM
掩膜ROM
PROM
EPROM
EEPROM
闪存
芯片结构
存储体
地址译码电路
单译码
双译码
读写控制电路
控制信号
片选信号
该引脚常使用CS(Chip Select,芯片选中,简称片选)或CE(Chip Enable,芯片允许)表示,多为低电平有效
片选有效,才可以对该芯片进行读写操作;无效时,不能进行读写操作,芯片通常也处于低功耗状态
一般通过高位地址线来控制
一般通过高位地址线来控制
读控制信号
该引脚常用OE(Output Enable,输出允许)表示,低电平有效
读信号有效,芯片读取指定存储单元的数据并从数据引脚送出,当然此时存储器芯片的片选也应该有效。
显然,读控制信号功能上对应微处理器的存储器读信号MEMR或RD
显然,读控制信号功能上对应微处理器的存储器读信号MEMR或RD
写控制信号
该引脚常用WE(Write Enable,写允许)表示,低电平有效。
写信号有效,芯片将数据引脚的数据写入指定的存储单元,同样此时存储器芯片的片选也应该有效。
显然,写控制信号功能上对应微处理器的存储器写控制信号MEMW或WR。
显然,写控制信号功能上对应微处理器的存储器写控制信号MEMW或WR。
主要技术指标
1.存储容量
2.存取速度
RAM
SRAM
SRAM 6116
引脚
读写周期
DRAM
DRAM 4164
引脚
读写周期
ROM
27开头
与CPU连接
示意图
译码方式
全译码
地址唯一
组成的存储系统的地址空间连续
部分译码
地址重复
线选译码
每根高位地址线选中一个芯片(组)
存储扩充
位扩展
字扩展
综合
8086的双存储体
第六章 接口
概述
内部结构
(1)数据寄存器
输入
输出
(2)状态寄存器
接口电路
外设
(3)控制寄存器
接口电路工作方式
控制外设
处理器指令通过I/O地址与接口寄存器联系,实现与外设的数据交换。
外部特性
面向处理器一侧的信号
面向外设一侧的信号
基本功能
(1)数据缓冲锁存
输入缓冲
输出锁存
(2)信号变换
(3)IO端口寻址
(4)联络CPU与外设
状态信息
控制信息
请求信息
接口电路芯片分类
通用接口芯片
并行接口芯片8255A
面向外设的专用接口芯片
软盘驱动器接口电路
键盘\显示器接口电路8279
面向微机系统的专用接口芯片
中断控制器8259A
DMA控制器8237
定时计数器8253/8254
端口的编址
1.I/O端口与存储器地址独立编址
需要设计I/O访问的I/O指令和I/O引脚
不占用宝贵的存储器空间
I/O操作一目了然
地址译码简单
寻址方式没有存储器指令丰富
2.I/O端口与存储器地址统一编址
处理器不用设计I/O指令和引脚
丰富的存储器访问方法同样能够运用于I/O访问
I/O端口会占用存储器的部分地址空间,通过指令不易辨认I/O操作
IO译码
IBM PC/AT
IO指令
输入
IN AL/AX i8/DX
输出
OUT i8/DX AL/AX
外设与主机的数据传送方式
软件程序
无条件传送
对工作方式简单的外设,无须事先进行确认,处理器随时可以与之进行数据传送。
器件
三态缓冲器
锁存器
查询传送
对实时性要求不高的外设,处理器可以在不繁忙的时候询问外设的工作状态。当外设准备好数据后,处理器才与之进行数据传送
中断传送
需要及时处理外设数据时,外设可以主动向处理器提出请求。在满足条件的情况下,处理器暂停执行当前程序,转入执行处理程序与外设进行数据传送
流程
1.中断请求和响应
1)指令执行结束后才能响应外设的中断请求。
2)处理器处于开放中断的状态
3)中断请求的同时,没有更高级别的其他请求。
2.中断关闭和开放
3.断点保护和中断返回
4.中断源识别
中断向量
子主题
中断优先权管理
中断优先权排队
中断查询
中断嵌套
硬件
DMA传送
对需要快速传送大量数据的外设,处理器让出总线的控制权,由DMA控制器接管,并在外设与存储器之间建立直接的通路进行数据传送
流程
1)DMA预处理
DMA控制器作为主控设备前,处理器要将有关参数(工作方式、存储单元首地址以及传送字节数等)预先写到DMA控制器中
2)DMA请求和应答
3)DMA数据交换
DMA读——存储器的数据被读出传送给外设。
DMA控制器提供存储器地址和存储器读控制(MEMR)信号,使被寻址存储单元的数据放到数据总线上;
同时向提出DMA请求的外设提供响应信号和I/O写控制信号(IOW),将数据总线上的数据送入外设。
DMA控制器提供存储器地址和存储器读控制(MEMR)信号,使被寻址存储单元的数据放到数据总线上;
同时向提出DMA请求的外设提供响应信号和I/O写控制信号(IOW),将数据总线上的数据送入外设。
DMA写——外设的数据被写入存储器。
DMA控制器向提出DMA请求的外设提供响应信号和I/O读控制信号(IOR),令其将数据放到数据总线上;
同时提供存储器地址和存储器写控制信号(MEMW),将数据总线上的数据送入所寻址的存储单元
DMA控制器向提出DMA请求的外设提供响应信号和I/O读控制信号(IOR),令其将数据放到数据总线上;
同时提供存储器地址和存储器写控制信号(MEMW),将数据总线上的数据送入所寻址的存储单元
4)DMA控制器对传送字节数进行计数
如果传送没有结束,DMA控制器增量或减量存储器地址,并重复上述数据交换过程;
如果传送结束,DMA控制器将使总线请求信号无效,表示归还总线控制权。此时,处理器将重新接管总线
如果传送结束,DMA控制器将使总线请求信号无效,表示归还总线控制权。此时,处理器将重新接管总线
图
IO处理器控制传送
第七章 中断控制接口
中断类型
1.内部中断
(1)除法错中断
(2)指令中断
(3)溢出中断
(4)单步中断
2.外部中断
(1)非屏蔽中断
(2)可屏蔽中断
关中断的情况
系统复位后
任何一个中断(包括外部中断和内部中断)被响应后
执行关中断指令CLI后
中断响应过程
过程
①将标志寄存器压入堆栈,保护各个标志位。
②使IF和TF为0,禁止可屏蔽中断和单步中断。
③将中断点的逻辑地址压入堆栈。
④从向量号乘4的主存地址中取出中断服务程序入口地址送CS:IP寄存器。
⑤控制转移至中断服务程序入口地址,执行处理程序,最后是中断返回指令IRET。
⑥IRET指令将断点地址和标志寄存器出栈恢复,于是控制又返回到断点处继续执行。
优先权实际上是指被识别出来的先后顺序
图
中断向量表
图
内部中断服务程序
(1)中断服务程序入口地址设置
DOS功能调用INT 21H
功能号:AH=25H
入口参数:AL=中断向量号,DS:DX=中断服务程序入口地址(段基地址:偏移地址)
(2)获取中断服务程序入口地址
DOS功能调用INT 21H
功能号:AH=35H
入口参数:AL=中断向量号
出口参数:ES:BX=中断服务程序入口地址(段基地址:偏移地址)
测试
中断控制器8259A
内部结构
中断控制
原理
辅助处理器对可屏蔽中断进行优先权管理是8259A的主要任务。中断控制部分可以接收外界的8个中断请求,对应引脚IR0~IR7。
当IR引脚中断请求有效时,8259A的优先权电路经过判断确定当前最高优先权的中断请求,
通过本身的中断请求信号INT使处理器的可屏蔽中断请求引脚INTR有效,向处理器提出可屏蔽中断请求。
处理器在条件满足时进入中断响应周期,使中断响应信号INTA有效,读取8259A提供的中断向量号
当IR引脚中断请求有效时,8259A的优先权电路经过判断确定当前最高优先权的中断请求,
通过本身的中断请求信号INT使处理器的可屏蔽中断请求引脚INTR有效,向处理器提出可屏蔽中断请求。
处理器在条件满足时进入中断响应周期,使中断响应信号INTA有效,读取8259A提供的中断向量号
寄存器
中断请求寄存器(Interrupt Request Register,IRR)
保存8条外界中断请求信号IR0~IR7的请求状态。Di位为1表示IRi引脚有中断请求;为0表示该引脚无请求
中断服务寄存器(In-Service Register,ISR)
保存正在被8259A服务着的中断状态。Di位为1表示IRi中断正在服务中;为0表示没有被服务
中断屏蔽寄存器(Interrupt Mask Register,IMR)
保存对中断请求信号IR的屏蔽状态。Di位为1表示IRi中断被屏蔽(禁止);为0表示允许该中断。
IMR对各个中断的屏蔽是相互独立的,例如对较高优先权的中断请求实现屏蔽并不影响较低优先权的中断请求
IMR对各个中断的屏蔽是相互独立的,例如对较高优先权的中断请求实现屏蔽并不影响较低优先权的中断请求
与处理器接口
8259A通过双向三态的数据总线缓冲器与系统数据总线的接口,实现与处理器的数据交换。
交换的数据有写入8259A的4个初始化命令字ICW、3个操作命令字OCW和4个状态字;
还有在中断响应周期,8259A送出的中断向量号。读写控制逻辑具体控制接收CPU送来命令和读出8259A的状态
交换的数据有写入8259A的4个初始化命令字ICW、3个操作命令字OCW和4个状态字;
还有在中断响应周期,8259A送出的中断向量号。读写控制逻辑具体控制接收CPU送来命令和读出8259A的状态
中断级联
在一个系统中,8259A可以级联,有一个主8259A,若干个从8259A。从8259A最多可有8个,把中断源扩展到64个。
8259A内部的级联缓冲比较器完成级联任务
8259A内部的级联缓冲比较器完成级联任务
8259A在级联时,主8259A的三条级联线CAS0~CAS2作为输出线,连至每个从8259A的CAS0~CAS2。
每个从8259A的中断请求信号INT,连至主8259A的一个中断请求输入端IR。主8259A的INT线连至CPU的中断请求输入端INTR
每个从8259A的中断请求信号INT,连至主8259A的一个中断请求输入端IR。主8259A的INT线连至CPU的中断请求输入端INTR
主8259A和每个从8259A必须分别初始化和设置必要的工作状态。当任一个从8259A有中断请求时,经过主8259A向CPU发出请求。当CPU响应中断时,在第一个中断响应周期,主8259A通过三条级联线输出被响应中断的从8259A的编码。由此编码确定的从8259A,在第二个中断响应周期输出它的中断向量号
从片/开启缓冲器信号SP/EN具有两个功能。在缓冲工作方式下为输出信号,控制数据缓冲器(EN);在非缓冲方式下为输入信号,规定该8259A是主片(SP=1)还是从片(SP=0)
端口地址
中断过程
流程
1)8259A的一条或几条IRi信号高电平有效表示请求中断,使IRR的Di位置位。
2)8259A对这些请求进行分析,如果中断允许则向CPU发出INT信号。
3)CPU在允许可屏蔽中断状态时对INTR做出响应,产生中断响应周期。
4)8259A收到第一个INTA有效信号后,使最高优先权的ISR位置位,对应的IRR位复位。
启动LOCK信号,使中断响应过程中其他处理器不能对总线进行存取操作
中断控制器级联方式时选择从片
5)8259A在第二个INTA有效时,把中断向量号送上数据总线,供CPU读取。
读取外部送来的中断向量号(通常由中断控制器提供)
6)CPU利用向量号转至中断服务程序执行程序,直到执行IRET指令返回。
与此同时,若8259A工作在自动中断结束方式,在最后一个INTA时,发生中断的ISR相应位复位,8259A就认为中断已经完成。
如果8259A为非自动中断结束方式,就等待CPU发送中断结束命令,该命令来到时ISR相应位才复位,此时8259A完成对该中断的处理
与此同时,若8259A工作在自动中断结束方式,在最后一个INTA时,发生中断的ISR相应位复位,8259A就认为中断已经完成。
如果8259A为非自动中断结束方式,就等待CPU发送中断结束命令,该命令来到时ISR相应位才复位,此时8259A完成对该中断的处理
图
工作方式
图
优先权方式
(1)普通全嵌套方式
8259A的中断优先权顺序固定不变,从高到低依次为IR0,IR1,IR2,…,IR7
中断请求后,8259A对当前优先权最高的请求中断IRi予以响应,将其向量号送上数据总线,对应ISR的Di位置位,直到中断结束(ISR的Di位复位)
在ISR的Di位置位期间,禁止再发生同级和低级优先权的中断,但允许高级优先权中断的嵌套
普通全嵌套方式是8259A初始化后默认的工作方式,也是最常用的工作方式,常简称为全嵌套方式
(2)特殊全嵌套方式
特殊在当处理某一级中断时,允许同级中断的嵌套
一般用在8259A级联系统中,在这种情况下,主片8259A编程为特殊全嵌套方式,但从片仍处于其他优先权方式
当来自某一从片的中断请求正在处理时,一方面允许来自主片的优先权较高的其他引脚上的中断请求;
另一方面也允许来自同一从片的较高优先权的中断请求
另一方面也允许来自同一从片的较高优先权的中断请求
子主题
子主题
结束中断处理方式
(1)自动中断结束方式
处理器一进入中断过程,8259A就自动将中断服务寄存器中的对应位清除。
这样,尽管处理器正在执行某个设备的中断服务程序,但对8259A来说,中断服务寄存器中却没有对应位进行指示,表示已经结束了中断服务
这样,尽管处理器正在执行某个设备的中断服务程序,但对8259A来说,中断服务寄存器中却没有对应位进行指示,表示已经结束了中断服务
(2)普通中断结束方式
配合全嵌套优先权方式使用
当CPU用输出指令往8259A发出普通中断结束(End Of Interrupt,EOI)命令时,8259A就会把所有正在服务的优先权最高的中断ISR位复位
(3)特殊中断结束方式
配合循环优先权方式使用
屏蔽中断源方式
(1)普通屏蔽方式
(2)特殊屏蔽方式
在特殊屏蔽方式中,将IMR的Di位置1,就会同时使ISR的Di位置0。
这样,就会真正开放其他级别较低的中断,当然未被屏蔽的更高级中断也可以得到响应
这样,就会真正开放其他级别较低的中断,当然未被屏蔽的更高级中断也可以得到响应
因为在普通屏蔽方式中,如果ISR位没有复位,8259A就会据此而禁止所有优先权比它低的中断
中断触发方式
(1)边沿触发方式
8259A将中断请求输入端出现的上升沿作为中断请求信号。
IR出现上升沿触发信号以后,可以一直保持高电平
IR出现上升沿触发信号以后,可以一直保持高电平
(2)电平触发方式
中断请求端出现的高电平是有效的中断请求信号。在这种方式下,应注意及时撤除高电平
如果在发出EOI命令之前,或CPU开放中断之前,没有去掉高电平信号,则可能引起不应该有的第二次中断
数据线连接方式
(1)缓冲方式
8259A的数据线需加缓冲器予以驱动。
这时8259A把SP/EN引脚作为输出端,输出允许信号,用以锁存或开启缓冲器。
(2)非缓冲方式
在非缓冲方式时,SP/EN引脚为输入端,若8259A级联,由其确定是主片或从片。
编程
8259A能够开始工作前,必须进行初始化编程,也就是给8259A写入ICW。
在8259A工作期间,可以通过写入OCW将选定的操作传送给8259A,使之按新的要求工作。同时,还可以读取8259A的信息,以便了解它的工作状态。
在8259A工作期间,可以通过写入OCW将选定的操作传送给8259A,使之按新的要求工作。同时,还可以读取8259A的信息,以便了解它的工作状态。
初始化编程
初始化命令字(Initialization Command Words,ICW)
定义
初始化命令字ICW最多有4个,是8259A在开始工作前必须写入8259A的,而且必须按照ICW1~ICW4顺序写入。
其中ICW1和ICW2是必须送的,而ICW3和ICW4是由工作方式决定的
其中ICW1和ICW2是必须送的,而ICW3和ICW4是由工作方式决定的
ICW1初始化字
IC4(D0)
规定是否写入ICW4
IC4=1,要写入ICW4
而IC4=0,不写入ICW4,也即ICW4规定的位全为0
SNGL(D1)
规定单片或级联方式
SNGL=1,是单片方式,不需写入ICW3
SNGL=0,是级联方式,要写入ICW3
LTIM(D3)
规定中断触发方式
LTIM=1,是电平触发方式
否则为边沿触发方式
ICW1的D4位必须为1,用作ICW1的标志
ICW2中断向量字
设置中断向量号
T7~T3作为中断向量号的高5位
低3位由8259A自动按IR输入端确定:IR0为000,IR1为001,…,IR7为111
ICW3级联命令字
主片
每一位S0~S7表明IR0~IR7引脚上哪些接有从片
Si=1对应IRi接有从片
从片
ICW3的低3位ID0~ID2有效
它们的组合编码说明从片INT引脚接到主片的哪个IR引脚上
ICW4中断方式字
μPM(D0)
微处理器类型是16位8086(μPM=1)
8位8080/8085(μPM=0)
AEOI(D1)
采用自动中断结束(AEOI=1)
非自动中断结束(AEOI=0)
M/S(D2)
该8259A是主片(M/S=1)
从片(M/S=0)
BUF(D3)
采用缓冲方式(BUF=1)
非缓冲方式(BUF=0)
SFNM(D4)
特殊全嵌套方式(SFNM=1)
普通全嵌套方式(SFNM=0)
图
中断操作编程
操作命令字(Operation Command Words,OCW)
8259A工作期间,可以随时接收操作命令字OCW。OCW共有3个:OCW1~OCW3。
写入时没有顺序要求,需要哪个OCW就写入哪个OCW
写入时没有顺序要求,需要哪个OCW就写入哪个OCW
定义
OCW1屏蔽命令字
内容写入中断屏蔽寄存器IMR
Di=Mi对应IRi,为1禁止IRi中断
为0允许IRi中断
OCW2中断结束和优先权循环命令字
R(循环)、SL(设置优先权)和EOI(中断结束)3位配合使用
产生中断结束EOI命令和改变优先权顺序
L2~L0的3位编码指定IR引脚
OCW3屏蔽和读状态命令字
ESMM和SMM两位用于设置中断屏蔽方式
P、RR和RIS用于规定随后读取的状态字含义
状态字
CPU内部禁止中断时,或者不想用INT引脚向CPU申请中断时,我们可以通过查询字获知外界的中断请求情况
在查询字中,如果I位为1,表示有外设请求中断
W2~W0的编码(其编码规则同ID2~ID0)表明当前中断请求的最高优先权
图
应用
外部中断服务程序
驻留中断服务程序
第八章 定时计数控制接口
8253/8254
结构
内部结构
引脚
CLK时钟输入信号——在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减1。由于该信号通过“与门”才到达减1计数器,所以计数工作受到门控信号GATE的控制。
GATE门控输入信号——这是控制计数器工作的一个外部输入信号。在不同工作方式下,其作用不同,可分成电平控制和上升沿控制两种类型。
OUT计数器输出信号——当一次计数过程结束(计数值减为0),OUT引脚上将产生一个输出信号,其波形取决于工作方式。
处理器接口
区别
8254增加了一个读回命令和状态字
时钟输入频率8253支持2MHz、8254支持10MHz
时钟输入频率8253支持2MHz、8254支持10MHz
工作方式
流程
1)微处理器写入方式控制字,设定工作方式。
2)微处理器写入预置寄存器,设定计数初值。
3)对方式1和方式5,需要硬件启动,即GATE端出现一个上升沿信号;对其他方式,不需要这个过程,直接进入下一步,即设定计数值后软件启动
4)CLK端的下一个下降沿,将预置寄存器的计数初值送入减1计数器。
5)计数开始,CLK端每出现一个下降沿(GATE为高电平时),减1计数器就将计数值减1。计数过程要受到GATE信号的控制,GATE为低电平时,不进行计数
6)当计数值减至0,一次计数过程结束。通常OUT端在计数值减至0时发生改变,以指示一次计数结束
方式2、3会自动重复计数
图
方式0:计数结束中断
设置为方式0后,其输出OUT信号随即变为低电平
计数初值经预置寄存器装入减1计数器后,计数器开始计数,OUT输出仍为低电平
每输入一个时钟信号(下降沿),计数器的计数值减1
当计数值减为0即计数结束时,OUT端变为高电平,并且一直保持到该通道重新装入计数值或重新设置工作方式为止
GATE输入信号可控制计数过程。高电平时,允许计数;低电平时,暂停计数
计数期间给计数器装入新值,则会在写入新计数值后重新开始计数过程
方式1:可编程单稳脉冲
写入方式1的控制字之后(WR的上升沿),OUT将为高
当CPU写完计数值后,等待外部门控脉冲GATE启动
硬件启动后的CLK下降沿开始计数,同时输出OUT变低
计数到0,输出才变为高
计数过程中写入新计数值,将不影响当前计数
但若再次由GATE触发启动,则按新值开始计数
但若再次由GATE触发启动,则按新值开始计数
计数过程结束前,GATE再次触发,则计数器重新装入计数值,从头开始计数
方式2:频率发生器(分频器)
输出方式2的控制字后,OUT将为高
写入计数初值后,计数器开始对输入时钟CLK计数
直到计数器减为1时,OUT变低
计数过程中装入新值,将不影响现行计数;但从下个周期开始按新计数值计数
GATE为低电平,将禁止计数,并使输出为高。GATE变高电平,计数器将重新装入预置计数值
方式3:方波发生器
设置控制字后,输出为高
在写完计数值后就自动开始计数,输出仍为高电平
当计数值为偶数时,每来一个脉冲使得计数值减2
如果计数值为奇数,第一个脉冲使计数值减1、后续脉冲使计数值减2
计数值减为0的同时重置计数初值、输出信号变低,接着的一个脉冲使计数值减3、后续脉冲使计数值减2
计数值减为0的同时重置计数初值、输出信号变低,接着的一个脉冲使计数值减3、后续脉冲使计数值减2
方式4:软件触发选通信号
写入方式4的控制字后,OUT为高
写入计数值后开始计数(软件启动)
当计数值减为0时,OUT变低
经过一个CLK时钟周期,OUT又变高
经过一个CLK时钟周期,OUT又变高
计数过程中重新装入新值,将不影响当前计数
GATE为低禁止计数,变为高则计数器重新装入计数初值,开始计数
方式5:硬件触发选通信号
当写入方式5的控制字后,OUT为高
写入计数初值后,由GATE的上升沿启动计数过程(硬件启动)
当计数到0时,OUT变低,经过一个CLK脉冲,OUT恢复为高
计数过程中重新装入新值,将不影响当前计数
GATE又有触发信号,则计数器重新装入计数初值,从头开始计数
总结
计数值N与输出波形
改变计数值何时有效
改变计数值何时有效
门控信号的作用
编程
8253没有复位信号
写入方式控制字
写入计数值
选择二进制时,计数值范围为0000H~FFFFH,其中,0000H是最大值,代表65536
选择十进制(BCD码)时,计数值范围为0000~9999,其中0000代表最大值10000
读取计数值
使GATE信号为低
写入锁存命令
读取计数值后、或对计数器重新编程,将自动解除锁存状态
8254的读回命令
令3个通道的计数值和状态锁存
向CPU返回一个状态字
向CPU返回一个状态字
读回命令写入控制端口,状态字和计数值都通过计数器端口读取。
如果使读回命令的D5和D4位都为0,即计数值和状态字都要读回,则读取的顺序是:第一次输入指令读取状态字,接着的一条或两条输入指令读取计数值
如果使读回命令的D5和D4位都为0,即计数值和状态字都要读回,则读取的顺序是:第一次输入指令读取状态字,接着的一条或两条输入指令读取计数值
在IBM PC系列机上的应用
日时钟
原理
计数器0采用工作方式3;计数值写入0产生最大计数初值65536,因而OUT输出频率为1.19318MHz÷65536=18.206Hz的方波信号。结合硬件连接,门控GATE0接+5V为常启状态,这个方波信号将周而复始不断产生。OUT0端接8259A的IRQ0,用作中断请求信号,即每秒产生18.206次中断请求,或说每隔55ms(54.925493ms)申请一次中断。
DOS系统利用计数器0这个特点,通过08号中断服务程序(参见习题7.13)实现了日时钟计时功能,即记录18次中断就是时间经过了1秒
DOS系统利用计数器0这个特点,通过08号中断服务程序(参见习题7.13)实现了日时钟计时功能,即记录18次中断就是时间经过了1秒
DRAM定时刷新
原理
当门控GATE1接+5V,为常启状态时,才能重复不断地提出刷新请求;同时应该配合工作方式2或方式3进行重复计数。输出OUT1从低变高使D型触发器置1,Q端输出一正电位信号,作为主存刷新的请求信号;一次刷新结束,响应信号将触发器复位。
PC/XT机要求在2ms内进行128次刷新操作,PC/AT机要求在4ms内进行256次刷新操作。由此可算出每隔2ms÷128=15.6μs必须进行一次刷新操作。这样,将计数器1置成方式2,计数初值为18,每隔18×0.838μs=15.084μs产生一次刷新请求,满足刷新要求
PC/XT机要求在2ms内进行128次刷新操作,PC/AT机要求在4ms内进行256次刷新操作。由此可算出每隔2ms÷128=15.6μs必须进行一次刷新操作。这样,将计数器1置成方式2,计数初值为18,每隔18×0.838μs=15.084μs产生一次刷新请求,满足刷新要求
扬声器控制
原理
计数器2的OUT输出端接扬声器,只要输出一定频率的方波,经滤波后得到近似的正弦波,就可以推动扬声器发声
编程
初始化
驱动
必须使PB0和PB1同时为高电平,扬声器才能发出预先设定频率的声音。
综合测试
可编程硬件延时
日时钟功能调用
原理
通过读取日时钟计时变量,把要延时的时间(如5秒)以计时单位形式与当前计时变量相+(如5×18=90)。
然后,程序不断读取计时变量,并与期望值相比较,当两值相等时,表示延时时间到,可继续执行操作
然后,程序不断读取计时变量,并与期望值相比较,当两值相等时,表示延时时间到,可继续执行操作
实时时钟中断
要求延时55ms以下时
第九章 DMA控制接口
8237A
寄存器结构
操作有时候需要配合软件命令:不通过数据总线写控制字,直接由地址总线和控制信号译码实现操作
通道寄存器16位
现行地址寄存器
保持DMA传送的当前地址值
每次传送自动+1或者-1
现行字节数寄存器
剩余字节数
每次传送自动-1
从0减到FFFFH,结束
如果要传送n字节,需要写入n-1
基地址寄存器
现行地址寄存器的初始值
不能读出
基字节数寄存器
现行字节数寄存器
不能读出
控制和状态寄存器
方式寄存器
6位,4个通道各有一个
模式寄存器
8
存放相应通道的方式控制字
命令寄存器
8
存放8237A命令字
可进行传输周期压缩,3->2
写信号可扩展到S3周期
写信号可扩展到S3周期
状态寄存器
8
屏蔽寄存器
4
请求寄存器
4
临时寄存器
8
引脚
请求与响应信号
DREQ0-DREQ3
DMA通道请求
复位后初始为高电平有效
HRQ
总线请求
向CPU申请使用系统总线
HLDA
总线响应
表示8237A取得了总线的控制权
DACK0-DACK3
DMA通道响应
通知外设
传送控制信号
A0-A7
输出低8位存储器地址
DB0-DB7
输出高8位存储器地址
也用于数据传送
ADSTB
地址选通
锁存DB0-DB7的高8位地址到外部锁存器
AEN
地址允许
将锁存的高8位地址送入系统总线
在DMA传送时也可用来屏蔽别的系统总线驱动器
READY
EOP
过程结束
字节寄存器计数从0减到FFFFH时,输出一个低有效脉冲,终止DMA传送
若由外部输入一信号使EOP变低,则终结DMA传送
处理器接口信号
DB0-DB7
A0-A3
低4位输入地址线
选择芯片内部寄存器
CS
片选
低有效时,与CPU通过数据线通信,主要完成对8237A的编程
RESET
置位屏蔽寄存器
清除其余寄存器
图
工作时序
空闲周期:受CPU控制时
始终处于Si状态
有效周期
过程
Si
初始下降沿检测到有DREQ时,下一周期进入S0
且在上升沿使BRQ变成有效
且在上升沿使BRQ变成有效
S0
持续S0状态直到HLDA响应
上升沿检测到HLDA有效,下一周期进入S1
S1
使AEN有效
从S1开始
一方面要把存储器地址高8位通过DB输出
另一方面发出ADSTB,利用下降沿锁存地址高8位
同时低8位地址通过A输出,一直保持
S2
向外设输出DMA响应信号DACK
S3
数据传送
可插入Sw等待周期
S4
图
工作方式
传送方式
单字节
效率低
CPU有机会获得主权
数据块
效率高
CPU无法处理其他DMA请求,无法处理中断
请求传送
由DEAQ信号控制传送
外设可控制传输速率
级联方式
存储器到存储器
固定使用通道0和1
寄存器存储
通道0的地址寄存器
源区地址
通道1的地址寄存器
目的区地址
通道1的字节数寄存器
字节数
由设置通道0的软件请求启动,每完整传送一个字节花8个周期
传送类型(前三种工作方式)
DMA读
存储器输出外设
MEMR有效时读出
IOW有效时写入
DMA写
DMA校验
空操作
优先权方式
多个通道不允许嵌套
固定优先权
0最高
循环优先权
最近服务最低
端口地址
图
编程
第十章 并行接口
8255A
结构与引脚
工作方式
基本输入输出
适用于无条件传送
可配合状态端口使用查询传送
锁存输出,不锁存输入
选通输入输出
锁存输入与输出
输入
控制信号线
-STB
外设提供的选通信号
有效时锁存输入数据至8255A的输入寄存器
IBF
8255A输出,输入缓冲器满
有效时表示数据已经锁存在输入寄存器
由STB低电平置为高
由RD上升沿置为低
由RD上升沿置为低
INTR
8255A输出给CPU的中断信号
请求CPU读取数据
STB有效、IBF有效、中断允许时置为高
RD下降沿置为低
RD下降沿置为低
图
输出
信号线
-OBF
8255A输出给外设,输出缓存器满
有效时表示CPU已输出数据到对应端口
WR上升沿置为有效
ACK有效置为无效
ACK有效置为无效
-ACK
外设响应信号
指示外设已接收端口数据
INTR
外设已接收数据,8255A请求CPU继续提供数据
图
双向选通传送
锁存输入与输出
可用查询或中断实现
区别
图
编程
写入方式控制字
读取数据端口
读写端口C
方法
读出内容
控制字
应用
打印机
方式0
原理
结构
编程
方式1
原理
结构
编程
键盘
扫描法
快速扫描有无按键按下
解析按键
LED
单个
多个
原理
结构
编程
0 条评论
下一页
为你推荐
查看更多