片上SOC的时钟和定时器的诊断方法与流程

文档序号:31949368发布日期:2022-10-26 07:07阅读:143来源:国知局
片上SOC的时钟和定时器的诊断方法与流程
片上soc的时钟和定时器的诊断方法
技术领域
1.本发明涉及故障诊断领域,尤其是涉及片上soc的时钟和定时器的诊断方法。


背景技术:

2.本发明涉及工业控制的功能安全领域,在工业控制系统中,较为常见的控制器硬件架构由mcu(microcontroller unit;微控制单元)+fpga(field programmable gate array;现场可编程逻辑门阵列)组成,其中mcu来实现控制逻辑,fpga则用来实现通讯等接口以及安全相关诊断。功能安全系统作为工业控制系统中的重要一环,用于保障生产的安全,在生产过程中接入功能安全系统中的信号如果出现异常功能安全系统将立即动作停止系统生产并发出报警。如果功能安全系统自身出现异常导致控制失效,则有可能在生产出现异常状况时不能够正常动作导致危险发生,因此需要对时钟以及定时器等可能导致失效的安全相关功能进行诊断。
3.现有技术中,一种方案是通过额外接入一个用于诊断的时钟,周期的获取正常时钟和诊断时钟的时钟值,计算出规定时间间隔的2个时钟在这段时间的差值,通过对比2个时钟的差值来判断时钟是否异常,但该方案通过额外增加一个时钟源来诊断时钟是否异常,这个新增的时钟源往往只用于诊断,这不仅增加了故障点还提高了硬件成本。在时钟诊断中若因为诊断的时钟出现异常,按照这个方案也会被认定为时钟异常从而影响到正常的运行。
4.另一种方案是通过生成一个基于外部时钟的时间窗口,在时间窗口内计算内部时钟周期的个数,通过对比周期个数是否大于上限值或小于下限值来判断外部时钟是否异常,但该方案使用内部时钟来诊断外部时钟。由于内部时钟温漂较大,精度也不如外部时钟高,因此在外部时钟产生的窗口中的内部周期数的上限和下限阈值范围较大,这种方案仅能诊断出外部时钟是否工作正常,无法诊断出外部晶振的频率是否产生了偏差。
5.为此,需要设计一种用于功能安全系统的片上soc的时钟和定时器的诊断方法,无需增加额外时钟电路就可以精确诊断当前时钟是否异常,在诊断时钟的同时对定时器也进行诊断,保障了依靠定时器来进行周期任务的执行周期是稳定可靠的。


技术实现要素:

6.本技术实施例提供了片上soc的时钟和定时器的诊断方法,以至少解决相关技术中存在时钟和定时器的异常诊断不够准确的问题。
7.第一方面,本技术实施例提供了片上soc的时钟诊断方法,包括:接收预设诊断信号,其中,所述预设诊断信号包括第一持续时长的高电平信号和第二持续时长的低电平信号;基于本地时钟信号,检测所述预设诊断信号的高电平信号的持续时长是否为所述第一持续时长,和/或,检测所述预设诊断信号的低电平信号的持续时长是否为所述第二持续时长;
若是,则向检测单元发送用于表示本地时钟正常的第一检测结果信号,否则向所述检测单元发送用于表示本地时钟异常的第二检测结果信号。
8.在其中的一些实施例中,在基于本地时钟信号,检测所述预设诊断信号的高电平信号的持续时长是否为所述第一持续时长,和/或,检测所述预设诊断信号的低电平信号的持续时长是否为所述第二持续时长之前,所述方法还包括:获取所述第一持续时长和所述第二持续时长。
9.在其中的一些实施例中,获取所述第一持续时长和所述第二持续时长包括:读取第一预设寄存器的值,其中,所述第一预设寄存器的值由所述检测单元写入;根据所述第一预设寄存器的值,确定所述第一持续时长和所述第二持续时长。
10.在其中的一些实施例中,所述方法还包括:读取第二预设寄存器的值,其中,所述第二预设寄存器的值由所述检测单元写入;根据所述第二预设寄存器的值,确定是否执行异常诊断方法。
11.在其中的一些实施例中,所述第一持续时长与所述第二持续时长相等。
12.第二方面,本技术实施例提供了片上soc的定时器诊断方法,包括:基于待诊断定时器的本地时钟,检测预设定时器相邻两次进入中断的间隔时间是否为预设周期,其中,所述预设定时器进入中断的时间间隔为所述预设周期;若是,则确定所述待诊断定时器工作正常;否则确定所述待诊断定时器工作异常。
13.在其中的一些实施例中,所述待诊断定时器的计数值保存在计数寄存器中;其中,基于待诊断定时器的本地时钟,检测预设定时器相邻两次进入中断的间隔时间是否为预设周期包括:在所述预设定时器第n次中断时,读取所述待诊断定时器的计数寄存器保存的第一计数值;在所述预设定时器第n+1次中断时,读取所述待诊断定时器的计数寄存器保存的第二计数值;根据所述第二计数值与所述第一计数值的差值,确定所述预设定时器相邻两次进入中断的间隔时间,并判断所述间隔时间是否为所述预设周期。
14.在其中的一些实施例中,在确定所述待诊断定时器工作异常的情况下,所述方法还包括:对所述待诊断定时器工作异常的次数进行计数;在所述待诊断定时器工作异常的次数满足设定条件的情况下,执行所述待诊断定时器的异常处理程序。
15.相比于相关技术,本技术实施例提供的片上soc的时钟和定时器的诊断方法,通过对片上soc的时钟和定时器分别进行检测,无需增加额外的硬件检测回路,降低了硬件成本,减少了故障点;根据检测结果综合判断片上soc是否异常,对时钟和定时器进行诊断,提高了片上soc的诊断覆盖率;解决了现有相关技术中片上soc的时钟和定时器的异常诊断不够准确的问题,提升了片上soc异常诊断准确性和可靠性,保证了片上soc能够稳定的保障生产安全。
16.本技术的一个或多个实施例的细节在以下附图和描述中提出,以使本技术的其他特征、目的和优点更加简明易懂。
附图说明
17.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:图1是本发明提供的片上soc的时钟和定时器的诊断方法的终端的硬件结构框图;图2是本发明提供的片上soc的时钟诊断方法的流程图;图3是本发明提供的片上soc的定时器诊断方法的流程图。
具体实施方式
18.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。基于本技术提供的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
19.在本技术中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定是指相同的实施例,也不是与其他实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式的理解的是,本技术所描述的实施例在不冲突的情况下,可以与其他实施例相结合。
20.除非另作定义,本技术所涉及的技术术语或者科学术语应当为本技术所属技术领域内具有一般技能的人士所理解的通常意义。本技术所涉及的“一”、“一个”、“该”等类似词语并不表示数量限制,可表示单数或复数。本技术所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。本技术所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本技术所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本技术所涉及的“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
21.本实施例提供的方法实施例可具体应用在涉及工业控制的功能安全领域,基于一种片上soc实现,可以在终端、计算机或者类似的运算装置中执行。以运行在终端上为例,图1是本发明提供的片上soc的时钟和定时器的诊断方法的终端的硬件结构框图,如图1所示,终端可以包括一个或多个处理器,处理器包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置,本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限定。例如,终端可以具有与图1所示不同的配置,如采用微处理器mcu和复杂可编程逻辑器件cpld的组合。
22.如图1所示,处理器包括一个微处理器mcu和一个可编程逻辑器件fpga,微处理器mcu包括预设定时器、待诊断定时器、定时器诊断单元和检测单元,可编程逻辑器件fpga包括时钟诊断单元,处理器按功能可划分为时钟检测模块1和定时器检测模块2。
23.在时钟检测模块1中,检测单元包括待检测时钟、第一预设寄存器和第二预设寄存器,时钟诊断单元包括本地时钟;片上soc基于稳定性要求及系统资源充足程度配置有检测周期保存在第二预设寄存器中,检测单元通过读取第二预设寄存器中的检测周期,确定是否执行异常诊断方法;异常诊断方法为检测单元读取预设诊断信号中的高电平信号持续时长和低电平信号持续时长,并将高电平信号持续时长记作第一持续时长写入第一预设寄存器中,将低电平信号持续时长记作第二持续时长写入第一预设寄存器中;时钟诊断单元用于对待检测时钟发送的预设诊断信号进行检测并将检测结果发送至检测单元;时钟诊断单元通过读取第一预设寄存器的值获得第一持续时长和第二持续时长;时钟诊断单元中设置有本地时钟,时钟诊断单元基于本地时钟信号,检测待诊断时钟发送的预设诊断信号的高电平信号持续时长和低电平信号持续时长,如果基于本地时钟信号检测所得的预设诊断信号的高电平信号持续时长为第一持续时长,且低电平信号持续时长为第二持续时长,说明本地时钟正常,时钟诊断单元向检测单元发送用于表示本地时钟正常的第一检测结果信号,如果基于本地时钟信号检测所得的预设诊断信号的高电平信号持续时长不是第一持续时长,或低电平信号持续时长不是第二持续时长,说明本地时钟异常,时钟诊断单元向检测单元发送用于表示本地时钟异常的第二检测结果信号,时钟诊断单元在收到第二检测结果信号时,立即执行时钟异常处理程序,提醒工作人员对时钟检测模块进行维修。
24.在定时器检测模块2中,待诊断定时器包括计数寄存器和本地时钟,定时器诊断单元包括计数值缓存单元;预设定时器按照系统预设的预设周期不断进入中断,待诊断定时器用于检测预设定时器相邻两次进入中断的间隔时间是否为预设周期;待诊断定时器中的计数寄存器对预设定时器的运行时间进行记录,在预设定时器第n次进入中断时,待诊断定时器读取计数寄存器中的第一计数值并将第一计数值保存至计数值缓存单元;在预设定时器第n+1次进入中断时,待诊断定时器读取计数寄存器中的第二计数值并将第二计数值保存至计数值缓存单元;通过计算第二计数值和第一计数值的差值,得到基于本地时钟的预设定时器相邻两次进入中断的间隔时间,判断该间隔时间是否为预设定时器的预设周期,如果是的话,说明待诊断定时器工作正常,否则说明待诊断定时器工作异常;将第二计数值记作第一计数值保存在计数值缓存单元中供下一次预设定时器中断检测使用;在待诊断定时器异常的情况下,对待诊断定时器的工作异常次数进行计数;在待诊断定时器的异常次数满足设定条件的情况下,执行定时器异常处理程序。
25.本实施例提供了片上soc的时钟和定时器的诊断方法。图2是本发明提供的片上soc的时钟诊断方法的流程图,该诊断方法用于片上soc的时钟异常诊断,该流程包括如下步骤:步骤s101:接收预设诊断信号,其中,预设诊断信号包括第一持续时长的高电平信号和第二持续时长的低电平信号。
26.在步骤s101中,时钟诊断单元接收到待检测时钟发送的预设诊断信号,该预设诊断信号为矩形波信号,预设诊断信号中包含有高电平信号和低电平信号,检测单元读取高电平信号的持续时间并记作第一持续时长,读取低电平信号的持续时间并记作第二持续时长,将第一持续时长和第二持续时长保存在第一预设寄存器中。
27.步骤s102:获取第一持续时长和第二持续时长。
28.在步骤s102中,时钟诊断单元通过读取第一预设寄存器的值,确定第一持续时长
和第二持续时长。
29.矩形波信号广泛应用于数字开关电路,矩形波信号只有两种状态,不是高电平信号,就是低电平信号,且高电平信号和低电平信号的输出状态按一定的时间间隔交替变化,即产生周期性变化,第一持续时长和第二持续时长相等。
30.步骤s103:基于本地时钟信号,检测预设诊断信号的高电平信号的持续时长是否为第一持续时长,和/或,检测预设诊断信号的低电平信号的持续时长是否为第二持续时长。
31.在步骤s103中,基于系统精度要求,第一持续时长和第二持续时长设置有允许误差范围。
32.检测预设诊断信号的高电平信号的持续时长是否为第一持续时长具体为:时钟诊断单元记录预设诊断信号的高电平持续时间;当预设诊断信号由高电平信号转为低电平信号时,获得高电平信号持续时间,判断高电平信号持续时间是否在第一持续时长的允许误差范围内。
33.检测预设诊断信号的低电平信号的持续时长是否为第二持续时长具体为:时钟诊断单元记录预设诊断信号的低电平持续时间;当预设诊断信号由低电平信号转为高电平信号时,获得低电平信号持续时间,判断低电平信号持续时间是否在第二持续时长的允许误差范围内。
34.步骤s104:若是,则向检测单元发送用于表示本地时钟正常的第一检测结果信号,否则向检测单元发送用于表示本地时钟异常的第二检测结果信号。
35.在步骤s104中,经检测,预设诊断信号的高电平信号在第一持续时长的允许误差范围内,同时预设诊断信号的低电平信号在第二持续时长的允许误差范围内,说明本地时钟正常工作,此时将表示本地时钟正常的第一检测结果信号发送至检测单元;预设诊断信号的高电平信号不在第一持续时长的允许误差范围内,或者预设诊断信号的低电平信号不在第二持续时长的允许误差范围内,说明本地时钟工作异常,此时将表示本地时钟异常的第二检测结果信号发送至检测单元。
36.检测单元接收到第二检测结果信号后,确认本地时钟异常,立即执行时钟异常处理程序,并触发系统报警,提醒工作人员立即对片上soc进行维修,以防止因为片上soc运行异常导致其对工业控制系统的监测作用失效,继而导致无法及时发现生产过程中的隐患并进行相应处理。
37.上述步骤中,通过读取第二预设寄存器的值,确定是否执行异常诊断方法,其中,第二预设寄存器的值由检测单元写入,第二预设寄存器的值为基于片上soc的稳定性要求及系统资源充足程度配置的检测周期。
38.通过上述步骤,解决了片上soc中的时钟异常诊断不够准确的问题,在不增加额外硬件的前提下,提高了片上soc异常诊断的准确性。
39.上述实施例的某一应用中,预设诊断信号为100hz频率;预设诊断信号中的高电平信号持续时间,即第一持续时长为把预设诊断信号的频率带入得到t1=5ms,在这个时间基准上加上我们的允许误差范围,以1%为例,计算得到第一持续时长的正常范围为4.95ms~5.05ms;基于本地时钟信号,检测预设诊断信号的高电平信号的持续时长是否
在第一持续时长的正常范围4.95ms-5.05ms内;预设诊断信号中的低电平信号持续时间,即第二持续时长为把预设诊断信号的频率带入得到t2=5ms,在这个时间基准上加上我们的允许误差范围,以1%为例,计算得到第二持续时长的正常范围为4.95ms~5.05ms;检测预设诊断信号的低电平信号的持续时长是否为第二持续时长,若预设诊断信号的高电平持续时间和低电平时间均在正常范围内,则向检测单元发送用于表示本地时钟正常的第一检测结果信号,否则向检测单元发送用于表示本地时钟异常的第二检测结果信号。
40.当本地时钟信号为98hz频率时,检测到高电平持续时间和低电平持续时间均为5.10ms,超出了正常范围,向检测单元发送用于表示本地时钟正常的第一检测结果信号;当本地时钟信号为102hz频率时,检测到高电平持续时间和低电平持续时间均为4.90ms,也超出了正常范围,向检测单元发送用于表示本地时钟正常的第一检测结果信号,上述应用实例仅为举例说明,在实际应用场景中,本发明的方法实施例可以有不同的应用数据。
41.图3是本发明提供的片上soc的定时器诊断方法的流程图,该诊断方法用于片上soc的定时器异常诊断,该流程包括如下步骤:步骤s201:基于待诊断定时器的本地时钟,检测预设定时器相邻两次进入中断的间隔时间是否为预设周期,其中,预设定时器进入中断的时间间隔为预设周期。
42.在步骤s201中,预设定时器按照系统预设的预设周期不断进入中断,待诊断定时器用于检测预设定时器相邻两次进入中断的间隔时间是否为预设周期,基于系统精度要求,预设周期设置有允许误差范围;待诊断定时器中的计数寄存器对预设定时器的运行时间进行记录,在预设定时器第n次中断时,待诊断定时器读取计数寄存器中的第一计数值并将第一计数值保存至计数值缓存单元;在预设定时器第n+1次进入中断时,待诊断定时器读取计数寄存器中的第二计数值并将第二计数值保存至计数值缓存单元;通过计算第二计数值和第一计数值的差值,得到基于本地时钟的预设定时器相邻两次进入中断的间隔时间,判断该间隔时间是否在预设定时器的预设周期的允许误差范围内。
43.步骤s202:若是,则确定待诊断定时器工作正常;否则确定待诊断定时器工作异常。
44.在步骤s202中,经检测,间隔时间在预设周期的允许误差范围内时,说明待诊断定时器正常工作,此时将表示待诊断定时器正常的第一诊断结果信号发送至诊断单元;间隔时间不在预设周期的允许误差范围内时,说明待诊断定时器工作异常,此时将表示待诊断定时器异常的第二诊断结果信号发送至诊断单元;将第二计数值记作第一计数值保存在计数值缓存单元中供下一次预设定时器中断检测使用。
45.步骤s203:在确定待诊断定时器工作异常的情下,对待诊断定时器工作异常的次数进行计数。
46.在步骤s203中,定时器诊断单元接收到第二诊断结果信号后,确认待诊断定时器异常,记录待诊断定时器异常日志以及待诊断定时器异常次数,并对待诊断定时器的误差进行累计;在待诊断定时器异常的情况下,对待诊断定时器的工作异常次数进行计数;在待诊断定时器的异常次数满足设定条件的情况下,执行定时器异常处理程序步骤s204:在待诊断定时器工作异常的次数满足设定条件的情况下,执行待诊断定时器的异常处理程序。
47.在步骤s204中,设定条件可以为待诊断定时器的异常次数达到n次,具体是次数可以基于系统精度要求设定;设定条件也可以为待诊断定时器预设允许误差范围,待诊断定时器的预设允许误差范围基于系统精度设定,当累计误差超出该预设允许误差范围时,立即执行定时器异常处理程序,系统自动复位,以防止因为定时器异常导致片上soc运行异常,进而导致其对工业控制系统的监测作用失效,继而导致无法及时发现生产过程中的隐患并进行相应处理。
48.通过上述步骤,解决了片上soc的定时器异常诊断不够准确的问题,在不增加额外硬件的前提下,提高了片上soc异常诊断的准确性。
49.上述实施例的某一应用中,预设定时器的中断周期配置为100ms,待诊断定时器计数周期配置为5s,计数寄存器值的范围为0-50000。在运行过程中截取了预设定时器的10次中断运行数据,如下表所示。中断运行数据,如下表所示。
50.允许误差范围以1%为例,待诊断定时器的计数寄存器范围为0-50000,预设定时器中断时间为100ms,待诊断定时器的计数寄存器差值应为1000,正常范围则为990-1010。其中在t5中断时出现了异常导致预设定时器的中断滞后,待诊断定时器异常计数值+1,当异常次数累计达一定次数后进行系统复位,上述应用实例仅为举例说明,在实际应用场景中,本发明的方法实施例可以有不同的应用数据。
51.本领域技术人员可以理解,在流程图中表示或在此以其他方式描述的逻辑和或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
52.应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或它们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路
的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
53.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
54.以上描述仅为本技术的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本技术中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离前述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其他技术方案。例如上述特征与本技术中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1