微控制芯片及其复位方法、存储介质转让专利

申请号 : CN202311632765.2

文献号 : CN117331421B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘吉平熊辉兵王翔郑增忠

申请人 : 深圳市航顺芯片技术研发有限公司

摘要 :

本申请提出一种微控制芯片及其复位方法、存储介质。该复位方法包括:接收来自复位源的复位请求;在确定复位请求的复位对象为其他对象时,复位其他对象;在确定复位请求的复位对象为闪存时,判断闪存是否在执行编程/擦除操作;若否,则复位闪存;若是,则控制闪存执行编程/擦除操作,并直至判断闪存完成编程/擦除操作后,复位闪存。本申请将复位目标为闪存和其他对象的复位请求分开处理,复位操作不会导致编程/擦除操作异常中断,也不会忽略针对其他对象的复位请求,还可以处理因供电异常引起的复位情况。

权利要求 :

1.一种微控制芯片的复位方法,所述微控制芯片包括延时计数器、闪存和除所述闪存外的可执行复位的其他对象,其特征在于,所述方法包括:接收来自复位源的复位请求;

在确定所述复位请求的复位对象为所述其他对象时,复位所述其他对象;

在确定所述复位请求的复位对象为所述闪存时,判断所述闪存是否在执行编程/擦除操作;以及,

若否,则复位所述闪存;

若是,则将所述延时计数器复位到初始值,以及设定预设级数的电压阈值,并在多次检测到所述微控制芯片的电源电压均低于对应级数的电压阈值时,确定检测到所述微控制芯片的电源电压处于持续下降趋势,则控制所述闪存执行所述编程/擦除操作,并直至判断所述闪存完成所述编程/擦除操作后,控制所述延时计数器开始计数、以及所述闪存停止响应编程/擦除请求并复位所述闪存,或者,在确定所述电源电压下降至第一预设阈值时复位所述闪存;以及,在检测到所述延时计数器计数达到第二预设阈值时,释放所述复位对象的复位;其中,各级电压阈值不相等,任意相邻两级电压阈值的差值相等,且每次检测所述电源电压的时间间隔相同;所述微控制芯片的电源电压均低于对应级数的电压阈值的检测次数,等于所述预设级数。

2.根据权利要求1所述的方法,其特征在于,在所述复位对象包括所述闪存和所述其他对象时,所述释放复位对象的复位,包括:同时释放所述闪存和所述其他对象的复位。

3.一种微控制芯片,其特征在于,包括延时计数器、闪存和除所述闪存外的可执行复位的其他对象,所述微控制芯片还包括:接口,用于接收来自复位源的复位请求;

电压监测单元,用于检测所述微控制芯片的电源电压是否处于持续下降趋势,其中,所述电压监测单元设定预设级数的电压阈值,并在多次检测到所述微控制芯片的电源电压均低于对应级数的电压阈值时,确定检测到所述微控制芯片的电源电压处于持续下降趋势,各级电压阈值不相等,任意相邻两级电压阈值的差值相等,且每次检测所述电源电压的时间间隔相同;所述微控制芯片的电源电压均低于对应级数的电压阈值的检测次数,等于所述预设级数;

复位控制器,用于确定复位对象为所述其他对象还是所述闪存;以及,在确定所述复位请求的复位对象为所述其他对象时,复位所述其他对象;在确定所述复位请求的复位对象为所述闪存时,判断所述闪存是否在执行编程/擦除操作,若所述闪存未在执行编程/擦除操作,则复位所述闪存;若所述闪存在执行编程/擦除操作,则将所述延时计数器复位到初始值,以及在所述电压检测单元监测到所述微控制芯片的电源电压处于持续下降趋势时,控制所述闪存执行所述编程/擦除操作,并直至判断所述闪存完成所述编程/擦除操作后,控制所述延时计数器开始计数、以及所述闪存停止响应编程/擦除请求并复位所述闪存,或者,在确定所述电源电压下降至第一预设阈值时复位所述闪存;

所述复位控制器还用于在所述延时计数器计数达到第二预设阈值时,释放所述复位对象的复位。

4.一种存储介质,其特征在于,存储有指令,所述指令适于处理器加载,以执行如权利要求1或2所述的微控制芯片的复位方法。

说明书 :

微控制芯片及其复位方法、存储介质

技术领域

[0001] 本申请涉及芯片与电数字数据处理技术领域,具体涉及一种微控制芯片(Micro‑controller Unit,简称MCU)及其复位方法、存储介质。

背景技术

[0002] 微控制芯片又称微控制单元或者微控制器,是各种设备的主控单元,在实际场景中,微控制芯片会执行复位操作。复位操作是指将微控制芯片的状态恢复到起始状态,通常
是在微控制芯片上电或者从故障状态中恢复。复位操作的主要目的是消除微控制芯片在制
造、测试、存储和运输等过程中可能引入的错误,从而确保微控制芯片能够按照设计要求正
常工作。
[0003] 微控制芯片内部集成有闪存(Flash),以存储相应的数据。如果闪存内的数据发生丢失,则会导致整个微控制芯片难以正常运行。闪存执行编程/擦除(erase/program)操作
所需的时间较长,如果在编程/擦除操作未完成时就执行复位操作,则容易导致编程/擦除
操作的时序异常中断,很可能导致闪存内的数据丢失或者出错,从而影响微控制芯片的正
常工作。
[0004] 当前,会通过一个简单的外部逻辑电路来禁止在执行编程/擦除操作的过程中产生外部复位信号(即产生复位请求),但这会导致除闪存之外的其他对象的复位请求没有被
执行而触发芯片状态错误。

发明内容

[0005] 鉴于此,本申请提供一种微控制芯片及其复位方法、存储介质,可以改善复位操作会导致编程/擦除操作异常中断而出现数据丢失或出错的问题,以及改善通过外部逻辑电
路禁止在执行编程/擦除操作的过程中产生复位请求会忽略其他对象的复位请求而触发芯
片状态错误的问题。
[0006] 本申请提供的一种微控制芯片的复位方法,所述微控制芯片包括闪存和除所述闪存外的可执行复位的其他对象,所述方法包括:
[0007] 接收来自复位源的复位请求;
[0008] 在确定所述复位请求的复位对象为所述其他对象时,复位所述其他对象;
[0009] 在确定所述复位请求的复位对象为所述闪存时,判断所述闪存是否在执行编程/擦除操作;以及,
[0010] 若否,则复位所述闪存;
[0011] 若是,则控制所述闪存执行所述编程/擦除操作,并直至判断所述闪存完成所述编程/擦除操作后,复位所述闪存。
[0012] 可选地,所述方法还包括:
[0013] 在检测到所述微控制芯片的电源电压处于持续下降趋势时,在判断所述闪存完成所述编程/擦除操作后,控制所述闪存停止响应编程/擦除请求、并执行所述复位所述闪存
这一步骤,或者,在确定所述电源电压下降至第一预设阈值时,执行所述复位所述闪存这一
步骤。
[0014] 可选地,所述检测到所述微控制芯片的电源电压处于持续下降趋势,包括:
[0015] 设定预设级数的电压阈值;
[0016] 多次检测电源电压均低于对应的电压阈值,则确定所述电源电压处于持续下降趋势。
[0017] 可选地,任意相邻两级电压阈值的差值相等,且每次检测所述电源电压的时间间隔相同。
[0018] 可选地,所述微控制芯片还包括延时计数器,所述方法还包括:
[0019] 若在所述闪存执行编程/擦除操作时接收到复位请求,则将所述延时计数器复位到初始值;
[0020] 在判断所述闪存完成所述编程/擦除操作后,所述延时计数器开始计数;
[0021] 在检测到所述延时计数器计数达到第二预设阈值时,释放复位对象的复位。
[0022] 可选地,在所述复位对象包括所述闪存和所述其他对象时,所述释放复位对象的复位,包括:
[0023] 同时释放所述闪存和所述其他对象的复位。
[0024] 本申请提供的一种微控制芯片,包括闪存和除所述闪存外的可执行复位的其他对象,所述微控制芯片还包括:
[0025] 接口,用于接收来自复位源的复位请求;
[0026] 复位控制器,用于确定所述复位对象为所述其他对象还是所述闪存;以及,在确定所述复位请求的复位对象为所述其他对象时,复位所述其他对象;在确定所述复位请求的
复位对象为所述闪存时,判断所述闪存是否在执行编程/擦除操作,若所述闪存未在执行编
程/擦除操作,则复位所述闪存;若所述闪存在执行编程/擦除操作,则控制所述闪存执行所
述编程/擦除操作,并直至判断所述闪存完成所述编程/擦除操作后,复位所述闪存。
[0027] 可选地,所述微控制芯片还包括:电压监测单元,用于检测所述微控制芯片的电源电压是否处于持续下降趋势;
[0028] 若是,则所述复位控制器还用于在判断所述闪存完成所述编程/擦除操作后,控制所述闪存停止响应编程/擦除请求并复位所述闪存,或者,在确定所述电源电压下降至第一
预设阈值时,复位所述闪存。
[0029] 可选地,所述微控制芯片还包括:延时计数器,用于在所述复位控制器判断所述闪存在执行编程/擦除操作且接收到复位请求复位到初始值,并在所述复位控制器判断所述
闪存完成所述编程/擦除操作后开始计数,以及在计数达到第二预设阈值时告知所述复位
控制器,以使所述复位控制器释放所述复位对象的复位。
[0030] 本申请提供的一种存储介质,存储有指令,所述指令适于处理器加载,以执行如上所述的微控制芯片的复位方法。
[0031] 如上所述,本申请将复位目标为闪存和其他对象的复位请求分开处理,具体地:在确定复位目标为闪存时,判断闪存是否在执行编程/擦除操作;若否,则复位闪存;若是,则
控制闪存执行编程/擦除操作,并在闪存完成编程/擦除操作后,复位闪存,于此,复位操作
不会导致编程/擦除操作异常中断,从而可以避免闪存出现数据丢失或出错,确保微控制芯
片的正常工作;在确定复位目标为其他对象时,无需理会闪存是否在执行编程/擦除操作,
直接复位其他对象,从而避免忽略其他对象的复位请求而触发芯片状态错误。
[0032] 另外,本申请还检测微控制芯片的电源电压是否处于持续下降趋势,并根据检测结果执行相应复位操作,可以处理因供电异常引起的复位情况。

附图说明

[0033] 图1为本申请实施例提供的第一种微控制芯片的复位方法的流程图;
[0034] 图2为本申请实施例提供的第二种微控制芯片的复位方法的流程图;
[0035] 图3为本申请实施例提供的第三种微控制芯片的复位方法的流程图;
[0036] 图4为本申请实施例提供的一种微控制芯片的结构示意图。

具体实施方式

[0037] 为了解决现有技术中存在的上述问题,本申请提供一种微控制芯片及其复位方法、存储介质。这几个保护主题基于同一构思,解决问题的原理基本相同或相似,各保护主
题的实施方式可相互参阅,重复之处不予赘述。
[0038] 为使本申请的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图,对本申请的技术方案进行清楚地描述。显然,下文所描述实施例仅是本申请的一部分
实施例,而非全部的实施例。在不冲突的情况下,下述各个实施例及其技术特征可相互组
合,且亦属于本申请的技术方案。
[0039] 在本申请实施例的描述中,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅为便于描述相应实施例的技术方案,而非指示或暗示装置或元件必须具有特定方位、以特定方位构造和操作,
不能理解为对本申请的限制。
[0040] 在描述本发明的技术方案之前,先对微控制芯片进行简单说明:
[0041] 微控制芯片,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至驱
动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。
[0042] 微控制芯片包括闪存和除闪存外的可执行复位的其他对象,闪存可用于存储微控制芯片与各种应用程序执行相应功能的缓存数据等,其他对象为可执行复位的单元或者模
块,例如Pin脚、看门狗(watchdog,可视为延时计时器)、电压探测器、选项字段(Option 
word)空间等。
[0043] 本申请实施例提供的一种微控制芯片的复位方法,至少用于管控闪存的复位时机,其执行主体可以是微控制芯片,或者微控制芯片的复位控制器、具有该微控制芯片的电
子设备、服务器等。请参阅图1,该方法包括如下:
[0044] S1:接收来自复位源的复位请求。
[0045] 复位请求实质上为电压信号,又称复位信号,本申请可以通过电平高低来标识复位请求。例如,当对闪存进行复位时,产生的复位信号为第一低电平信号,并可以带有标识
闪存的第一标志符;当对其他对象进行复位时,产生的复位信号为第二低电平信号,并可以
带有标识闪存的第二标志符;第一低电平信号和第二低电平信号的电压不同。应理解,对于
不同单元或者模块的其他对象,对应的第二低电平信号可以相同,且对应的第二标志符不
同;或者,对应的第二低电平信号可以不同,对应的第二标志符可以相同或者不同。于此,本
申请可以确定收到的复位请求的复位对象是闪存还是其他对象。
[0046] S2:在确定复位请求的复位对象为其他对象时,复位其他对象。
[0047] S31:确定复位请求的复位对象为闪存。
[0048] 在确定复位请求的复位对象为闪存时,执行S32:判断闪存是否在执行编程/擦除操作;以及,执行如下S41或S42。
[0049] 判断闪存是否在执行编程/擦除操作的方式,可以参阅本领域的现有技术。例如,在执行编程/擦除操作时,产生一高电平信号发送给复位控制器。
[0050] 在本申请的一示例中,鉴于编程/擦除操作至少包含两个信息:一是需要编程/擦除的数据,可称为目标数据,二是需要编程/擦除的地址,可称为目标地址。于此,用于指示
闪存执行编程/擦除操作的编程/擦除指令由于含有数据,则占存较大,本申请可以通过检
测针对于闪存的指令是否大于预设占存阈值,来判断接收到的指令是否是编程/擦除指令,
具体地,该指令的占存大于或等于所述预设占存阈值,则判断闪存接收到编程/擦除指令;
若该指令的占存小于所述预设占存阈值,则判断闪存未接收到编程/擦除指令。
[0051] 若确定闪存未在执行编程/擦除操作,则执行S41:复位闪存。
[0052] 若确定闪存在执行编程/擦除操作,则执行S42:控制闪存执行编程/擦除操作,并直至判断闪存完成编程/擦除操作后,复位闪存。
[0053] 如上所述,本申请将复位目标(即所述复位对象)为闪存和其他对象的复位请求分开处理,在确定复位目标为闪存时,判断闪存是否在执行编程/擦除操作;若否,则复位闪
存;若是,则控制闪存执行编程/擦除操作,并在闪存完成编程/擦除操作后,复位闪存,于
此,复位操作不会导致编程/擦除操作异常中断,从而可以避免闪存出现数据丢失或出错,
确保微控制芯片的正常工作;在确定复位目标为其他对象时,无需理会闪存是否在执行编
程/擦除操作,直接复位其他对象,从而避免忽略其他对象的复位请求而触发芯片状态错
误。
[0054] 在微控制芯片还包括延时计数器的场景中,本申请还可以根据延时计数器的计时结果来对复位对象的复位执行释放。所谓释放可以理解为将复位请求由有效变为无效,以
此完成整个复位操作。
[0055] 如图2所示,在上述S32中,若判断闪存在执行编程/擦除操作,则所述方法还包括S320:在闪存执行编程/擦除操作且接收到复位请求时,将延时计数器复位到初始值;在上
述S42判断闪存完成编程/擦除操作后,所述方法还包括S43:延时计数器开始计数,在检测
到延时计数器计数达到第二预设阈值时,释放复位对象的复位。
[0056] 延时计数器相当于一个计时器,在闪存执行编程/擦除操作的过程中,复位控制器发出指令让该延时计数器置零,即复位到初始值,表示闪存在正常执行编程/擦除程序。如
果延时计数器计数达到第二预设阈值,表示闪存未在执行编程/擦除程序,即已经完成编
程/擦除操作,则释放复位对象的复位。在复位对象包括闪存和其他对象时,可同时释放闪
存和其他对象的复位。
[0057] 本申请实施例还提供一种微控制芯片的复位方法,如图3所示,包括如下:
[0058] S1:接收来自复位源的复位请求。
[0059] S2:在确定复位请求的复位对象为其他对象时,复位其他对象。
[0060] S5:检测到微控制芯片的电源电压处于持续下降趋势。
[0061] S31:确定复位请求的复位对象为闪存。
[0062] 在确定复位请求的复位对象为闪存时,执行S32:判断闪存是否在执行编程/擦除操作;以及,执行如下S41或S421。
[0063] 若确定闪存未在执行编程/擦除操作,则执行S41:复位闪存。
[0064] 若确定闪存在执行编程/擦除操作,则执行S421:控制闪存执行编程/擦除操作,并直至判断闪存完成编程/擦除操作后,控制闪存停止响应编程/擦除请求、并复位闪存,或
者,在确定电源电压下降至第一预设阈值时复位闪存。
[0065] 电源电压处于持续下降趋势,可用于标识微控制芯片是否会发生故障。当检测到微控制芯片的电源电压由正常电压下降至第一预设阈值时,就认定微控制芯片即将会发生
故障,因此在完成当前的编程/擦除操作后,就会产生一个复位信号给微控制芯片,从而微
控制令芯片进行复位。例如,微控制令芯片的电源电压为5V,触发复位信号的电压是2V,则
在电源电压下降至2V时,就会产生复位信号。第一预设阈值可以根据实际情况适应性设定。
[0066] 在所述S5中,检测电源电压是否处于持续下降趋势的方式,包括:设定预设级数的电压阈值;若多次检测到微控制芯片的电源电压均低于对应的电压阈值,则确定电源电压
处于持续下降趋势;若有一次检测到微控制芯片的电源电压高于对应的电压阈值,则确定
电源电压未处于持续下降趋势。
[0067] 可选地,任意相邻两级电压阈值的差值相等,且每次检测电源电压的时间间隔相同。
[0068] 例如,设定3个级数的电压阈值,分别为3V、2.8V、2.6V;在第一次检测时,检测电源电压是否低于3V,若是,则记录检测结果,并检测电源电压是否低于2.8V;若否,则闪存正常
工作。在第二次检测时,检测电源电压是否低于2.8V,若是,则记录检测结果,并检测电源电
压是否低于2.6V;若否,则闪存正常工作。在第三次检测时,检测电源电压是否低于2.6V,若
是,则记录检测结果,并执行执前述S421;若否,则闪存正常工作。
[0069] 如上所述,本申请还可以根据微控制芯片的电源电压是否处于持续下降趋势,执行相应的复位操作,可以处理因供电异常引起的复位情况。
[0070] 本申请实施例还提供一种微控制芯片,如图4所示,所述微控制芯片5包括闪存51和除闪存51外的可执行复位的其他对象52,所述微控制芯片5还包括接口53和复位控制器
54。
[0071] 接口53用于接收来自复位源的复位请求,该复位请求的复位对象为闪存51和其他对象52中的至少一者。
[0072] 复位控制器54用于确定复位对象为其他对象52还是闪存51;以及,在确定复位请求的复位对象为其他对象52时,复位其他对象52;在确定复位请求的复位对象为闪存51时,
判断闪存51是否在执行编程/擦除操作,若闪存51未在执行编程/擦除操作,则复位闪存51;
若闪存51在执行编程/擦除操作,则控制闪存51执行编程/擦除操作,并直至判断闪存51完
成编程/擦除操作后,复位闪存51。
[0073] 在一可选示例中,所述微控制芯片5还包括:电压监测单元55,用于检测微控制芯片5的电源电压是否处于持续下降趋势;
[0074] 若是,则复位控制器54还用于在判断闪存51完成编程/擦除操作后,控制闪存51停止响应编程/擦除请求并复位闪存51,或者,在确定电源电压下降至第一预设阈值时,复位
闪存51。
[0075] 在一可选示例中,微控制芯片5还包括:延时计数器56,用于在复位控制器54判断闪存51在执行编程/擦除操作且接收到复位请求时复位到初始值,并在复位控制器54判断
闪存51完成编程/擦除操作后开始计数,以及在计数达到第二预设阈值时告知复位控制器
54,以使复位控制器54释放复位对象的复位。
[0076] 在图4所示的微控制芯片5中,各个结构元件执行针对微控制芯片5的复位方法的具体原理及过程,可参见上述各实施例,本处不再赘述。
[0077] 本申请实施例还提供一种存储介质,存储有指令,所述指令适于处理器加载,以执行上述任一实施例中的微控制芯片的复位方法的步骤。
[0078] 在本申请提供的微控制芯片和存储介质的实施例中,可以包含任一上述复位方法实施例的全部技术特征,因此具有对应的有益效果,说明书拓展和解释内容与上述方法的
各实施例基本相同,在此不再做赘述。
[0079] 基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上的一个存储介质(如ROM/
RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,被
控终端,或者网络设备等)执行本申请每个实施例的方法。当使用软件实现时,可以全部或
部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计
算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功
能。
[0080] 应理解,本申请任一实施例提供的微控制芯片为完整的器件,也具备已知的微控制芯片具有的结构,在此仅对其中涉及复位的部件进行说明,对于其他部件不予以赘述。
[0081] 以上所述仅为本申请的部分实施例,并非因此限制本申请的专利范围,对于本领域普通技术人员而言,凡是利用本说明书及附图内容所作的等效结构变换,均同理包括在
本申请的专利保护范围内。
[0082] 尽管本文采用术语“第一、第二”等描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。另外,单数形式“一”、“一个”和“该”旨在也
包括复数形式。术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。仅当
元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。