一种用于汽车电子控制单元中断唤醒的处理方法与流程

文档序号:16390157发布日期:2018-12-22 11:17阅读:597来源:国知局
一种用于汽车电子控制单元中断唤醒的处理方法与流程

本发明属于操作系统的技术领域,具体涉及一种计算机可读存储介质、用于汽车电子控制单元中断唤醒的电子设备以及用于汽车电子控制单元中断唤醒的处理方法。

背景技术

随着人们生活水平的提高,汽车消费越来越普遍,对汽车电子应用的要求也越来越高,现有汽车电子控制单元的微处理器mcu唤醒方式大多采用中断唤醒和polling相结合的方式。由于mcu资源限制,没法做到所有的唤醒源都采用中断的方式唤醒,因此,选择唤醒源中需要快速响应的唤醒源用中断方式唤醒,其他唤醒源采用polling方式唤醒mcu,所述polling的原理是设置一个定时器周期性地中断唤醒mcu,然后查询各个polling唤醒源是否处于有效状态,若处于有效状态,则唤醒mcu,否则,mcu继续休眠,等待下次中断唤醒。

但是,两种策略并存的情况下,就会存在采用中断方式的唤醒源漏检的问题,如当有中断发生时,mcu被唤醒,启动polling读取中断状态寄存器,确定当前是出现了中断方式的唤醒源,还是定时器唤醒mcu进行polling操作,之后根据实际情况让mcu继续休眠或唤醒。除了用于polling的定时器中断是可预测的外,其他中断都具有随机性,没法保证是在这些中断发生之后才去读中断状态寄存器,比如,mcu被定时器中断唤醒,在读取过中断状态寄存器之后产生了采用中断方式的唤醒源唤醒,这样就会造成采用中断方式的唤醒源漏检。虽然采用polling持续查询方式可以避免采用中断方式的唤醒源丢失的问题,但polling方式会降低mcu的唤醒速度,对于那些需要考虑响应速度的唤醒源,polling方式并不适用。



技术实现要素:

本发明提供了一种计算机可读存储介质、用于汽车电子控制单元中断唤醒的电子设备以及用于汽车电子控制单元中断唤醒的处理方法,解决了采用中断方式和polling查询结合进行mcu唤醒时,造成中断方式唤醒的唤醒源漏检的问题。

本发明可通过以下技术方案实现:

一种计算机可读存储介质,用于汽车电子控制单元的中断唤醒,包括与微处理器内部的唤醒模块结合使用的计算机程序,所述计算机程序可被处理器执行完成以下步骤:

所述唤醒模块检测到有效唤醒源,启动polling程序查询中断寄存器的地址状态;

判断所述中断寄存器的地址状态是否有变化,若有,执行对应的应用程序,否则,利用polling程序,查询各个非中断引脚对应的gpio输入寄存器的地址状态;

判断所述gpio输入寄存器的地址状态是否有变化,若有,执行对应的应用程序,否则,将中断寄存器的地址状态清零;

查询各个中断引脚对应的gpio输入寄存器的地址状态是否有变化,若有,执行对应的应用程序,否则,微处理器继续休眠。

进一步,所述微处理器包括与唤醒模块相连的多个中断引脚,各个所述中断引脚与对应的唤醒源相连,所述中断引脚的电平状态与中断寄存器的地址状态相对应。

进一步,所述有效唤醒源包括唤醒源引起对应的中断引脚的电平跳变,以及定时器到达周期时间。

一种用于汽车电子控制单元中断唤醒的电子设备,包括多个唤醒源、唤醒模块,一个或多个处理器、存储器,以及一个或多个程序,其中所述的一个或多个程序被存储在存储器中,并被配置成由所述一个或多个处理器执行,所述程序包括用于执行以下步骤的指令:

所述唤醒模块检测到有效唤醒源,启动polling程序查询中断寄存器的地址状态;

判断所述中断寄存器的地址状态是否有变化,若有,执行对应的应用程序,否则,利用polling程序,查询各个非中断引脚对应的gpio输入寄存器的地址状态;

判断所述gpio输入寄存器的地址状态是否有变化,若有,执行对应的应用程序,否则,将中断寄存器的地址状态清零;

查询各个中断引脚对应的gpio输入寄存器的地址状态是否有变化,若有,执行对应的应用程序,否则,微处理器继续休眠。

进一步,所述微处理器包括与唤醒模块相连的多个中断引脚,各个所述中断引脚与对应的唤醒源相连,所述中断引脚的电平状态与中断寄存器的地址状态相对应。

进一步,所述有效唤醒源包括唤醒源引起对应的中断引脚的电平跳变,以及定时器到达周期时间。

一种用于汽车电子控制单元中断唤醒的处理方法,其特征在于包括以下步骤:

步骤一、微控制器的唤醒模块检测到有效唤醒源,启动polling程序查询中断寄存器的地址状态;

步骤二、判断所述中断寄存器的地址状态是否有变化,若有,执行对应的应用程序,否则,利用polling程序,查询各个非中断引脚对应的gpio输入寄存器的地址状态;

步骤三、判断所述gpio输入寄存器的地址状态是否有变化,若有,执行对应的应用程序,否则,将中断寄存器的地址状态清零;

步骤四、查询各个中断引脚对应的gpio输入寄存器的地址状态是否有变化,若有,执行对应的应用程序,否则,微处理器继续休眠。

进一步,所述微处理器包括与唤醒模块相连的多个中断引脚,各个所述中断引脚与对应的唤醒源相连,所述中断引脚的电平状态与中断寄存器的地址状态相对应。

进一步,所述有效唤醒源包括唤醒源引起对应的中断引脚的电平跳变,以及定时器到达周期时间。

本发明有益的技术效果如下:

在微处理器的唤醒模块检测到有效唤醒源时,启动polling程序查询中断寄存器地址状态的变化,若有变化,按照正常的中断方式唤醒微处理器,若无变化,说明此时为定时器中断唤醒,按照正常的定时器中断唤醒微处理器,并将中断寄存器的地址状态清零,然后,再查询中断引脚对应的gpio输入寄存器的状态,若有变化,直接执行对应的应用程序,这样,能够避免在polling程序查询中断寄存器地址状态之后,发生的中断方式的唤醒源漏检,同时也保留了采用中断方式唤醒微处理器,保障了微处理器对紧急状况的快速响应速度,提高了微处理器的整体性能。

附图说明

图1为本发明的软件程序的流程图。

具体实施方式

下面结合附图及较佳实施例详细说明本发明的具体实施方式。

参照附图1,本发明提供了一种用于汽车电子控制单元中断唤醒的处理方法,其特征在于包括以下步骤:

步骤一、微控制器的唤醒模块检测到有效唤醒源时,启动polling程序查询中断寄存器的地址状态;

该微处理器包括与唤醒模块相连的多个中断引脚,各个中断引脚与对应的唤醒源相连,该唤醒源包括点火开关插入钥匙、踩刹车等之类,而中断引脚的电平状态与中断寄存器的地址状态相对应,当唤醒源对应的操作被驾驶员执行,变为有效唤醒源时,会引起对应的中断引脚的电平发生跳变,同时,将此变化写入中断寄存器对应的地址里,由于唤醒模块与中断引脚相连,也会检测到此变化。另外,由于微处理器mcu资源限制,除了上述类型的唤醒源以外,其他类型的唤醒源则需要通过微处理器mcu的定时器定时去唤醒,进行唤醒源查询来唤醒微处理器,即定时器到达周期时间也属于上文所述的有效唤醒源。

步骤二、判断该中断寄存器的地址状态是否有变化,若有,执行对应的应用程序,否则,说明检测到的有效唤醒源为定时器中断唤醒,利用polling程序,查询各个非中断引脚对应的gpio输入寄存器的地址状态。

步骤三、判断gpio输入寄存器的地址状态是否有变化,若有,执行对应的应用程序,否则,将中断寄存器的地址状态清零。

步骤四、在微处理器休眠前,查询各个中断引脚对应的gpio输入寄存器的地址状态是否有变化,若有,执行对应的应用程序,否则,微处理器继续休眠。

上文所述的处理方法主要由计算机程序执行,该计算机程序可以存储在计算机可读介质中,便于处理器执行,完成其对应的功能。

本发明还提供了一种用于汽车电子控制单元中断唤醒的电子设备,包括多个唤醒源、唤醒模块,一个或多个处理器、存储器,以及一个或多个程序,其中上述一个或多个程序被存储在存储器中,并被配置成由上述一个或多个处理器执行,这些程序包括用于执行上文所述的处理方法中的步骤的指令。

本发明的具体工作过程如下:

在微处理器的唤醒模块检测到有效唤醒源时,如点火开关插入钥匙、踩刹车或者定时器到达周期时间等等,微处理器被唤醒可以开始工作,启动polling程序查询中断寄存器地址状态的变化,若有变化,说明此时有效唤醒源为采用中断方式的唤醒,按照正常的中断方式处理,执行对应的应用程序,若无变化,说明此时为定时器中断唤醒,按照正常的定时器中断唤醒处理,利用polling程序查询各个非中断引脚对应的gpio输入寄存器地址状态的变化,若有变化,,执行对应的应用程序,若无变化,将中断寄存器的地址状态清零,便于保存采用中断方式的唤醒源下一次被执行时,对应的中断引脚状态变化,为了避免采用polling程序查询中断寄存器地址状态的变化时,发生中断唤醒丢失,需要直接查询中断引脚对应的gpio输入寄存器的状态,若有变化,直接执行对应的应用程序,否则,将微处理器进行休眠状态,这样,既能够避免在polling程序查询中断寄存器地址状态之后,发生的中断方式的唤醒源漏检,同时也保留了采用中断方式唤醒微处理器,保障了微处理器对紧急状况的快速响应速度,提高了微处理器的整体性能。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,因此,本发明的保护范围由所附权利要求书限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1