一种基于SBC的电机控制芯片唤醒方法技术

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

【技术实现步骤摘要】
一种基于SBC的电机控制芯片唤醒方法


[0001]本专利技术涉及电子
,具体涉及一种基于SBC的电机控制芯片唤醒方法。

技术介绍

[0002]随着电动汽车的发展,电机控制器的设计日益复杂,功能越来越多,功能安全要求也越来越高,准确的识别程序运行异常并进行复位是功能安全的一个重要指标。电机控制器MCU程序设计日益复杂,在特定条件或者程序设计不当时,会发生异常问题,导致程序无法正常运行,给软件工程师带来巨大的挑战。大部分的电机控制器软件工程师都是从事应用层开发或者底层算法开发,对MCU芯片级别了解较少,尤其是MCU内部的工作机理和时序等等。而在实际调试和研发中往往会遇到各种各样的异常问题,导致程序运行异常中断或者程序根本无法启动。车用电机控制器往往工作在非常恶劣的环境,这些不利因素给芯片的稳定运行也带来的了较大的挑战。针对这种难以排查而又可能会发生的情况,需要制定一个备用补丁方案,即在系统设计时增加一个复位机制,尝试重新启动程序,唤醒芯片,降低故障率,提高用户体验感。关于芯片的复位技术,现有技术方案存在不足,一是准确性和稳定性不佳,芯片程序运行异常时,无法准确判断出异常;二是大多通过软件复位实现,相对硬件复位不够彻底,不能够完全彻底的对芯片和外设等设备实施复位;三是往往监控初始化阶段,对正常运行过程不监控,或者仅仅复位,不再进行工作;四是大多为一级监控模式,不能同时监控MCU程序级异常问题和MCU芯片级异常问题。例如,中国专利授权公告号:CN1681105,提供了一种利用MCU对主芯片进行复位的方法,包括:1)带主芯片的系统上电,MCU程序给MCU的各个引脚按照功能设定执行任务,并设置一个初始值;2)设置主芯片的复位引脚为输出,并给一低电平;等待一预先设定的时间后,给主芯片的复位引脚输出一个高电平;3)通过MCU的看门狗功能对主芯片进行复位操作,即MCU程序设定一个看门狗时间,如果在所述预先设定的时间内,主芯片没有发命令过来给看门狗,则MCU判定该主芯片程序已跑飞,MCU就会将主芯片的复位引脚置为低电平给主芯片进行复位,从而让主芯片复位并重新启动,让系统恢复正常。本专利技术相较于传统的复位设计方式,成本比较低,实用性强,功能灵活,可扩展性强,但为一级监控模式,不能同时监控MCU程序级异常问题和MCU芯片级异常问题,具有局限性。

技术实现思路

[0003]本专利技术主要是为了解决MCU程序运行异常的复位问题,提供了一种基于SBC的电机控制芯片唤醒方法,采用三级联合式看门狗的设计,基于SBC电源芯片实现硬件级别的彻底复位,防止程序遇到极特殊的情形而无法正常启动,提高电机控制器的运行鲁棒性,降低产品故障率,提高用户体验感。
[0004]为了实现上述目的,本专利技术采用以下技术方案:一种基于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复位的方法对芯片进行监控和唤醒,主要应用在芯片程序各中断时序的监控,当程序运行异常时,通过本方案可以快速彻底复位,实现程序的再启动,进而唤醒芯片,大大降低芯片在极端异常工况下发生死机等故障,提高电机控制器的运行鲁棒性,降低产品故障率,提高用户体验感。
[0005]作为优选,所述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芯片级异常问题,具有可靠性和实用性,通过三级联
合式看门狗的设计,实现对电机控制芯片的监控和唤醒。
[0006]作为优选,Boot程序跳转到A本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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级看门狗,然后退出流程;若否,直接退出流...

【专利技术属性】
技术研发人员:刘灿管海斌非凡
申请(专利权)人:浙江零跑科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1