本发明专利技术实施例公开了一种中断抖动的处理方法和设备,通过应用本发明专利技术实施例的技术方案,将所有的中断通过统一中断入口进行接收和判断处理,只有在确定在相应的过滤周期内接收到的相应类型的中断没有超过预设的过滤阈值时,才对该中断执行相应的正常处理流程,从而,避免大量的中断抖动对处理资源的占用,并且,由于通过统一中断入口接收中断,并进行统一的过滤处理,降低了大量冗余的中断处理对处理器资源的占用,因此,即使在出现高频中断抖动的情况下,依旧可以保证处理器有足够的资源进行其他正常的业务处理。
【技术实现步骤摘要】
本专利技术涉及通信
,特别涉及一种中断抖动的处理方法和设备。
技术介绍
中断是单片机实时地处理内部或外部事件的一种内部机制。当某种内部或外部事 件发生时,单片机的中断系统将迫使CPU (Central Processing Unit,中央处理器)暂停正 在执行的程序,转而去进行中断事件的处理,中断处理完毕后,又返回被中断的程序处,继 续执行下去。在实际应用中,设备底层驱动软件的运行,往往是以硬件产生的中断为条件来进 行触发的,硬件所产生的中断通知了驱动软件的各种事件的发生,例如数据的传输事件通 知、硬件异常通知等。为了响应中断的产生,进行中断对应的处理,底层驱动软件需要调用 操作系统或者BSP (Board Support lockage,板级支持软件包)提供的函数,为每一个需要 管理的中断注册一个中断处理程序。此后,当硬件中断产生时,操作系统或BSP会调用驱动 注册的中断处理程序进行处理。当发生异常时,中断有可能以非常高的频度频繁产生,这就可能导致系统不断的 进入中断的处理程序,在严重的情况下,CPU可能除了反复执行中断处理程序之外,已经没 有空闲再去执行其他的程序,此时,就会出现设备的不正常运行,甚至瘫痪。为了克服这样的问题,需要对过渡频繁的中断进行过滤,即中断去抖。在现有技术 提到的中断去抖概念,通常指的是,在中断处理程序及其触发的后续处理流程中,对于中断 的频繁产生进行软件流程的去抖,例如,在键盘输入过程中,由于存在按键的抖动,导致虽 然操作者感觉只是按了一次键,但是处理器接收到的按键事件产生中断却可能有多个,为 了最终将抖动的多次键盘键入识别为一次键入,后续的软件流程可能采用一系列算法进行 去抖。在实现本专利技术实施例的过程中,申请人发现现有技术至少存在以下问题 现有技术所涉及的中断去抖操作,只能适用于低频的中断抖动(频率通常在10000HZ以下),这种情况下,CPU仍然有余力执行中断处理程序及其后续软件去抖流程。而如果出现高频的中断抖动(频率通常在10000HZ以上),CPU只能不断被动响应 中断处理程序,已经无力再去处理中断处理程序后续的流程,后续的去抖操作及其正常功 能都已经没有条件再得到执行,设备已经失效甚至瘫痪。对于此种情况,现有技术没有给出有效的保证设备在高频中断抖动的场景下仍然 正常工作的方法。
技术实现思路
本专利技术实施例提供一种中断抖动的处理方法和设备,解决现有的无法在高频中断 抖动场景下进行正常处理的问题。为达到上述目的,本专利技术实施例一方面提供了一种中断抖动的处理方法,包括通过统一中断入口接收所有的中断;当接收到一个中断时,查询所述中断的接收时间是否处于所述中断的类型所对应的过 滤周期内;如果查询结果为是,判断在所述过滤周期内接收到的所述类型的中断的次数是否达到 预设的过滤阈值;如果没有达到,调用所述类型的中断所对应的中断处理程序对所述中断进行处理。另一方面,本专利技术实施例还提供了一种中断抖动的处理设备,包括 统一中断入口,用于接收所有的中断;设置模块,用于设置各中断类型所对应的过滤周期和过滤阈值; 查询模块,用于当所述统一中断入口接收到一个中断时,查询所述中断的接收时间是 否处于所述设置模块设置的所述中断的类型所对应的过滤周期内;判断模块,用于在所述查询模块的查询结果为是时,判断在所述过滤周期内接收到的 所述类型的中断的次数是否达到所述设置模块所设置的过滤阈值;处理模块,用于在所述判断模块的判断结果为没有达到时,调用所述类型的中断所对 应的中断处理程序对所述中断进行处理。与现有技术相比,本专利技术实施例具有以下优点通过应用本专利技术实施例的技术方案,将所有的中断通过统一中断入口进行接收和判断 处理,只有在确定在相应的过滤周期内接收到的相应类型的中断没有超过预设的过滤阈值 时,才对该中断执行相应的正常处理流程,从而,避免大量的中断抖动对处理资源的占用, 并且,由于通过统一中断入口接收中断,并进行统一的过滤处理,降低了大量冗余的中断处 理对处理器资源的占用,因此,即使在出现高频中断抖动的情况下,依旧可以保证处理器有 足够的资源进行其他正常的业务处理。附图说明图1为本专利技术实施例提出的一种中断抖动的处理方法的流程示意图2为本专利技术实施例提出的一种具体应用场景下的中断抖动的处理方法的流程示意图3为本专利技术实施例提出的一种中断抖动的处理设备的结构示意图。 具体实施例方式如
技术介绍
所述,在各种设备产品中,底层驱动软件的一项重要工作就是对于硬 件产生的各种中断进行管理。不可避免的,硬件中断在某些异常的情况下存在发生抖动而 频繁产生的可能性(例如,由于虚焊导致的接触不良,或者设备进水导致的硬件故障等),一 旦中断产生的频度达到了一定的量级,就可能导致处理器为了不断对其进行处理,而对正 常的业务运行造成严重的干扰,甚至导致设备瘫痪。这样的情况即为中断抖动,为了克服这样的中断抖动,现有的技术方案主要是由 CPU进行去抖操作,但这样同样会占用处理资源,在抖动频率较高,尤其对于高频的中断抖 动(其频率通常在10000HZ以上,即每IOOus产生1次以上中断)的情况,现有的技术方案需 要占用大量的CPU处理资源,同样可能造成没有足够的处理资源进行其他业务处理,甚至造成设备瘫痪。为了避免这种情况的发生,本专利技术实施例提出了对中断,尤其是高频抖动的进行 过滤处理的技术方案。本专利技术实施例针对高频中断去抖的需求,提出了对中断进行过滤处理的技术方 案,其中心思想在于对于需要进行过滤处理的中断进行注册,对于注册了需要过滤处理的 中断,在一定的过滤周期内,无论该中断从硬件上产生多少次,软件上只会对底层驱动软件 注册的该中断处理程序进行有限次数的调用。以保证系统不会因为过多的中断抖动而占用 过多的处理资源。如图1所示,为本专利技术实施例提出的一种中断抖动的处理方法的流程示意图,该 方法具体包括以下步骤步骤S101、通过统一中断入口接收所有的中断。统一中断入口的引入主要是为了将所有的中断在上报过程中都经过统一的预处 理,从而实现统一的过滤处理。统一中断入口可以是与后续处理单元相连接的一个逻辑接口,也可以是一个独立 的处理单元,或是一个能够应用相应的处理函数的功能实体,具体物理形态的变化并不会 影响本专利技术的保护范围。步骤S102、当接收到一个中断时,查询该中断的接收时间是否处于该中断的类型 所对应的过滤周期内。在实际应用中,该中断的类型所对应的过滤周期是预先设定的,即前述的对于需 要进行过滤处理的中断进行注册,并设置相应的过滤周期,在此过滤周期内,无论该中断从 硬件上产生多少次,软件上只会对底层驱动软件注册的该中断处理程序进行有限次数的调用。如果查询结果为是,执行步骤S103 ; 如果查询结果为否,执行步骤S104。在实际应用中,为了在过滤周期内对接收到的中断进行计数,以便进行相应的后 续处理,所以,当查询结果为是时,需要进行计数处理,即将在过滤周期内接收到的该类型 的中断的次数增加1。而相反的,当查询结果为否时,表示当前的过滤周期已经过期,无需再对该类型的 中断进行过滤,因此,将在过滤周期内接收到的该类型的中断的次数清零。步骤S103、判断在过滤周期内接收到的该类型的中断的次数是否达到预设的过滤 阈值。如果没有达到,执行步骤本文档来自技高网...
【技术保护点】
1.一种中断抖动的处理方法,其特征在于,包括:通过统一中断入口接收所有的中断;当接收到一个中断时,查询所述中断的接收时间是否处于所述中断的类型所对应的过滤周期内;如果查询结果为是,判断在所述过滤周期内接收到的所述类型的中断的次数是否达到预设的过滤阈值;如果没有达到,调用所述类型的中断所对应的中断处理程序对所述中断进行处理。
【技术特征摘要】
【专利技术属性】
技术研发人员:蒋石竹,
申请(专利权)人:大唐移动通信设备有限公司,
类型:发明
国别省市:11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。