控制/MCU
上一节的芝识课堂中我们介绍了微控制器的CPU部分功能单元和基本指令执行的知识,今天我们继续以东芝的TLCS-870/C1内核作为示例,跟大家一起认识CPU配置的另一个关键环节——“中断处理”。
CPU的工作除了常规的顺序执行外,还会遇到特定的中断请求。如下图所示,发生中断请求时,堆栈会临时保存中断发生之前正处于运行状态的程序标记以及PC值。中断处理完成之后,将恢复堆栈中保存的标志等信息,并继续运行暂停的程序。这其中,堆栈指针用于管理堆栈,并指示PC和标志的保存地址。堆栈中要放入和取出的数据采用FILO(先进后出)的方法管理,即先储存数据后取出。在该堆栈中储存数据称为“Push”(压栈),从该堆栈中读取数据叫做“Pop”(出栈)。堆栈指针由“Push”前进,由“Pop”返回。
而在进行中断处理时,微控制器会接收到外部中断请求,当内部处于可以接受中断的状态时,微控制器暂停正在执行的程序,转而执行中断程序。当外部设备的中断请求信号输入到CPU上的中断专用端子时,当前正在执行的程序暂停,微控制器切换到中断时要执行的程序,执行该程序。当中断处理程序结束之后,返回原程序,从暂停处理的程序重新启动,整个操作过程如下图所示。
不同的中断方式
在微控制器的CPU中,中断有两种:硬件中断和软件中断。硬件中断是通过外围电路的中断请求信号来发生的中断。而软件中断则是通过执行专用指令来发生的中断。其中硬件中断分为外部中断和内部中断。当指定的信号输入到专门的外部中断端子时,就会发生外部中断。内部中断则是通过微控制器内置的外围电路发出中断请求信号而发生的。
此外,根据中断请求信号的接收方式,还分为可屏蔽中断和不可屏蔽中断。这里,“可屏蔽”是指“被禁止”。当发生中断请求信号时,如果CPU设置为启用中断,就可以执行中断处理。而如果中断设置为禁用,则将忽略中断请求信号,不执行中断处理。忽略的中断请求信号会被保留,直到中断请求变为启用或者命令被程序取消。这样,可屏蔽中断可以自由地启用或者禁用中断处理。它通常由程序设置,当CPU收到中断请求信号之后,中断控制电路将转入中断处理操作。
不可屏蔽中断则不能禁用。如果有中断请求,CPU将无条件地执行中断处理。不可屏蔽中断用于进行紧急处理,例如断电处理、数据备份处理等。CPU中会有一个看门狗定时器作为不可屏蔽中断,看门狗定时器检查微控制器是否正常工作。当检测到异常时,产生看门狗定时器中断,将错误通知给CPU或使CPU复位。
中断操作还包括一个环节是复位,微控制器通常可在接通电源时复位,复位使微控制器的配置返回初始状态。执行复位操作时,程序将从头开始运行。
CPU内核可以说是微控制器整体配置中最重要的部分,它决定了微控制器性能的高低。在微控制的内核选择与整体设计方面,东芝愿意将深耕领域多年的经验与各位粉丝共享。如果您想要了解更多微控制器的知识,也可前往东芝半导体与储存官网了解哦!
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !