一种看门狗电路的制作方法

文档序号:37676003发布日期:2024-04-18 20:48阅读:9来源:国知局
一种看门狗电路的制作方法

本发明涉及软硬件监测,特别涉及一种看门狗电路。


背景技术:

1、soc(system on chip,片上系统)系统在工作中受到外部电磁干扰或电源扰动时,可能会发生cpu取指错误,导致程序跳转到非正常流程或非法地址执行,使得系统工作陷入混乱或死循环。为避免程序跑飞导致的严重后果,采用一种专门的模块或芯片来监视程序的运行状态,当程序跑飞后该模块或芯片产生复位信号对芯片系统进行复位,以确保系统处于安全状态之下。这种监视程序运行状态的模块或芯片俗称“看门狗”(watchdog)。

2、看门狗的实现原理是利用定时器对软件流程进行监视,若软件按照流程设定的时间与方法对定时器进行复位(称之为喂狗),则不产生复位信号,反之定时器没有在设定的时间内得到复位,就会溢出并输出复位信号。

3、从集成方式上看门狗分为芯片内部看门狗和外部独立看门狗,实现方式上分为软件看门狗与硬件看门狗,喂狗方式上分为普通看门狗(定时喂狗)、窗口看门狗及问答看门狗。现有技术的看门狗可以在一定程度上监视程序的运行状态,并发现大部分软件跑飞的情况,但现有的看门狗无法检测到程序跑飞后在定时器溢出之前又跑回正常流程的情况,也无法检测到程序跑飞后正好进入其它具有喂狗操作的流程的情况。虽然传统看门狗能够通过减少喂狗时间间隔、增加喂狗频率来降低问题发生的概率,但那样会大大地增加系统的负担,无法针对软硬件执行流程中的部分流程进行单独配置喂狗频率。


技术实现思路

1、本发明的目的,就是针对现有技术的不足,提供一种看门狗电路,能够通过限定喂狗信号解决软硬件流程中程序跑飞后又回到正常喂狗操作的情况,通过限定喂狗信号,配置喂狗时间窗口及监控时间片来为软硬件执行流程中不同部分的执行流程提供不同监控时长及频率的喂狗操作,来对软硬件执行流程进行监测。

2、为实现上述目的,本发明实施例第一方面提供了一种看门狗电路,所述电路包括:

3、多个第一多路选择器,与外部的多路喂狗信号相连接,每个所述第一多路选择器根据喂狗信号选择寄存器选择所述多路喂狗信号中的一路作为喂狗输入信号;

4、第二多路选择器,与所述多个第一多路选择器相连接,用于接收所述多个第一多路选择器输出的多个喂狗输入信号;

5、通道选择状态机,与所述第二多路选择器相连接,用于向所述第二多路选择器输出通道选择信号;所述第二多路选择器根据所述通道选择信号选择所述多个喂狗输入信号中与所述通道选择信号相对应的喂狗输入信号作为通道输出信号;

6、第一通道使能寄存器和第二通道使能寄存器,分别与所述通道选择状态机相连接,用于使能所述多路喂狗信号;

7、工作模式配置寄存器,与所述通道选择状态机相连接,用于配置通道切换工作模式;所述通道切换工作模式包括单线程模式和多线程模式;

8、两输入与门,包括两个输入端,其中一个输入端与所述第二多路选择器相连接,接收所述第二多路选择器输出的所述通道输出信号,另一个输入端接收输入使能信号;所述两输入与门根据所述通道输出信号和输入使能信号输出通道喂狗信号;

9、信号捕捉模块,与所述两输入与门相连接,根据预设捕捉模式捕捉所述两输入与门输出的所述通道喂狗信号;当所述信号捕捉模块捕捉所述通道喂狗信号成功时,输出捕捉成功信号;当所述通道切换工作模式为单线程模式时,所述预设捕捉模式采用边沿捕捉方式;当所述通道切换工作模式为多线程模式时,所述预设捕捉模式采用电平捕捉方式;当所述预设捕捉模式为电平捕捉方式并且所述信号捕捉模块捕捉所述通道喂狗信号的高电平成功时,所述信号捕捉模块根据所述通道喂狗信号的编号设置第一捕捉信号标志寄存器和第二捕捉信号标志寄存器的标志位;所述第一捕捉信号标志寄存器与所述第一通道使能寄存器相对应;所述第二捕捉信号标志寄存器与所述第二通道使能寄存器相对应;

10、定时器,与所述通道选择状态机相连接,接收所述通道选择状态机发送的启动信号;当所述定时器接收到所述启动信号时,启动递增计数,并将计数结果值保存至自由计数值寄存器中;所述定时器还与所述信号捕捉模块相连接,接收所述信号捕捉模块输出的捕捉成功信号;当所述定时器接收到所述捕捉成功信号后,所述定时器将当前计数值作为捕捉计数值保存至捕捉寄存器中,同时输出比较使能信号;

11、比较器,与所述定时器相连接,用于接收所述定时器输出的所述比较使能信号,并输出第一比较结果信号、第二比较结果信号和通道监控完成信号;当所述比较器接收到所述比较使能信号时,读取所述捕捉寄存器中的捕捉计数值,并将所述捕捉计数值与所述喂狗输入信号对应的喂狗时间窗口上限值和喂狗时间窗口下限值进行比较,当所述捕捉计数值小于所述喂狗时间窗口上限值并且大于所述喂狗时间窗口下限值时,将所述第一比较结果信号设置为高电平,否则,将所述第一比较结果信号设置为低电平;当所述捕捉计数值不小于所述喂狗时间窗口上限值或者不大于所述喂狗时间窗口下限值时,将所述第二比较结果信号设置为高电平,否则,将所述第二比较结果信号设置为低电平;所述比较器还用于读取所述自由计数值寄存器中的计数结果值,并将所述计数结果值与所述喂狗输入信号对应的喂狗时间片进行比较,当所述计数结果值达到所述喂狗时间片时,将所述通道监控完成信号设置成高电平,否则,将所述通道监控完成信号设置为低电平;

12、控制逻辑模块,分别与所述比较器、通道选择状态机和定时器相连接,接收所述比较器输出的所述第一比较结果信号、第二比较结果信号和通道监控完成信号;

13、当所述通道切换工作模式为单线程模式时,所述控制逻辑模块接收到的所述第二比较结果信号为高电平时,输出复位信号;当所述控制逻辑模块接收到的所述通道监控完成信号为高电平时,并且未接收到高电平的所述第一比较结果信号时,输出所述复位信号;当所述控制逻辑模块接收到的所述通道监控完成信号为高电平时,并且已接收到高电平的所述第一比较结果信号时,执行第一通道切换流程;

14、当所述通道切换工作模式为多线程模式并且所述控制逻辑模块接收到高电平的通道监控完成信号时,所述控制逻辑模块比较所述第一捕捉信号标志寄存器与所述第一通道使能寄存器是否相等并生成第一信号比较结果,比较所述第二捕捉信号标志寄存器与所述第二通道使能寄存器是否相等并生成第二信号比较结果;所述第一信号比较结果和第二信号比较结果均包括是和否;若所述第一信号比较结果和第二信号比较结果均为是,则执行第二通道切换流程,否则,输出所述复位信号;

15、所述第一通道切换流程包括所述控制逻辑模块发送状态切换信号至所述通道选择状态机,发送停止计数信号和计数清零信号至所述定时器;所述定时器接收到所述停止计数信号和计数清零信号后,停止计数并清零当前计数值;所述通道选择状态机接收到所述状态切换信号后,生成下一通道选择信号;所述通道选择状态机将所述下一通道选择信号发送至所述第二多路选择器,用以所述第二多路选择器根据所述下一通道选择信号进行通道切换;所述通道选择状态机生成状态切换完成信号并发送至所述控制逻辑模块,用以所述控制逻辑模块在接收到所述状态切换完成信号后对自身状态进行复位;

16、所述第二通道切换流程包括所述控制逻辑模块发送周期切换信号至所述通道选择状态机,用于所述通道选择状态机对所有已使能的喂狗信号进行下一轮的轮询监控;

17、控制寄存器,用于设置所述输入使能信号的控制位和预设捕捉模式。

18、优选的,所述电路还包括:

19、第三多路选择器,接收多路时钟信号,并根据时钟选择信号选择所述多路时钟信号中的一路作为源时钟信号进行输出;

20、预分频器,与所述第三多路选择器相连接,接收所述第三多路选择器输出的所述源时钟信号,并根据预设分频系数对所述源时钟信号进行分频操作,得到所述分频时钟;

21、时钟门控,与所述预分频器相连接,接收所述分频时钟并输出至所述定时器,所述定时器以所述分频时钟的时钟频率进行计数;所述时钟门控还接收时钟使能信号,并根据所述时钟使能信号控制所述分频时钟。

22、进一步优选的,所述预设分频系数存储于所述控制寄存器中。

23、进一步优选的,所述时钟使能信号的控制位存储于所述控制寄存器中。

24、进一步优选的,所述时钟选择信号的控制位存储于所述控制寄存器中。

25、优选的,所述多路喂狗信号包括32路硬件喂狗信号和32路软件喂狗信号;

26、所述第一通道使能寄存器用于使能所述32路软件喂狗信号;

27、所述第二通道使能寄存器用于使能所述32路硬件喂狗信号。

28、优选的,所述边沿捕捉方式具体为捕捉所述通道喂狗信号的上升沿。

29、优选的,所述电平捕捉方式具体为捕捉所述通道喂狗信号的高电平。

30、本发明实施例提供的一种看门狗电路,通过多个第一多路选择器选择多路喂狗信号作为喂狗输入信号,并通过第二多路选择器根据通道选择状态机发出的通道选择信号选择多个喂狗输入信号中的一个作为通道输出信号;通过信号捕捉模块捕捉通道输出信号,并在捕捉成功时,输出捕捉成功信号至定时器。定时器在接收到通道选择状态机的启动信号时,启动计数,并将计数结果值保存至自由计数值寄存器中,并在接收到捕捉成功信号时,将当前计数值作为捕捉计数值保存至捕捉寄存器中,并输出比较使能信号至比较器。比较器比较捕捉计数值与喂狗时间窗口上下限值生成第一比较结果信号和第二比较结果信号,同时比较计数结果值与喂狗时间片生成通道监控完成信号。比较器将第一比较结果信号、第二比较结果信号和通道监控完成信号发送至控制逻辑模块,由控制逻辑模块根据第一比较结果信号、第二比较结果信号以及通道监控完成信号判断软硬件执行流程中是否出现程序跑飞的错误以及判断所捕捉的喂狗信号与所监控的喂狗信号是否存在不对应等情况,来确定是否需要输出复位信号,以及在监控正常的情况下进行通道切换。本发明通过设置喂狗时间窗口及喂狗时间片,并对软硬件执行流程中不同部分的喂狗信号进行限定,大大地提升了对喂狗信号监控的可靠性及系统的安全性。

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