一种MCUFLASH与ProgramCounter故障复合诊断方法及系统技术方案

技术编号:39187204 阅读:12 留言:0更新日期:2023-10-27 08:34
本申请提供的一种MCU FLASH与Program Counter故障复合诊断方法及系统,属于微电子故障诊断领域,该方法包括:将编译后的关键功能部分从固件中独立出来,划分为part1、part2两部分,并对其强制指定FLASH存储起始地址,依次跳到part1、part2所在的FLASH区域进行故障检测;FLASH区域检测无故障,则Program Counter指向该区域的起始地址执行相应关键功能函数,并通过判断其返回值是否为该区域的起始地址,检测Program Counter是否能够正常工作。本申请能够在保证FLASH检测有效性的前提下,大大缩短检测时间,避免由于检测时间过长引发的安全问题;同时将关键功能所在的FLASH起始地址与Program Counter检测结合起来,在执行关键功能的同时进行Program Counter故障检测,避免额外设置检测项带来的FLASH占用及时间花销,使得检测更加直接、有效。有效。有效。

【技术实现步骤摘要】
一种MCU FLASH与Program Counter故障复合诊断方法及系统


[0001]本申请涉及微电子故障诊断领域,尤其涉及一种MCU FLASH与Program Counter故障复合诊断方法。还涉及一种MCU FLASH与Program Counter故障复合诊断系统。

技术介绍

[0002]涡旋压缩机由于内部蕴含着巨大的能量,因此在使用中需要加装保护模块,当压缩机处于异常状态下,及时停机以防造成安全事故。
[0003]由于压缩机工作环境恶劣(高温、低温、高湿、振动、电磁干扰等),因此要求保护模块自身稳定、可靠、安全。保护模块一般基于单片机进行设计,根据UL60730

2 CLASS B要求,需要周期性地针对与产品自身关键功能有关的MCU资源进行故障诊断(CPU Register、FLASH、RAM、Program Counter、STACK等),若判断其中有检测项结果为异常,则采取立即停机的紧急措施,从而保证安全。
[0004]如图1所示,对于MCU内部FLASH的故障诊断,采用的是针对单片机程序固件(Fimrware)存储区域进行全检的方式,即从存储固件的FLASH首地址开始,一直到存储固件的FLASH末地址结束,针对该范围存储的程序进行校验运算,校验计算结果与预设的标准值进行对比,若一致则判定FLASH正常,反之则判定为FLASH故障。
[0005]由于程序固件一般尺寸较大,一次性做完整个固件的校验运算所需时间较长,会挤压其它软件功能的时间,影响其实时性,甚至造成故障自诊断以外的功能无法正常运行。同时,若采用改进的全检方法,分多个周期检测,每个周期(例如60毫秒)检测一部分固件的内容(例如256字节),在一定程度上可缓解实时性的问题,但会引发另一个问题:检测的总时间过长(例如对于32K的firm ware,需要60*32768/256=7680毫秒,检测完整个程序固件所在FLASH区域需要7.68秒),从开始检测故障到检测出故障执行紧急措施的时间,若超过了预设的最大安全响应时间,则会造成严重的安全后果。
[0006]而对于Program Counter的检测,现有技术采用的是增加一系列特定的测试函数,当各个测试函数被调用时,程序指针Program Counter便会指向该测试函数的入口地址,测试函数执行完毕则分别返回一个独一无二的数值,在每个检测周期,通过依次调用所有测试函数,获取各个返回值并与预设的标准值对比,若全部相同则判定Program Counter能够正确指向预设的地址,工作正常,反之则判定为异常。
[0007]该方法有两个缺陷:
[0008]1.由于各个测试函数并不在关键功能中,检测各个测试函数时Program Cou nter能够正常工作,也无法证明在运行关键功能时Program Counter也能够正常工作。
[0009]2.为Program Counter增加一个测试项,在每个程序运行周期中会挤压其它功能的运行时间,降低实时性。并且测试函数编译后需占用额外的FLASH空间。

技术实现思路

[0010]本申请的目的在于克服现有技术中FLASH检测时间过长,影响产品功能实时性,严
Counter故障;若part1函数的返回值与预设值一致,则跳到所述part2的起始地址开始进行校验至part2结束地址,将校验结果与标准值2进行比对,若不一致则FLASH故障,否则FLASH正常;若一致则调用part2函数,运行关键功能part2,判断所述part2函数的返回值,若与预设值不一致则Program Counter故障,否则Program Counter检测为正常;S7所述Program Counter跳到非关键功能的FLASH起始地址执行所述非关键功能,完成MCU FLASH与Program Counter故障复合诊断。
[0032]可选地,所述集成开发环境将编译后的关键功能部分从固件中独立出来划分为part1、part2两部分,对所述part1、part2强制指定FLASH存储起始地址,还包括:
[0033]所述part1、part2的FLASH存储起始地址中的若干位互为反码,以检查程序指针相邻位粘连的情况。
[0034]可选地,所述控制模块对所述part1、part2强制指定FLASH存储地址,包括:
[0035]程序编译;
[0036]根据集成开发环境编译后,Critical_Function_Part1()和Critical_Function_Par t2()所占FLASH的空间大小,计算FLASH检测时的结束地址。
[0037]可选地,所述Part1和Part2函数运行后,返回值为该函数的起始地址。
[0038]本申请的优点和有益效果:
[0039]本申请提供的一种MCU FLASH与Program Counter故障复合诊断方法,包括:S1将编译后的关键功能部分从固件中独立出来划分为part1、part2两部分,对所述part1、part2强制指定FLASH存储起始地址;S2将所述part1、par t2所占FLASH区域的CHECKSUM校验值,写到两个FLASH区域的后面,作为比对的标准值1和2;S3跳到所述part1的起始地址开始进行校验至part1结束地址,将校验结果与所述标准值1进行比对,若不一致则FLASH故障,否则进入S4;S4调用part1函数,运行关键功能part1,判断所述part1函数的返回值,若与预设值不一致则Program Counter故障,否则进行S5;S5跳到所述part2的起始地址开始进行校验至part2结束地址,将校验结果与标准值2进行比对,若不一致则FLASH故障,否则FLASH正常;S6调用part2函数,运行关键功能part2,判断所述part2函数的返回值,若与预设值不一致则Program Counter故障,否则Program Counter正常;S7所述Program Counter跳到非关键功能的FLASH起始地址执行所述非关键功能,完成MCU FLASH与Progra m Counter故障复合诊断。本申请只需检测与关键功能有关的FLASH区域,由于关键功能在FLASH中所占的区域要远小于整个firmware所占的区域,因此其FLASH检测时间将大大减少,避免由于检测时间长于最大安全响应时间而引发的安全问题,同时避免挤压其它软件功能的时间,提升了实时性。而对于Program Counter的检测,在运行关键功能时同时检测程序指针Program Count er,确保关键功能运行时Program Counter检测的有效性,同时不需要额外增加测试项,有效降低了检测时间。
附图说明
[0040]图1是本申请中现有技术MCU内部FLASH存储结构示意图。
[0041]图2是本申请中MCU FLASH与Program Counter复合诊断整体流程示意图。
[0042]图3是本申请本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种MCU FLASH与Program Counter故障复合诊断方法,其特征在于,包括:S1将编译后的关键功能部分从固件中独立出来划分为part1、part2两部分,对所述part1、part2强制指定FLASH存储起始地址;S2将所述part1、part2所占FLASH区域的CHECKSUM校验值,写到两个FLASH区域的后面,作为比对的标准值1和2;S3跳到所述part1的起始地址开始进行校验至part1结束地址,将校验结果与所述标准值1进行比对,若不一致则FLASH故障,否则进入S4;S4调用part1函数,运行关键功能part1,判断所述part1函数的返回值,若与预设值一致则Program Counter故障,否则进行S5;S5跳到所述part2的起始地址开始进行校验至part2结束地址,将校验结果与标准值2进行比对,若不一致则FLASH故障,否则FLASH正常;S6调用part2函数,运行关键功能part2,判断所述part2函数的返回值,若与预设值不一致则Program Counter故障,否则Program Counter正常,进入S7;S7所述Program Counter跳到非关键功能的FLASH起始地址执行所述非关键功能,完成MCU FLASH与Program Counter故障复合诊断。2.根据权利要求1所述的MCU FLASH与Program Counter故障复合诊断方法,其特征在于,所述part1、part2的FLASH存储起始地址中的若干位互为反码,以检查程序指针Program Counter相邻位粘连的情况。3.根据权利要求1所述的MCU FLASH与Program Counter故障复合诊断方法,其特征在于,在程序中,将关键功能封装成两个函数:Critical_Function_Part1()和Critical_Function_Part2();将上述两个函数的起始地址作为Program Counter检测中的预设值1和预设值2。4.根据权利要求1所述的MCU FLASH与Program Counter故障复合诊断方法,其特征在于,确定所述part1或者part2的结束地址,包括:程序编译;根据集成开发环境编译后,Critical_Function_Part1()和Critical_Function_Par t2()所占FLASH的空间大小,计算FLASH检测时的结束地址。5.根据权利要求1~4所述的MCU FLASH与Program Counter故障复合诊断方法,其特征在于,所述Critical_Function_Part1()和Critical_Function_Part2()函数运行后,返回值为该函数的起始地址。6.根据权利要求5任一项所述的MCU FLASH...

【专利技术属性】
技术研发人员:曾华鹏王鹏李艳李益敏欧阳建东
申请(专利权)人:天津中德应用技术大学
类型:发明
国别省市:

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

1