一种单片机系统和用于单片机系统的复位方法与流程

文档序号:12185279阅读:287来源:国知局
一种单片机系统和用于单片机系统的复位方法与流程

本发明涉及计算机领域,并且更具体地,涉及一种单片机系统和用于单片机系统的复位方法。



背景技术:

单片机是一个集成在芯片上的完整计算机系统。单片机通常可以通过睡眠模式来节省待机时的功耗。当单片机需要从睡眠模式恢复到工作模式时,可以通过唤醒或者复位两种方法来实现。其中,唤醒能够快速唤醒中央处理单元(Central Processing Unit,简称“CPU”),使单片机开始工作;复位则需要让芯片回到最初始状态,CPU重新开始运行,对芯片进行一系列初始化状态后进入工作模式。用户可以根据自身需求,对处于睡眠模式的单片机可以通过唤醒或复位两种方式使其重新进入工作模式。

当前技术中,单片机的唤醒和复位分别通过不同的输入/输出(Input/Output,简称“I/O”)口引脚来控制。例如,唤醒可以通过检测一个通用I/O口的电平是否发生指定的变化(例如,检测到低电平时唤醒CPU)来控制,复位可以通过操作复位脚(例如,通过控制电平的变化)使单片机全局复位。然而,I/O口对于单片机来说是非常宝贵的资源,通过两个独立的I/O口引脚分别控制单片机重新进入工作模式,造成了较大的系统资源耗费。



技术实现要素:

本发明实施例提供一种单片机系统和用于单片机系统的复位方法,以通过检测复位引脚的复位脉冲宽度来确定唤醒或是复位单片机,在不增加系统资源的同时,通过一个复位引脚实现了唤醒和复位两种功能。

第一方面,提供了一种单片机系统,包括:复位引脚、控制单元、中央处理单元CPU和外设,所述单片机系统通过所述复位引脚的一端与主控系统连接,所述复位引脚的另一端与所述控制单元连接,所述控制单元分别与所述CPU和所述外设连接,

其中,所述主控系统用于控制所述复位引脚输出复位电平;

所述控制单元用于检测所述复位引脚输出的复位电平的信号时长,并根据所述复位电平的信号时长触发唤醒或复位单片机,用于触发唤醒的信号时长与用于触发复位的信号时长不同。

因此,本发明实施例的单片机系统,通过控制单元检测复位电平的信号时长,根据信号时长发送唤醒指令或复位指令,以唤醒单片机或对单片机进行复位,在不增加系统资源的同时,通过一个复位引脚同时实现了唤醒和复位两个功能,节省了系统耗费和PCB空间。

结合第一方面,在第一方面的第一种可能的实现方式中,所述控制单元具体用于,在第一时间段内检测到所述复位引脚持续输出所述复位电平时,发送唤醒指令,所述唤醒指令用于触发所述CPU唤醒所述单片机系统,其中,所述第一时间段的起始时刻为所述复位引脚输出所述复位电平的起始时刻,所述第一时间段的时长为预设的第一门限值;

并在第二时间段内检测到所述复位引脚持续输出所述复位电平时,发送复位指令,所述复位指令包括第一复位指令和第二复位指令,所述第一复位指令用于触发所述CPU复位,所述第二复位指令用于触发所述外设复位,其中,所述第二时间段的起始时刻为所述复位引脚输出所述复位电平的起始时刻,所述第二时间段的时长为预设的第二门限值。

结合第一方面,在第一方面的第二种可能的实现方式中,所述控制单元具体用于,在检测到所述复位引脚输出所述复位电平的起始时刻与结束时刻之间的时长大于或等于预设的第一门限值且小于预设的第二门限值时,发送所述唤醒指令,所述唤醒指令用于触发所述CPU唤醒所述单片机系统,所述第二门限值大于所述第一门限值;或者,

在检测到所述复位引脚输出所述复位电平的起始时刻与结束时刻之间的时长大于或等于所述第二门限值时,发送所述复位指令,所述复位指令包括第一复位指令和所述第二复位指令,所述第一复位指令用于触发所述CPU复位,所述第二复位指令用于触发所述外设复位。结合第一方面及其上述可能的实现方式,在第一方面的第三种可能的实现方式中,所述唤醒指令为第一脉冲信号,所述第一复位指令为第二脉冲信号,所述第一脉冲信号与所述第二脉冲信号的波形不同,以区分所述唤醒指令和所述第一复位指令。

通过不同形式的脉冲信号来区分不同的指令,便于CPU区分不同的指令,以执行相应的动作。并且,可以仅通过一条控制路径来传输唤醒指令和复位指令,减少了控制路径的数量。

结合第一方面及其上述可能的实现方式,在第一方面的第四种可能的实现方式中,所述唤醒指令为第一脉冲信号,所述第一复位指令为第二脉冲信号,所述第一脉冲信号与所述第二脉冲信号相同,所述控制单元具体用于通过第一控制路径发送所述第一脉冲信号,并通过第二控制路径发送所述第二脉冲信号。

通过两条不同的控制路径发送不同的指令,使CPU在接收到指令时可以根据不同的接口区分指令,执行相应的动作,简单方便,易于实现。

结合第一方面及其上述可能的实现方式,在第一方面的第五种可能的实现方式中,所述控制单元包括复位脉冲宽度检测器和复位控制单元,

所述复位脉冲宽度检测器用于检测所述复位引脚输出的复位电平的信号时长,并根据所述复位电平的信号时长向所述CPU发送唤醒指令,以触发所述CPU唤醒所述单片机系统,或者,向所述复位控制单元发送第三复位指令,以触发所述复位控制单元复位所述单片机系统;

所述复位控制单元用于基于所述第三复位指令,向所述CPU发送所述第一复位指令,向所述外设发送所述第二复位指令,所述第一复位指令用于触发所述CPU复位,所述第二复位指令用于触发所述外设复位。

第二方面,提供了一种用于单片机系统的复位方法,其特征在于,所述单片机系统包括:复位引脚、控制单元、中央处理单元CPU和外设,所述单片机系统通过所述复位引脚的一端与主控系统连接,所述复位引脚的另一端与所述控制单元连接,所述控制单元分别与所述CPU和所述外设连接,所述复位方法包括:

所述主控系统控制所述复位引脚输出复位电平;

所述控制单元检测所述复位引脚输出的所述复位电平的信号时长;

所述控制单元根据所述复位电平的信号时长,触发唤醒或复位所述单片机系统,其中,用于唤醒的信号时长和用于复位的信号时长不同。

因此,本发明实施例的用于单片机系统的复位方法,通过控制单元检测复位电平的信号时长,根据信号时长发送唤醒指令或复位指令,以唤醒单片机或对单片机进行复位,在不增加系统资源的同时,通过一个复位引脚同时实现了唤醒和复位两个功能,节省了系统耗费和PCB空间。

结合第二方面,在第二方面的第一种可能的实现方式中,所述控制单元根据所述复位电平的信号时长,触发唤醒或复位所述单片机系统,包括:

所述控制单元在第一时间段内检测到所述复位引脚持续输出所述复位电平时,发送唤醒指令,所述唤醒指令用于触发所述CPU唤醒所述单片机系统,其中,所述第一时间段的起始时刻为所述复位引脚输出所述复位电平的起始时刻,所述第一时间段的时长为预设的第一门限值;

所述控制单元在第二时间段内检测到所述复位引脚持续输出所述复位电平时,发送复位指令,所述复位指令包括第一复位指令和第二复位指令,所述第一复位指令用于触发所述CPU复位,所述第二复位指令用于触发所述外设复位,其中,所述第二时间段的起始时刻为所述复位引脚输出所述复位电平的起始时刻,所述第二时间段的时长为预设的第二门限值。

结合第二方面,在第二方面的第二种可能的实现方式中,所述控制单元根据所述复位电平的信号时长,触发唤醒或复位所述单片机系统,包括:

所述控制单元在检测到所述复位引脚输出所述复位电平的起始时刻与结束时刻之间的时长大于或等于预设的第一门限值且小于预设的第二门限值时,发送所述唤醒指令,所述唤醒指令用于触发所述CPU唤醒所述单片机系统,所述第二门限值大于所述第一门限值;或者,

在检测到所述复位引脚输出所述复位电平的起始时刻与结束时刻之间的时长大于或等于所述第二门限值时,发送所述复位指令,所述复位指令包括第一复位指令和所述第二复位指令,所述第一复位指令用于触发所述CPU复位,所述第二复位指令用于触发所述外设复位。

结合第二方面及其上述可能的实现方式,在第二方面的第三种可能的实现方式中,所述唤醒指令为第一脉冲信号,所述第一复位指令为第二脉冲信号,所述第一脉冲信号与所述第二脉冲信号的波形不同,以区分所述唤醒指令和所述第一复位指令。

通过不同形式的脉冲信号来区分不同的指令,便于CPU区分不同的指令,以执行相应的动作。并且,可以仅通过一条控制路径来传输唤醒指令和复位指令,减少了控制路径的数量。

结合第二方面及其上述可能的实现方式,在第二方面的第四种可能的实现方式中,所述唤醒指令为第一脉冲信号,所述第一复位指令为第二脉冲信号,所述第一脉冲信号与所述第二脉冲信号相同,以及,

所述发送所述唤醒指令,包括:

通过第一控制路径发送所述第一脉冲信号;

所述发送所述第一复位指令,包括:

通过第二控制路径发送所述第二脉冲信号。

通过两条不同的控制路径发送不同的指令,使CPU在接收到指令时可以根据不同的接口区分指令,执行相应的动作,简单方便,易于实现。

结合第二方面及其上述可能的实现方式,在第二方面的第五种可能的实现方式中,所述控制单元包括复位脉冲宽度检测器和复位控制单元,以及,

所述控制单元检测所述复位引脚输出的所述复位电平的信号时长,包括:

所述复位脉冲宽度检测器检测所述复位引脚输出的所述复位电平的信号时长;

所述控制单元根据所述复位电平的信号时长,触发唤醒或复位所述单片机系统,包括:

所述复位脉冲宽度检测器根据所述复位电平的信号时长向所述CPU发送唤醒指令,以触发所述CPU唤醒所述单片机系统,或者,向所述复位控制单元发送第三复位指令,以触发所述复位控制单元复位所述单片机系统;

所述复位控制单元根据所述第三复位指令,向所述CPU发送所述第一复位指令,向所述外设发送所述第二复位指令,所述第一复位指令用于触发所述CPU复位,所述第二复位指令用于触发所述外设复位。

第三方面,提供了一种计算机存储介质,该计算机存储介质中存储有程序代码,该程序代码用于指示执行上述第一方面或第一方面的任意可选的实现方式中单片机系统执行的操作。

因此,根据本发明实施例的单片机系统和用于单片机系统的复位方法,能够通过检测复位引脚的复位脉冲宽度发送唤醒指令或复位指令,以确定唤醒或是复位单片机,在不增加系统资源的同时,通过一个复位引脚实现了唤醒和复位两种功能。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明实施例的单片机系统的示意性框图。

图2a和图2b是根据本发明实施例的通过控制单元触发唤醒或复位单片机系统的示意图。

图3a和图3b是根据本发明另一实施例的通过控制单元触发唤醒或复位单片机系统的示意图。

图4是根据本发明另一实施例的单片机系统的示意性框图。

图5是根据本发明一实施例的用于单片机系统的复位方法的示意性流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应理解,在当前技术中,通常可以通过一个指定的I/O口用于唤醒单片机。具体地,单片机在睡眠模式时,单片机内的检测电路会检测全部I/O的电平状态,如果该指定的I/O口的电平发生预设的变化(例如,检测到低电平),则该检测电路会唤醒CPU,让其开始工作。这种方法的优点是能够快速唤醒单片机,但是需要系统提供一个通用I/O口用来唤醒,而I/O口对于单片机来说是非常宝贵的资源,这样的设计增加了系统资源的耗费和印刷电路板(Printed Circuit Board,简称“PCB”)的空间。

另一方面,单片机的复位脚可以用于单片机的全局复位。具体地,当操作单片机的复位脚使其电平发生指定的变化(例如,输出低电平)时,该复位脚就会通知CPU和外设重新开始运行,单片机系统经过一系列初始化后进入工作模式。

因此,复位和唤醒这两个用户控制单片机从睡眠模式进入工作模式的功能,分别需要两个独立的I/O口引脚来控制,增加了系统资源耗费以及PCB空间。

有鉴于此,本申请提供一种用于单片机系统和用于单片机系统的复位方法,能够通过一个I/O口引脚实现唤醒和复位两个功能,节省了系统资源耗费和PCB空间。

以下,结合图1和图2详细说明根据本发明实施例的单片机系统。

图1是根据本发明实施例的单片机系统100的示意性框图。如图1所示,该单片机系统100包括复位引脚110、控制单元120、中央处理单元(Central Processing Unit,简称“CPU”)130和外设140。其中,复位引脚110可以理解为I/O口与外界连接的接口。复位引脚110的一端与主控系统200连接,另一端与控制单元120连接。控制单元120可以通过不同的控制路径与CPU130和外设140连接,以通过控制路径向CPU 130和外设140发送指令。具体地,该控制路径可以为金属线。CPU 130可以通过数字总线与外设140相连。具体地,该外设140可以包括例如定时器、直接内存存取(Direct Memory Access,简称“DMA”)控制器以及一些I/O接口等。

其中,该主控系统200用于控制复位引脚110输出复位电平,该控制单元120用于检测该复位引脚110输出的复位电平的信号时长,并根据该复位电平的信号时长触发唤醒或复位该单片机系统100。

并且,用于触发唤醒的信号时长与用于触发复位的信号时长不同,控制单元120可以根据不同的信号时长触发CPU唤醒和复位,触发外设复位。

这里,需要说明的是,单片机系统的复位包括CPU复位和外设复位,分别可以由控制单元发送复位指令。为便于区分和说明,将控制单元向CPU发送的复位指令记作第一复位指令,将控制单元向外设发送的复位指令记作第二复位指令。与此不同地,单片机系统的唤醒可以通过CPU唤醒外设,此时,控制单元可以指向CPU发送唤醒指令。

还需要说明的是,以上所述的主控系统200可以理解为一个用于控制单片机的单片机,为便于区分和理解,前一个单片机可记作单片机A,可以理解为从机,后一个单片机可记作单片机B,可以理解为主机。也就是说,通过单片机B(例如,本发明实施例的单片机系统100)来控制单片机A唤醒或复位。以下,为便于说明,在未作出特别说明的情况下,本发明实施例中所描述的单片机系统均表示被主机(即,可以理解为上述单片机B)控制的从机(即,可以理解为上述单片机A)。

还需要说明的是,复位引脚110可以与主控系统200连接。该主控系统200可以是内设于该单片机系统100中的系统,也可以是外设于该单片机系统100的外部系统,本发明对此并未特别限定。只要该主控系统200通过控制复位引脚输出高电平或低电平以实现对单片机系统的唤醒或复位,均应落入本发明的保护范围内。

还需要说明的是,在通常情况下,单片机处于工作模式或睡眠模式时,复位引脚输出高电平,当需要触发单片机从睡眠模式恢复到工作模式时,可以通过拉低复位引脚的电平(即,输出低电平)的方式触发单片机唤醒或复位。相对应地,在本发明实施例中,复位电平可以为低电平。

应理解,这里所列举的通过低电平触发CPU唤醒单片机或对单片机进行复位的方法仅为示例性说明,本发明并未对复位电平的具体取值特别限定。例如,主控系统也可以通过控制复位引脚在单片机处于工作模式或睡眠模式的状态下输出低电平,当需要触发单片机从睡眠模式恢复到工作模式是,通过拉高复位引脚的电平(即,输出高电平)的方式触发单片机唤醒或复位。在此情况下,本发明实施例中的复位电平可以为高电平。

示例性地,在本发明实施例中,低电平可以为0V,高电平可以为1.8V。

在本发明实施例中,控制单元可以根据复位电平的信号时长触发唤醒或复位单片机系统。触发唤醒的信号时长可以大于或等于预设的第一门限值的时间长度,触发复位的信号时长可以为大于或等于预设的第二门限值的时间长度。即,当复位电平的信号时长大于或等于预设的第一门限值时,触发唤醒单片机系统,当复位电平的信号时长大于或等于预设的第二门限值时,触发复位单片机系统。其中,第一门限值可以大于第二门限值。

控制单元可以实时检测复位电平信号,一旦检测到复位电平到达预设的第一门限值或第二门限值时,便立刻发出唤醒指令或复位指令(方法一);控制单元也可以检测复位电平的起始时刻与结束时刻,以确定复位电平的信号总时长,从而确定是发送唤醒指令或复位指令(方法二)。

方法一:

可选地,该控制单元具体用于,在第一时间段内检测到该复位引脚持续输出该复位电平时,发送唤醒指令,该唤醒指令用于触发该CPU唤醒该单片机系统,其中,该第一时间段的起始时刻为该复位引脚输出该复位电平的起始时刻,该第一时间段的时长为预设的第一门限值;

并在第二时间段内检测到该复位引脚持续输出该复位电平时,发送复位指令,该复位指令包括第一复位指令和第二复位指令,该第一复位指令用于触发该CPU复位,该第二复位指令用于触发该外设复位,其中,该第二时间段的起始时刻为该复位引脚输出该复位电平的起始时刻,该第二时间段的时长为预设的第二门限值。

方法二:

可选地,该控制单元具体用于,在检测到该复位引脚输出该复位电平的起始时刻与结束时刻之间的时长大于或等于预设的第一门限值且小于预设的第二门限值时,发送该唤醒指令,该唤醒指令用于触发该CPU唤醒该单片机系统,该第二门限值大于该第一门限值;或者,

在检测到该复位引脚输出该复位电平的起始时刻与结束时刻之间的时长大于或等于该第二门限值时,发送该复位指令,该复位指令包括第一复位指令和该第二复位指令,该第一复位指令用于触发该CPU复位,该第二复位指令用于触发该外设复位。

以下,不失一般性,以复位电平为低电平为例,结合图2(包括图2a和图2b)和图3(包括图3a和图3b)详细说明方法一和方法二中通过该控制单元触发唤醒或复位单片机系统的具体过程。

图2a和图2b是根据本发明实施例的方法一中通过该控制单元触发唤醒或复位单片机系统的示意图。

图2a示出了通过该控制单元触发CPU唤醒单片机系统的具体过程。如图2a所示,为便于理解和说明,可以将该过程分为t1、t2和t3三个时间段。其中,t1时间段的起始时刻可以为处于睡眠模式的任意时刻,结束时刻可以为控制单元检测到复位引脚电平状态由高电平状态变为低电平状态(即,图中所示TA时刻);t2时间段(即,第一时间段的一例)的起始时刻可以为t1时间段的结束时刻,t2时间段的时长可以为预设的第一门限值(即,图中所示T1);t3时间段的起始时刻可以为t2时间段的结束时刻(即,图中所示TB时刻),结束时刻可以为该单片机系统重新进入工作模式后的任意时刻。

具体地,在t1时间段,通过控制单元检测到复位引脚电平状态处于高电平状态,可以确定单片机处于工作模式,或者由工作模式进入了睡眠模式。

在t2时间段,首先可以通过控制单元在TA时刻检测到复位引脚电平状态由高电平状态变为低电平状态,由此可以确定需要使单片机重新进入工作模式。控制单元持续检测该低电平的信号时长。由图可以看出,低电平的信号时长,即为复位脉冲的宽度。

由上文描述可知,当复位电平的信号时长到达预设的第一门限值(可对应于图中的T1),便发送唤醒指令。在本发明实施例中,控制单元在TA时刻检测到复位电平,且在TA时刻至TA+T1时刻之间的时间段内,若能持续检测到复位电平,则发送唤醒指令。这里,TA+T1即为第一检测时刻(可对应于图中的TB)。

在一种可能的实现方式中,该控制单元可以包括内部门控计数器,该计数器通过计数来确定低电平的信号时长。例如,假设该计数器的计数频率为1兆赫兹(MHz),即,每个计数之间的时间间隔为1微秒(μs)。通过计数器的计数,可以确定低电平的信号时长。

在t2时间段,当控制单元在TA时刻至TB时刻之间的时间段内,能够持续检测到复位引脚输出低电平,则可以认为低电平的信号时长达到预设的第一门限值(例如,图中所示T1)时,便可以向CPU发送唤醒指令。

可选地,该唤醒指令可以为脉冲信号(为便于区分和说明,记作第一脉冲信号)。即,在低电平的信号时长到达T1的时刻(即,图中所示TB时刻),控制单元通过控制路径向CPU发送脉冲信号。

在t3时间段,CPU在TB时刻接收到唤醒指令,便可以基于该唤醒指令,唤醒整个单片机系统(或者说,芯片),使单片机系统从睡眠模式进入到工作模式。由于CPU唤醒单片机系统后,单片机系统才进入工作模式,因此,单片机系统进入工作模式的时刻是略晚于CPU进入工作模式的时刻的,或者说,有一定的时间延迟。

在t3时间段,控制单元继续检测低电平的信号时长,并在检测到复位引脚的电平状态由低电平状态变为高电平状态时停止计时(或者说,计数),由此,整个单片机系统完成了由睡眠模式通过唤醒进入工作模式的过程。

图2b示出了通过该控制单元触发复位单片机系统的具体过程。如图2b所示,为便于理解和说明,可以将该过程分为t4、t5、t6和t7四个时间段。其中,t4时间段的起始时刻可以为处于睡眠模式的任意时刻,结束时刻可以为控制单元检测到复位引脚电平状态由高电平状态变为低电平状态(即,图中所示TA时刻);t5时间段的起始时刻可以为t4时间段的结束时刻,t5时间段的时长可以为预设的第一门限值(即,图中所示T1);t6时间段的起始时刻可以为t5时间段的结束时刻(即,图中所示TB时刻),t6时间段的时长可以为预设的第二门限值(即,图中所示T2)与预设的第一门限值(即,图中所示T1)的差值,或者说,t5时间段的时长与t6时间段的时长之和(即,第二时间段的一例)可以为预设的第二门限值。t7时间段的起始时刻可以为t6时间段的结束时刻(即,图中所示TC时刻),结束时刻可以为该单片机系统重新进入工作模式后的任意时刻。

具体地,t4时间段和t5时间段的具体过程与上文中描述的t1时间段和t2时间段的具体过程相似,为了简洁,这里不再赘述。

在t6时间段,当控制单元在TB时刻至TC时刻之间的时间段内仍然能够持续检测到复位引脚输出低电平,则认为低电平的信号时长达到预设的第二门限值(例如,图中所示T2)时,便可以发送复位指令。具体地,向CPU发送第一复位指令,向外设发送第二复位指令。

可选地,该复位指令可以为脉冲信号(为便于区分和说明,记作第二脉冲信号)。即,在低电平的信号时长为T2的时刻(即,图中所示TC时刻),控制单元通过控制路径向CPU发送第二脉冲信号。

在t7时间段,CPU和外设在TB时刻分别接收到第一复位和第二指令,便可以基于该第一复位指令和第二复位指令,分别复位CPU和外设,从而对整个单片机系统进行全局复位,使单片机系统从睡眠模式进入到工作模式。因此,单片机系统进入复位的时刻是略晚于CPU进入复位的时刻的,或者说,有一定的时间延迟。CPU经过复位后进入工作模式,而单片机系统通过复位后,经过一系列初始化状态后进入工作模式。

在t7时间段,控制单元继续检测低电平的信号时长,并在检测到复位引脚的电平状态由低电平状态变为高电平状态时停止计时(或者说,计数),由此,整个单片机系统完成了由睡眠模式通过复位进入工作模式的过程。

在本发明实施例中,可选地,该第二门限值大于该第一门限值。

也就是说,当控制单元首先检测到低电平的信号时长达到预设的第一门限值时,可以发送唤醒指令;若此时检测到复位引脚仍持续输出低电平,直到信号时长达到预设的第二门限值时,可以发送复位指令。

需要说明的是,单片机在复位前被唤醒对单片机的复位不会造成影响。

图3a和图3b是根据本发明实施例的方法二中通过该控制单元触发唤醒或复位单片机系统的示意图。

图3a示出了通过该控制单元触发CPU唤醒单片机系统的具体过程。如图3a所示,为便于理解和说明,可以将该过程分为t1、t2和t3三个时间段。其中,t1时间段的起始时刻可以为处于睡眠模式的任意时刻,结束时刻可以为控制单元检测到复位引脚电平状态由高电平状态变为低电平状态的时刻(即,图中所示TA时刻);t2时间段的起始时刻可以为t1时间段的结束时刻,结束时刻可以为控制单元检测到复位引脚电平状态由低电平状态变为高电平状态的时刻(即,图中所示TB时刻);t3时间段的起始时刻可以为t2时间段的结束时刻(即,图中所示TB时刻),结束时刻可以为该单片机系统重新进入工作模式后的任意时刻。具体地,在t1时间段,通过控制单元检测到复位引脚电平状态处于高电平状态,可以确定单片机处于工作模式,或者由工作模式进入了睡眠模式。

在t2时间段,首先可以通过控制单元在TA时刻检测到复位引脚电平状态由高电平状态变为低电平状态,由此可以确定需要使单片机重新进入工作模式。当控制单元在TB时刻检测到复位引脚电平状态由低电平状态变为高电平状态,可以进一步确定复位引脚输出低电平状态的信号时长。若确定该t2时间段的时长大于或等于预设的第一门限值,且小于第二门限值,则可以向CPU发送唤醒指令。

在t3时间段,CPU在TB时刻接收到唤醒指令,便可以基于该唤醒指令,唤醒整个单片机系统,使单片机系统从睡眠模式进入到工作模式。由于CPU唤醒单片机系统后,单片机系统才进入工作模式,因此,单片机系统进入工作模式的时刻是略晚于CPU进入工作模式的时刻的,或者说,有一定的时间延迟。

在t3时间段,控制单元继续检测低电平的信号时长,并在检测到复位引脚的电平状态由低电平状态变为高电平状态时停止计时(或者说,计数),由此,整个单片机系统完成了由睡眠模式通过唤醒进入工作模式的过程。

图3b示出了通过该控制单元触发复位单片机系统的具体过程。如图3b所示,为了便于理解和说明,可以将该过程分为t4、t5和t6三个时间段。其中,t4时间段的起始时刻可以为处于睡眠模式的任意时刻,结束时刻可以为控制单元检测到复位引脚电平状态由高电平状态变为低电平状态(即,图中所示TA时刻);t5时间段的起始时刻可以为t4时间段的结束时刻,结束时刻可以为控制单元检测到复位引脚电平状态由低电平状态变为高电平状态的时刻(即,图中所示TC时刻);t6时间段的起始时刻可以为t5时间段的结束时刻(即,图中所示TC时刻),结束时刻可以为该单片机系统重新进入工作模式后的任意时刻。

具体地,在t4时间段,通过控制单元检测到复位引脚电平状态处于高电平状态,可以确定单片机处于工作模式,或者由工作模式进入了睡眠模式。

在t5时间段,首先可以通过控制单元在TA时刻检测到复位引脚电平状态由高电平状态变为低电平状态,由此可以确定需要使单片机重新进入工作模式。当控制单元在TC时刻检测到复位引脚电平状态由低电平状态变为高电平状态,可以进一步确定复位引脚输出低电平状态的信号时长。若确定该t5时间段的时长大于或等于预设的第二门限值,则可以发送复位指令。具体地,向CPU发送第一复位指令,向外设发送第二复位指令。

在t6时间段,CPU和外设在TC时刻分别接收到第一复位指令和第二复位指令,便可以基于该第一复位指令和第二复位指令,分别复位CPU和外设,从而对整个单片机系统进行全局复位,使单片机系统从睡眠模式进入到工作模式。因此,单片机系统进入复位的时刻是略晚于CPU进入复位的时刻的,或者说,有一定的时间延迟。CPU经过复位后进入工作模式,而单片机系统通过复位后,经过一系列初始化状态后进入工作模式。

在t6时间段,控制单元继续检测低电平的信号时长,并在检测到复位引脚的电平状态由低电平状态变为高电平状态时停止计时(或者说,计数),由此,整个单片机系统完成了由睡眠模式通过复位进入工作模式的过程。

通过以上示例的两种方法,控制单元根据复位电平的信号时长触发唤醒或复位单片机系统,由此实现了通过一个复位引脚实现唤醒或复位使单片机系统由睡眠模式进入工作模式的功能。

在本发明实施例中,CPU可以接收唤醒指令,也可以接收复位指令(具体地,第一复位指令),可以通过不同形式的脉冲信号来区分唤醒指令和复位指令,也可以通过不同的控制路径来传输唤醒指令和复位指令。

可选地,该唤醒指令为第一脉冲信号,该第一复位指令为第二脉冲信号,该第一脉冲信号与该第二脉冲信号的波形不同,以区分该唤醒指令和该第一复位指令。

具体而言,该控制单元可以通过一条控制路径输出不同波形(或者说,不同形式)的脉冲信号(即,第一脉冲信号与第二脉冲信号的波形不同)来区分唤醒指令和第一复位指令。例如,设置第一脉冲信号可以为两个连续的方形波,设置第二脉冲信号可以为一个方形波;或者,第一脉冲信号可以为三角波,第二脉冲信号可以为方形波,由此可以区分第一脉冲信号和第二脉冲信号,从而区分唤醒指令和第一复位指令,而不需要通过两条控制路径来分别输出指令。

应理解,以上列举的不同波形的脉冲信号仅为示例性说明,不应对本发明构成任何限定,本发明也不应限于此。只要通过不同的波形来区分第一脉冲信号和第二脉冲信号,从而能够确定接收到的信号是唤醒指令还是第一复位指令,均应落入本发明的保护范围内。

可选地,该唤醒指令为第一脉冲信号,该第一复位指令为第二脉冲信号,该第一脉冲信号与该第二脉冲信号相同,该控制单元具体用于通过第一控制路径发送该第一脉冲信号,并通过第二控制路径发送该第二脉冲信号。

具体而言,再参看图1,控制单元可以分别通过两条不同的控制路径向CPU发送不同的指令,即,通过第一控制路径发送唤醒指令,通过第二控制路径发送第一复位指令。在CPU侧,不同的控制路径对应于CPU中不同的接口,即,CPU可以通过接收到指令的接口判断是需要唤醒还是复位。示例性地,该第一脉冲信号和第二脉冲信号可以为如图2或图3中所示的方形波。

应理解,以上所列举的通过不同的控制路径输出相同的脉冲信号,或者通过相同的控制路径输出不同的脉冲信号的方法,以及不同脉冲信号的具体形式均为示例性说明,不应对本发明构成任何限定,本发明也不应限于此。例如,控制单元也可以通过不同的控制路径输出不同的脉冲信号。

图4示出了根据本发明另一实施例的单片机系统100的示意性框图。

可选地,如图4所示,该单片机系统100中的控制单元120包括复位脉冲宽度检测器121和复位控制单元122。复位脉冲宽度检测器可以与CPU 130相连,复位控制单元可以分别与CPU 130相连和外设相连。

其中,复位脉冲宽度检测器121可以用于检测复位引脚110输出的复位电平的信号时长,并根据该复位电平的信号时长向CPU 130发送唤醒指令,以触发CPU 130唤醒单片机系统100,或者,向复位控制单元122发送第三复位指令,以触发该复位控制单元122复位该单片机系统100;复位控制单元122可以基于该第三复位指令,向CPU 130发送第一复位指令,向外设140发送第二复位指令。

可以理解,单片机的复位方法有很多种,例如,上电复位、软复位等。复位控制单元可以理解为把所有复位的指令全部收集后再向CPU发指令的模块。换句话说,复位控制单元可以理解为一个与复位相关的全局控制模块。

具体地,复位脉冲宽度检测器121可以通过第一控制路径向CPU 130发送唤醒指令(例如,第一脉冲信号)。复位脉冲单元122可以通过第二控制路径向CPU 130发送第一复位指令(例如,第二脉冲信号),以触发CPU 130复位,通过第三控制路径向外设140发送第二复位指令,以触发外设140复位。

因此,本发明实施例的单片机系统,通过控制单元检测复位电平的信号时长,根据信号时长发送唤醒指令或复位指令,以唤醒或复位单片机系统,在不增加系统资源的同时,通过一个复位引脚同时实现了唤醒和复位两个功能,节省了系统耗费和PCB空间。

以上,结合图1至图4详细说明了根据本发明实施例的单片机系统。以下,结合图5详细说明根据本发明实施例的用于单片机的复位方法。

图5是根据本发明一实施例的用于单片机的复位方法400的示意性流程图。该复位方法400可以应用于包含有复位引脚、控制单元、中央处理单元CPU和外设的单片机系统中,该单片机系统通过复位引脚的一端与主控系统连接,该复位引脚的另一端与控制单元连接,该控制单元分别与CPU和外设连接。具体地,该复位方法400可以通过上文中所描述的单片机系统100来执行。

如图5所示,该复位方法400包括:

S410,主控系统控制复位引脚输出复位电平;

S420,控制单元检测该复位引脚输出的复位电平的信号时长;

S430,该控制单元根据该复位电平的信号时长,触发唤醒或复位该单片机系统,其中,用于唤醒的信号时长和用于复位的信号时长不同。

可选地,S420该控制单元根据该复位电平的信号时长,触发唤醒或复位该单片机系统,包括:

控制单元在第一时间段内检测到该复位引脚持续输出该复位电平时,发送唤醒指令,该唤醒指令用于触发该CPU唤醒该单片机系统,其中,该第一时间段的起始时刻为该复位引脚输出该复位电平的起始时刻,该第一时间段的时长为预设的第一门限值;

该控制单元在第二时间段内检测到该复位引脚持续输出该复位电平时,发送复位指令,该复位指令包括第一复位指令和第二复位指令,该第一复位指令用于触发该CPU复位,该第二复位指令用于触发该外设复位,其中,该第二时间段的起始时刻为该复位引脚输出该复位电平的起始时刻,该第二时间段的时长为预设的第二门限值。可选地,S430该控制单元根据该复位电平的信号时长,触发唤醒或复位该单片机系统,包括:

该控制单元在检测到该复位引脚输出该复位电平的起始时刻与结束时刻之间的时长大于或等于预设的第一门限值且小于预设的第二门限值时,发送该唤醒指令,该唤醒指令用于触发该CPU唤醒该单片机系统,该第二门限值大于该第一门限值;或者,

在检测到该复位引脚输出该复位电平的起始时刻与结束时刻之间的时长大于或等于该第二门限值时,发送该复位指令,该复位指令包括第一复位指令和该第二复位指令,该第一复位指令用于触发该CPU复位,该第二复位指令用于触发该外设复位。

可选地,该唤醒指令为第一脉冲信号,该第一复位指令为第二脉冲信号,该第一脉冲信号与该第二脉冲信号不同。

可选地,该唤醒指令为第一脉冲信号,该第一复位指令为第二脉冲信号,该第一脉冲信号与该第二脉冲信号相同,以及,

所述发送所述唤醒指令,包括:

通过第一控制路径发送所述第一脉冲信号;

所述发送所述第一复位指令,包括:

通过第二控制路径发送所述第二脉冲信号。

可选地,该控制单元包括复位脉冲宽度检测器和复位控制单元,以及,

S420该控制单元检测该复位引脚输出的该复位电平的信号时长,包括:

该复位脉冲宽度检测器检测该复位引脚输出的该复位电平的信号时长;

S430该控制单元根据该复位电平的信号时长,触发唤醒或复位该单片机系统,包括:

该复位脉冲宽度检测器根据该复位电平的信号时长向该CPU发送唤醒指令,以触发该CPU唤醒该单片机系统,或者,向该复位控制单元发送第三复位指令,以触发该复位控制单元复位该单片机系统;

该复位控制单元根据该第三复位指令,向该CPU发送第一复位指令,向该外设发送第二复位指令,该第一复位指令用于触发该CPU复位,该第二复位指令用于触发该外设复位。因此,本发明实施例的用于单片机的复位方法,通过控制单元检测复位电平的信号时长,根据信号时长发送唤醒指令或复位指令,以确定唤醒或复位单片机系统,在不增加系统资源的同时,通过一个复位引脚同时实现了唤醒和复位两个功能,节省了系统耗费和PCB空间。

应理解,根据本发明实施例的用于单片机的复位方法400中的各步骤或流程,可对应于本发明实施例中的单片机系统100的各个模块的上述和其它操作和/或功能,为了简洁,在此不再赘述。

应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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