一种多处理器异构系统的看门狗控制系统及其控制方法与流程

文档序号:26003977发布日期:2021-07-23 21:21阅读:125来源:国知局
一种多处理器异构系统的看门狗控制系统及其控制方法与流程

本发明涉及一种多处理器异构系统的看门狗控制系统及其控制方法,属于看门狗技术领域。



背景技术:

片上soc由多个处理器和fpga组成,一般每个处理器均需要设置一个看门狗电路,以防止程序跑飞时能及时复位处理器,维持设备的正常工作。

现有技术中没有监测处理器对fpga的配置和启动过程,如果不成功则没有应对措施。对每一个处理器都设置了看门狗控制模块,增加了资源消耗。有的只能监测部分处理器的运行状况,不能监测所有处理器。没有对不同的处理器设置不同的清狗周期,所有的处理器都设置同一个清狗周期。



技术实现要素:

本发明所要解决的技术问题是克服现有技术的缺陷,提供一种多处理器异构系统的看门狗控制系统及其控制方法。

为解决上述技术问题,本发明提供一种多处理器异构系统的看门狗控制系统,包括多处理器模块,包括看门狗控制模块和看门狗芯片模块,所述看门狗控制模块分别与处理器模块和看门狗芯片模块电连接;

所述多处理器模块用于在中断程序里定时判断关狗标志是否置位,如果置位则关狗口线输出有效,如果没有置位则翻转清狗口线的电平状态;

所述看门狗控制模块用于在上电启动并配置结束后控制所有清狗计数器自动计数并使能清狗计数器计数,启动时间到后实时监视每个处理器的清狗口线和关狗口线的电平状态,所有清狗计数器正常计数则毫秒计数器正常输出电平翻转,看门狗芯片模块被正常清狗,若有任一个清狗计数器停止计数,则毫秒计数器输出低电平,看门狗芯片模块超时后输出有效复位电平,其中每个所述清狗计数器连接多处理器模块中的一个处理器;

所述看门狗芯片模块用于接收看门狗控制模块输出的电平,并根据预先设置的复位脉宽和溢出周期,确定在上电启动和软件运行后是否发生启动异常或程序跑飞,若发生则进行复位系统,若否则不复位。

进一步的,所述看门狗控制模块包括带有看门狗使能口线和清零口线clr的清狗计数器count、复位计数器rstcnt、毫秒计数器mscnt;所述看门狗芯片电路模块包括看门狗芯片wdg;

其中,清狗计数器count以自增方式计数,清狗计数器count的计数值到达各自设定的最大值时清狗计数器count输出低电平,否则清狗计数器count输出高电平,使能口线用以使能或失能该清狗计数器count的计数功能,清零口线clr用于清除该清狗计数器count的计数值;

复位计数器rstcnt以自增方式计数,在复位周期内rstcnt输出高电平,超过复位周期rstcnt输出低电平;

毫秒计数器mscnt在其en输入口线使能后以自增/自减方式每1ms计数一次,同时其out输出口线的电平每1ms翻转一次;

清狗计数器count的输出口线经过逻辑与操作后再与复位计数器rstcnt的输出口线经过逻辑或操作后输出给毫秒计数器mscnt的使能口线en,毫秒计数器mscnt的输出口线out输出给看门狗芯片wdg的清零端;

看门狗芯片的计数器以自增或自减方式计数,在看门狗芯片wdg的计数器的溢出周期内没有接收到清零信号的情况下,看门狗芯片wdg的计数器计数到最大或最小值时看门狗芯片wdg的out输出口线输出高/低电平的复位脉冲,复位整个系统;在溢出周期内接收到清零信号的情况下看门狗芯片wdg的计数器计数值被复归或清零,out输出口线保持正常电平,整个系统正常工作。

进一步的,所述看门狗控制模块还包括与门逻辑and、或门逻辑ort;

每个所述清狗计数器count的输出端电连接与门逻辑and的输入端,与门逻辑and的输出端电连接或门逻辑or的输入端,或门逻辑or的输入端还电连接复位计数器rstcnt的输出端,或门逻辑or的输出端电连接毫秒计数器mscnt的使能端en,毫秒计数器mscnt的时钟端与系统的时钟clock电连接,毫秒计数器mscnt的复位端与系统的复位reset电连接,毫秒计数器mscnt的输出端out电连接看门狗芯片wdg的清零端。

进一步的,所述看门狗芯片模块还包括第一电容和第二电容;

所述第一电容与看门狗芯片wdg的溢出周期设置端swt电连接,所述第二电容与看门狗芯片wdg的脉宽设置端srt电连接,看门狗芯片wdg的输出端out与整个系统里所有需要复位的器件的复位管脚连接。

进一步的,所述多理器模块为多个独立处理器或多核处理器。

一种多处理器异构系统的看门狗控制系统的控制方法,其特征在于,

在配置和启动过程中:

对多处理器异构系统的处理器和fpga上电初始化时,判断处理器对fpga的配置时间是否达到预设配置时间阈值,若是则认为处理器对fpga配置不成功,则看门狗控制模块的输出口线不翻转,看门狗芯片模块的输出口线out输出复位脉冲,复位整个系统;若否则等到处理器对fpga的配置成功后,看门狗控制模块内对应的该处理器的不断自增的清狗计数器被定时清零,则看门狗控制模块的输出口线out定时翻转,看门狗芯片的输出out保持正常电平;

在对多处理器异构系统上电初始化时,对看门狗芯片模块的计数器自增,再判断清狗口线是否有翻转,若有则看门狗芯片模块的计数器清零,再进行看门狗芯片模块的计数器自增;若没有则判断看门狗芯片模块的计数器是否溢出,若否则复位输出无效,再进行看门狗计数器自增,若是则复位输出有效进行复位动作,再继续进行看门狗计数器自增;

在启动后:

在到达多处理器异构系统的启动时间后,判断多处理器模块的每个处理器清狗口线是否翻转,若翻转则将相应处理器的清狗计数器清零,若不翻转则判断相应处理器的关狗口线是否有效,若有效则将相应处理器的清狗计数器清零,且清狗计数器不自增,若无效则将相应处理器的清狗计数器自增,再判断自增后的清狗计数器的时间是否大于预设的门槛值,若大于则相应处理器溢出标志置位,若不大于则再对该处理器进行清狗口线是否翻转进行判断;

在任一处理器溢出标志置位时,判断是否狗溢出,若是则看门狗控制模块的输出口线不翻转,否则看门狗控制模块的输出口线定时翻转。

本发明所达到的有益效果:

本发明能够使同样的处理器系统复位时间从60秒缩短为5秒,大大减少复位时间,能够发生程序跑飞时保证处理器的实时性;

本发明能够让所有处理器同时复位,而不是某个处理器单独复位,而其他处理器正常工作,这样不会导致复位的处理器与正常工作的处理器由于数据交互异常导致的设备工作异常,使设备误发信号,错误动作;

本发明的电路设计更简单,提高了soc资源使用率,减少设备成本。

附图说明

图1是本发明的一个电路原理示意图;

图2是本发明的配置和启动过程的流程示意图;

图3是本发明的启动后的流程示意图;

图4是本发明的看门狗动作逻辑示意图;

图5是本发明的模块示意图。

具体实施方式

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。

如图1和5所示,一种多处理器异构系统的看门狗控制系统,包括多处理器模块cpu1-cpun,包括看门狗控制模块wdg—ctl和看门狗芯片模块wdg,所述看门狗控制模块分别与处理器模块和看门狗芯片模块电连接;

所述多处理器模块用于在中断程序里定时判断关狗标志是否置位,如果置位则关狗口线输出有效,如果没有置位则翻转清狗口线的电平状态;

所述看门狗控制模块用于在上电启动并配置结束后控制所有清狗计数器自动计数并使能清狗计数器计数,启动时间到后实时监视每个处理器的清狗口线和关狗口线的电平状态,所有清狗计数器正常计数则毫秒计数器正常输出电平翻转,看门狗芯片模块被正常清狗,若有任一个清狗计数器停止计数,则毫秒计数器输出低电平,看门狗芯片模块超时后输出有效复位电平,其中每个所述清狗计数器连接多处理器模块中的一个处理器;

所述看门狗芯片模块用于接收看门狗控制模块输出的电平,并根据预先设置的复位脉宽和溢出周期,确定在上电启动和软件运行后是否发生启动异常或程序跑飞,若发生则进行复位系统,若否则不复位。

本实施例中,所述看门狗控制模块包括带有看门狗使能口线和清零口线clr的清狗计数器count、复位计数器rstcnt、毫秒计数器mscnt;所述看门狗芯片电路模块包括看门狗芯片wdg;

其中,清狗计数器count以自增方式计数,清狗计数器count的计数值到达各自设定的最大值时清狗计数器count输出低电平,否则清狗计数器count输出高电平,使能口线用以使能或失能该清狗计数器count的计数功能,清零口线clr用于清除该清狗计数器count的计数值;

复位计数器rstcnt以自增方式计数,在复位周期内rstcnt输出高电平,超过复位周期rstcnt输出低电平;

毫秒计数器mscnt在其en输入口线使能后以自增/自减方式每1ms计数一次,同时其out输出口线的电平每1ms翻转一次;

清狗计数器count的输出口线经过逻辑与操作后再与复位计数器rstcnt的输出口线经过逻辑或操作后输出给毫秒计数器mscnt的使能口线en,毫秒计数器mscnt的输出口线out输出给看门狗芯片wdg的清零端;

看门狗芯片的计数器以自增或自减方式计数,在看门狗芯片wdg的计数器的溢出周期内没有接收到清零信号的情况下,看门狗芯片wdg的计数器计数到最大或最小值时看门狗芯片wdg的out输出口线输出高/低电平的复位脉冲,复位整个系统;在溢出周期内接收到清零信号的情况下看门狗芯片wdg的计数器计数值被复归或清零,out输出口线保持正常电平,整个系统正常工作。

在系统刚上电且上电时间没有超过复位周期时,rstcnt输出逻辑高电平,使能mscnt计数器计数,mscnt的out保持1ms翻转一次电平,使得wdg的计数器不断被清零,out输出正常电平,整个系统不复位;

在系统上电时间已经超过复位周期时,rstcnt输出逻辑低电平,若所有的处理器均能正常工作,则count1…countn的计数器被不停的清零,计数器均输出高电平,mscnt的out保持1ms翻转一次电平,则wdg的out输出正常电平;若有任一个处理器出现程序错误导致对应的count计数器没有被清零,则该count在计数值到了设定的最大值后输出低电平,mscnt的en被拉低,mscnt的out电平不翻转,则wdg的计数器没有被清零,wdg的计数器到了溢出周期后out输出复位脉冲,整个系统被复位。

本实施例中,所述看门狗控制模块还包括与门逻辑and、或门逻辑ort;

每个所述清狗计数器count的输出端电连接与门逻辑and的输入端,与门逻辑and的输出端电连接或门逻辑or的输入端,或门逻辑or的输入端还电连接复位计数器rstcnt的输出端,或门逻辑or的输出端电连接毫秒计数器mscnt的使能端en,毫秒计数器mscnt的时钟端与系统的时钟clock电连接,毫秒计数器mscnt的复位端与系统的复位reset电连接,毫秒计数器mscnt的输出端out电连接看门狗芯片wdg的清零端。

本实施例中,所述看门狗芯片模块还包括第一电容和第二电容;

所述第一电容与看门狗芯片wdg的溢出周期设置端swt电连接,所述第二电容与看门狗芯片wdg的脉宽设置端srt电连接,看门狗芯片wdg的输出端out与整个系统里所有需要复位的器件如处理器、fpga、内存芯片、emmc、通讯接口芯片等的复位管脚连接。

本实施例中,所述多理器模块为多个独立处理器或soc内的多核处理器。独立处理器输出clr和dis两根口线给看门狗控制电路的清狗计数器,soc内的处理器内核不需要输出实际的gpio引脚,只要硬核引出内部的扩展引脚emio(clr和dis)接入到看门狗控制电路即可。处理器的中断程序里根据线程的任务需要使能或失能看门狗控制口线dis,如果某些线程的操作关联到看门狗的清零,在关闭该线程时必须先关闭该处理器的清狗动作,在重新开启该线程后再开启该处理器的清狗动作。开启清狗动作后中断程序必须定时翻转clr的电平状态,以及时清除看门狗芯片的计数器。

看门狗控制部分设计了复位计数器,计数器计数周期按启动时间需要设置,本设计中计数周期设置为20s,上电后计数器按每1ms计数,计数器输出高电平给或门逻辑or,到计数周期后计数器输出低电平。看门狗控制部分还设计对应每一个处理器的计数器count,每一路计数器根据自己的计数周期需要输出电平状态,对异构系统,有的实时性要求高,重要的中断程序周期为1ms,在发生程序跑飞时希望几十ms后就要复位系统,而对一些处理界面、通过任务的系统,实时性要求低,在发生程序跑飞时希望几十秒后再复位系统。例如对实时性强的处理器,可以设置计数周期为10ms,若输入端在超过10ms时间内没有电平翻转,则计数器输出低电平;对实时性差的处理器,由于线程执行时间超长,可以设置计数周期为60s,若输入端在超过60s时间内没有电平翻转,则计数器输出低电平。所有计数器的输出端经过与门逻辑and,再经过或门逻辑or后输出一根口线接到毫秒计数器mscnt的使能端en,en有效时mscnt按每1ms计数并输出out端到看门狗芯片wdg的清零端,用于清除看门狗芯片的计数器,若en为低电平则out输出保持为低电平。

看门狗芯片设计需要的复位脉宽和溢出周期,以便在上电启动和软件运行后如果发生启动异常或程序跑飞时及时复位系统。设置看门狗溢出时间,需要躲过fpga的配置时间,以看门狗芯片max6301为例,如配置时间为4s,则设置看门狗溢出时间为4.5s。通过合理选择连接swt引脚的电容容值,依据公式cswt=twd/(2.67×500)=4500000us/(2.67×500)=3370pf计算出溢出周期为4500ms时需要选择3370pf的电容,实际选择3.3nf。通过合理选择连接srt引脚的电容容值,依据公式crst=trp/2.67=125490us/2.67=47000pf计算出复位脉宽为125ms时需要选择47000pf的电容,实际选择47nf。

一种多处理器异构系统的看门狗控制系统的控制方法,

如图2所示,在配置和启动过程中:

对多处理器异构系统的处理器和fpga上电初始化时,判断处理器对fpga的配置时间是否达到预设配置时间阈值,若是则认为处理器对fpga配置不成功,则看门狗控制模块的输出口线不翻转,看门狗芯片模块的输出口线out输出复位脉冲,复位整个系统;若否则等到处理器对fpga的配置成功后,看门狗控制模块内对应的该处理器的不断自增的清狗计数器被定时清零,则看门狗控制模块的输出口线out定时翻转,看门狗芯片的输出out保持正常电平;

如图4所示,在对多处理器异构系统上电初始化时,对看门狗芯片模块的计数器自增,再判断清狗口线是否有翻转,若有则看门狗芯片模块的计数器清零,再进行看门狗芯片模块的计数器自增;若没有则判断看门狗芯片模块的计数器是否溢出,若否则复位输出无效,再进行看门狗计数器自增,若是则复位输出有效进行复位动作,再继续进行看门狗计数器自增;

如图3所示,在启动后:

在到达多处理器异构系统的启动时间后,判断多处理器模块的每个处理器清狗口线是否翻转,若翻转则将相应处理器的清狗计数器清零,若不翻转则判断相应处理器的关狗口线是否有效,若有效则将相应处理器的清狗计数器清零,且清狗计数器不自增,若无效则将相应处理器的清狗计数器自增,再判断自增后的清狗计数器的时间是否大于预设的门槛值,若大于则相应处理器溢出标志置位,若不大于则再对该处理器进行清狗口线是否翻转进行判断;

在任一处理器溢出标志置位时,判断是否狗溢出,若是则看门狗控制模块的输出口线不翻转,否则看门狗控制模块的输出口线定时翻转。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的得同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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