CPU中断与查询方法的区别

发布 2019-08-17 15:35:17 阅读 1773

中断与查询的区别。

解释一、中断方式,是事件触发的,换言之只要有事件产生都会进入中断,并且取得最优运行,因此响应更快,及时。

查询方式,就是在主函数里面不停循环,查询端口状态,明显其弊端在于响应速度,在处理事件多,处理流程复杂,函数嵌套执行的情况下,由于处理不过来容易丢失事件。

举个例子,在**用户接入系统里面,一个单片机管理1个**端口的摘挂机,执行周期要求8ms,用查询的方式足够了,但是当**增加到16个,用查询方式,效果就差了,曾出现过**响起的时(12个**齐呼),拿起话筒,**还在振铃,明显处理不过来。

这个时候,有两个办法,一个采用中断方式,另一个采用更高效的cpu,明显前者只需要修改软件,后者需要增加硬件成本,还延长开发时间。解释二、

把cpu比作人,定时器比作闹钟的话,中断就相当于是人设定的时间到了闹钟自己响起的过程,此时人放下手中的事去做另一件事,而查询就是人发现自己有充足的计划支配权,看一下钟,确定是否到了做计划上的某件事的最佳时间。总而言之,中断时cpu是被动的用于处理计划外的紧急情况而具有电路层面上的优先级,查询时cpu是主动的用于处理计划内的普通情况仅在软件上自己设定优先级。

这里的计划外应指不可**事件发生,计划内应指可**事件发生,有些事我们不知道什么时候会发生但知道该怎么应对所以以中断触发发出应对措施,计划内的可**事件其实就是计算编程时的选择执行过程。)

解释三、uart(universal asynchronous receiver )是通用异步收发接口,在很多芯片中都有应用。一般uart的收与发共用。

一个数据寄存器(8bit),通过相应的状态寄存器来判断uart的工作情况。

接收可以有两种方式:一种是查询,另一种是中断。通常使用中断方式。

接收查询方式是通过cpu不停读取uart的状态寄存器,当有数据到来时,读取数据,此方法占用太多的cpu时间,很少使用,在cpu只做数据**时可以考虑使用。

接收中断方式是通过数据到达后产生中断,在中断处理函数中读取数据。每一个数据(8bit)到来产生一次中断。如果在每个数据中断都调用数据处理函数,当波特率较高,数据帧较长,数据处理时间较长时,可能会出现丢数据的情况。

如果在一次中断进入后,while(数据寄存器满),但波特率不。

高时,可能出现将一帧数据分多次中断读取,给后来的数据处理带来不便。

在windows中是将串口(uart)当做一个文件,直接对文件进行读写操作。一般是以一个线程去查询读取数据,基本可以保证整帧数据一次全部读出。

也可以一次一个字符(8bit)来读。实际上是windows的底层驱动将uart(串口)数据接收之后放到一个fifo缓冲区中。显然在单片机或dsp等专用芯片中也应该用一个fifo来缓存数据,然后在程序中读fifo来处理数据。

发送也可以分为两种方式:一种是查询,另一种是中断。通常使用查询方式。

发送查询方式是通过cpu查询uart发送寄存器的状态,当为空的时候,发送数据;当不为空时,等待(适合用while循环判断)。

发送中断方式是将需要发送的数据存入一个缓冲区(fifo),当发送寄存器为空,进入中断时,将数据发送。需要注意时,一旦开启发送中断,当没有数据发送时,就会一直跳入发送中断处理函数,所以在数据发送完之后一定要关闭发送中断使能。

厂用电中断

应对厂用电中断故障。现场处置方案。一 工作场所。二 事件特征。厂用电系统设备故障 人为误操作引起厂用电中断。三 现场人员应急职责。1 运维值长。2 负责做好生产现场抢险 抢修工作的组织 协调。3 稳定现场人员情绪,保护现场防止事态扩大。2 运维值班人员。1 进行现场处置。四 现场应急处置。1 现场应...

酒店电力中断应急预案

1.0目的。保障酒店财物及客人 员工安全,确保酒店能基本正常运作,做到防患于未然。2.0适用范围。适用于酒店电力中断应急预案。3.0牵涉部门。各部门配合相关电力中断应急预案,4.0执行程序4.1突发性停电。4.1.1通过对讲机通知使用对讲机部门,对讲机频率让给行政办 工程部及大堂副经理使用,如非有紧...

氮气中断应急预案 安全措施

1特征。1.1 风险分析。轧钢部现有三座加热炉的换向系统采用氮气作为主要动力驱动,系统设计压力为1.5mpa,最高工作压力为1.3mpa,实际使用压力控制在0.6 0.05mpa范围 每座加热炉均有压风系统作为备用系统驱动,如氮气系统不能正常稳定运行,可能引发加热炉换向系统瘫痪,加热炉只能单向加热 ...