Presentation is loading. Please wait.

Presentation is loading. Please wait.

输入输出与中断 主要内容 CPU与外设之间数据传送方式 中断技术 8086中断系统和中断处理.

Similar presentations


Presentation on theme: "输入输出与中断 主要内容 CPU与外设之间数据传送方式 中断技术 8086中断系统和中断处理."— Presentation transcript:

1 输入输出与中断 主要内容 CPU与外设之间数据传送方式 中断技术 8086中断系统和中断处理

2 输入输出接口概述 外设种类繁多:机械式、电动式、电子式、电磁式 信号类型复杂:数字量、模拟量、开关量
处理信息速率相差甚远:如手动键盘输入和磁盘输入 外设数据传递方式:并行,串行 接口电路(芯片):CPU与外部设备之间实现信息交换的连接 电路(硬件),简称接口。

3 输入输出接口概述 接口用途小结 进行地址译码或设备选择,以便使CPU能与某一指定的外部 设备通讯;
状态信息的应答,以协调数据传送之前的准备工作; 进行中断管理,提供中断信号; 进行数据格式转换,如正负逻辑转换,串行与并行数据转换 等; 进行电平转换,如TTL电平与MOS电平间的转换; 协调速度,如采用锁存、缓冲、驱动等; 时序控制,提供实时时钟信号。

4 CPU与外设的连接 CPU对外设的输入输出操作类似于存储器的读写操作,即I/O 读写,但外设与存储器有诸多不同。 存储器 I/O设备 不 同
品种有限 品种繁多 功能单一 功能多样 传送一个字节 传送规律不同 与CPU速度匹配 与CPU速度不匹配 易于控制 难于控制 结论 可与CPU直接连接 需经过I/O电路与CPU连接

5 CPU与外设的连接 外设与计算机的连接不能像存储器那样直接挂到总线(DB、AB、 CB)上,必须通过各自的专用接口电路 (接口芯片) 与主机连接。

6 接口电路的基本结构 接口电路基本结构同它传送的信息种类有关。 信息可分为3类:数据信息,状态信息,控制信息。

7 接口电路的基本结构 3种性质不同信息,经不同端口分别传送。每个端口都有 自己的端口地址,用不同的端口地址来区分不同的信息。
用输入输出指令来寻址外设时,外设状态作为一种输入数 据,而CPU控制命令,是作为一种输出数据,从而可通过 数据总线来分别传送。 端口地址由CPU地址总线的低8位或低16位地址信息来确 定,CPU根据I/O指令提供的端口地址来寻址端口,然后 同外设交换信息。

8 接口电路的基本结构 1. 数据信息 数字量:由键盘、磁盘机、磁带机、卡片机等读入的信 息,或主机送给打印机、磁盘机、磁带机、显示器及绘 图仪的信息。 通常为8位二进制数或ASCII代码。

9 接口电路的基本结构 模拟量:计算机用于检测、数据采集或控制时,现场信 息是连续变化的物理量 (如温度、压力、位移等),经传 感器把非电量转换成电量,经放大得到模拟电流或电压。 计算机不能直接接收和处理模拟量,须经A/D (模/数) 转 换,才能输入计算机。 计算机输出的数字量也须经D/A (数/模) 转换后才能去控 制执行机构。

10 接口电路的基本结构 开关量:两个状态,如开关的闭合/断开,电机的运转/停 止,阀门的打开/关闭等。 用一位“0”或“1”二进制数表示。
字长为8位的微机一次输入或输出可控制8个这类物理量。

11 接口电路的基本结构 2. 状态信息 外设当前所处工作状态信息,CPU与外设间可靠交换数据条件。
输入时:告知CPU有关输入设备数据是否准备好 (Ready=1?) 输出时:告知CPU输出设备是否空闲 (Busy=0?) CPU是通过接口电路来掌握输入输出设备的状态,以决定可否 输入或输出数据。

12 接口电路的基本结构 3. 控制信息 用于控制外设的启动或停止。

13 CPU与外设之间数据传送 直接程序控制方式 中断控制方式 直接存储器存取(DMA)控制方式 无条件程控传送方式
有条件程控传送方式(查询方式) 仅传输数据信息,不传输控制、状态信息 要传输数据、控制、状态信息

14 程序传送 CPU与外设间的数据交换在程序控制下进行。 即IN或OUT指令控制。 无条件程序控制传送方式 有条件程序控制传送方式(查询方式)

15 程序传送 1. 无条件传送(又称同步传送) 最简单的输入/输出控制方式,用于控制CPU与低速接口之间 的信息交换。
例如,开关、继电器、7段显示器、机械式传感器等简单外设。 这类信号变化缓慢,当需要采集这些数据时,外设已将数据准 备就绪了。无需检查端口的状态,就可立即采集数据。 对少量数据传送来说,它是最省时间的一种传送方法,适用于 各类巡回检测和过程控制。

16 程序传送 注:输入接口为缓冲器,输出接口为锁存器 端口 译码器 WR RD M/IO AB DB 数据输入 缓冲器端口 数据输出 锁存器端口
输入数据 输出数据 注:输入接口为缓冲器,输出接口为锁存器

17 程序传送 输入数据时,由于数据保持时间相对于CPU的处理时间长得多, 故输入端可直接用输入缓冲器与CPU的数据总线相连。
输出数据时,一般都需要锁存器将要输出的数据保持一段时间,其长短和外设的动作相适应。

18 程序传送 无条件传送实例: 16位数据采集系统,被采集数据是8个模拟量,由继电器绕组P0、 P1 … P7分别控制触点K0、K1…K7逐个接通。 每次采样用一个4位 (每位为一个十进制数) 数字电压表测量,把被采 样的模拟量转换成16位BCD代码(即对应4位十进制数的4个BCD码), 高8位和低8位通过两个不同的端口 (其地址分别为10H和11H)输入。 CPU通过端口20H 输出控制信号,以控制某个继电器的吸合,实现采集 不同通道的模拟量。

19 程序传送 采集过程要求: 先断开所有继电器线圈及触点,不采集数据。
延迟一段时间后,K0闭合,采集第1个通道模拟量,保持一段时间,以使 数字电压表能将模拟电压转换为16位BCD码。 分别将高8位与低8位BCD码存入内存,完成第1个模拟量输入与转存。 利用移位与循环实现8个模拟量的依次采集、输入与转存。 输入端口 输出端口 线圈 触点

20 程序传送 START: MOV DX, 0100H ; 01H→DH,置吸合第1个继电器代码 ; 00H→DL,置断开所有继电器代码
LEA BX, DSTOR ; 置输入数据缓冲器的地址指针 XOR AL, AL ; 清AL及进位位CF AGAIN: MOV AL, DL OUT 20H, AL ;断开所有继电器线圈 CALL NEAR DELAY1 ;模拟继电器触点释放时间 MOV AL, DH OUT 20H, AL ;先使P0吸合 CALL NEAR DELAY2 ;模拟触点闭合及数字电压表转换时间 IN AX, 10H ;输入 MOV [BX], AX ;存入内存 INC BX RCL DH, ;DH左移(大循环)1位,为下一个触点吸合作准备 JNC AGAIN ;8位都输入完了吗?没有,则循环 DONE: ;输入已完,则执行别的程序段。

21 程序传送 2. 程序查询传送 (条件传送—异步传送) 也是一种程序传送,与无条件同步传送不同,是有条件的异步 传送。
条件是:在执行输入(IN指令)或输出(OUT指令)前,先查询接口 中状态寄存器的状态。 输入时,由状态信息指示要输入数据是否已“准备就绪”; 输出时,由它指示输出设备是否“空闲”,由此条件来决定执 行输入或输出。

22 程序传送 程序查询输入 数据与状态必须有不同的端口分别输入至CPU数据总线。 读入数据命令使状态信息清0,为下次输入新数据做准备。

23 程序传送 程序查询输入的数据和状态信息 读入的数据是8位,而读入的状态信息往往是1位,因此,
不同的外设其状态信息可使用同一个端口,只要使用不同 的位就可以。

24 程序传送 查询输入方式的程序 POLL: IN AL, STATU_SPORT ; 读状态端口的信息
   TEST AL, 80 H ; 设“准备就绪”(READY)信息 ; 在D7位 JE POLL ; 未“准备就绪”,则循环再查 IN AL, DATA_PORT ; 已“准备就绪”(READY=1), ; 则读入数据

25 程序传送 程序查询输出 输出时CPU也必须了解外设状态,看外设是否有“空闲” ,若有 “ 空闲 ”,则CPU执行输出指令;否则就等待再查。
 因此,接口电路中也必须要有状态信息的端口。

26 程序传送 程序查询输出的端口信息

27 程序传送 程序查询输出部分的程序 POLL: IN AL, STATUS_PORT ;查状态端口中的状态信息D7 TEST AL, 80H
JNE POLL   ;D7=1, 即忙线=1, 则循环再查 MOV AL, STORE   ;否则, 外设空闲, 由内存读取数据 OUT DATA_PORT, AL ;输出到DATA地址端口单元 STATUS_PORT和DATA_PORT为状态和数据端口的符号地址; STORE为待输出数据的内存单元的符号地址。

28 程序传送 3. 采用查询方式的数据采集系统 8个模拟量输入数据采集系统,用查询方式与CPU传送信息。
该数据采集系统,用到了3个端口,它们有各自的地址。

29 程序传送 采集过程要求: 初始化。 先停止A/D转换。 启动A/D转换,查输入状态信息READY。
当输入数据已转换完(REA=1,即准备就绪),则经由端口3输入至CPU的累加器AL中,并转送内存。 设置下一个内存单元与下一个输入通道,循环8次。

30 程序传送 STARE: MOV DL, 0F8H MOV AX, SEG DSTOR MOV ES, AX LEA DI, DSTOR
AGAIN:MOV AL, DL AND AL, 0EFH OUT 04, AL CALL DELAY MOV AL, DL POLL: IN AL, 02 SHR AL, 1 JNC POLL IN AL, 03 STOSB IN CDL JNE AGAIN ; 设置启动A/D转换信号, ; 低3位选通多路开关通道 ; 设置输入数据的内存单元地址指针 ; 使D4=0 ; 停止A/D转换 ; 等待停止A/D转换操作的完成 ; 选输入通道并启动A/D转换 ; 输入状态信息 ; 查AL的D0 ; 判READY=1?若D0=0,未准备好,则循环再查 ; 若已准备就绪,则经端口3将采样数据输入至A ; 输入数据转送内存单元 ; 输入模拟量通道增1 ; 8个模拟量未输入完则循环 ; 输入已完,执行别的程序

31 程序传送 4. 程序查询输入/输出传送方式的执行过程 CPU从接口状态端口中读入外设状态信息“READY”或“BUSY”。
根据读入的状态信息进行判断。 程序查询输入时,若READY=0,则外设数据未准备好,CPU继续 等待查询,直至READY=1,执行下一步操作; 程序查询输出时,若BUSY=1,则外设正在“忙”,CPU继续等 待查询,直至BUSY=0时,执行下一步操作。 执行输入/输出指令,进行I/O传送。完成数据的输入/输出,同时将 外设的状态信息复位,一个8位的数据传送结束。

32 程序传送 5. 小结 当计算机工作任务较轻或CPU不太忙时,可以应用程序查询输入/ 输出传送方式,它能较好地协调外设与CPU之间定时的差别;程序 和接口电路比较简单。 主要缺点是:CPU必须作程序等待循环,不断测试外设的状态,直 至外设为交换数据准备就绪时为止。这种循环等待方式很花费时间, 大大降低了CPU的运行效率。

33 中断传送 程序查询方式降低了CPU运行效率,在实时控制系统中,往往有数十 乃至数百个外设,由于工作速度不同,要求CPU服务随机的,有些要 求很急迫。 若用查询方式除浪费大量等待查询时间外,还很难使每一个外设都能 工作在最佳工作状态。 为提高CPU执行有效程序的工作效率和提高系统中多台外设的工作效 率,可以让外设处于能主动申请中断的工作方式,当有多个外设及速 度不匹配时,尤为重要。

34 中断传送 中断是外设或其他中断源中止CPU当前正在执行程序,而转向为该外 设服务的程序,一旦服务结束,又返回原程序继续工作。
外设处理数据期间,CPU不必浪费大量时间去查询其状态,只待外设 处理完毕主动向CPU提出请求。 CPU在每一条指令执行的结尾阶段,均查询是否有中断请求信号,若 有,则暂停执行现行程序,转去为申请中断的某个外设服务。

35 中断传送 优点:大大提高了CPU工作效率。 需由CPU通过程序来传送数据,并在处理中断时,还要 “保护现场”和“恢复现场”,要占用一定时间。
缺点: 需由CPU通过程序来传送数据,并在处理中断时,还要 “保护现场”和“恢复现场”,要占用一定时间。 对于高速外设以及成组交换数据的场合,显得太慢。

36 直接存储器存取 (DMA)传送 DMA (Direct Memory Access) 方式
由专门硬件电路执行I/O交换,外设接口直接与内存进行高速 数据传送,而不必经过CPU。 不必进行保护现场等额外操作,便可实现对存储器直接存取。 这种专门的硬件电路就是DMA控制器,简称为DMAC。 优点:速度快,数据传送的速率只受存储器访问的限制。 CPU不参与操作,省去取指令,指令译码、存取数等。 缺点:硬件电路较复杂。

37 中断概述 1. 中断常用术语 中断 CPU在执行正常程序时,为处理一些紧急发生的情况,暂时中止当前程序,转而对该紧急事件进行处理(中断服务程序),并在处理完后返回正常程序的过程。

38 中断概述 中断源 引起中断的事件或原因,或发出中断申请的来源。 外部设备:中、慢速外设,如键盘、打印机、A/D转换器等。
高速外设,如磁盘或磁带,向CPU提出总线请求,进行DMA传送。 实时时钟:在自动控制中,常遇到定时检测与控制,这时可采用外部时钟电路。 故障源:计算机内设有故障自动检测装置,如发生运算出错、存储器读出出错、外部设备故障、电源掉电等意外事件时,这些装置都能使CPU中断,进行相应的中断处理。 为调试程序设置的中断源:CPU执行了特殊指令(自陷指令)或由硬件电路引起的中断,如断点设置、单步调试等。

39 中断概述 中断向量 中断向量表 中断服务子程序的入口地址,即中断服务子程序的第一条指令的地址在存储器中的存放位置。
中断向量构成的表格,位于存储器的最低地址单元。

40 中断概述 断点 执行的现行程序被中断时的下一条指令的地址,又称断点地址。 现场 中服程序中应保护和恢复的相关信息。

41 中断概述 中断优先级 中断嵌套 系统中多个中断源同时提出中断请求时,需按中断的轻重缓急给每个中断源指定一个优先级别。
中断服务程序运行中响应更高级别中断请求。

42 中断概述 中断类型号 中断分类 处理器对各类中断的中断源进行的统一编号n,n的取值范围是0~255。 可屏蔽中断 (INTR)
不可屏蔽中断 (NMI) 外部中断 (硬件中断) 内部中断 (软件中断) (执行指令所引起的)

43 中断概述 2. 中断系统功能 能响应中断、处理中断及返回
中断源发出中断请求,CPU决定是否响应,若响应,则保护断点和现场,转入相应中断服务程序,中断服务结束后,恢复现场和断点,继续执行原程序。

44 中断概述 能实现优先权排队 按各中断请求的重要程度排列CPU响应的次序称为 中断优先级。
中断优先级的实现可以用软件或硬件设置。

45 中断概述 高级中断源能中断低级的中断处理 两重中断(或两级嵌套),还可进行多重中断 (或多级嵌套)。

46 中断概述 4. 中断的应用 中断除能解决快速CPU与中、慢速外设速度不匹配的矛盾,以提高主机的工作效率之外,在实现分时操作、实时处理、故障处理、多机连接以及人机联系等方面均有广泛的应用。

47 单个中断源的中断过程 包括: 中断请求 中断响应 中断处理 中断返回等环节。

48 单个中断源的中断过程 1. 中断源向CPU发中断请求信号的条件 中断源通过其接口电路向CPU发中断请求信号的。
设置中断请求触发器 设置中断屏蔽触发器

49 单个中断源的中断过程 2. CPU响应中断的条件 CPU开放中断 CPU在现行指令结束后响应中断

50 单个中断源的中断过程 3. CPU响应中断及处理过程 关中断 保留断点 保护现场 给出中断入口(地址),转入相应中断服务程序 恢复现场
开中断与返回

51 中断优先权 实际系统中具有多个中断源,CPU的可屏蔽中断请求线往往 只有一条。 要求CPU按多个中断源优先权由高至低依次来响应中断申请。
CPU可通过软件查询技术或硬件排队电路两种方法来实现按中 断优先权对多个中断源的管理,也有专门用于协助CPU 按中断 优先权处理多个中断源的中断控制芯片,如8259A芯片。

52 中断优先权 了解内容

53 8086中断系统 简要、灵活、多用 采用中断向量结构 每个中断给定一个中断类型号, 供CPU识别 可处理256种类型中断
中断可来自外部,即由硬件产生 中断可来自内部,即由软件(中 断指令)产生 满足某些特定条件(陷阱)后引发 CPU中断

54 8086中断系统 1. 外部中断 8086 CPU有2条引脚供外部中断源请求中断: 一条是高电平有效的可屏蔽中断INTR;
另一条是正跳变有效的非屏蔽中断NMI。

55 8086中断系统 可屏蔽中断 CPU的INTR引脚上出现的请求信号须保持到当前指令的结束。
有中断请求信号产生,是否响应取决于标志寄存器中IF状态。 若IF=0,CPU处于关中断状态,不响应INTR; 若IF=1,CPU处于开中断状态,响应INTR,并通过INTA引脚 发回响应信号,启动中断过程。

56 8086中断系统 CPU发回第2个中断响应信号INTA时,相应接口把1字节的中 断类型号通过DB传送给CPU。
中断类型号指定中断服务程序入口地址在中断向量表中位置。 中断允许标志IF位的状态可用指令STI使其置位 (开中断),用 CLI指令使其复位 (关中断)。

57 8086中断系统 非屏蔽中断 CPU的NMI引脚上出现一上升沿的边沿触发有效请求信号 时,它将由CPU内部的锁存器将其锁存起来。
要求请求脉冲的有效宽度大于两个时钟周期。 一旦此中断请求信号产生,不管标志位IF的状态,CPU立 即响应。 非屏蔽中断源有3种:系统板上RAM的奇偶校验错,扩展 槽中的I/O通道错,浮点运算协处理器8087的中断请求, 3 个中断源均可独立申请中断。

58 8086中断系统 NMI比INTR引脚上产生的中断请求的级别高,若两个引脚上 同时有中断请求信号,CPU将首先响应NMI引脚上中断请求。
NMI的中断类型号预先定义为类型2,CPU响应非屏蔽中断 时,不要求外部向CPU提供中断类型号,CPU在总线上也不 发INTA信号。

59 8086中断系统 2. 内部中断 除法出错中断-类型0 执行除法指令时,若发现除数为0或商数超过了寄存器所 能表达的范围,立即产生一个类型为0的内部中断,CPU 转向除法出错的中断服务程序。 优先级最高的一种内部中断。

60 8086中断系统 溢出中断-类型4 若上一条指令执行结果使溢出标志OF=1,则在执行溢出中断指令 INTO时,引起类型4的内部中断,CPU转入对溢出错误进行处理的 中断服务程序。 若OF=0 时,则本指令执行空操作,程序执行下一条指令。 INTO指令常常紧跟在算术运算指令之后,以便在该指令执行产生 溢出时由INTO指令进行特殊的处理。

61 8086中断系统 单步中断-类型1 TF=1,单步工作方式,即CPU每执行完一条指令后就自 动地产生一个类型1的内部中断,程序控制将转入单步中 断服务程序。 单步中断方式是一种很有用的调试手段。

62 8086中断系统 断点中断- 类型3 用中断指令INT 3设置程序断点,执行该指令以后就会产生 一个中断类型为3的内部中断。
断点中断指令主要用于软件调试中,程序员可用它在程序中 设置一个程序断点。

63 8086中断系统 用户定义的软件中断- 类型n 内部中断中有一个可由用户定义的中断指令INT n,第1个字 节为INT的操作码,第2个字节n是它的中断类型号。 中断类型号n由程序员编程时给定,用它指出中断服务程序 的入口地址。

64 8086中断系统 中断类型对应256个中断入口; 每个入口应包含4个字节: 2个低地址字节是IP偏移量; 2个高地址字节是CS基址;
中断入口地址表需占用1K字节的存储 空间,且设置在存储器的最低端,即 000H~3FFH。 外设通过接口将中断类型号n放在数据 总线上,CPU对n乘以4得到指向入口 地址的首字节; 4n和4n+1单元中存放的是入口的偏移地址,4n+2和4n+3单元中存放的是入口的段地址。

65 8086中断系统 3. 内部中断的特点 内部中断由一条INT n指令直接产生。 除单步中断外,所有内部中断都不能被屏蔽。
所有内部中断都没有中断响应总线周期,因为内部中断不必 通过查询外部来获得中断类型号。 除单步中断外,所有内部中断优先权比外部中断优先权高。 单步中断是逐条地跟踪调试,而断点中断 INT 3 是逐段地调 试,它们均可用中断服务程序在屏幕上显示有关的各种信息。

66 8086中断系统过程 1. 中断处理的基本过程 中断请求 中断响应 中断处理 中断返回

67 8086中断系统过程 2. 同时发生多个中断的处理过程

68 中断向量表 放在存储单元地址的最低部位,00000H~003FFH之间,占有 1K字节的存储空间。
中断向量表分成256组,每组由两个字(即4个字节)组成一个 双字长的指针。 高地址中存放的是中断服务程序入口地址的CS,低地址字是IP。 CPU通过CS和IP值得到一个20位中断服务程序的实际入口地址。

69 中断向量表 如:中断类型号为8,中断向量表 的第9个入口,该向量的第1字节 的地址为: 8x4=32=00100000B=20H
若CS=1000H,IP=0200H,服务 程序入口地址为10200H CPU一旦响应中断类型8,则转去 执行从地址10200H 开始的类型 号为8的中断服务程序。

70 Thank You!


Download ppt "输入输出与中断 主要内容 CPU与外设之间数据传送方式 中断技术 8086中断系统和中断处理."

Similar presentations


Ads by Google