《微型计算机原理与接口技术》期末总复习 —— 一篇匆匆忙忙的复习笔记

Posted 一支王同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《微型计算机原理与接口技术》期末总复习 —— 一篇匆匆忙忙的复习笔记相关的知识,希望对你有一定的参考价值。

这篇复习笔记是针对《微型计算机原理与接口技术》后面几章的

前面的汇编复习内容在 “零、学习笔记总目录” 的 “汇编考前复习” 中

这篇笔记中可能存在一些错误,欢迎在留言区提出,笔者会及时更正。

所有内容更正、更新请看 六、更新内容




零、学习笔记总目录

上半学期所有文章链接:

【计算机与UNIX汇编原理①】——计算机基础【原码 补码 反码 移码 BCD码 计算机系统的基本组成等】.

【计算机与UNIX汇编原理②】——存储器系统【RAM ROM 高速缓冲存储器Cache】.

【计算机与UNIX汇编原理③】——80X86微处理器【 通用寄存器、实模式、逻辑地址与物理地址】.

【计算机和UNIX汇编原理④】——指令系统(上)【标志寄存器 立即寻址 寄存器寻址 直接/寄存器/基址/变址寻址 万字总结】.

【计算机与UNIX汇编原理⑤】——指令系统(下)【 2万5千字总结 】.

【计算机和UNIX汇编原理⑥】——UNIX的编程基础【SEGMENT、ASSUME、PROC、ORG、END】.

【计算机与UNIX汇编原理⑦】——DOS/BIOS功能调用【实现两数相加 + Hello World】.

【计算机与UNIX汇编原理⑧】——UNIX编程进阶【分支程序、循环程序、子程序、宏指令】.

【计算机与UNIX汇编原理⑨】——实验报告一【题目:排除语法错误、统计数字】.

【计算机与UNIX汇编原理⑩】——汇编语言程序设计举例【三种进制转换】.

【计算机与UNIX汇编原理⑪】——实验报告二【用户登录验证程序的实现+支持回退功能】.

【计算机与UNIX汇编原理⑫】——汇编考前复习【重要知识点 + 基础题 + 易错题 + 难题解析】.


下半学期所有文章链接:

【计算机原理与接口技术(UNIX)⑬】——总线概述【总线与总线标准、总线结构、ISA、PCI、IDE】.

【计算机原理与接口技术(UNIX)⑭】——再讲存储器系统【位、字扩展法 + 详细例题】.

【计算机原理与接口技术(UNIX)⑮】——输入/输出系统【查询方式、中断控制方式、DMA 、8237A】.

【计算机原理与接口技术(UNIX)⑯】——中断系统 [ 2万5千字总结、8259A ].

【计算机原理与接口技术(UNIX)⑰】——微型计算机系统的串行通信 [ 8250 + 具体样例 + 上机实验 ].

【计算机原理与接口技术(UNIX)⑱】——并行 I/O 接口 [ 芯片8255A ].

【计算机原理与接口技术(UNIX)⑲ 完结篇】——可编程计数器 8254 [ 流光发生器、8254工作方式检测程序的设计].



一、输入输出系统

1.1 接口电路的作用

接口电路的作用是什么?I/O接口应具备哪些功能?
① 接口电路的作用:是使 CPU 与外设的信息交互能够达到最佳匹配,实现高效、可靠的信息交换。(信息中转站)
② 接口电路的功能:[1]数据缓冲功能。[2]联络功能。[3]寻址功能。[4]数据转换功能。[5]中断管理功能。


1.2 端口的概念、分类

端口的概念?端口有几类?
① 能与 CPU 交换信息的寄存器成为 I/O 端口寄存器,简称 “端口”。
② 端口有 3 类:数据端口、状态端口、控制端口



1.3 I/O 端口的编址方式

I/O 端口有哪两种编址方式?PC 系列机中采用哪种编址方式?
① 端口和存储单元统一编址、I/O端口独立编址。
② 在 PC 系列机中,I/O 端口采用独立编址。



1.4 最常用的 I/O 指令

1.直接寻址 I/O 指令(8位端口地址)
   IN 	AL, n       
   OUT 	n, AL
2. DX 间接寻址 I/O 指令(当端口地址 > 8位)
   IN 	AL, DX       
   OUT 	DX, AL


1.5 微机系统与 I/O 端口的信息交换

微型计算机系统和输入输出设备交换信息的方式有几种?各有什么特点?
答一:有 4 种:无条件传送方式、查询方式、中断控制方式、直接存储器存取方式(也称为 DMA 方式)。

无条件传送方式的特点:假设外设已准备好,即输入数据已准备好,且输出设备空闲,此时 CPU 可以直接用 IN 或 OUT 指令完成与接口之间的数据传送。

查询方式的特点:只有确认外设已具备输入或输出条件后,才能用 IN 或 OUT 指令完成数据传送。

中断控制方式的特点:如果外设未做好数据传送准备,CPU 可执行与传送数据无关的其他指令;当外设做好传送准备后,可向 CPU 发出中断请求,请求为之服务。

直接存储器存取方式的特点:在外设与内存之间用硬件实现的直接进行的数据交换,不需要通过 CPU 间接交换(即不需要 CPU 的参与)。



1.6 直接存储器存取(DMA)方式

DMA (Direct Memory Access) : 利用硬件完成高速外设与系统RAM之间的信息交换。

DMAC: DMA 控制器是实现DMA传送的核心芯片。优点: 传送速度快 缺点:硬件电路比较复杂。

DMA 传送方式和中断方式相比,各有什么特点? ⭐️⭐️
PPT给的答案:①响应时间:CPU接到 “中断请求” 后要等到当前指令执行完毕才响应,而 CPU 接到 DMAC 的 “总线请求” 后,只要当前指令的当前总线周期执行完毕就响应。②数据传送速度:DMAC 传送比中断传送要快。

笔者给的答案:采用中断方式进行数据传送,可以提高 CPU 的利用率。但是,中断传送是由 CPU 通过程序来实现的,每次执行中断服务子程序需要保护断点,在中断服务子程序中,需要保护现场,为中断源服务,中断服务结束还需要恢复现场,CPU 需要执行若干指令来完成上述工作。而 DMA 传送方式就不需要 CPU 的干预,因此省去了 CPU 取指令、指令译码、存取数据等操作,提高了数据的传送速率,但缺点是硬件电路比较复杂



1.7 补充简答题

1、外设为什么要通过接口电路和主机系统相连?
答:由于输入输出设备的多样性和接口电路的复杂性, CPU 必须通过接口电路与外设进行信息交换。

2、DMA 系统完成的功能是什么?
答:实现存储器和存储器之间或存储器和 I/O 设备之间直接进行的高速数据传送,(不需要 CPU 的干涉)。

3、8237A 的主要功能是什么?
答:代替 CPU 控制总线,实现 I/O 接口与存储器之间的数据传送。(DMAC: DMA 控制器是实现 DMA 传送的核心芯片。8237A 芯片就是书上的 DMAC,即 “DMA控制器” )

4、8237A 内部寄存器各有什么作用?【PPT没有,老师没讲】
① 控制寄存器:确定其工作时序、优先级方式、DREQ 和 DACK 的有效电平以及是否允许工作。
② 方式寄存器:确定某一通道的传送方式、数据传送类型。
③ 地址寄存器:存储需要传输数据的地址。
④ 字节寄存器:存储需要传输数据的字节数。
⑤ 状态寄存器:高 4 位表示当前 4 个通道是否有 DMA 请求,低 4 位表示 4 个通道的 DMA 是否传送完。
⑥ 请求寄存器:使某一通道的请求触发器置0/1。
⑦ 屏蔽寄存器:使某一通道的屏蔽触发器置0/1。
⑧ 多通道屏蔽寄存器:一次性能完成对 4 个通道的屏蔽设置。
⑨ 清屏蔽寄存器:用来清除 4 个通道的屏蔽触发器。
⑩ 暂存寄存器:用来暂存中间数据。
…好像还有

5、80286 系统一个存储单元是 24 位物理地址,而 8237A 在寻址内存空间时,只能给出 16 位地址码,这一矛盾如何解决?有哪些硬件和软件措施?【PPT没有,老师没讲】
答:通过程序设置,把 DMA 传送所涉及的存储单元的高 8 位物理地址写入(8237A 里的)相关通道的页面寄存器;把存储单元的低 16 位地址写入(8237A 里的)相关通道的基本地址寄存器;把 DMA 传送的实际字节数减1,写入(8237A 里的)相关通道的基本字节寄存器。从而做好初始化准备。【软件】
另外,页面寄存器采用专用的三态输出存储映像器 74LS612 来实现。【硬件】

6、8237A 提供哪几种传送方式?在微型计算机系统中,不允许使用哪一种传送方式?【PPT没有,老师没讲】
8237A 提供 4 种传送方式:单字节传送方式、数据块传送方式、请求传送方式、级联传送方式。不允许使用级联传送方式吧【这个笔者不太确定】

7、8237A 初始化编程的步骤是什么?【PPT没有,老师没讲】
① 命令字写入控制寄存器。
② 屏蔽字写入屏蔽寄存器。
③ 方式字写入方式寄存器。
④ 先/后触发器置0。
⑤ 写入基地址和基本字节寄存器。
⑥ 解除屏蔽。
⑦ 写入请求寄存器。

8、简述 PC 系列机用 DMA 方式进行单字节读写传送的全过程。【PPT没有,老师没讲】
答:…和上题流程差不多,只不过是针对单字节数据读写传送的。

9、8237A 芯片采用数据块传送方式和单字节传送方式进行 DMA 传输时,其主要区别在哪里?【PPT没有,老师没讲】
答:数据块传送方式:在进入 DMA 操作后,连续传送数据,直到整个数据块全部传送完毕。
单字节传送方式:每次 DMA 操作只传送一字节的数据,然后自动把总线控制权交给 CPU,让 CPU 占用至少一个总线周期。若有新的 DMA 请求,8237A 将向 CPU 发出总线请求,等到获得总线控制权后,再进行下一字节数据的传送。

10、什么是 DMA控制器 的正常时序和压缩时序?【PPT没有,老师没讲】
答:压缩时序就是在正常时序的基础上,少了 S3(读操作) 的过程。




二、中断系统

2.1 中断概念

什么是中断?
答:中断是指 CPU 在执行程序的过程中,由于某种外部或内部事件的作用,使 CPU 停止当前正在执行的过程转而去为该事件服务,待事件服务结束后,又能自动返回到被中止了的程序中继续执行的过程。



2.2 中断指令

中断指令要求掌握STICLIINT nIRET,并知道中断程序设计中何时使用。CPU 执行中断指令后,完成哪些操作?

例:CPU 执行 IRET 指令后,从栈顶弹出_____字节数据,分别赋给________、________和 ________。
答案:6、IP、CS、F

STI功能 :使 F 寄存器中I标志置1,CPU 处于开中断状态。
CTI功能 :使 F 寄存器中I标志置0,CPU 处于关中断状态。
注意STICLI只对可屏蔽中断请求有效。

软件中断指令格式INT n
说明n为中断类型码,是0~255之间有定义的无符号整数。
功能:无条件转向n型中断服务子程序。

● 中断返回指令 IRET:
功能:依次从栈顶弹出6个元素 → IP、CS、F。
说明:如果栈顶是INT n的断口地址,则执行IRET后,才能返回断点,否则不能。


执行INT n指令和执行IRET指令的堆栈操作示意图

简述 CPU 响应软件中断的过程?(或 INT n 指令执行的详细过程?)
答:CPU 获得了中断类型码n后,CPU 响应软件中断,即中断的处理过程如下:
  ① F寄存器(状态寄存器) → 堆栈(目的:保存INT n之前的各个标志位状态)
  ② 使 F 中的使 I 标志置0、 T 标志置0 (目的:清除 I 标志和 T 标志,屏蔽新的可屏蔽硬件中断和单步中断)
  ③ 将主程序断口地址 → 堆栈(目的:保护主程序的断点。细节:先压入断口的段基址 CS,再压入断口的偏移量 IP)
  ④ CPU 从4×n~4×n+3单元取出n型服务程序入口地址 → CS:IP(目的:转入n型中断服务程序。细节:4×n~4×n+1 单元的内容 → IP,4×n+2 ~ 4×n+3单元的内容 → CS)
  ⑤ CPU 根据新的 CS:IP 的值转向相应的n型中断服务子程序。
  ⑥ 当服务子程序执行完毕,执行中断返回指令。中断返回指令的功能是按顺序恢复断点处的 IP 值、CS 值和之前保护的相应中断前的标志寄存器内容 → 标志寄存器。
  ⑦ CPU 根据恢复后的 CS:IP 的值返回到断点,继续执行主程序。



2.3 微机系统中断分类

中断可以分为哪几类?
答:根据中断源的不同,中断被分为:外部中断和内部中断。(补充:外部中断也称为硬件中断,内部中断可以进一步被分为软件中断和异常)



2.4 中断向量

什么是中断向量和中断向量表?中断类型码和中断向量的关系是什么?⭐️⭐️⭐️
答:① 中断向量是实模式下,中断服务子程序的
入口地址
。每个中断号所对应的中断向量占 4 字节,前两字节为中断服务子程序入口的偏移地址,后两字节为中断服务子程序所在的代码段段基址
② 微机系统中,为了区别不同类型的中断,给每一个中断都分配了一个中断号,又称中断类型码。而对于每一个中断,都有一个中断向量。即一个中断类型码对应一个中断向量。(一一对应关系

补充内容:在实模式下,CPU 把 256 种中断向量组成一张表设置在系统的 RAM 最低端1K 单元(0 ~ 3FFH)。n 型中断向量存放在内存单元地址 4×n~4×n+3 这四个单元

例题:实模式下,从内存地址 0000H:0048H 开始的连续 4 个单元中存放的内容为00H,38H,30H,50H,则该地址所对应的中断类型码为_______,该中断所对应的中断服务子程序的入口地址为______。⭐️⭐️

答案:12H,53B00H
解析一:0000H 是段基址,0048H 是偏移地址。
(方法一:右移两位) 48H ÷ 4 = 0100 1000B ÷ 0100B = 0001 0010B = 12H
(方法二:16进制 → 10进制除4 → 16进制) 48H ÷ 4 = 72 ÷ 4 = 18 = 12H
解析二:5030H × 16 + 3800H = 50300H + 3800H = 53B00H(这里易错为 “54100H”,注意是 16 进制)



2.5 中断向量的写入

例题:设n型中断服务程序的名字是SERVICE,如何将SERVICE的入口地址写入对应的中断向量表呢?【只用掌握方法一即可】⭐️⭐️

方法一: DOS自身内部设计有 2 个子程序,专门用于中断向量的读出、写入,如下两段代码所示:

[ INT 21H 的35H子功能 ]
功能: 读出 n 型中断向量
入口: AL = 中断类型码
出口: ES:BX = n型中断向量

[ INT 21H 的25H子功能 ]   <----这道例题只会用到这个
功能: 写入 n 型中断向量
入口: DS = 中断服务程序所在代码段的段基址
	 DX = 中断服务程序入口的偏移地址
	 AL = 中断类型码
出口: 无 

采用方法一, 对应的程序段如下:
CLI
PUSH 	DS
PUSHA				; 用于“保护现场”
MOV		AX,SEG SERVICE
MOV		DS,AX
MOV		DX,OFFSET SERVICE	; 获取 中断服务程序入口的偏移地址 到 DX
MOV		AH,25H		; INT 21H 的25H子功能
MOV		AL,n		; 写入 n 型中断向量
INT 	21H			; 执行该 n 型中断
POPA				; 用于“恢复现场”
POP 	DS
STI

;-----------------------------------------------------

方法二: 用户自己编写程序填写中断向量
CLI		; I标志清零
PUSH	DS	; 压入段基址(保护)
MOV		AX, 0000H	
MOV		DS, AX	; 基地址是 0000H, 可自行设定
MOV		BX, 4*n	; 偏移地址是 4*n
MOV		AX, OFFSET SERVICE
MOV		[BX], AX	; 将服务程序入口偏移地址写入 4*n ~ 4*n+1 单元
MOV		AX, SEG SERVICE 
MOV		[BX+2], AX	; 将服务程序段基址写入 4*n+2 ~ 4*n+3 单元
POP 	DS	; 弹出段基址(恢复)
STI		

补充:老师发的复习PPT给的 “中断向量的写入” 的模板如下。

MOV		AX,SEG SERVICE
MOV		DS,AX
MOV		DX,OFFSET SERVICE
MOV		AH,25H
MOV		AL,n
INT 	21H


2.6 对于微机系统可屏蔽硬件中断要求掌握:

系统默认分配给主 8259A 和从 8259A 的口地址有哪些?【需要记住,编程要会写】


简答题一:CPU 响应可屏蔽中断的条件是什么?⭐️⭐️⭐️
答:① INTR 引脚有中断请求,NMI 引脚没有中断请求,系统没有 DMA 请求。
  ② CPU 当前指令执行完毕。
  ③ CPU 处于开中断状态,即标志寄存器的中断允许标志置1
补充知识点一:INTR 的全称为 Interrupt,即打扰、中断。NMI 的全称为 Non Maskable Interrupt,即不可屏蔽的中断。
补充知识点一:在中断级别上,DMA 请求 > 非屏蔽中断 > 可屏蔽中断

简答题二:CPU响应非屏蔽中断的条件是什么?⭐️⭐️⭐️
答:① NMI 引脚有中断请求,且系统没有 DMA 请求。
② CPU 当前指令执行完毕。



2.7 对于要求掌握的可屏蔽中断,有以下3种:

用户中断的中断源是什么?中断向量是什么?用户可置换的中断向量是什么?
答:(系统)用户中断的中断源是系统的 ISA 总线 B4 端子(IRQ9)引入的中断请求信号。中断向量是 71H、0AH。用户可置换的中断向量也是 71H、0AH。

日时钟中断的中断源是什么?中断向量是什么?用户可置换的中断向量是什么?
答:(系统)日时钟中断的中断源是系统 8254 0# 计数器,每 55ms 有一次中断请求。中断向量是 08H、1CH。用户可置换的中断向量也是 08H、1CH。 【注:重点掌握1CH

键盘中断的中断源是什么?中断向量是什么?怎么使用?(只要掌握原理)
答:键盘中断的中断源是主板键盘接口电路发来的系统键盘中断请求。中断向量是 09H。

补充:由 9 型服务程序写入键代码,用户用 INT 16H 访问键盘缓冲区,所以键盘缓冲区是 9 型硬件中断和INT 16H软中断之间交换信息的缓冲区。



2.8 硬件中断和软件中断的区别

硬件中断和软件中断的相同点? ⭐️
① 都会引起程序中止。
② CPU 获得中断类型码n后,自动从4×n ~ 4×n+3单元取出该中断源的中断向量 → IP、CS,从而执行该中断源的中断服务程序。

硬件中断和软件中断的不同点? ⭐️⭐️⭐️
(1) 中断的引发方式不同
硬件中断是由 CPU 以外的设备发出的接到引脚 INTR 和 NMI 上的中断请求信号而引发的。而软件中断是由于 CPU 执行 INT n 指令而引发的。

(2) CPU 获取中断类型码的方式不同
可屏蔽硬件中断,中断类型码是由中断控制器 8259A 提供;非屏蔽硬件中断类型码自动产生;软件中断,中断类型码是由软件中断指令 INT n本身提供的。

(3) CPU响应的条件不同
可屏蔽硬件中断是可以被屏蔽的,只有在 CPU 开中断时,才能响应;非屏蔽硬件中断和软件中断不能被屏蔽。

(4) 中断处理程序的结束方式不同
在硬件可屏蔽中断服务程序中,中断处理结束后,首先需要向 8259A 发出中断结束命令,然后执行 IRET 指令,中断返回。而在软件中断服务程序中,中断处理结束后只需执行IRET指令。



2.9 8259A中断大题

题目描述:假设微机系统外扩了如下的一个‘单脉冲发生器’,该‘单脉冲发生器’电路受一个自复开关K的控制,每按一次K,该电路输出一个正脉冲,输入到系统机从8259的IR1作为外部中断请求。要求:每按一次K,屏幕上显示一行字符串“Welcome!”。主机键盘按任意键,程序结束,返回DOS。(要求给出完整的源程序)

(由题意可知,使用的是从8259的IR1中断,即用户中断,中断类型为71H或者0AH)
题目分析
用户定义的中断服务程序有两个设计方法:
① 定义用户中断服务程序为“71H型”
② 定义用户中断服务程序为“0AH型”

用户中断服务程序结束时需注意:
① 若用户中断定义为0AH型,服务程序结束前,只向主8259送结束命令
② 若用户中断定义为71H型,服务程序结束前,需向主、从8259各送一中断结束命令
注意:①用户中断在开中断前写中断屏蔽字 ②结束中断服务之前要写中断结束命令字 ③避免DOS重入,即服务程序和主程序中不能同时用INT 21H)

以下是参考代码:注释掉的代码可有可无
.486
DATA SEGMENT USE16
OLD0A	DD		?					; 用于保存原来的中断向量, 所以叫作 OLD
MESG	DB		'Welcome!', '$'		; 显示的字符串
DATA	ENDS
CODE SEGMENT USE16
ASSUME CS:CODE, DS:DATA
BEG:	
	MOV		AX, DATA
	MOV		DS, AX
	CLI								; 关中断
	CALL	I8259					; 8259初始化
	CALL	READ0A					; 保存原来的 0AH 中断向量
	CALL	WRITE0A					; 写入 0AH 中断向量
	STI								; 开中断
SCAN:	
	MOV		AH, 01H					; 设置功能号(BOIS 的 1 号功能, 有输入 → z=0; 无输入 → z=1)
	INT		16H						; 有键入?
	JZ		SCAN					; 没有输入就继续循环(z = 1转移)
	CALL	RESET					; 恢复现场
	MOV		AH, 4CH
	INT		21H
;--------------------------------------
SERVICE	PROC
	PUSHA
	PUSH	DS						; 保护现场
	MOV		AX, DATA
	MOV		DS, AX
	MOV		AH, 09H					; 设置功能号
	MOV		DX, OFFSET MESG			; 设置参数
	INT		21H						; 显示字符串
	MOV		AL, 20H
	OUT		20H, AL					; 向 主8259 送中断结束命令字
	OUT		0A0H, AL				; 向 从8259 送中断结束命令字
	POP		DS
	POPA							;恢复现场
	IRET
SERVICE	ENDP
;--------------------------------------
I8259	PROC
		IN		AL, 0A1H
		AND		AL, 11111101B
		OUT		0A1H, AL				;开 从8259IR1 中断(用户中断)
		IN		AL, 21H
		AND		AL, 11111011B
		OUT		21H, AL					;开 主8259IR2 中断
		RET
I8259	ENDP
;--------------------------------------
READ0A	PROC
		MOV		AX, 350AH
		INT		21H
		MOV		WORD PTR OLD0A, BX
		MOV		WORD PTR OLD0A+2, ES	; 保存中断向量
		RET
READ0A	ENDP
;--------------------------------------
WRITE0A	PROC
		PUSH	DS
		MOV		AX, CODE
		MOV		DS, AX
		MOV		DX, OFFSET SERVICE
		MOV		AX, 250AH
		INT		21H						; 写入新的 0AH 中断向量
		POP		DS
		RET
WRITE0A	ENDP
;--------------------------------------
RESET	PROC
		"注释掉的部分可写可不写"
		; IN	AL, 0A1H
		; OR	AL, 00000010B
		; OUT	0A1H, AL			; 关 从8259IR1 中断(用户中断)
		; IN	AL, 21H
		; OR	AL, 00000100B
		; OUT	21H, AL				; 关 主8259IR2 中断
		MOV		DX, WORD PTR OLD0A
		MOV		DS, WORD PTR OLD0A+2
		MOV		AX, 250AH				; 把原来的 0AH 中断向量写回去
		INT		21H
		RET
RESET ENDP
CODE ENDS
END	BEG


2.10 补充简答题

1、系统可屏蔽硬件中断的中断源是哪些?
答:可屏蔽硬件中断的中断类型码包括:08H ~ 0FH。其对应的中断源分别是:日时钟(08H)、键盘(09H)、用户(0AH)、辅串口(0BH)、主串口(0CH)、并行口2(0DH)、软盘(0EH)、并行口1(0FH)。

2、简述 CPU 响应可屏蔽硬件中断的过程。✅
答:CPU 在每一条指令的最后一个时钟周期,检测 INTR 引脚,当检测到有可屏蔽中断请求时,在满足 “CPU响应非屏蔽中断的条件” 的前提下,通过总线控制器向系统 8259A 发出中断响应信号(两个负脉冲)。在获得 8259A 送回来的中断类型码后,在实模式下查询中断向量表,从而转向相应中断源的中断服务子程序。

3、8259A 的中断屏蔽寄存器(IMR)和 80x86 的中断允许标志 IF 有什么区别? ✅【简单了解】
答:IF 是 80x86 微处理器内部标志寄存器的一位,若 IF = 0,80x86 就不响应外部可屏蔽中断请求 INTR 引线上的所有请求信号。8259A 有 8 个中断请求输入线,IMR 中的某位为1,就只把对应这位的中断请求 IR 禁止掉,使其无法被 8259A 处理,也无法向 80x86 处理器产生 INTR 请求。

4、在微型计算机系统上开发用户中断程序时应采取哪些措施?
① 把外扩中断源的中断请求(由低电平到高电平的跃变)接入 ISA 总线 B4 端子。
② 开放用户中断。
③ 置换中断向量。
④ 用户中断服务子程序结束时,向 8259A 写结束(命令)字。

5、在微型计算机系统上开发日时钟中断程序时应采取哪些措施?
① 开中断,保护现场,40H → DS。
② 对 “日时钟计数器” 进行一次加1计数。
③ 测算软驱电动机的关闭时间。
④ 执行 INT 1CH 指令。
⑤ 向主 8259A 发出常规中断结束命令字。
⑥ 恢复现场,执行 IRET 指令。

6、APIC 中断系统的组成有哪几部分?【PPT没有,老师没讲】
答:APIC 的全称为 Advanced Programmable Interrupt Controller,即高级可编程中断控制器。只做了解…




三、串行通信

3.1 基本概念

串行通信方式:串行异步通信、串行同步通信

异步串行通信的数据传输方式:单工通信、半双工通信、全双工通信 。

● **单工、半双工、全双工通信方式的特点是什么?**⭐️⭐️⭐️
①单工方式只允许数据按照一个固定的方向传送。
②半双工方式要求收发双方均具备接收和发送数据的能力,由于只有一条信道,数据不能在两个方向上同时传送。
③在全双工方式中,收发双发可以同时进行数据传送。

异步串行通信一帧数据的格式及通信速率的计算。⭐️⭐️⭐️

: 异步通信一帧数据格式中,按照发送的次序,先传送____________,紧接着是数据_______位,数据位后依次为____________,____________。

答案:起始位、低、奇偶校验位、停止位。

补充一:为实现通信,收发双方一帧数据的格式和通信速率要保持一致。

补充二:RS232信号采用负逻辑。“1”= -3V ~ -15V,“0”= +3V ~ +15V



3.2 8250芯片和8250内部寄存器的功能


说明

8250 —— 数据总线缓冲器:接收来自 CPU 的各种控制信息,从而确定操作方式。

8250 —— 选择和控制逻辑:他是 8250 和 CPU 之间的数据通道。

8250 —— 发送器:由 “发送保持寄存器”、“发送移位寄存器” 和 “发送同步控制” 这3部分构成。
[1] 发送保持寄存器:装载待发送的数据。
[2] 发送移位寄存器:数据发送时,“发送保持寄存器” 内的内容会自动转到这里面。
[3] 发送同步控制:能将 “发送移位寄存器” 里的内容添加起始位、校验位和停止位,并将数据转换为串行数据,经SOUT引脚发送出去。

8250 —— 接收器:由 “接收移位寄存器”、“接收缓冲寄存器” 和 “接收同步控制” 这3部分构成。
[1] 接收同步控制:能将来自引脚SIN的串行数据逐位存入接收移位寄存器,并在存入的过程中进行自动校验,并去掉起始位、停止位和校验位。
[2] 接收移位寄存器:会自动将其内部的数据内容转到 “接收缓冲寄存器”。
[3] 接收缓冲寄存器:装载接收的数据,等待 CPU 读取。

8250 —— 调制解调控制电路:使 8250 可直接与调制解制器相连的控制电路,以完成远程通信任务。

8250 —— 通信线控制寄存器:指定串行通信的数据格式。

8250 —— 通信线状态寄存器:提供串行数据发送和接收时的状态,供 CPU 读取和处理。

8250 —— 波特率发生控制电路:由波特率发送器、存放分频系数低位和高位字节的除数寄存器构成。
● 对 ⑧ 的补充说明:8250 使用的是频率为1.8432MHz的基准时钟输入信号,通过内部分频产生发送器时钟和接收器时钟。发送器时钟和接收器时钟的频率是 “数据传输波特率” 的16倍。

中断控制逻辑:由中断允许寄存器、中断识别寄存器和中断控制逻辑3部分组成。它主要对中断优先权、中断申请等进行管理。



3.3 8250的初始化编程和应用编程

串行通信程序设计包括:硬件连接和软件编程。

采用微型计算机系统进行串行通信时,对串口初始化编程有哪些方法?具体的初始化编程步骤是什么? ⭐️⭐️
(如果采用直接对端口操作的方式),8250 的初始化编程步骤如下:
  [1] 设置寻址位:80H → 通信线控制寄存器,使寻址位为1(即使除数寄存器访问位=1)。
  [2] 确定通信速率:根据波特率计算出除数高8位/低8位 → 除数寄存器高8位/低8位。
  [3] 规定一帧的数据格式:将 D7 = 0 的控制字写入通信线控制寄存器(目的:<1>定义一帧数据格式。<2>使除数寄存器访问位=0,从而使后继的对合用端口的访问只读写非除数寄存器)。
  [4] 设置中断允许寄存器:若采用查询方式,则置0;若采用中断方式,则置1
  [5] 设置 MODEM 控制寄存器:若采用查询方式,则 D30;若采用中断方式,则 D31;若采用内环自验:则 D41;若为正常通信,则 D40;使用联络线时:D1、D0 位置1

8250 查询方式下如何接收和发送程序的编程? ⭐️⭐️
在发送数据前,读通信线状态寄存器(状态口)获取发送保持或移位寄存器(数据口)是否空闲;
在接收数据前,读通信线状态寄存器(状态口)获取接收缓冲寄存器(数据口)是否已经收到1帧数据。

● 利用微型计算机串行口采用中断方式完成字符发送和接收,编程时应采取哪些措施?
① 置 8250 中断允许寄存器的 D1 位为1,D0 位为1,允许 8250 产生发送和接收中断请求。
② 置 8250 MODEM 控制寄存器的 D3 位为1,允许 8250 将中断请求信号送至 8259A。(见教材P309图10-8)
③ 将主 8259A IMR(中断屏蔽字) 的 D4 位或 D3 位置0(取决于主串口还是辅串口),即开放主 8259A IR4 或主 8259A IR3中断。
④ 写入 0CH 型中断向量(主串口)或 0BH 型中断向量(辅串口)。
⑤ 使用 STI 指令,允许 CPU 响应中断。

对于上一题,复习 PPT 给的内容



掌握串行通信基本的外部环境



3.4 8250 大题样例

题目描述:A、B两台PC机利用主串口进行点-点单工通信(不用联络线),发送采用查询方式,接收采用中断方式。一帧字符包含7个数据位,1个停止位,1个校验位,通信速率为4800波特(分频系数为0018H)。
(1)下图是 A、B 两机的 RS—232C 接口示意图,根据题意完成连线(不可有多余连线)。【红色线即为答案】

(2)下图是从PC机的RS-232C接口引脚观察到的波形,所传送字符的16进制ASCII码是_______;该帧数据采用的奇偶校验方式是_______校验;传送该帧数据需要的时间是_________。

答案:46H、奇、 1 480 s \\frac1480s 4801s
解析:
① RS-232C 电平转成TTL电平就可以明显看出一帧数据为 0011000101。按题目要求可知:7个数据位为 0110001,1个校验位为 0。因为数据位从最低位开始传送,所以传送的数据为 1000110B,即46H,为 “ F F F”。
② 数据以及校验位中 1 的个数为 3 个,为奇数,所以是奇校验。
③ 一帧位数 = 1位起始位 + 7位数据位 + 1位校验位 + 1位停止位 = 10位。所以 T = 10    b i t 4800    b i t / s = 1 480 s T=\\frac10\\,\\, bit4800\\,\\, bit/s=\\frac1480s T=4800b以上是关于《微型计算机原理与接口技术》期末总复习 —— 一篇匆匆忙忙的复习笔记的主要内容,如果未能解决你的问题,请参考以下文章

笔记总结计算机专业面向期末考试复习笔记专业课学习笔记课外算法与其他学习笔记

计算机组成原理期末复习必备知识点大全——第五章(输入输出系统)

网络原理期末复习笔记 第二章 物理层

计算机组成原理期末复习思维导图

计算机组成原理期末复习思维导图

计算机组成原理期末复习思维导图