一种兼顾看门狗功能和监测软件烧写功能的方法和装置
技术领域
本申请涉及高可靠性的软件编程器应用领域,更具体地说,涉及一种兼顾看门狗功能和监测软件烧写功能的方法和装置。
背景技术
软件编程器是一种常用的中央处理器单元。在某些高可靠性的领域,通常将软件编程器与硬件看门狗配置使用,以提高系统的可靠性和抗干扰能力,其主要作用是防止程序跑飞或死锁。
参见图1示出了一种硬件看门狗与软件编程器之间的信号传输示意图。如图所示:当软件编程器的CPU工作正常时,CPU将每隔一定时间输出一个喂狗信号给看门狗,即“喂狗”,若程序运行出现问题或硬件出现故障而无法按时“喂狗”时,看门狗电路将迫使系统自动复位而重新运行程序。
另外,在实际的使用环境中,使用者在产品定型前会不可避免地升级软件编程器,常常通过JTAG或者其他方式进行软件烧写,如异步串行通信接口或CAN通信等方式。
因此,为了适应苛刻的电磁环境,需要使能硬件看门狗,而为了便于产品升级和维护,需要保留串行通信接口烧写软件编程器的功能。但是前述两者功能不能同时具备,原因在于常用的硬件看门狗对软件编程器的复位周期大约在2s以内,而通过串行通信接口烧写软件编程器则至少需要10s。所以如果两者功能同时使能的话,软件编程器在通过串口烧写软件过程中,无法发出“喂狗”信号,造成看门狗电路非预期地复位软件编程器,造成软件编程器烧写失败。
发明内容
有鉴于此,本申请提供一种兼顾看门狗功能和监测软件烧写功能的方法和装置,该方法可通过软件编程器当前的运行状态决定是否启动看门狗功能,以避免在烧写软件过程中,看门狗对软件编程器进行复位,造成软件编程器烧写失败。
为了实现上述目的,现提出的方案如下:
一种兼顾看门狗功能和监测软件烧写功能的方法,包括:
获取软件编程器的运行状态信号;
根据所述运行状态信号,确定所述软件编程器的运行状态,其中所述软件编程器的运行状态包括内部程序加载状态以及程序烧写状态;
根据所述软件编程器的运行状态,确定是否启动看门狗功能;
其中,当所述软件编程器的运行状态表明所述软件编程器处于所述内部程序加载状态时,启动所述看门狗功能;
当所述软件编程器的运行状态表明所述软件编程器处于所述程序烧写状态时,关闭所述看门狗功能。
优选的,所述运行状态信号为所述软件编程器的程序引导引脚状态信号。
优选的,当确定所述软件编程器的运行状态为所述程序烧写状态之后,还包括根据所述程序引导引脚状态信号判断所述软件编程器的程序烧写方式;
其中不同的所述程序引导引脚状态信号对应不同的所述程序烧写方式。
优选的,所述程序烧写方式包括:同步串口烧写、I2C通信串口烧写、CAN通信串口烧写以及多输入串口烧写。
一种兼顾看门狗功能和监测软件烧写功能的装置,包括:
信号采集模块,用于获取软件编程器的运行状态信号;
运行状态确定模块,用于根据所述运行状态信号,确定所述软件编程器的运行状态,其中所述软件编程器的运行状态包括内部程序加载状态以及程序烧写状态;
控制模块,用于根据所述软件编程器的运行状态,确定是否启动看门狗功能;
其中,当所述软件编程器的运行状态表明所述软件编程器处于所述内部程序加载状态时,启动所述看门狗功能;
当所述软件编程器的运行状态表明所述软件编程器处于所述程序烧写状态时,关闭所述看门狗功能。
优选的,当所述运行状态信号为所述软件编程器的程序引导引脚状态信号时,还包括:
程序烧写方式确定模块,用于根据所述程序引导引脚状态信号判断所述软件编程器的程序烧写方式;
其中不同的所述程序引导引脚状态信号对应不同的所述程序烧写方式。
经由上述技术方案可知,本申请公开了一种兼顾看门狗功能和监测软件烧写功能的方法和装置。该方法根据软件编程器的运行状态信号,确定软件编程器的运行状态。当软件编程器处于内部软件加载状态时,则启动看门狗功能;当软件编程器处于程序烧写状态时,则不启动看门狗功能。与现有技术相比,本发明可根据软件编程器当前的运行状态决定是否启动看门狗功能,从而避免了在烧写软件过程中,看门狗对软件编程器进行复位,造成软件编程器烧写失败的情况。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1示出了一种硬件看门狗与软件编程器之间的信号传输示意图;
图2示出了本发明一个实施例公开的一种兼顾看门狗功能和监测软件烧写功能的方法的流程示意图;
图3示出了本发明另一个实施例公开的一种兼顾看门狗功能和监测软件烧写功能的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图2示出了本发明一个实施例公开的一种兼顾看门狗功能和监测软件烧写功能的方法的流程示意图。
由图2可知,该方法包括:
S201:获取软件编程器的运行状态信号。
S202:根据所述运行状态信号,确定所述软件编程器的运行状态。
其中,软件编程器的运行状态包括内部程序加载状态以及程序烧写状态。所述内部程序加载状态为软件编程器运行内部程序的过程,而程序烧写状态为使用者通过串口,如异步串行通信接口或CAN通信接口等,对软件编程器进行升级的过程。
S203:根据所述软件编程器的运行状态,确定是否启动看门狗功能。
其中,当所述软件编程器的运行状态表明所述软件编程器处于内部程序加载状态时,启动看门狗功能。当所述软件编程器的运行状态表明所述软件编程器处于程序烧写状态时,关闭看门狗功能。
需要说明的是,在实际应用中看门狗功能可通过硬件看门狗实现,也可通过软件看门狗实现,本发明并不局限看门狗功能的实现方式。
本申请公开了一种兼顾看门狗功能和监测软件烧写功能的方法。该方法根据软件编程器的运行状态信号,确定软件编程器的运行状态。当软件编程器处于内部软件加载状态时,则启动看门狗功能;当软件编程器处于程序烧写状态时,则不启动看门狗功能。与现有技术相比,本发明可根据软件编程器当前的运行状态决定是否启动看门狗功能,从而避免了在烧写软件过程中,看门狗对软件编程器进行复位,造成软件编程器烧写失败的情况。
可选地,在本发明公开的其他实施例中,可通过读取软件编程器的程序引导引脚的状态信号,来确定软件编程器当前的运行状态,并且由于软件编程器在进行程序烧写时,采用不同的程序烧写方式,软件编程器的程序引导引脚的状态信号不同,因而可通过对程序引导引脚状态信号的读取,确定软件编程器的程序烧写方式。
下面以型号为TMS320F28335的软件编程器为例具体说明。其中,该软件编程器的程序引导引脚的引脚符号为GPI084~GPI087。当读取的程序引导引脚的状态信号为1111时,确定该软件编程器处于内部软件加载状态,需要立即启动看门狗功能;当读取的程序引导引脚的状态信号为1011、0011、1101、0101等电平状态时,表面该软件编程器处于程序烧写状态,且不同的状态信号对应不同的烧写方式,如同步串口烧写、I2C通信串口烧写、CAN通信串口烧写以及多输入串口烧写。
参见图3示出了本发明另一个实施例公开的一种兼顾看门狗功能和监测软件烧写功能的装置的结构示意图。
该装置包括:信号采集模块1、运行状态确定模块2以及控制模块3。
其中,信号采集模块1用于获取软件编程器的运行状态信号,并将采集到的运行状态信号发送至运行状态确定模块2中。
运行状态确定模块2接收信号采集模块1发送的运行状态信号,并根据所述运行状态信号,确定所述软件编程器的运行状态。其中,在本发明中软件编程器的运行状态包括内部软件加载状态以及程序烧写状态。
进一步,控制模块3根据所述软件编程器的运行状态,确定是否启动看门狗功能。
其中,当运行状态确定模块2确定所述软件编程器当前的运行状态为内部程序加载状态时,控制模块3启动看门狗功能;
当运行状态确定模块2确定所述软件编程器当前的运行状态为程序烧写状态时,控制模块3关闭看门狗功能。
需要说明的是,在本实施例中看门狗功能的实现可通过硬件看门狗也可通过软件看门狗。
可选的,在本发明的公开的其他装置实施例中,所述信号采集模块1用于获取软件编程器的程序引导引脚状态信号,实现对软件编程器运行状态信号的采集。
由于程序引导引脚状态信号不仅能够表明软件编程器的运行状态,而且能够表明软件编程器采用何种程序烧写方式进行程序烧写,因而在本发明公开的其他装置实施例中,该装置还包括程序烧写方式确定模块4,所述程序烧写方式确定模块4用于根据所述程序引导引脚状态信号判断所述软件编程器的程序烧写方式。
可选的,上述实施例中公开的装置可采用内置硬件看门狗或软件看门狗的FPGA(Field-Programmable Gate Array,即现场可编程门阵列)实现,具体实现方式已在装置和方法实施例中进行了说明,在此不作赘述。
需要说明的是,在采用FPGA实现上述方案时,FPGA的引脚直接或通过缓冲器连接软件编程器的程序引导引脚。FPGA要先于软件编程器上电,且FPGA运行后,方启动软件编程器。
最后,还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。