中断和查询
- 格式:doc
- 大小:23.00 KB
- 文档页数:2
《计算机控制技术》(机械工业出版社范立南、李雪飞)习题参考答案第1章1.填空题(1) 闭环控制系统,开环控制系统(2) 实时数据采集,实时决策控制,实时控制输出(3) 计算机,生产过程(4) 模拟量输入通道,数字量输入通道,模拟量输出通道,数字量输出通道(5) 系统软件,应用软件2.选择题(1) A (2) B (3) C (4) A (5) B3.简答题(1) 将闭环自动控制系统中的模拟控制器和和比较环节用计算机来代替,再加上A/D转换器、D/A转换器等器件,就构成了计算机控制系统,其基本框图如图所示。
计算机控制系统由计算机(通常称为工业控制机)和生产过程两大部分组成。
工业控制机是指按生产过程控制的特点和要求而设计的计算机,它包括硬件和软件两部分。
生产过程包括被控对象、测量变送、执行机构、电气开关等装置。
(2)操作指导控制系统:其优点是控制过程简单,且安全可靠。
适用于控制规律不是很清楚的系统,或用于试验新的数学模型和调试新的控制程序等。
其缺点是它是开环控制结构,需要人工操作,速度不能太快,控制的回路也不能太多,不能充分发挥计算机的作用。
直接数字控制系统:设计灵活方便,经济可靠。
能有效地实现较复杂的控制,如串级控制、自适应控制等。
监督计算机控制系统:它不仅可以进行给定值的控制,还可以进行顺序控制、最优控制、自适应控制等。
其中SCC+模拟调节器的控制系统,特别适合老企业的技术改造,既用上了原有的模拟调节器,又可以实现最佳给定值控制。
SCC+DDC的控制系统,更接近于生产实际,系统简单,使用灵活,但是其缺点是数学模型的建立比较困难。
集散控制系统:又称分布式控制系统,具有通用性强、系统组态灵活,控制功能完善、数据处理方便,显示操作集中,调试方便,运行安全可靠,提高生产自动化水平和管理水平,提高劳动生产率等优点。
缺点是系统比较复杂。
计算机集成制造系统:既能完成直接面向过程的控制和优化任务,还能完成整个生产过程的综合管理、指挥调度和经营管理的任务。
MCU与外设之间的数据传送方式
主机与外设之间数据传送的控制方式有以下四种:直接控制方式、查询方式、中断方式和直接存储器存取(DMA,Direct Memory Access)。
1.直接控制方式
直接控制方式适用于总是处于准备好状态的简单外设,例如:开关、发光器件(如发光二极管、7段数码管、灯泡等)、继电器、步进电机。
优点:软件及接口硬件简单。
缺点:只适用于简单外设,适应范围较窄。
2.查询方式
查询方式适用于外设并不总是准备好,而且对传送速率、传送效率要求不高的场合。
CPU在与外设交换数据前必须询问外设状态——“准备好了没有?”
查询方式对外设的要求:应提供设备状态信息;对接口的要求:需要提供状态端口。
优点:软件比较简单。
缺点:CPU效率低,数据传送的实时性差,速度较慢。
3.中断方式
中断方式下,CPU无需循环查询外设状态,而是外部设备在需要进行数据传送时才中断CPU正在进行的工作,让CPU来为其服务。
即CPU在没有外设请求时可以去做更重要的事情,有请求时才去传输数据,从而大大提高了CPU的利用率。
优点:CPU效率高,实时性好,速度快。
缺点:程序编制较为复杂。
4.DMA传输
DMA传输一般用于外设和内存之间直接传送,不经过CPU,即外设直接与存储器进行数据交换,CPU不再担当数据传输的中介者;总线由DMA控制器(DMAC)进行控制(CPU 要放弃总线控制权),内存/外设的地址和读写控制信号均由DMAC提供。
优点:数据传输由DMA硬件来控制,数据直接在内存和外设之间交换,可以达到很高的传输速率(可达几MB/秒)。
中断和轮询到底区别在哪?
CPU要和外设进⾏通信,可以采⽤轮询和中断两种⽅式。
因为轮询⽅式需要CPU轮询外设,查询外设是否发⽣中断,效率不⾼显⽽易见。
于是增加了如下图的中断系统来减轻CPU负担,但是这样做效率就⾼了吗?本质上,采⽤中断系统后,CPU仍然需要每隔⼀⼩段时间去查询中断控制寄存器TCON的各位状态,以判断是否有外设中断发⽣,否则CPU仍旧⽆法知道外设的当前状态。
如上所述,中断和轮询,好像⼜没啥区别,CPU仍旧摆脱不了查询的命运。
但是你知道让CPU直接和各个外设逐⼀沟通,和让CPU只与中断控制系统机构沟通,效率是完全不⼀样的。
为了证明我的推断,我们假设,CPU外接20个不同的设备,这20个外设中在某⼀刻有两个外设同时中断,正好这个时候CPU来查看外设的状态,如果是轮询⽅式,CPU需要⼀⼀遍历20种不同的外设控制器,才能判断哪些外设刚才申请过中断,哪些外设没有申请中断。
如果采⽤中断⽅式处理呢?CPU只需查询⼀下中断标志位,处理最⾼优先级的那个中断,其他的事情全交给中断系统去处理,效率提⾼了20倍!
从中,我们也可以发现⼀个现象,不论硬件设计如何巧妙,软件产品如何复杂,在设计原则上仍然是在不断的做加法。
图1. 89C51单⽚机中断系统的硬件框图
备注: 从上图中,我们看到89C51只有五个中断源,外接的设备⽐较少。
现代CPU对中断系统进⾏了扩展,中断系统的中断寄存器也更加丰富了。
单片机原理及应用A-题库1、单片机就是把(CPU)、( 输入输出)、和( 存储器 )等部件都集成在一个电路芯片上,并具备一套功能完善的( 指令系统 ),有的型号同时还具备( AD )和( DA )等功能部件,其简称为( 微处理器 )或(微控制器)。
2、当扩展外部存储器或I/O口时,P2口用作(地址线的高8位)。
3、MCS-51单片机内部RAM区有(4)个工作寄存器区。
4、MCS-51单片机内部RAM区有128个位地址5、若不使用89C51片内的程序存储器,引脚()需要接地。
6、当MCS-51引脚(ALE)信号有效时,表示从P0口稳定地送出了低8位地址.7、在单片机的RESET端出现(2)个机器周期以上的高电平时,便可以可靠复位8、MCS-51系列单片机有:(外部中断0), (外部中断1), (定时/计数器T0溢出中断),(定时/计数器T1溢出中断), (串行口)等5个中断请求源。
9、C51中“!”运算符的作用是(取反)10、所谓的单片机,就是将CPU、存储器、定时计数器、中断功能以及I/O设备等主要功能部件都集成在一块超大规模集成电路的微型计算机。
(正确)11、8051单片机,程序存储器数和数据存储器扩展的最大范围都是一样的。
(正确)12、8位二进制数构成一个字节,一个字节所能表达的无符号数的范围是0-255。
(正确)13、8051中的工作寄存器就是内部RAM中的一部份。
(正确)14、使用89C51且 =0时,可外扩64KB的程序存储器。
(错误)15、因为MCS-51 可上电复位,因此,MCS-51系统也可以不需要复位电路。
(错误)16、一个函数利用return可同时返回多个值。
(错误)17、89C51每个中断源相应地在芯片上都有其中断请求输入引脚。
(错误)18、中断初始化时,对中断控制器的状态设置,只可使用位操作指令,而不能使用字节操作指令。
(错误)19、89C51单片机五个中断源中优先级是高的是外部中断0,优先级是低的是串行口中断。
中断与查询的区别解释一、中断方式,是事件触发的,换言之只要有事件产生都会进入中断,并且取得最优运行,因此响应更快,及时。
查询方式,就是在主函数里面不停循环,查询端口状态,明显其弊端在于响应速度,在处理事件多,处理流程复杂,函数嵌套执行的情况下,由于处理不过来容易丢失事件。
举个例子,在电话用户接入系统里面,一个单片机管理1个电话端口的摘挂机,执行周期要求8ms,用查询的方式足够了,但是当电话增加到16个,用查询方式,效果就差了,曾出现过电话响起的时(12个电话齐呼),拿起话筒,电话还在振铃,明显处理不过来。
这个时候,有两个办法,一个采用中断方式,另一个采用更高效的CPU,明显前者只需要修改软件,后者需要增加硬件成本,还延长开发时间。
解释二、把CPU比作人,定时器比作闹钟的话,中断就相当于是人设定的时间到了闹钟自己响起的过程,此时人放下手中的事去做另一件事,而查询就是人发现自己有充足的计划支配权,看一下钟,确定是否到了做计划上的某件事的最佳时间。
总而言之,中断时CPU是被动的用于处理计划外的紧急情况而具有电路层面上的优先级,查询时CPU是主动的用于处理计划内的普通情况仅在软件上自己设定优先级。
(这里的计划外应指不可预测事件发生,计划内应指可预测事件发生,有些事我们不知道什么时候会发生但知道该怎么应对所以以中断触发发出应对措施,计划内的可预测事件其实就是计算编程时的选择执行过程。
)解释三、UART(Universal Asynchronous Receiver )是通用异步收发接口,在很多芯片中都有应用。
一般UART的收与发共用一个数据寄存器(8bit),通过相应的状态寄存器来判断UART的工作情况。
接收可以有两种方式:一种是查询,另一种是中断。
通常使用中断方式。
接收查询方式是通过CPU不停读取UART的状态寄存器,当有数据到来时,读取数据,此方法占用太多的CPU时间,很少使用,在CPU只做数据转发时可以考虑使用。
单片机原理与接口技术复习题复习一选择题1. 有如下程序段:MOV R0,#30H ;(R0)=30HSETB C ; CY=1CLR A ; (A)=00HADDC A,#00H ;(A)= 01HMOV ﹫R0,A ;(A)-> 30H (30H)=01H执行结果是( )。
A. (30H )=0 0HB. (30H )=0 1HC. (00H )=0 0HD. (00H )=0 1H2. 在CPU 内部,反映程序运行状态或运算结果特征的寄存器是( )。
CY AC OV PA. PCB. PSWC. AD. SP3. 各中断源发出的中断请求信号,都会标记在( )寄存器。
A. TMOD/SCONB. TCON/PCONC. IE/TCOND. TCON/SCON6. 执行返回指令,退出中断服务子程序,则返回地址来自( )。
A. ROMB. 程序计数器C. 堆栈区D. CPU寄存器7. 中断查询,查询的是( ).A. 中断请求信号B. 中断标志C. 外中断方式控制位D. 中断允许控制位10. 外部中断1的中断入口地址为( )。
A. 0003HB. 000BHC. 0013HD. 001BH11. 下列指令中正确的是( )。
A. MOV ,AB. JBC TF0 ,L1C. MOVX B ,@DPTRD. MOV A ,@R315. 执行中断返回指令,要从堆栈弹出断点地址,以便去执行被中断了的主程序,从堆栈弹出的断点地址送( )。
A. DPTRB. PCC. CYD. A17. 在定时器操作中,选择其工作方式的寄存器是( )。
A. TMODB. TCONC. IED. SCON18. 当标志寄存器P S W 的R S 0 和R S 1 分别为1 和0 时,系统选用的工作寄存器组为( )。
01A. 组0B. 组1C. 组2D. 组319. 8051 单片机中,唯一一个用户可使用的16 位寄存器是( )。
中断查询的概念中断查询是计算机中一种重要的处理机制。
它是指在一个程序执行过程中,由于某些特殊的事件或条件发生,系统会临时中断当前程序的执行,去执行处理这个事件或条件的相关程序,然后再返回到被中断的程序继续执行。
中断查询的概念是中断式输入输出与查询方式输入输出两种输入输出方式中的一种。
中断查询是指在进行输入输出操作时,由于设备的响应时间不确定,无法确定需要等待的时间长度,而采用反复查询设备状态来确定设备是否就绪以及输出是否完成等。
当设备就绪或输出完成时,系统会发出中断请求,CPU在中断发生时会暂停当前的执行任务,转而执行中断服务程序,待中断服务程序执行完毕后,CPU再返回到原来的任务继续执行。
这种方式能够提高系统并发能力,避免了CPU的空闲等待,提高了系统的效率。
中断查询的过程一般包含以下几个步骤:1. 首先,程序向设备发送查询请求,询问设备的状态是否为就绪状态。
2. 然后,程序暂停当前任务,等待设备的响应。
在这个等待的过程中,CPU可以执行其他的任务或者进入休眠状态。
3. 当设备响应就绪时,会产生一个中断请求,通知CPU中断服务程序。
4. CPU接收到中断请求后,保存当前任务状态,并且跳转到中断服务程序的入口地址。
5. 中断服务程序会执行一系列的操作,包括处理设备输入输出、保存现场、加载中断服务程序等。
6. 中断服务程序执行完毕后,CPU会返回到原来中断发生的地方继续执行当前任务,并且恢复之前保存的现场。
中断查询的优点是可以提高系统的并发能力,减少CPU的空闲等待时间。
在查询设备状态时,CPU可以进行其他任务的执行或者休眠等待,而不需要一直等待设备响应。
这样可以提高整个系统的吞吐率和响应速度,提高系统的效率。
另外,中断查询方式相对简单,不需要额外的硬件支持,适用于各种不同的系统结构和硬件环境。
然而,中断查询也存在一些缺点。
首先,中断查询需要CPU不断地查询设备的就绪状态,这样会占用一定的CPU时间和资源。
中断1,中断的概念(见ppt)在计算机中,由于计算机内外部原因,或者由于软硬件原因,使CPU从当前正在执行的程序中暂停下来,而自动转去执行预先安排好的为处理该原因所对应的服务程序。
执行完服务程序后,再返回被暂停的位置继续执行原理的程序,这个过程称为中断。
2,中断的意义(1)使用中断,可以使单片机内部的资源并行工作,从而提高处理效率。
(2)使用中断可以及时且高效的处理紧急事件3,中断方式与查询方式的比较(中断的特点)(1)中断方式时,事件发生后,由外设主动向CPU提出申请;而查询方式下,则由CPU一直检测查询事件是否发生。
(2)中断方式可以使CPU与其他资源并行工作,而查询方式则会浪费CPU的资源。
(3)中断方式下,无论什么样的外围事件,无论在何时何地向CPU提出申请,CPU都能对其正确服务。
4,中断源的概念(ppt)产生中断请求信号的事件、原因称为中断源。
5,中断优先级的概念(ppt)在实际系统中,往往根据中断源的重要程度给不同的中断源设定优先等级。
当多个中断源提出中断请求时,优先级高的先响应,优先级低的后响应。
6,中断的屏蔽与开放(ppt)7,51单片机的中断分为哪三类?(1)外部中断(外部事件触发的,通过外部中断引脚输入的)(2)定时器/计数器中断(3)串口中断8,51单片机一共有哪五个中断?(1)INT0中断(2)INT1中断(3)定时器/计数器T0中断(4)定时器/计数器T1中断(5)串口中断9,51单片机的五个中断的中断标志位分别是什么?int0——IE0;int1——IE1;T0——TF0;T1——TF1;串口——RI(接收标志位)和TI(发送标志位)10,中断的机制(1)外部中断如何提出中断申请?通过外部中断引脚INT0(INT1)提出,如果在该引脚上出现了下降沿(边沿检测时)或者出现了低电平(电平检测时),则意味着有中断请求输入。
(2)中断请求如何被保存?每个中断都对应有各自的中断标志位,没有中断请求时,相应的中断标志位为0;如果一旦有中断请求发生,则对应的中断标志位会被硬件自动设置为1. (3)单片机如何获知中断请求?单片机在每个机器周期都会按序检测一遍中断标志位,如果检测到某位为1,则获知该中断请求存在,并获得了中断号。
中断的基本概念程序中断通常简称中断,是指CPU在正常运行程序的过程中,由于预选安排或发生了各种随机的内部或外部事件,使CPU中断正在运行的程序,而转到为相应的服务程序去处理,这个过程称为程序中断。
询方式的基本概念轮询(Polling)I/O方式或程序控制I/O方式,是让CPU以一定的周期按次序查询每一个外设,看它是否有数据输入或输出的要求,若有,则进行相应的输入/输出服务;若无,或I/O处理完毕柏,CPU就接着查询下一个外设。
所需硬件:外设接口提供状态端口、数据端口软件机制:应用程序必须定时查询各个接口的状态端口,判断是否需要输入、输出数据,如果需要,则通过数据端口进行数据操作。
特点:CPU通过执行指令主动对外部设备进行查询,外部设备处于被动地位。
轮询方式与中断方式的比较速度程序控制方式:硬件的速度指标:由于“程序控制方式”完全采用软件的方式对外设接口进行控制,所以它的硬件操作只是普通的端口读写,并无特别之处,其速度指标由总线传输速度、端口的响应速度共同决定。
对于这种外设控制方式,速度指标关键在于软件。
中断处理方式:中断处理方式本身所作的原子操作解释和程序控制方式是一致的。
只不过因为加入了中断请求和响应机制,对状态端口的读取变成了在中断响应过程中对中断号的读取,对状态端口的判断变成了对中断入口地址的确定。
从本质上来说,中断处理方式和程序控制方式本身的速度指标一致,没有大的差别。
可靠性程序控制方式:由于硬件不支持中断方式,因此操作系统把CPU控制权交给应用程序后,只要应用程序不交还CPU控制权,操作系统就始终不能恢复对CPU的控制(无定时中断)。
应用程序与操作系统都是软件模块,操作系统属于核心模块,它们之间存在交接CPU控制权的关系。
正是由于这样的关系,一旦使用对外设的“程序控制方式”时,应用程序出现死锁,则操作系统永远无法恢复对系统的控制。
应用程序的故障通过外设控制方式波及到作为核心模块的操作系统,因此,根据关联可靠性指标的计算可知,“程序控制方式”的关联可靠性指标很低。
串⼝的三种⼯作模式
串⼝⼀般有两种⽅式:查询和中断;STM32还⽀持第三种DMA⽅式。
1、查询:
串⼝程序不断地循环查询标志,看看当前有没有数据要它传送或接收。
如果有的话进⾏相应的写操作和读操作进⾏传送或接收数据。
特点:
查询⽅式的效率是⽐较低的,并且由于STM32的UART硬件上没有FIFO,如果程序功能⽐较多,查询不及时的话很容易出现数据丢失的现象,故实际项⽬中这种⽅式⽤的并不多。
2、中断
平时串⼝只要打开中断即可。
如果发现有⼀个中断来,则意味着有数据需要接收(接收中断)或数据已经发送完成(发送中断)。
特点:
中断⽅式的话我们可以分别设置接收中断和发送中断,当串⼝有数据需要接收时才进⼊中断程序进⾏读读操,这种⽅式占⽤CPU资源⽐较少,实际项⽬中⽐较常⽤,但需要注意中断程序不要太复杂使执⾏时间太长,如果执⾏时间超过⼀个字符的时间的话也会出现数据丢失的现象,这个波特率⽐较⾼的串⼝编程中⽐较容易出现,可以考虑⽤循环BUF⽅法,在中断程序中只负责实时地接收实数数和发送时的填数(写发送寄存器),其它操作放在中断外处理。
3、DMA⽅式
设置好DMA⼯作⽅式,由DMA来⾃动接收或发送数据。
特点:
STM32还提供了第三种DMA⽅式⽤来⽀持⾼速地串⼝传输。
这种⽅式只要设置好接收和发送缓冲位置,可以由DMA来⾃动接收和发送数据,这可以最⼩化占⽤CPU时间。
单片机查询工作方式和中断工作方式有什么不同,编程时有什么区别
单片机在操作外部设备时,常用的有中断和查询两种方式。
1、工作方式不同;
查询方式:发送数据——先发后查;
接收数据——先查后收。
中断方式:发送数据——发送、等待中断、中断中发送;
接收数据——等待中断、在中断中接收
中断方式,是事件触发的,换言之只要有事件产生都会进入中断,并且取得最优运行,因此响应更快,及时。
查询方式,就是在主函数里面不停循环,查询端口状态,响应速度慢。
2、编程时的区别;中断程序在程序开始定义中断入口地址,初始化中必须打开中断允许位,程序运行时不用判断溢出状态位,溢出后硬件清零;查询方式在程序运行时必须判断溢出状态位,溢出后须软件清零。
扩展资料:
单片机工作原理
1、单片机是一块用于对系统或设备进行控制的集成电路芯片,相当于一个微型计算机
系统。
包含具有数据处理能力的中央处理器CPU、静态随机处理器SRAM、闪存FLASH、多种IO口和中断系统、定时器/计数器等功能。
2、可以把单片机看成是一台微型机器,程序员给它输入命令,它就执行相应的操作。
其过程大概如下:在一般的用户模式下,单片机先从FLASH中读取指令,译码电路识别该指令是哪个指令,并输出对应的控制信号给单片机内的各部件,各部件收到控制信号后执行相应的操作。
查询方式中断方式DMA方式通道处理方式一、轮询方式对I/O设备的程序轮询的方式,是早期的计算机系统对I/O设备的一种管理方式。
它定时对各种设备轮流询问一遍有无处理要求。
轮流询问之后,有要求的,则加以处理。
在处理I/O设备的要求之后,处理机返回继续工作。
尽管轮询需要时间,但轮询不比I/O设备的速度要快得多,所以一般不会发生不能及时处理的问题。
当然,再快的处理机,能处理的输入输出设备的数量也是有一定限度的。
而且,程序轮询毕竟占据了CPU相当一部分处理时间,因此程序轮询是一种效率较低的方式,在现代计算机系统中已很少应用。
二、中断方式处理器的高速和输入输出设备的低速是一对矛盾,是设备管理要解决的一个重要问题。
为了提高整体效率,减少在程序直接控制方式中CPU之间的数据传送,是很必要的。
在I/O设备中断方式下,中央处理器与I/O设备之间数据的传输步骤如下:⑴在某个进程需要数据时,发出指令启动输入输出设备准备数据⑵在进程发出指令启动设备之后,该进程放弃处理器,等待相关I/O操作完成。
此时,进程调度程序会调度其他就绪进程使用处理器。
⑶当I/O操作完成时,输入输出设备控制器通过中断请求线向处理器发出中断信号,处理器收到中断信号之后,转向预先设计好的中断处理程序,对数据传送工作进行相应的处理。
⑷得到了数据的进程,转入就绪状态。
在随后的某个时刻,进程调度程序会选中该进程继续工作。
中断方式的优缺点I/O设备中断方式使处理器的利用率提高,且能支持多道程序和I/O设备的并行操作。
不过,中断方式仍然存在一些问题。
首先,现代计算机系统通常配置有各种各样的输入输出设备。
如果这些I/O设备都同过中断处理方式进行并行操作,那么中断次数的急剧增加会造成CPU无法响应中断和出现数据丢失现象。
其次,如果I/O控制器的数据缓冲区比较小,在缓冲区装满数据之后将会发生中断。
那么,在数据传送过程中,发生中断的机会较多,这将耗去大量的CPU处理时间。
实验一51单片机并行输入/输出实验——查询和中断方式
班级:车辆151 学号:姓名:
一、实验目的:掌握51单片机并行口输入/输出功能,并对比查询和中断方式编程方法。
二、实验内容:采用51单片机并行口P0~P3,通过1路或2路开关或按钮的状态,切换4个或8个LED的闪烁规律。
规律可以是循环点亮、全闪全灭、交替闪烁等。
并对比查询和中断方式对输入编程的区别。
实验题目:查询方式,P1.0~P1.3作为按钮输入,P0.0~P0.3作为输出到LED同步显示三、实验原理图:
四、实验源程序
五、流程框图
六、总结
程序设计思路是不断查询P1.0~P1.3的状态,从而决定P0.0~P0.3的电平高低,由于是准双向口,读入时应该写1再读。
使用查询方式时,CPU一直在查询输入信号的状态,从而决定输出信号,而使用中断方式时,则只需要等待事件触发,未触发时,CPU可以执行其它操作,效率高。
由于人眼的辨别能力有限,使用延时观察LED灯的状态时应该保证时间足够长。
科学、政治、文化、经济、心理、哲学在微型计算机系统中,CPU与外设之间的数据传送方式主要有程序传送方式、中断传送方式和直接存储器存取(DMA)传送方式,分别介绍如下。
7.2.1 程序传送方式程序传送方式是指直接在程序控制下进行数据的输入/输出操作。
程序查询方式分为无条件传送方式和查询方式(条件传送方式)两种。
一.无条件传送方式微机系统中的一些简单的外设,如开关、继电器、数码管、发光二极管等,在它们工作时,可以认为输入设备已随时准备好向CPU提供数据,而输出设备也随时准备好接收CPU送来的数据,这样,在CPU需要同外设交换信息时,就能够用IN或OUT指令直接对这些外设进行输入/输出操作。
由于在这种方式下CPU对外设进行输入/输出操作时无需考虑外设的状态,故称之为无条件传送方式。
对于简单外设,若采用无条件传送方式,其接口电路也很简单。
如简单外设作为输入设备时,输入数据保持时间相对于CPU的处理时间要长得多,所以可直接使用三态缓冲器和数据总线相连,如图7.5(a)所示()。
当执行输入的指令时,读信号RD有效,选择信号M/IO处于低电平,因而三态缓冲器被选通,使其中早已准备好的输入数据送到数据总线上,再到达CPU。
所以要求CPU在执行输入指令时,外设的数据是准备好的,即数据已经存入三态缓冲器中。
简单外设为输出设备时,由于外设取数的速度比较慢,要求CPU送出的数据在接口电路的输出端保持一段时间,所以一般都需要锁存器,如图7.5(b)所示。
CPU执行输出指令时,M/IO和WR信号有效,于是,接口中的输出锁存器被选中,CPU输出的信息经过数据总线送入输出锁存器中,输出锁存器保持这个数据,直到外设取走。
无条件传送方式下,程序设计和接口电路都很简单,但是为了保证每一次数据传送时外设都能处于就绪状态,传送不能太频繁。
对少量的数据传送来说,无条件传送方式是最经济实用的一种传送方法。
二.查询传送方式查询传送也称为条件传送,是指在执行输入指令(IN)或输出指令(OUT)前,要先查询相应设备的状态,当输入设备处于准备好状态、输出设备处于空闲状态时,CPU才执行输入/输出指令与外设交换信息。
科学、政治、文化、经济、心理、哲学在微型计算机系统中,CPU与外设之间的数据传送方式主要有程序传送方式、中断传送方式和直接存储器存取(DMA)传送方式,分别介绍如下。
7.2.1 程序传送方式程序传送方式是指直接在程序控制下进行数据的输入/输出操作。
程序查询方式分为无条件传送方式和查询方式(条件传送方式)两种。
一.无条件传送方式微机系统中的一些简单的外设,如开关、继电器、数码管、发光二极管等,在它们工作时,可以认为输入设备已随时准备好向CPU提供数据,而输出设备也随时准备好接收CPU送来的数据,这样,在CPU需要同外设交换信息时,就能够用IN或OUT指令直接对这些外设进行输入/输出操作。
由于在这种方式下CPU对外设进行输入/输出操作时无需考虑外设的状态,故称之为无条件传送方式。
对于简单外设,若采用无条件传送方式,其接口电路也很简单。
如简单外设作为输入设备时,输入数据保持时间相对于CPU的处理时间要长得多,所以可直接使用三态缓冲器和数据总线相连,如图7.5(a)所示()。
当执行输入的指令时,读信号RD有效,选择信号M/IO处于低电平,因而三态缓冲器被选通,使其中早已准备好的输入数据送到数据总线上,再到达CPU。
所以要求CPU在执行输入指令时,外设的数据是准备好的,即数据已经存入三态缓冲器中。
简单外设为输出设备时,由于外设取数的速度比较慢,要求CPU送出的数据在接口电路的输出端保持一段时间,所以一般都需要锁存器,如图7.5(b)所示。
CPU执行输出指令时,M/IO和WR信号有效,于是,接口中的输出锁存器被选中,CPU输出的信息经过数据总线送入输出锁存器中,输出锁存器保持这个数据,直到外设取走。
无条件传送方式下,程序设计和接口电路都很简单,但是为了保证每一次数据传送时外设都能处于就绪状态,传送不能太频繁。
对少量的数据传送来说,无条件传送方式是最经济实用的一种传送方法。
二.查询传送方式查询传送也称为条件传送,是指在执行输入指令(IN)或输出指令(OUT)前,要先查询相应设备的状态,当输入设备处于准备好状态、输出设备处于空闲状态时,CPU才执行输入/输出指令与外设交换信息。
数据传送的控制方式程序控制的数据传送分为无条件传送、查询传送和中断传送,这类传送方式的特点是以CPU为中心,数据传送的控制来自CPU,通过预先编制好的输入或输出程序(传送指令和I/O指令)实现数据的传送。
这种传送方式的数据传送速度较低,传送路径要经过CPU内部的寄存器,同时数据的输入输出的响应也较慢。
一、无条件传送方式又称“同步传送方式”。
主要用于外设的定时是固定的并且是已知的场合,外设必须在微处理器限定的指令时间内准备就绪,并完成数据的接收或发送。
通常采用的办法是:把I/O指令插入到程序中,当程序执行到该I/O指令时,外设必定已为传送数据作好准备,于是在此指令时间内完成数据传送任务。
无条件传送是最简便的传送方式,它所需的硬件和软件都较少。
二、查询传送方式无条件传送对于那些总是准备好的外设来说是比较适用的,但是,还有许多外设并不是总是准备好的。
当CPU与这类外设进行数据交换,经常采用程序查询方式。
查询方式传送数据的过程如下:1、如果CPU要从外设接收一个数据,CPU首先查询外设的状态,看外设数据是否准备好,若没有准备好,则等待;若外设已将数据准备好,则CPU由外设读取数据。
2、接收数据后,CPU向外设发响应信号,表示数据已被接收。
外设收到响应信号之后,即可开始下一个数据的准备工作。
3、当CPU需要向外设输出一个数据,同样,CPU首先查询外设的状态,看其是否空闲。
若正忙,则等待;若外设准备就绪,处于空闲状态,则CPU向外设送出数据和输出就绪信号,外设接收数据后,向CPU发出数据已收到的状态信息,这样,就完成了一个数据的输出过程。
在条件查询方式下,CPU在与外设打交道时,必须采样READY信号。
(1)查询方式◆从硬件上来说,必须有两个端口,状态端口,数据端口。
◆从软件上来说,必须有查询循环。
(2)查询传送的缺点不能对外设进行及时的数据交换,这对许多实时性要求较高的外设来说,就可能造成丢失数据。
三、中断传送方式无条件传送和查询传送的缺点是CPU和外设只能串行工作,各外设之间也只能串行工作。
中断方式和查询方式,也叫轮询方式,有什么区别,就要知道什么是中断方式,什么是轮询方式.
中断的汉语解释是半中间发生阻隔、停顿或故障而断开。
那么,在计算机系统中,我们为什么需要“阻隔、停顿和断开”呢?
举个日常生活中的例子,比如说我正在厨房用煤气烧一壶水,这样就只能守在厨房里,苦苦等着水开——如果水溢出来浇灭了煤气,有可能就要发生一场灾难了。
等啊等啊,外边突然传来了惊奇的叫声“怎么不关水龙头?”于是我惭愧的发现,刚才接水之后只顾着抱怨这份无聊的差事,居然忘了这事,于是慌慌张张的冲向水管,三下两下关了龙头,声音又传到耳边,“怎么干什么都是这么马虎?”。
伸伸舌头,这件小事就这么过去了,我落寞的眼神又落在了水壶上。
门外忽然又传来了铿锵有力的歌声,我最喜欢的古装剧要开演了,真想夺门而出,然而,听着水壶发出“咕嘟咕嘟”的声音,我清楚:除非等到水开,否则没有我享受人生的时候。
这个场景跟中断有什么关系呢?
如果说我专心致志等待水开是一个过程的话,那么叫声、电视里传出的音乐不都让这个过程“半中间发生阻隔、停顿或故障而断开”了吗?这不就是活生生的“中断”吗?
在这个场景中,我是唯一具有处理能力的主体,不管是烧水、关水龙头还是看电视,同一个时间点上我只能干一件事情。
但是,在我专心致志干一件事情时,总有许多或紧迫或不紧迫的事情突然出现在面前,都需要去关注,有些还需要我停下手头的工作马上去处理。
只有在处理完之后,方能回头完成先前的任务,“把一壶水彻底烧开!”
中断机制不仅赋予了我处理意外情况的能力,如果我能充分发挥这个机制的妙用,就可以“同时”完成多个任务了。
回到烧水的例子,实际上,无论我在不在厨房,煤气灶总是会把水烧开的,我要做的,只不过是及时关掉煤气灶而已,为了这么一个一秒钟就能完成的动作,却让我死死地守候在厨房里,在10分钟的时间里不停地看壶嘴是不是冒蒸气,怎么说都不划算。
我决定安下心来看电视。
当然,在有生之年,我都不希望让厨房成为火海,于是我上了闹钟,10分钟以后它会发出“尖叫”,提醒我炉子上的水烧开了,那时我再去关煤气也完全来得及。
我用一个中断信号——闹铃——换来了10分钟的欢乐时光,心里不禁由衷地感叹:中断机制真是个好东西。
正是由于中断机制,我才能有条不紊地“同时”完成多个任务,中断机制实质上帮助我提高了并发“处理”能力。
它也能给计算机系统带来同样的好处:如果在键盘按下的时候会得到一个中断信号,CPU就不必死守着等待键盘输入了;如果硬盘读写完成后发送一个中断信号,CPU就可以腾出手来集中精力“服务大众”了——无论是人类敲打键盘的指尖还是来回读写介质的磁头,跟CPU的处理速度相比,都太慢了。
没有中断机制,就像我们苦守厨房一样,计算机谈不上有什么并行处理能力。
跟人相似,CPU也一样要面对纷繁芜杂的局面——现实中的意外是无处不在的——有可能是用户等得不耐烦,猛敲键盘;有可能是运算中碰到了0除数;还有可能网卡突然接收到
了一个新的数据包。
这些都需要CPU具体情况具体分析,要么马上处理,要么暂缓响应,要么置之不理。
无论如何应对,都需要CPU暂停“手头”的工作,拿出一种对策,只有在响应之后,方能回头完成先前的使命,“把一壶水彻底烧开!”
然后说下轮询模式
刚才中断已经解释了,硬件跟 CPU 通信的大致原理,
但是如果中断信号过于频繁,而且中断后处理的数据过于小.比如一个网卡遭到小IP 包的攻击,每秒10万个包,都是64字节的小包,
这个时候再强的 CPU 也会累死的,
因为 CPU 的发展一直在提升处理数据的能力上,中断机制从来没有改变过.
所以早期的时候,UNIX 系统提出了软中断的概念,类似与硬件的信号缓存,
在内存为每一个使用中断的硬件都开辟一个缓存,
当需要中断处理的时候,信号是被放在缓存里,而不是直接交给CPU ,当缓存差不多快满的时候,让CPU 一次来处理完,而不用一个中断处理一次,大大减少了 CPU 的压力.
所以 FREEBSD 4.11的时候,有人做过攻击试验.100M 流量的攻击包,在 BSD 系统没开轮询的时候,CPU 占用 85%,开了轮询后,CPU 占用 3%--5%。