在单片机编程过程中,经常会使用到中断。那么,什么是单片机中断,它与CPU的轮询有什么区别?在本文中,单片机开发工程师将对单片机中断和CPU轮询做个简单的介绍。
中断:
中断是一种硬件机制,在这种机制中,设备会通知CPU它需要引起注意。中断可以随时发生。因此,当CPU通过指示中断请求线收到中断信号时,CPU停止当前进程并通过将控制权传递给服务设备的中断处理程序来响应该中断。
轮询:
轮询不是一种硬件机制,它是一种协议,CPU会稳定地检查该设备是否需要注意。无论设备告诉处理单元它希望进行硬件处理的位置如何,在轮询过程中,处理单元都会不断询问I/O设备是否希望进行CPU处理。CPU不断检查连接到其上的每个设备,以侦查是否有任何设备需要硬件注意。
每个设备都有一个指示命令就绪的位,指示该设备的状态,即该命令是否被硬件终止。如果命令位已准备就绪,则该命令已失效;否则,如果该位为零,则该命令无效。
让我们看看中断和轮询之间的区别:
1、在中断时,设备会通知CPU它需要引起注意。而在轮询中,CPU会稳定地检查设备是否需要注意。
2、中断不是协议,而是一种硬件机制。轮询不是硬件机制,而是协议。
3、在中断中,该设备由中断处理程序提供服务。轮询时,该设备由CPU维修。
4、断可以随时发生。轮询时,CPU会以固定或适当的间隔稳定地对设备进行投****。
5、在中断中,中断请求线用作指示设备需要维修的指示。在轮询时,命令就绪位用作指示,表明设备需要维修。
6、在中断中,一旦任何设备将其中断,处理器就会受到干扰。相反,在轮询中,处理器通过重复检查每个设备的命令就绪位来浪费无数的处理器周期。