微机与接口复习大纲
-
-
- 第一章
- 第二章
- 第三章
- 第五章
- 第六章
- 第七章
- 第八章
- 第九章
-
第一章
-
微机的主要特点
- CPU集成
- 字长仅为4~64位
- 地址空间64K~64G
- 外套比较简单
-
-
微机硬件核
- CPU
- 系统总线生成电路
- 系统时钟产生电路
-
用于连接主控部件和控制部件,主控部件只允许在任何时候行使系统总线控制权
-
地址总线AB(Where Bus)
主控部件寻址受控部件每个单元地址信号线的集合
-
数据总线DB(What Bus)
数据传输的信号线集合在主控部件和受控部件数据单元中
-
控制总线CB(When Bus)
操纵AB和DB信号的生成和时间,实现所有控制信号的集合,以实现主控部件指定数据传输过程所需的所有控制信号
-
-
存储器
-
外设接口及外设
-
-
生成系统总线信号,从而控制微机的其他组件
-
半导体存储器的类型和特点常用于微机
-
随机存储器RAM(可读写存储器)
当前微机运行系统、用户程序和数据存储器。
-
只读存储器ROM
固化存放微机启动时所需的一些列程序(系统自检、系统初始化、操作系统引导等)。在PC上被称作BIOS,当主机出现时,制造商写入
-
-
两种类型的微机外设
-
用于转移主控部件和外部设备
串行接口、并行接口、数模/模数转换接口等
-
用于辅助CPU完成系统管理控制
8259、8253等
-
-
-
字长
一次可处理的二进制数最多位数。4、8、16、32、64
-
速度
每秒执行的指令数
-
内存空间
16位可直接找到地址线的内存字节(64K)、20位(1M)、24位(16M)、32位(4G)、36位(64G)
-
系统结构及外部设备配置
-
第二章
-
8086CPU内部结构(EU/BIU)及各寄存器的作用及使用特点
-
内部结构
-
执行部件EU
由算数逻辑单元(ALU)、8个通用寄存器、标志寄存器和控制电路组成。
,通过BIU与外部系统进行数据交换
-
总线接口部件BIU
实现的控制并与外部进行
-
-
寄存器及作用
-
通用寄存器:AX,BX,CX,DX
可按16位读写,也可分别进行读写。可以存放数据也能存放地址。
- AX:累加器
- BX:基地址寄存器
- CX:计数寄存器
- DX:数据寄存器
-
指针及变址寄存器:IP、BP、SP、SI、DI
只能以16位进行操作
- IP 指令指针
- BP 基数指针
- SP 堆栈指针
- SI 源变址寄存器
- DI 目的变址寄存器
-
段寄存器
- 代码段寄存器CS,与IP共同寻址内存代码区
- 堆栈段寄存器SS,与SP或BP共同寻址内存堆栈区
- 数据段寄存器DS,与SI、DI、BP等寻址内存数据区
- 附加段寄存器ES,与SI、DI、BP等寻址内存数据区
-
(1)操作、运算结果标志位(只有CF可以指令设置)
-
进位标志CF(Carry Flag):产生进位时位1
-
奇偶标志PF(Parity Flag):运算结果低八位偶数个1时为1,奇数个时为0
-
辅助进位标志AF(Auxiliary Flag):两个直接运算低半个字节进位/错位时为1
-
零标志ZF(Zero Flag):运算结果为0时为1
-
符号标志SF(Sign Flag):最高位为0时为0
-
溢出标志OF(Overflow Flag):溢出时为1
(2)控制标志位(用户设置)
- 地址方向标志DF(Direction Flag):DF = 1,地址朝减小方向变化
- 中断允许标志IF(Interrupt Flag):为1时允许
- 自陷标志TF(Trap Flag):为1时单步调试
-
-
-
-
(PPT)
-
20位物理地址的产生
由16位段地址和16位偏移地址组成。
例1:段地址4321H,偏移地址1234H。求物理地址
段地址左移四位:43210H
与偏移地址相加,得到物理地址:44444H
例2:(PPT,常考)
已知给定堆栈区的地址范围为:1250H:0000H~1250H:0100H,(SP)=0052H
问:(1)栈顶地址是什么?(2)栈底地址是什么?(3)SS中的内容是什么?(4)若在堆栈中存入数据2345H,请画出堆栈区图,标明数据存放位置及对应的段地址和偏移地址。
答:
(1)栈顶地址:12500H。
(2)栈底地址:12600H。
(3)SS:1250H。
(4)数据存放段地址1250H。偏移地址0050H(低八位),0051H(高八位)。
-
-
(掌握概念)
- 8086按16位传输数据的,有16个地址/数据复用引脚。作为地址/数据复用引脚,在总线周期的T1状态用来输出要访问的存储器或I/O端口的地址,T2~T3状态,对于读周期来说,是处于浮空状态,而对于写周期来说则传输数据。
- 在最小模式下ALE信号为地址锁存允许信号输出,在任一总线周期的T1状态,ALE输出有效电平,以表示输出的是地址信息,ALE信号不可浮空。
-
(PPT,掌握概念)
- CPU每完成一次总线操作(与外部更换一次数据;一次读或一次写)称为一个“总线周期”。
- CPU与外部交换一次数据至少,被称为基本总线周期。(无等待状态)
- CPU主时钟周期也简称为时钟周期,是计算机内部的最小计时单位,是CPU主时钟频率的倒数
-
(PPT,)
- MOV:寻址寄存器,访问范围 2 20 = 1 M 2^{20} = 1M 220=1M
- IN、OUT:寻址外设,访问访问 2 16 = 64 k 2^{16}=64k 216=64k
-
存储空间/外设空间的概念及CPU在同一套总线下区分存储器和外设的方法
-
(8086CPU在16位数据线时的存储器组织及字节/字访问原则)
- 8086CPU的储存体由两个8位数据宽度的储存体构成,分别由奇地址和偶地址访问。奇地址存储体的片选信号是,偶地址的片选信号是。
- 高字节数据存放在高地址单元,低字节数据存放在低地址单元。
- 字的读取最好始于偶地址(A0=0)。偶地址直接读取仅AD0~AD7为有效数据; 奇地址直接读取仅AD8~AD15为有效数据。
- 始于偶地址的字读/写可在一个总线周期内完成(AD0~AD15上数据全部有效)。而始于奇地址的字读/写至少需要两个总线周期(第一次读奇地址,第二次读偶地址)。
-
(PPT)
- 最大模式的主要特点是:CPU的主要控制信号不是独立的信号引脚形式,而是信号组合的形式。例如用3根引脚的000~111电平组合表示8个不同的独立控制信号。但由于大多数受控部件内部不具有控制信号译码功能,只能接受独立的控制信号。
- 因此这种方式必须在外部增配信号译码电路,将组合信号变换为独立的控制信号线。虽然需要增加外部器件,但可换来以下好处:(1)扩充了控制信号的类型和数量;(2)使得系统可以构建两套(层)总线。外部增加的专用器件称为总线控制器,主要用于组合控制信号的译码及总线管理。
-
局部总线与系统总线概念
- 片内总线:连接微处理器内各个部分
- 片级总线:连接微处理器、存储器、IO接口等,构成主板
- 系统总线:连接外设(扩充插槽)
-
(PPT+书本)
-
时钟发生器8284
产生系统时钟,对READY和RESET信号进行同步。在时钟后沿给CPU输出READY信号和RESET信号。
-
地址锁存器8282(通常3片)
- 锁存地址信号。
- 提供较大的地址总线驱动能力。
在需要时隔离CPU地址线与系统总线的联系(OE接高电平)。
-
数据收发器8286(通常2片)
- 提供较大的数据总线驱动能力
- 选择数据传送方向
- 选通/隔离CPU数据线与系统总线
-
-
总线的隔离方式及共享的原则 -
最大模式下总线控制器8288的作用 -
CPU指令的执行与其外部引脚的对应关系
-
- T1状态
- 根据读写送出DT/R有效电平
- 根据MOV还是IN/OUT送出M/IO
- 根据操作数位数送出选通高8位的BHE
- 送出地址AD0~AD19,以及地址锁存信号ALE
- T2状态
- AD0~AD15置于高阻态
- 送出状态信息S3~S6
- 发出读写信号
- 读信号使外设/存储器数据送上总线,写信号将CPU数据送上总线
- T3状态
- READY低电平,插入等待周期
- READY高电平,将外部AD15~AD0从地址总线切换到数据总线,进入T4
- T4状态
- 产生读写信号上升沿,完成读写操作
- 恢复有关引脚初始状态
- T1状态
第三章
-
8086 CPU不同寻址方式所针对的数据载体(指令、寄存器、存储器)
-
源数据位数与目的数据载体容积的一致性
-
多字节数据在存储器中的存取顺序
-
堆栈的操作规则及数据在存储器中的存取顺序
-
条件转移指令中相对地址的含义
-
不同寻址方式的使用及规则
-
寻址方式中特定寄存器和隐含寄存器的使用
第五章
-
- 接口电路内部必须具备一些不同功能的可以由CPU用IN/OUT指令通过三总线按特定地址进行访问的单元(寄存器),通常将它们称之为外设端口或I/O 端口。
- 接口类型
- 数据中转型接口
- 辅助控制类接口
-
接口电路中具备不同功能的可由CPU三总线按特定地址进行访问的
-
输入数据寄存器和输出数据寄存器组(数据中转型接口中用于暂存数据)
-
控制寄存器组(用于接受CPU 的控制命令)
-
状态寄存器组(用于提供CPU 可查询的状态信息)
-
-
-
8086通过IN/OUT指令驱动A15~A0共16根地址线进行I/O端口寻址。由于一般情况下用不上这么大的地址空间,IBM PC整机上只采用了A9~A0共10根地址线用于I/O寻址,寻址范围000H ~ 3FFH。
端口地址:043H
片选信号: Y 2 ‾ \overline {Y_2} Y2
例:8086CPU最多可寻址多少个I/O 端口。如果微机内共有7个接口芯片,其中一个接口芯片有6个独立端口地址,CPU 应如何寻址这些端口?请画出原理性电路,并写出读写这些端口的指令。
答:最多可寻址 2 16 B = 64 K B 2^{16}B=64KB 216B=64KB个I/O端口。
用74LS138产生片选信号,用A2~A0产生片内寄存器选择信号。
读写指令:(ADDR为地址端口)
IN AL,ADDR
OUT ADDR,AL
示意图如下:
例:如果只采用A5~A0 共6 根地址线对8255 和8259 进行地址译码,且要求8255 口地址为10H、12H、14H、16H;8259 的口地址为18H、1AH。请在下图画出正确连线。
答:
8255:10H=010000B 12H=010010B 14H=010100 16H=010110B
8259:18H=011000B 1AH=011010B
可以看出8255内部寄存器通过A2A1进行选择,8259内部寄存器通过A1进行选择。
当(A5A4A3A0)=(0100)时,选中8255,设此时采用Y0
当(A5A4A3A0)=(0110)时,选中8255,设此时采用Y1
因此74LS138中, B = 0 C = 0 A = A 3 G 1 = 1 G ‾ 2 A = 0 G ‾ 2 B = 0 B=0\quad C=0\quad A=A3\quad G_1=1\quad \overline G_{2A}=0\quad \overline G_{2B}=0 B=0C=0A=A3G1=1G2A=0G2B=0
因此连线如图所示(连接方法不唯一):
针对I/O地址译码,请指出一下地址译码电路 C S 1 ‾ \overline{CS1} CS1对应的I/O地址范围
C S 1 ‾ \overline{CS1} CS1选通时, G A = 1 G ‾ B 1 = 0 G ‾ B 2 = 0 ( C B A ) = ( 001 ) G_A=1\quad \overline G_{B1}=0\quad \overline G_{B2}=0\quad (CBA)=(001) GA=1GB1=0GB2=0(CBA)=(001)
即A9=1,AEN=A8=0,A7=A6=0,A5=A4=0,A3=1,(A2A1A0)=(000B)~(111B)
因此I/O地址范围为(1000001000B) ~ (1000001111B),即208H~20FH
-
-
- 直接传送方式:CPU两次IN/OUT之间操作不延时。用于外设速度足够快
- 程序延时传送方式:在两条IN/OUT之间插入一些无意义的指令
- 查询传送方式:在一条IN/OUT指令完成后,CPU不断查询接口芯片提供的就绪信号来决定是否进行下一条IN/OUT
- 中断传送方式:在没有中断请求时运行主程序或其他程序。外设准备好后发送中断请求,CPU响应中断并在中断处理程序中执行IN/OUT指令
- DMA传送方式:由DMA控制器取代CPU,内存与外设之间进行成块的数据传输
-
CPU对外设端口的访问指令及对应外部引脚信号(变化)
- M / I O ‾ M/\overline{IO} M/IO为低电平
- AD15~AD0产生地址信号
- W R ‾ \overline{WR} WR、 R D ‾ \overline{RD} RD产生读写信号
-
CPU对外设端口的寻址方式以及与存储器寻址的不同点
- 寻址空间不同
-
8086/8088CPU产生IOR和IOW信号的两种方法
-
M/IO作为74LS138选通信号
第六章
-
8255 有哪几种工作方式、各适用哪些端口。在这些方式中端口C 各起什么作用?
端口:
- A:工作方式0,1,2
- B:工作方式0,1
- C:工作方式0
工作方式:
- 方式0:无固定信号联络线的输入/输出方式
- 方式1:有信号联络线的输入/输出方式
- 方式2:双向数据传送方式,只适用于端口A
-
键盘扫描
行列式键盘:行PA3 ~ PA0,列PC3 ~ PC0
-
行扫描法
- 向行线输出全0,判断列线的情况。若列输入值有0,这说明有键按下。获取列值
- 一行一行输出0,判断列线输入是否有0。获取行值
- 行列值相加,计算按键位置
MOV DX,CON8255 MOV AL,81H OUT DX,AL BEGIN: MOV AL,00H MOV DX,A8255 OUT DX,AL ;输出行值 MOV DX,C8255 IN AL,DX ;读入列值 AND AL,0FH CMP AL,0FH JZ BEGIN ;列值全为1,无键按下 CALL DELAY ;键盘防抖动 MOV AH,FEH ;AH=11111110B,开始扫描 MOV CX,04 NEXT: MOV AL,AH MOV DX,A8255 OUT DX,AL MOV DX,B8255 IN DX,AL AND AL,0FH CMP AL,0FH JNZ ANS ;有键按下 ROL AH,1 ;AH左移 LOOP NEXT JMP BEGIN ANS: ;AH低4位行值,AL低4位列值 SHL AH,1 SHL AH,1 SHL AH,1 SHL AH,1 ADD AL,AH
-
行反转法
- 向行线输出全0,判断列线的情况。若列输入值有0,这说明有键按下。获取列值
- 将列值输出,读取行值(需修改控制字)
MOV DX,CON8255 MOV AL,81H OUT DX,AL BEGIN: MOV AL,00H MOV DX,A8255 OUT DX,AL ;输出行值 MOV DX,C8255 IN AL,DX ;读入列值 AND AL,0FH CMP AL,0FH JZ BEGIN ;列值全为1,无键按下 CALL DELAY ;键盘防抖动 MOV AH,AL ;列值保存到AH MOV DX,CON8255 MOV AL,90H OUT DX,AL MOV AL,AH MOV DX,C8255 OUT DX,AL MOV DX,A8255 IN DX,AL AND AL,0FFH ;AH低4位行值,AL低4位列值 SHL AH,1 SHL AH,1 SHL AH,1 SHL AH,1 ADD AL,AH
-
第七章
-
定时计数器基本概念
- 定时器:对等周期输入时钟脉冲分频,产生不同频率的输出脉冲
- 计数器:对输入脉冲的个数进行计数,从计数初值N开始减计数。计数完成后输出电平产生变化
- 起始触发:写入控制字后启动减一计数器开始计数工作
- 重触发:按计数初值重新开始计数
- 软件触发:由程序向计数器写入初值来启动
- 硬件触发:由门控信号触发重新计数
-
- 方式0(软件起始触发,软件重触发)
- 计数器,只计数一轮
- 计数初值写入后CLK下降沿载入计数初值,开始计数
- 计数期间,OUT为低电平。计数完成,OUT为高电平
- GATE高电平计数,低电平暂停,重新变高从暂停值开始继续计数
- 重新写入计数初值,则在下一个CLK下降沿载入计数初值,重新计数
- 方式1(硬件起始触发,硬件重触发)
- 计数器
- 计数初值写入后,需要GATE上升沿后下一个CLK下降沿才载入计数器初值
- 写入初值后,OUT为高;计数期间时,OUT为低;结束计数,OUT为高
- 计数期间GATE上升沿,则在下一个CLK下降沿处重新载入计数初值
- 计数期间重新写入计数初值,不影响当前计数过程。只有计数完成且GATE信号重新触发后,才会重新载入计数初值,开启新一轮计数
- 方式2(软件起始触发,硬件重触发)
- 定时器,负脉冲信号
- 计数初值写入后CLK下降沿载入计数初值,开始计数
- GATE由高变低,计数停止。由低变高,开始新一轮计数
- 每个计数周期只有最后一个时钟周期(即计数寄存器值为1时),OUT为一个周期低电平。之后重新开始计数(3—2—1—3—2—1)
- 重新写入计数初值且GATE为高时,在下一个周期重新载入计数初值
- (软件起始触发,硬件重触发)
- 规则与方式2相同
- 前一半输出高电平,后一半输出低电平。(奇数时高电平多一个)
- 方式4(软件起始触发,软硬件重触发)
- 计数器
- 产生。即计数过程OUT为正,计数完成OUT为一个时钟周期的负脉冲
- 方式5(硬件起始触发,硬件重触发)
- 计数器
- 产生
- 其余规则同方式1
- 方式0(软件起始触发,软件重触发)
-
8253编程相关
- 读取时需要进行锁存,读取结束锁存自动失效。
- 定时器计数初值设置: N = f i n f o u t N=\frac{f_{in}}{f_{out}} N=foutfin
- 16位计数时,分两次OUT数据。先低后高
第八章
-
PC机上的中断系统
- 硬件部分
- CPU内部中断逻辑
- 外部非屏蔽中断源控制逻辑
- 外部可屏蔽中断源控制逻辑8259
- 软件部分
- 中断向量表
- 中断相关指令
- 8259设置程序和中断向量表设置程序
- 中断处理程序
- 硬件部分
-
中断源
- 来自CPU内部中断源
- 除法错误
- 溢出(OF=1时执行INTO)
- 单步执行
- 中断指令 INT n
- 来自CPU外部中断源
- 可屏蔽中断INTR
- 不可屏蔽中断NMI
- 来自CPU内部中断源
-
中断向量和中断向量表
-
中断向量号
为不同中断源分配的一个唯一的编号。
-
中断向量
中断服务程序的入口地址,由16位段地址和16位偏移地址组成。每个中断向量占4个字节。
-
中断向量表
00000H~003FFH(1KB)用于存放256个中断向量,这个储存区被称为中断向量表。
中断向量号n对应:
- n × 4 + 0 n\times 4+0 n×4+0:IP低8位
- n × 4 + 1 n\times 4+1 n×4+1:IP高8位
- n × 4 + 2 n\times 4+2 n×4+2:CS低8位
- n × 4 + 3 n\times 4+3 n×4+3:CS高8位
中断向量表分成三个部分:
- 专用中断:0~4号
- 保留中断:5~31号
- 用户中断:32~255号
-
-
8259
-
主要功能
- 8个中断源
- 主从级联最多64个中断源
-
结构
-
中断请求寄存器IRR
保存当前请求信号。哪一个中断源有请求,哪一位被置为一。
-
中断屏蔽寄存器IMR
8位寄存器,存放中断屏蔽字。
-
中断服务寄存器ISR
记录当前正在处理的中断请求
-
-
8259与CPU之间交互
- 8259向CPU发送中断请求信号INT
- CPU应答中断,向8259的INTA发送两个负脉冲
- 第一个负脉冲
- 禁止IRR锁存新的中断
- ISR对应位置1,IRR当前相应清零
- 把当前终端编号送入ICW2的低3位,组成8位中断向量号
- 第二个负脉冲
- 将中断向量号ICW2送上数据总线
- 如果设置了自动结束,则将ISR对应位清零
- 第一个负脉冲
-
中断优先级
-
中断嵌套方式
- 一般全嵌套方式:不响应同级中断
- 特殊全嵌套方式:响应同级中断
一般主片特殊全嵌套方式,从片一般全嵌套方式
-
中断屏蔽方式
- 普通屏蔽方式:设置IMR进行屏蔽,低优先级自动屏蔽
- 特殊屏蔽方式:只屏蔽同级中断,高低优先级都能打断
-
中断优先级管理方式
- 固定优先级方式:IR0最高,IR7最低
- 优先级自动循环方式:响应某个中断后,该中断优先级降到最低,其后一个中断优先级最高。
- 优先级特殊循环方式:通过指令使某个优先级降到最低
-
-
结束中断方式
-
非自动中断结束方式
- 普通EOI命令:清除ISR中已置位的最高优先级的那一位,适用于一般全嵌套方式
- 特殊EOI命令:优先级最高的那一位不一定正在服务。因此特殊EOI命令要包含ISR中要复位的位编码信息。
-
自动结束中断方式
第二个INTA信号自动将ISR清零。会导致所有中断请求都得到响应,仅适合不嵌套情况。
-
-
可屏蔽中断程序组成成分
- 中断处理程序注意事项
- 8259编程
- 偶地址:ICW1、OCW2、OCW3
- 奇地址:ICW2、ICW3、ICW4、OCW1
-