掌桥专利:专业的专利平台
掌桥专利
首页

一种mcu运行异常的故障定位系统及方法

文献发布时间:2023-06-19 09:43:16


一种mcu运行异常的故障定位系统及方法

技术领域

本发明属于mcu故障定位技术领域,具体涉及一种mcu运行异常的故障定位方法及系统。

背景技术

在能源计量技术领域中,嵌入式小系统应用相当普遍,而且系统的硬件常常经过灌封处理,一旦出现故障现象持续但容易被破坏且破坏后故障重现困难的故障,通过常规手段(比如:撬开灌封材料、带电测试等)可能会破坏系统的运行状态,使故障消失不再重现,从而使得查找故障原因失败,产品潜在的隐患得不到有效的排除。传统设计方法中,也较少考虑对重现困难的故障原因分析需求,使遇到此类故障时,故障定位困难甚至无法定位。

因此,有必要开发一种mcu运行异常的故障定位方法及系统。

发明内容

本发明的目的是提出一种mcu运行异常的故障定位方法及系统,能达到快速定位及排除mcu的故障。

第一方面,本发明所述的mcu运行异常的故障定位方法,包括以下步骤:

上位机向正常工作的mcu发送读取某地址范围内数据的指令,mcu接收到指令后将相应地址的数据发送给上位机;

上位机向故障mcu发送读取某地址范围内数据的指令,mcu接收到指令后将相应地址的数据发送给上位机;

上位机将两组数据进行比对,找出差异;

上位机向故障mcu的差异处地址发送写入正常mcu对应地址的数据的指令,故障mcu接收到指令后将数据写入相应地址;

根据故障mcu的运行状态变化来定位和排除故障。

进一步,所述地址的数据包括控制寄存器中的数据、状态寄存器中的数据和RAM中的数据。

第二方面,本发明所述的一种mcu运行异常的故障定位系统,包括终端和外部通信设备;

所述终端包括mcu和第一通信模块;所述mcu内存储有第一程序和第二程序,所述第一程序用于读取mcu的指定地址内的数据,所述第二程序用于向mcu的指定地址写入数据;

所述外部通信设备包括上位机和第二通信模块,所述上位机内存储有第三程序和第四程序,所述第三程序用于外部通信设备与终端进行通信,所述第四程序用于对比数据,并找出差异;

所述上位机用于向正常工作的mcu发送读取某地址范围内数据的指令,正常工作的mcu接收到指令后通过将相应地址的数据发送给上位机;

所述上位机用于向故障mcu发送读取某地址范围内数据的指令,故障mcu接收到指令后将相应地址的数据发送给上位机;

所述上位机用于将两组数据进行比对,并找出差异;

所述上位机用于向故障mcu的差异处地址发送写入正常mcu对应地址的数据的指令,故障mcu接收到指令后将数据写入相应地址。

进一步,所述第一通信模块和第二通信模块均为短距离无线通信模块。

进一步,所述短距离无线通信模块采用红外模块,或采用NFC模块。

进一步,所述地址的数据包括控制寄存器中的数据、状态寄存器中的数据和RAM中的数据。

本发明具有以下优点:当系统出现mcu运行异常、故障现象持续但容易被破坏且破坏后故障重现困难的故障时,在不影响系统原本运行状态的情况下,上位机通过红外或NFC模块向终端发送读取指定地址范围内数据的指令,准确获取mcu内相应地址---包括控制寄存器、状态寄存器、RAM中的数据,用以分析故障原因或与正常工作的mcu相同地址内的数据比对,就能够快速发现疑似故障点;通过对每个疑似故障点逐一分析、写入正确的数据,并观察或测试故障mcu原有的故障现象是否变化或消失,实现对各疑似故障点的检测判断,从而达到快速定位及排除故障的目的。

附图说明

图1为本实施例中终端与外部通信设备组成通信系统框图。

图2为本实施例中上位机读取到的正常工作的mcu部分寄存器数据。

图3为本实施例中上位机读取到的异常工作的mcu部分寄存器数据。

图4为本实施例中的正常、异常工作的mcu部分寄存器数据比较结果,左半部分为异常mcu的数据,右半部分为正常mcu的数据。

具体实施方式

下面结合附图对本发明作详细说明。

如图1所示,本实施例中,一种mcu运行异常的故障定位系统,包括终端4和外部通信设备6。

所述终端4包括mcu1和第一通信模块2,mcu1内含一个用于读取指定地址区域内数据的第一程序和一个用于向指定地址写入数据的第二程序。第一程序和第二程序平时是不被执行的,除占用少量存储空间外,基本不会影响mcu的正常运行。

本实施例中,以终端为NB_IoT物联网水表为例,NB_IoT物联网水表除了包含mcu1、第一通信模块2外,还包括计量模块8、NB_loT模块9(即窄带物联网)和电源10,各模块均为现有技术,此处不再赘述。

如图1所示,外部通信设备6由一个上位机3和第二通信模块5组成。

本实施例中,所述第一通信模块2和第二通信模块5均为短距离无线通信模块。所述短距离无线通信模块采用红外模块,或采用NFC模块。当第一通信模块采用红外模块时,第二通信模块采用红外模块;当第一通信模块采用NFC模块时,第二通信模块采用NFC模块。

本实施例中,上位机3内含一个用于与终端(本实施例中,终端为NB_IoT物联网水表)通信的第三程序,以及一个用于对比数据并找出差异的第四程序。

如图1所示,终端4与外部通信设备6之间可通过红外或NFC实现无线通信功能。

本实施例中,一种mcu运行异常的故障定位方法,具体为:

当上位机向mcu发送读取某地址范围(以内部寄存器为例)数据的指令,mcu获取此指令后,执行内部读取指定地址区域内数据的第一程序,该第一程序读取内部寄存器中的数据,按易于解读的格式发送给上位机,上位机接收到内部寄存器数据,参见图2和图3。其中图2为一个运行正常的终端(NB_IoT物联网水表)上传的内部寄存器数据,图3为一个运行异常的终端(NB_IoT物联网水表)上传的内部寄存器数据。将这两组数据分别存储为2个文件,利用第四程序(即文件比较工具)比较这两个文件,其比较结果如图4所示。这样就可以得出两个mcu内各寄存器值的差异,按各寄存器的功能定义确定哪些差异为正常的,哪些差异为疑似故障点。对疑似故障点,通过上位机向其所在mcu发送写入正确数据的指令,根据mcu的运行状态变化,确定故障是否已排除,从而实现故障的快速查找与定位。

本方法可用于水表内mcu运行异常、故障现象持续但容易被破坏且破坏后故障重现困难的故障原因分析和定位。

以下结合实例对本发明进行详细的说明:

在图4中,ADC0_0的第10、12、14个数据出现差异,它们的功能定义分别是“单端转换结果寄存器”、“单端转换结果读取寄存器”、“标定寄存器”,不同mcu这3个数据不同是正常的,所以这3个差异点可以忽略,不作为疑似故障点;DAC0_0的第12个数据出现差异,它的功能定义是“标定寄存器”,不同mcu这个数据不同是正常的,所以这个差异点可以忽略,不作为疑似故障点;DAC0_1的第2个数据出现差异,它的功能定义是“运算放大器偏置寄存器”,不能确认这两个mcu中这个数据不同是否正常的,将其作为疑似故障点1;TIMER1_0的第10个数据出现差异,它的功能定义是“计数器值寄存器”,不同mcu这个数据不同是正常的,所以这个差异点可疑忽略,不作为疑似故障点;RTC_0的第2、3个数据出现差异,它的功能定义分别是“计数器值寄存器”、“比较值寄存器0”,不同mcu的“计数器值寄存器”是正常的,但“比较值寄存器0”应该一致,因为程序设计的RTC的定时周期是固定不变的,故将其作为疑似故障点2;LETIMER0_0的第9个数据出现差异,它的功能定义是“定时器中断标志寄存器”,不同mcu的该标志不同是正常的,所以这个差异点可疑忽略,不作为疑似故障点;LEUART0_0的第7、8、9个数据出现差异,它的功能定义分别是“接收数据扩展寄存器”、“接收数据寄存器”、“接收数据扩展读取寄存器”,不同mcu这三个数据不同是正常的,所以这个差异点可疑忽略,不作为疑似故障点。

经过上述比对分析,已经找到疑似故障点1和疑似故障点2,针对疑似故障点1,用正常工作mcu的DAC0_1第二个数据0x02写入异常工作mcu的相同地址后(即:DAC0_1第二个数据的地址),观察异常工作mcu的工作状态没有变化,故该疑似故障点可排除;针对疑似故障点2,用正常工作mcu的RTC_0第三个数据0x4000写入异常工作mcu的相同地址(即:RTC_0第三个数据的地址)后,观察异常工作mcu的工作状态发生了变化,其工作电流降低到了正常值。这样就可确定:mcu工作电流异常是由于RTC_0的第三个数“比较值寄存器0”被修改造成的,集中精力排查可能修改该寄存器值的程序即可从根本上排除此故障。

相关技术
  • 一种mcu运行异常的故障定位系统及方法
  • 一种视频会议中MCU异常处理的方法及系统
技术分类

06120112273849