CN113626229B - 一种基于sbc的电机控制芯片唤醒方法 - Google Patents

一种基于sbc的电机控制芯片唤醒方法 Download PDF

Info

Publication number
CN113626229B
CN113626229B CN202110697204.5A CN202110697204A CN113626229B CN 113626229 B CN113626229 B CN 113626229B CN 202110697204 A CN202110697204 A CN 202110697204A CN 113626229 B CN113626229 B CN 113626229B
Authority
CN
China
Prior art keywords
watchdog
level
program
reset
sbc
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110697204.5A
Other languages
English (en)
Other versions
CN113626229A (zh
Inventor
刘灿
管海斌
及非凡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Zero Run Technology Co Ltd
Original Assignee
Zhejiang Zero Run Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang Zero Run Technology Co Ltd filed Critical Zhejiang Zero Run Technology Co Ltd
Priority to CN202110697204.5A priority Critical patent/CN113626229B/zh
Publication of CN113626229A publication Critical patent/CN113626229A/zh
Application granted granted Critical
Publication of CN113626229B publication Critical patent/CN113626229B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于SBC的电机控制芯片唤醒方法,采用三级联合式看门狗的设计对电机控制芯片进行监控和唤醒,所述1级看门狗为监控程序优先级最高的中断时序的软件看门狗,通过软件实现喂狗和复位;所述2级看门狗为MCU内自带的看门狗,根据需要产生复位信号,使能SBC芯片的初始化,使能3级看门狗的配置;所述3级看门狗为放在while()循环里的SBC看门狗,用于监控while()循环是否正常运行。本发明主要应用在芯片程序各中断时序的监控,当程序运行异常时,基于SBC电源芯片实现硬件级别的彻底复位,进而实现唤醒芯片,防止程序遇到极特殊的情形而无法正常启动,提高电机控制器的运行鲁棒性,降低产品故障率,提高用户体验感。

Description

一种基于SBC的电机控制芯片唤醒方法
技术领域
本发明涉及电子技术领域,具体涉及一种基于SBC的电机控制芯片唤醒方法。
背景技术
随着电动汽车的发展,电机控制器的设计日益复杂,功能越来越多,功能安全要求也越来越高,准确的识别程序运行异常并进行复位是功能安全的一个重要指标。电机控制器MCU程序设计日益复杂,在特定条件或者程序设计不当时,会发生异常问题,导致程序无法正常运行,给软件工程师带来巨大的挑战。大部分的电机控制器软件工程师都是从事应用层开发或者底层算法开发,对MCU芯片级别了解较少,尤其是MCU内部的工作机理和时序等等。而在实际调试和研发中往往会遇到各种各样的异常问题,导致程序运行异常中断或者程序根本无法启动。车用电机控制器往往工作在非常恶劣的环境,这些不利因素给芯片的稳定运行也带来的了较大的挑战。针对这种难以排查而又可能会发生的情况,需要制定一个备用补丁方案,即在系统设计时增加一个复位机制,尝试重新启动程序,唤醒芯片,降低故障率,提高用户体验感。关于芯片的复位技术,现有技术方案存在不足,一是准确性和稳定性不佳,芯片程序运行异常时,无法准确判断出异常;二是大多通过软件复位实现,相对硬件复位不够彻底,不能够完全彻底的对芯片和外设等设备实施复位;三是往往监控初始化阶段,对正常运行过程不监控,或者仅仅复位,不再进行工作;四是大多为一级监控模式,不能同时监控MCU程序级异常问题和MCU芯片级异常问题。例如,中国专利授权公告号:CN1681105,提供了一种利用MCU对主芯片进行复位的方法,包括:1)带主芯片的系统上电,MCU程序给MCU的各个引脚按照功能设定执行任务,并设置一个初始值;2)设置主芯片的复位引脚为输出,并给一低电平;等待一预先设定的时间后,给主芯片的复位引脚输出一个高电平;3)通过MCU的看门狗功能对主芯片进行复位操作,即MCU程序设定一个看门狗时间,如果在所述预先设定的时间内,主芯片没有发命令过来给看门狗,则MCU判定该主芯片程序已跑飞,MCU就会将主芯片的复位引脚置为低电平给主芯片进行复位,从而让主芯片复位并重新启动,让系统恢复正常。本发明相较于传统的复位设计方式,成本比较低,实用性强,功能灵活,可扩展性强,但为一级监控模式,不能同时监控MCU程序级异常问题和MCU芯片级异常问题,具有局限性。
发明内容
本发明主要是为了解决MCU程序运行异常的复位问题,提供了一种基于SBC的电机控制芯片唤醒方法,采用三级联合式看门狗的设计,基于SBC电源芯片实现硬件级别的彻底复位,防止程序遇到极特殊的情形而无法正常启动,提高电机控制器的运行鲁棒性,降低产品故障率,提高用户体验感。
为了实现上述目的,本发明采用以下技术方案:
一种基于SBC的电机控制芯片唤醒方法,采用三级联合式看门狗的设计对电机控制芯片进行监控和唤醒,具体包括以下步骤:步骤S1)首先从Boot程序起始处开始执行,在Boot程序里判断是否有下载请求;若是,执行步骤S2;若否,启动3级看门狗,执行步骤S3;步骤S2)关闭3级看门狗,进入下载流程,下载完成后,跳转到App程序,关闭2级看门狗,跳转到Boot程序,返回步骤S1;步骤S3)跳转到App程序,在App程序里启动2级看门狗和1级看门狗,同时在App程序里接收下载指令请求,若有下载指令请求,跳转到Boot程序,返回执行步骤S2;若没有下载指令请求,则执行步骤S4;步骤S4)判读1级看门狗喂狗是否失败,若是,进行1级复位,返回执行步骤S3;若否,执行步骤S5;步骤S5)判断3级看门狗喂狗是否失败,若是,进行3级复位,跳转到Boot程序,返回执行步骤S1;若否,直接退出监控,标志程序运行正常。对于产品代码,芯片上电时,首先从Boot起始处开始执行,在Boot里面先判断是否有下载请求,如果有下载请求,则关闭3级看门狗功能,进入下载流程。下载完成后,程序跳转到App,关闭2级看门狗功能,此时程序将再次跳转到Boot里面,进行3级看门狗的初始化使能操作,然后再次跳转到App程序正常运行。如果无下载请求,则启动3级看门狗,然后跳转到App程序里面,在App程序里面启动2级看门狗和1级看门狗。同时在App里面接收下载指令请求,如果有下载请求,则重复上述流程。1级看门狗监控程序优先级最高的中断时序,一旦该中断时序运行异常,则会进行1级复位,1级复位为软件复位,如果复位成功,将继续执行后续程序。如果复位不成功,则继续复位,并记录复位次数。在累计达到设定的复位次数限值后,程序将不再执行软件复位。此时3级看门狗也在监控所述中断时序,当3级喂狗周期超过设定的喂狗窗口时间后,将直接触发3级复位,3级复位为硬件级别复位,复位更加彻底。复位后,程序将跳转到Boot程序的起始处重新执行。本发明主要基于MCU和SBC复位的方法对芯片进行监控和唤醒,主要应用在芯片程序各中断时序的监控,当程序运行异常时,通过本方案可以快速彻底复位,实现程序的再启动,进而唤醒芯片,大大降低芯片在极端异常工况下发生死机等故障,提高电机控制器的运行鲁棒性,降低产品故障率,提高用户体验感。
作为优选,所述1级看门狗为监控程序优先级最高的中断时序的软件看门狗,通过软件实现喂狗和复位;所述2级看门狗为MCU内自带的看门狗,根据需要产生复位信号,使能SBC芯片的初始化,使能3级看门狗的配置;所述3级看门狗为放在while()循环里的SBC看门狗,用于监控while()循环是否正常运行。本发明的MCU和SBC通过硬线连接,构成3级看门狗,喂狗信号通过SPI通讯实现,SBC的复位引脚连接在MCU的复位引脚上。整体方案为3级联合式看门狗设计方案,1级看门狗为软件看门狗,通过软件实现喂狗和复位,用于监控程序优先级最高的中断时序,在检测到异常后会进行软件复位,同时在RAM空间里记录复位次数;2级看门狗为MCU内部自带的看门狗,也放在程序优先级最高的中断时序里进行喂狗,根据需要产生一个复位信号,使能SBC芯片的初始化,使能3级看门狗的配置,应用在程序下载完成后,通过复位完成SBC使能看门狗的配置;3级看门狗为SBC看门狗,需要搭载SBC电源管理芯片,3级喂狗操作一般放在主程序while()循环里,用于监控程序的while()循环是否正常运行,while()循环周期一般比优先级最高的中断低,用于在1级看门狗复位失效或者复位不成功的情况下,进行3级看门狗复位,3级看门狗喂狗周期比1级看门喂狗周期长,可以同时监控MCU程序运行异常及MCU主频异常的问题。程序运行后,分别在优先级最高的中断里进行1级看门狗喂狗和while()循环里进行3级看门狗喂狗,系统会自动进行监控,并根据不同的类型复位,进而唤醒芯片。实际设计时,还需要考虑产品程序里Boot和App间时序匹配问题,在程序下载的过程中应关闭3级看门狗。本发明为三级监控模式,不仅可以监控MCU程序级异常问题,还可以监控MCU芯片级异常问题,具有可靠性和实用性,通过三级联合式看门狗的设计,实现对电机控制芯片的监控和唤醒。
作为优选,Boot程序跳转到App程序的过程,具体包括以下步骤:步骤A1)进入Boot程序后,在Boot程序里判断是否有下载请求,若是,执行步骤A2;若否,执行步骤A3;步骤A2)首先初始化SBC芯片,关闭3级看门狗,程序下载完成后,在FLASH指定地址处写入标志位1,表示程序下载完成,然后执行步骤A4;步骤A3)首先初始化SBC芯片,启动3级看门狗,同时在FLASH指定地址处写入标志位2,表示没有发生程序下载操作,然后执行步骤A4;步骤A4)跳转到App程序。当Boot程序接收到下载指令时,首先初始化SBC芯片,关闭3级看门狗功能,等到程序下载完成后,在FLASH指定地址处写入标志位1,表示程序下载完成。如果没有接收到下载指令,则初始化SBC芯片,使能3级看门狗功能,同时在FLASH制定地址处写入标志位2,表示没有发生程序下载操作,为后续的App程序运行做条件判断。
作为优选,App程序跳转到Boot程序的过程,具体包括以下步骤:步骤B1)进入App程序后,判断FLSAH存储的下载标志位是否为1,若是,执行步骤B2;若否,执行步骤B3;步骤B2)关闭2级看门狗,产生复位信号,返回到Boot程序最开始处执行,在Boot程序开始处再次判断是否有下载请求,若是,则禁止使能3级看门狗,下载程序完成后,返回执行步骤B1;若否,则启动3级看门狗功能,然后跳转到App程序,执行步骤B3;步骤B3)继续判断FLSAH存储的下载标志位是否为2,若是,启动2级看门狗和1级看门狗,然后退出流程;若否,直接退出流程。进入App程序后,在App程序里读取FLSAH存储的下载标志位,如果标志位为1,表示有下载请求并且下载完成,MCU程序关闭2级看门狗功能,产生复位信号,返回到Boot程序最开始处执行,在Boot程序开始处再次判断是否有下载请求,如果有下载请求,则还是禁止使能3级看门狗,为下一次的下载做准备。如果没有下载请求,则启动3级看门狗功能,然后再次跳转到App程序里,在App程序里继续读取下载标志位并进行判断,如果标志位为2,则启动2级看门狗功能和1级看门狗功能,后续正常运行。如果下载标志位不等于2,则不启动看门狗功能。
作为优选,所述1级看门狗的监控过程,具体包括以下步骤:步骤C1)在监控单元里首先判断是否有喂狗信号,若是,直接退出监控,标志程序运行正常,无需复位操作;若否,执行步骤C2;步骤C2)将看门狗失效计数加1,然后判断看门狗失效计数是否大于看门狗失效计数限值,若是,退出监控;若否,执行步骤C3:步骤C3)判断初始化标志是否为0,若否,退出监控;若是,初始化标志置为1,故障锁挂起,复位标志置为1,复位计数器加1,然后判断复位计数是否大于复位计数限值,若是,退出监控;若否,执行软件复位,然后退出监控。本发明的看门狗喂狗信号放在程序优先级最高的中断里,用于监控此中断,在监控单元里首先判断是否有喂狗信号,如果有喂狗信号,则直接退出监控,标志程序运行正常,无需复位操作。如果程序无喂狗信号,将看门狗失效计数加1,当累计到大于看门狗失效计数限值时,再判断初始化标志是否为0,如果为0标志,程序执行初始化单元,后将初始化标志置为1,故障锁挂起,复位标志置1,复位计数器加1,然后判断复位计数是否大于限值(本发明的复位计数限值为5),如果大于5,则不再执行软件复位,小于5,则进行软件复位。
作为优选,所述1级看门狗的初始化单元工作过程,具体包括以下步骤:步骤D1)程序启动后进入初始化单元,首先判断故障锁是否挂起,若否,表示之前未发生过复位操作,故障计数清0,执行步骤D2;若是,表示之前发生过复位操作,直接执行步骤D2;步骤D2)将初始化标志置0,判断故障计数是否大于故障计数限值,若否,结束初始化流程;若是,表示启动失败,不再进行软件复位。程序启动后进入初始化单元,首先判断故障锁是否挂起,故障锁表示之前是否发生过复位操作,故障锁未挂起,表示之前未发生过复位操作,故障计数清0;故障锁挂起,表示先前发生过复位操作,初始化标志置0,表示初始化单元被执行过,然后判断复位故障计数是否大于故障计数限值(本发明的故障计数限值为5),如果不大于5,结束本初始化流程;如果大于5,表示复位次数达到设定的启动次数限值,启动失败,不再进行软件复位。
作为优选,所述1级看门狗的喂狗单元工作过程,包括:程序预先设置喂狗信号KEY1和KEY2,在要监控的中断时序里设置中断计数器,然后将所述中断计数器的计数导入到看门狗计算器里,根据预先设定好的算法,计算出一个看门狗计算值,所述看门狗计算值用于在看门狗校验单元里进行校验。本发明的程序每执行一次中断,中断计数器加1。
作为优选,所述1级看门狗的校验单元工作过程,包括:在1级看门狗校验单元里,根据所述喂狗单元计算出的看门狗计算值,反计算出校验KEY1和校验KEY2,然后将所述校验KEY1和校验KEY2,与喂狗单元的KEY1和KEY2进行比较,如果两者完全一致,表示看门狗校验成功;如果不一致,表示看门狗校验失败。本发明通过看门狗校验单元对看门狗的功能进行校验,提高本方案的准确性。
作为优选,所述1级看门狗的复位次数处理单元工作过程,包括;将复位次数写到指定的RAM地址处,在程序启动运行时,判断所述复位次数值是否为0,如果为0,擦除整片RAM空间;如果不为0则擦除复位次数地址以外的RAM空间,保留复位次数的存储。本发明通过对复位次数值进行判断,实现对复位次数的存储。
作为优选,所述3级看门狗的喂狗操作放在主程序while()循环里,首先设定好喂狗周期,当超过喂狗周期没有进行喂狗操作时,SBC会自动进行复位,所述复位为硬件级别复位;复位后,跳转到Boot程序的起始处重新开始执行。本发明通过基于SBC的3级看门狗,实现硬件级别的彻底复位。
因此,本发明的优点是:
(1)基于SBC电源芯片,可以实现硬件级别的彻底复位,防止程序遇到极特殊的情形而无法正常启动,提高电机控制器的运行鲁棒性,降低产品故障率,提高用户体验感;
(2)采用三级联合式看门狗的设计,不仅可以监控MCU程序级异常问题,还可以监控MCU芯片级异常问题;
(3)准确性和稳定性高,程序运行发生异常时可以准确判断出异常,并通过复位操作唤醒芯片;
(4)实现对复位次数的存储。
附图说明
图1是本发明的流程图。
图2是本发明的结构示意图。
具体实施方式
下面结合附图与具体实施方式对本发明做进一步的描述。
如图1和图2所示,一种基于SBC的电机控制芯片唤醒方法,采用三级联合式看门狗的设计对电机控制芯片进行监控和唤醒,具体包括以下步骤:步骤S1)首先从Boot程序起始处开始执行,在Boot程序里判断是否有下载请求;若是,执行步骤S2;若否,启动3级看门狗,执行步骤S3;步骤S2)关闭3级看门狗,进入下载流程,下载完成后,跳转到App程序,关闭2级看门狗,跳转到Boot程序,返回步骤S1;步骤S3)跳转到App程序,在App程序里启动2级看门狗和1级看门狗,同时在App程序里接收下载指令请求,若有下载指令请求,跳转到Boot程序,返回执行步骤S2;若没有下载指令请求,则执行步骤S4;步骤S4)判读1级看门狗喂狗是否失败,若是,进行1级复位,返回执行步骤S3;若否,执行步骤S5;步骤S5)判断3级看门狗喂狗是否失败,若是,进行3级复位,跳转到Boot程序,返回执行步骤S1;若否,直接退出监控,标志程序运行正常。对于产品代码,芯片上电时,首先从Boot起始处开始执行,在Boot里面先判断是否有下载请求,如果有下载请求,则关闭3级看门狗功能,进入下载流程。下载完成后,程序跳转到App,关闭2级看门狗功能,此时程序将再次跳转到Boot里面,进行3级看门狗的初始化使能操作,然后再次跳转到App程序正常运行。如果无下载请求,则启动3级看门狗,然后跳转到App程序里面,在App程序里面启动2级看门狗和1级看门狗。同时在App里面接收下载指令请求,如果有下载请求,则重复上述流程。1级看门狗监控程序优先级最高的中断时序,一旦该中断时序运行异常,则会进行1级复位,1级复位为软件复位,如果复位成功,将继续执行后续程序。如果复位不成功,则继续复位,并记录复位次数。在累计达到设定的复位次数限值后,程序将不再执行软件复位。此时3级看门狗也在监控中断时序,当3级喂狗周期超过设定的喂狗窗口时间后,将直接触发3级复位,3级复位为硬件级别复位,复位更加彻底。复位后,程序将跳转到Boot程序的起始处重新执行。本发明主要基于MCU和SBC复位的方法对芯片进行监控和唤醒,主要应用在芯片程序各中断时序的监控,当程序运行异常时,通过本方案可以快速彻底复位,实现程序的再启动,进而唤醒芯片,大大降低芯片在极端异常工况下发生死机等故障,提高电机控制器的运行鲁棒性,降低产品故障率,提高用户体验感。
如图2所示,1级看门狗为监控程序优先级最高的中断时序的软件看门狗,通过软件实现喂狗和复位;2级看门狗为MCU内自带的看门狗,根据需要产生复位信号,使能SBC芯片的初始化,使能3级看门狗的配置;3级看门狗为放在while()循环里的SBC看门狗,用于监控while()循环是否正常运行。本发明的MCU和SBC通过硬线连接,构成3级看门狗,喂狗信号通过SPI通讯实现,SBC的复位引脚连接在MCU的复位引脚上。整体方案为3级联合式看门狗设计方案,1级看门狗为软件看门狗,通过软件实现喂狗和复位,用于监控程序优先级最高的中断时序,在检测到异常后会进行软件复位,同时在RAM空间里记录复位次数;2级看门狗为MCU内部自带的看门狗,也放在程序优先级最高的中断时序里进行喂狗,根据需要产生一个复位信号,使能SBC芯片的初始化,使能3级看门狗的配置,应用在程序下载完成后,通过复位完成SBC使能看门狗的配置;3级看门狗为SBC看门狗,需要搭载SBC电源管理芯片,3级喂狗操作一般放在主程序while()循环里,用于监控程序的while()循环是否正常运行,while()循环周期一般比优先级最高的中断低,用于在1级看门狗复位失效或者复位不成功的情况下,进行3级看门狗复位,3级看门狗喂狗周期比1级看门喂狗周期长,可以同时监控MCU程序运行异常及MCU主频异常的问题。程序运行后,分别在优先级最高的中断里进行1级看门狗喂狗和while()循环里进行3级看门狗喂狗,系统会自动进行监控,并根据不同的类型复位,进而唤醒芯片。实际设计时,还需要考虑产品程序里Boot和App间时序匹配问题,在程序下载的过程中应关闭3级看门狗。本发明为三级监控模式,不仅可以监控MCU程序级异常问题,还可以监控MCU芯片级异常问题,具有可靠性和实用性,通过三级联合式看门狗的设计,实现对电机控制芯片的监控和唤醒。
Boot程序跳转到App程序的过程,具体包括以下步骤:步骤A1)进入Boot程序后,在Boot程序里判断是否有下载请求,若是,执行步骤A2;若否,执行步骤A3;步骤A2)首先初始化SBC芯片,关闭3级看门狗,程序下载完成后,在FLASH指定地址处写入标志位1,表示程序下载完成,然后执行步骤A4;步骤A3)首先初始化SBC芯片,启动3级看门狗,同时在FLASH指定地址处写入标志位2,表示没有发生程序下载操作,然后执行步骤A4;步骤A4)跳转到App程序。当Boot程序接收到下载指令时,首先初始化SBC芯片,关闭3级看门狗功能,等到程序下载完成后,在FLASH指定地址处写入标志位1,表示程序下载完成。如果没有接收到下载指令,则初始化SBC芯片,使能3级看门狗功能,同时在FLASH制定地址处写入标志位2,表示没有发生程序下载操作,为后续的App程序运行做条件判断。
App程序跳转到Boot程序的过程,具体包括以下步骤:步骤B1)进入App程序后,判断FLSAH存储的下载标志位是否为1,若是,执行步骤B2;若否,执行步骤B3;步骤B2)关闭2级看门狗,产生复位信号,返回到Boot程序最开始处执行,在Boot程序开始处再次判断是否有下载请求,若是,则禁止使能3级看门狗,下载程序完成后,返回执行步骤B1;若否,则启动3级看门狗功能,然后跳转到App程序,执行步骤B3;步骤B3)继续判断FLSAH存储的下载标志位是否为2,若是,启动2级看门狗和1级看门狗,然后退出流程;若否,直接退出流程。进入App程序后,在App程序里读取FLSAH存储的下载标志位,如果标志位为1,表示有下载请求并且下载完成,MCU程序关闭2级看门狗功能,产生复位信号,返回到Boot程序最开始处执行,在Boot程序开始处再次判断是否有下载请求,如果有下载请求,则还是禁止使能3级看门狗,为下一次的下载做准备。如果没有下载请求,则启动3级看门狗功能,然后再次跳转到App程序里,在App程序里继续读取下载标志位并进行判断,如果标志位为2,则启动2级看门狗功能和1级看门狗功能,后续正常运行。如果下载标志位不等于2,则不启动看门狗功能。
1级看门狗的监控过程,具体包括以下步骤:步骤C1)在监控单元里首先判断是否有喂狗信号,若是,直接退出监控,标志程序运行正常,无需复位操作;若否,执行步骤C2;步骤C2)将看门狗失效计数加1,然后判断看门狗失效计数是否大于看门狗失效计数限值,若是,退出监控;若否,执行步骤C3:步骤C3)判断初始化标志是否为0,若否,退出监控;若是,初始化标志置为1,故障锁挂起,复位标志置为1,复位计数器加1,然后判断复位计数是否大于复位计数限值,若是,退出监控;若否,执行软件复位,然后退出监控。本发明的看门狗喂狗信号放在程序优先级最高的中断里,用于监控此中断,在监控单元里首先判断是否有喂狗信号,如果有喂狗信号,则直接退出监控,标志程序运行正常,无需复位操作。如果程序无喂狗信号,将看门狗失效计数加1,当累计到大于看门狗失效计数限值时,再判断初始化标志是否为0,如果为0标志,程序执行初始化单元,后将初始化标志置为1,故障锁挂起,复位标志置1,复位计数器加1,然后判断复位计数是否大于限值(本发明的复位计数限值为5),如果大于5,则不再执行软件复位,小于5,则进行软件复位。
1级看门狗的初始化单元工作过程,具体包括以下步骤:步骤D1)程序启动后进入初始化单元,首先判断故障锁是否挂起,若否,表示之前未发生过复位操作,故障计数清0,执行步骤D2;若是,表示之前发生过复位操作,直接执行步骤D2;步骤D2)将初始化标志置0,判断故障计数是否大于故障计数限值,若否,结束初始化流程;若是,表示启动失败,不再进行软件复位。程序启动后进入初始化单元,首先判断故障锁是否挂起,故障锁表示之前是否发生过复位操作,故障锁未挂起,表示之前未发生过复位操作,故障计数清0;故障锁挂起,表示先前发生过复位操作,初始化标志置0,表示初始化单元被执行过,然后判断复位故障计数是否大于故障计数限值(本发明的故障计数限值为5),如果不大于5,结束本初始化流程;如果大于5,表示复位次数达到设定的启动次数限值,启动失败,不再进行软件复位。
1级看门狗的喂狗单元工作过程,包括:程序预先设置喂狗信号KEY1和KEY2,在要监控的中断时序里设置中断计数器,然后将中断计数器的计数导入到看门狗计算器里,根据预先设定好的算法,计算出一个看门狗计算值,看门狗计算值用于在看门狗校验单元里进行校验。本发明的程序每执行一次中断,中断计数器加1。
1级看门狗的校验单元工作过程,包括:在1级看门狗校验单元里,根据喂狗单元计算出的看门狗计算值,反计算出校验KEY1和校验KEY2,然后将校验KEY1和校验KEY2,与喂狗单元的KEY1和KEY2进行比较,如果两者完全一致,表示看门狗校验成功;如果不一致,表示看门狗校验失败。本发明通过看门狗校验单元对看门狗的功能进行校验,提高本方案的准确性。
1级看门狗的复位次数处理单元工作过程,包括;将复位次数写到指定的RAM地址处,在程序启动运行时,判断复位次数值是否为0,如果为0,擦除整片RAM空间;如果不为0则擦除复位次数地址以外的RAM空间,保留复位次数的存储。本发明通过对复位次数值进行判断,实现对复位次数的存储。
3级看门狗的喂狗操作放在主程序while()循环里,首先设定好喂狗周期,当超过喂狗周期没有进行喂狗操作时,SBC会自动进行复位,复位为硬件级别复位;复位后,跳转到Boot程序的起始处重新开始执行。本发明通过基于SBC的3级看门狗,实现硬件级别的彻底复位。

Claims (10)

1.一种基于SBC的电机控制芯片唤醒方法,其特征在于,采用三级联合式看门狗的设计对电机控制芯片进行监控和唤醒,具体包括以下步骤:
步骤S1:首先从Boot程序起始处开始执行,在Boot程序里判断是否有下载请求;若是,执行步骤S2;若否,启动3级看门狗,执行步骤S3;
步骤S2:关闭3级看门狗,进入下载流程,下载完成后,跳转到App程序,关闭2级看门狗,跳转到Boot程序,返回步骤S1;
步骤S3:跳转到App程序,在App程序里启动2级看门狗和1级看门狗,同时在App程序里接收下载指令请求,若有下载指令请求,跳转到Boot程序,返回执行步骤S2;若没有下载指令请求,则执行步骤S4;
步骤S4:判读1级看门狗喂狗是否失败,若是,进行1级复位,返回执行步骤S3;若否,执行步骤S5;
步骤S5:判断3级看门狗喂狗是否失败,若是,进行3级复位,跳转到Boot程序,返回执行步骤S1;若否,直接退出监控,标志程序运行正常。
2.根据权利要求1所述的一种基于SBC的电机控制芯片唤醒方法,其特征在于,所述1级看门狗为监控程序优先级最高的中断时序的软件看门狗,通过软件实现喂狗和复位;所述2级看门狗为MCU内自带的看门狗,根据需要产生复位信号,使能SBC芯片的初始化,使能3级看门狗的配置;所述3级看门狗为放在while()循环里的SBC看门狗,用于监控while()循环是否正常运行。
3.根据权利要求2所述的一种基于SBC的电机控制芯片唤醒方法,其特征在于,Boot程序跳转到App程序的过程,具体包括以下步骤:
步骤A1:进入Boot程序后,在Boot程序里判断是否有下载请求,若是,执行步骤A2;若否,执行步骤A3;
步骤A2:首先初始化SBC芯片,关闭3级看门狗,程序下载完成后,在FLASH指定地址处写入标志位1,表示程序下载完成,然后执行步骤A4;
步骤A3:首先初始化SBC芯片,启动3级看门狗,同时在FLASH指定地址处写入标志位2,表示没有发生程序下载操作,然后执行步骤A4;
步骤A4:跳转到App程序。
4.根据权利要求2所述的一种基于SBC的电机控制芯片唤醒方法,其特征在于,App程序跳转到Boot程序的过程,具体包括以下步骤:
步骤B1:进入App程序后,判断FLASH存储的下载标志位是否为1,若是,执行步骤B2;若否,执行步骤B3;
步骤B2:关闭2级看门狗,产生复位信号,跳转到Boot程序最开始处执行,在Boot程序开始处再次判断是否有下载请求,若是,则禁止使能3级看门狗,下载程序完成后,返回执行步骤B1;若否,则启动3级看门狗功能,然后跳转到App程序,执行步骤B3;
步骤B3:继续判断FLSAH存储的下载标志位是否为2,若是,启动2级看门狗和1级看门狗,然后退出流程;若否,直接退出流程。
5.根据权利要求1所述的一种基于SBC的电机控制芯片唤醒方法,其特征在于,所述1级看门狗的监控过程,具体包括以下步骤:
步骤C1:在监控单元里首先判断是否有喂狗信号,若是,直接退出监控,标志程序运行正常,无需复位操作;若否,执行步骤C2;
步骤C2:将看门狗失效计数加1,然后判断看门狗失效计数是否大于看门狗失效计数限值,若是,退出监控;若否,执行步骤C3:
步骤C3:判断初始化标志是否为0,若否,退出监控;若是,初始化标志置为1,故障锁挂起,复位标志置为1,复位计数器加1,然后判断复位计数是否大于复位计数限值,若是,退出监控;若否,执行软件复位,然后退出监控。
6.根据权利要求5所述的一种基于SBC的电机控制芯片唤醒方法,其特征在于,所述1级看门狗的初始化单元工作过程,具体包括以下步骤:
步骤D1:程序启动后进入初始化单元,首先判断故障锁是否挂起,若否,表示之前未发生过复位操作,故障计数清0,执行步骤D2;若是,表示之前发生过复位操作,直接执行步骤D2;
步骤D2:将初始化标志置为0,判断故障计数是否大于故障计数限值,若否,结束初始化流程;若是,表示启动失败,不再进行软件复位。
7.根据权利要求5所述的一种基于SBC的电机控制芯片唤醒方法,其特征在于,所述1级看门狗的喂狗单元工作过程,包括:程序预先设置喂狗信号KEY1和KEY2,在要监控的中断时序里设置中断计数器,然后将所述中断计数器的计数导入到看门狗计算器里,根据预先设定好的算法,计算出一个看门狗计算值,所述看门狗计算值用于在看门狗校验单元里进行校验。
8.根据权利要求7所述的一种基于SBC的电机控制芯片唤醒方法,其特征在于,所述1级看门狗的校验单元工作过程,包括:在1级看门狗校验单元里,根据所述喂狗单元计算出的看门狗计算值,反计算出校验KEY1和校验KEY2,然后将所述校验KEY1和校验KEY2,与喂狗单元的KEY1和KEY2进行比较,如果两者完全一致,表示看门狗校验成功,功能正常;如果不一致,表示看门狗校验失败,功能异常。
9.根据权利要求5所述的一种基于SBC的电机控制芯片唤醒方法,其特征在于,所述1级看门狗的复位次数处理单元工作过程,包括:将复位次数写到指定的RAM地址处,在程序启动运行时,判断所述复位次数值是否为0,若是,则擦除整片RAM空间;若否,则擦除复位次数地址以外的RAM空间,保留复位次数的存储。
10.根据权利要求2所述的一种基于SBC的电机控制芯片唤醒方法,其特征在于,所述3级看门狗的喂狗操作放在主程序while()循环里,首先设定好喂狗周期,当超过喂狗周期没有进行喂狗操作时,SBC会自动进行复位,所述复位为硬件级别复位;复位后,跳转到Boot程序的起始处重新开始执行。
CN202110697204.5A 2021-06-23 2021-06-23 一种基于sbc的电机控制芯片唤醒方法 Active CN113626229B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110697204.5A CN113626229B (zh) 2021-06-23 2021-06-23 一种基于sbc的电机控制芯片唤醒方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110697204.5A CN113626229B (zh) 2021-06-23 2021-06-23 一种基于sbc的电机控制芯片唤醒方法

Publications (2)

Publication Number Publication Date
CN113626229A CN113626229A (zh) 2021-11-09
CN113626229B true CN113626229B (zh) 2023-07-21

Family

ID=78378223

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110697204.5A Active CN113626229B (zh) 2021-06-23 2021-06-23 一种基于sbc的电机控制芯片唤醒方法

Country Status (1)

Country Link
CN (1) CN113626229B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060037183A (ko) * 2004-10-27 2006-05-03 엘지전자 주식회사 워치독 타이머를 이용한 오토 페일 세이프 부팅 장치
WO2006081735A1 (fr) * 2005-02-01 2006-08-10 Emerson Network Power Co., Ltd. Méthode de contrôle par chien de garde
JP2011138231A (ja) * 2009-12-25 2011-07-14 Toshiba Tec Corp 電子機器及びプログラム
CN105260255A (zh) * 2015-10-10 2016-01-20 中国兵器工业集团第二一四研究所苏州研发中心 一种多处理器核片上系统的看门狗实现方法
CN109491824A (zh) * 2018-11-13 2019-03-19 福建北峰通信科技股份有限公司 一种嵌入式操作系统的看门狗控制方法
CN111367702A (zh) * 2020-03-06 2020-07-03 北京龙鼎源科技股份有限公司 一种多任务软件看门狗处理方法及装置
CN112148338A (zh) * 2020-09-16 2020-12-29 北京比特大陆科技有限公司 电源管理电路、芯片及其升级方法及服务器

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7523350B2 (en) * 2005-04-01 2009-04-21 Dot Hill Systems Corporation Timer-based apparatus and method for fault-tolerant booting of a storage controller
KR101673303B1 (ko) * 2014-11-12 2016-11-22 현대자동차주식회사 와치독 제어 방법 및 장치

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060037183A (ko) * 2004-10-27 2006-05-03 엘지전자 주식회사 워치독 타이머를 이용한 오토 페일 세이프 부팅 장치
WO2006081735A1 (fr) * 2005-02-01 2006-08-10 Emerson Network Power Co., Ltd. Méthode de contrôle par chien de garde
JP2011138231A (ja) * 2009-12-25 2011-07-14 Toshiba Tec Corp 電子機器及びプログラム
CN105260255A (zh) * 2015-10-10 2016-01-20 中国兵器工业集团第二一四研究所苏州研发中心 一种多处理器核片上系统的看门狗实现方法
CN109491824A (zh) * 2018-11-13 2019-03-19 福建北峰通信科技股份有限公司 一种嵌入式操作系统的看门狗控制方法
CN111367702A (zh) * 2020-03-06 2020-07-03 北京龙鼎源科技股份有限公司 一种多任务软件看门狗处理方法及装置
CN112148338A (zh) * 2020-09-16 2020-12-29 北京比特大陆科技有限公司 电源管理电路、芯片及其升级方法及服务器

Also Published As

Publication number Publication date
CN113626229A (zh) 2021-11-09

Similar Documents

Publication Publication Date Title
CN113946148B (zh) 一种基于多ecu协同控制的mcu芯片唤醒系统
CN203191965U (zh) 看门狗计时器电路、功率ic和看门狗监视系统
CN101354677B (zh) 一种应用程序运行状态的检测方法及装置
CN103402821B (zh) 机动车辆以及控制机动车辆的方法
US11433718B2 (en) Upgrading method and apparatus for tire pressure monitoring module and tire pressure sensor
CN111007763B (zh) 一种iic总线解锁的控制方法
US10216550B2 (en) Technologies for fast boot with adaptive memory pre-training
CN103761112A (zh) 一种车载多媒体装置及其控制方法
CN112667462B (zh) 一种服务器的双闪存运行监测的系统、方法及介质
CN110058973B (zh) 数据储存装置的测试系统与数据储存装置的测试方法
US20150154091A1 (en) Bios maintenance method
CN111737064A (zh) 一种bmc系统控制方法、装置、存储介质和计算机设备
TWI712045B (zh) 資料儲存裝置修復方法
CN111578489A (zh) 一种eeprom芯片数据读取方法、控制系统、空调器及存储介质
CN113626229B (zh) 一种基于sbc的电机控制芯片唤醒方法
CN107885626A (zh) 片上系统可编程器件的系统启动自检测的装置及方法
CN103890713A (zh) 用于管理处理系统内的寄存器信息的装置及方法
EP3629176B1 (en) Fault detection circuit with progress register and status register
CN112732311A (zh) 一种大型储能系统bms程序热更新方法、系统及介质
US20230418590A1 (en) Instruction updates
CN110659169A (zh) 一种安卓系统自动休眠唤醒压力测试的方法
CN113220324B (zh) 一种cpld远程更新的方法、系统及介质
CN113946130A (zh) 一种电机控制器芯片唤醒系统
US20180052798A1 (en) Techniques of accessing bmc terminals through serial port
CN115729573A (zh) 固件升级方法、装置、芯片及计算机存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Liu Can

Inventor after: Guan Haibin

Inventor after: Ji Feifan

Inventor before: Liu Can

Inventor before: Guan Haibin

Inventor before: Extraordinary

GR01 Patent grant
GR01 Patent grant
OR01 Other related matters
OR01 Other related matters