CN103744413A - 电机控制系统中微处理器的内核寄存器故障检测方法 - Google Patents

电机控制系统中微处理器的内核寄存器故障检测方法 Download PDF

Info

Publication number
CN103744413A
CN103744413A CN201310586787.XA CN201310586787A CN103744413A CN 103744413 A CN103744413 A CN 103744413A CN 201310586787 A CN201310586787 A CN 201310586787A CN 103744413 A CN103744413 A CN 103744413A
Authority
CN
China
Prior art keywords
register
measured
content
data
kernel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201310586787.XA
Other languages
English (en)
Other versions
CN103744413B (zh
Inventor
张倩
金万兵
柯文静
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Welling Motor Manufacturing Co Ltd
Original Assignee
Guangdong Welling Motor Manufacturing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Welling Motor Manufacturing Co Ltd filed Critical Guangdong Welling Motor Manufacturing Co Ltd
Priority to CN201310586787.XA priority Critical patent/CN103744413B/zh
Publication of CN103744413A publication Critical patent/CN103744413A/zh
Application granted granted Critical
Publication of CN103744413B publication Critical patent/CN103744413B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明属于电机驱动控制技术领域,提供了一种电机控制系统中微处理器的内核寄存器故障检测方法及系统。该方法及系统是在一次PWM中断的时间内将待测内核寄存器的存储内容进行备份后,利用存储器测试算法对每一类待测的内核寄存器进行断路故障检测,以判断相应的内核寄存器是否失效,从而能及时发现内核寄存器的故障情况并对电机采取保护,提高了电机控制系统运行的可靠性。

Description

电机控制系统中微处理器的内核寄存器故障检测方法
技术领域
本发明属于电机驱动控制技术领域,尤其涉及一种电机控制系统中微处理器的内核寄存器故障检测方法及系统。
背景技术
随着技术电子技术的进步,在机电领域,普遍采用微电子控制技术实现对电机的控制及驱动。图1以三相电机控制系统为例,示出了现有采用磁场导向控制(Field Oriented Control,FOC)技术的电机控制系统的结构原理。
具体来说,现有的电机控制系统包括用于将直流输入转换成三相交流输出的三相逆变器、以及用于输出PWM信号以驱动三相逆变器工作的微处理器。其中,位置和速度估算模块估算电机的转速ω;速度PI调节模块根据位置和速度估算模块得到的偏差输出T轴参考分量Isq_req;ADC采样模块从三相逆变器的输出采样得到三相定子线圈电流,并经A./D转换和坐标变换后,得到旋转坐标系中的直流分量Isd和Isq;将T轴参考分量Isq_req和M轴参考分量Isd_req分别与直流分量Isq和Isd进行比较,得到的偏差分别经相应的转矩电流PI调节模块和励磁电流PI调节模块的调节,得到旋转坐标系的相电压分量Uq和Ud,之后再通过坐标变换,得到α-β直角坐标系的定子相电压矢量的分量Uα和Uβ;脉宽调制模块根据两个分量Uα和Uβ计算实际输出的PWM信号的占空比,生成并输出具有相应占空比的PWM信号,同时,ADC采样模块根据脉宽调制模块的输出,在PWM信号的下一周期进行ADC采样。
现有的微处理器的硬件架构均包括实现运算及控制等功能的处理器内核、总线接口、调试接口等模块,内核寄存器是处理器内核的组成部分,其完好性直接影响处理器内核的逻辑处理及控制功能,进而对电机运行的可靠性产生影响,若某些处理器内核中的某些关键内核寄存器出现断路故障,则会造成电机运行异常。而现有技术并未提供内核寄存器的故障检测方法,无法及时发现内核寄存器的故障情况并进行保护,使得现有电机控制系统的运行存在隐患,可靠性差,甚至造成电机的损毁。
发明内容
本发明实施例的目的在于提供一种电机控制系统中微处理器的内核寄存器故障检测方法,旨在解决现有技术无法及时发现电机控制系统中微处理器的内核寄存器出现的故障情况,使得电机控制系统运行可靠性差的问题。
本发明实施例是这样实现的,一种电机控制系统中微处理器的内核寄存器故障检测方法,所述方法包括以下步骤:
在本次PWM中断的时间内,对每一类待测内核寄存器中的内容进行备份,并采用存储器测试算法对所述每一类待测内核寄存器的断路故障进行检测,检测完成后,恢复相应类的内核寄存器的内容。
本发明实施例的另一目的在于,还提供了一种电机控制系统中微处理器的内核寄存器故障检测系统,所述系统包括:
故障检测模块,用于在本次PWM中断的时间内,对每一类待测内核寄存器中的内容进行备份,并采用存储器测试算法对所述每一类待测内核寄存器的断路故障进行检测,检测完成后,恢复相应类的内核寄存器的内容。
本发明实施例的另一目的在于,还提供了一种电机控制系统的微处理器,包括内核寄存器,所述微处理器还包括连接所述内核寄存器的故障检测系统,所述故障检测系统是如上所述的电机控制系统中微处理器的内核寄存器故障检测系统。
本发明实施例提供的电机控制系统中微处理器的内核寄存器故障检测方法及系统是在一次PWM中断的时间内将待测内核寄存器的存储内容进行备份后,利用存储器测试算法对每一类待测的内核寄存器进行断路故障检测,以判断相应的内核寄存器是否失效,从而能及时发现内核寄存器的故障情况并对电机采取保护,提高了电机控制系统运行的可靠性。
附图说明
图1是现有技术提供的电机控制系统的结构原理图;
图2是本发明实施例一的对各类待测内核寄存器进行故障检测的详细流程图;
图3是本发明实施例一的对待测数据寄存器进行故障检测的详细流程图;
图4是本发明实施例一的对待测堆栈寄存器进行故障检测的详细流程图;
图5是本发明实施例一的对待测专用寄存器进行故障检测的详细流程图;
图6是本发明实施例二提供的电机控制系统中微处理器的内核寄存器故障检测方法的流程图;
图7是本发明实施例三提供的电机控制系统中微处理器的内核寄存器故障检测系统中,故障检测模块的结构图;
图8是图7中第一检测子模块的结构图;
图9是图7中第二检测子模块的结构图;
图10是图7中第三检测子模块的结构图;
图11是本发明实施例四提供的电机控制系统中微处理器的内核寄存器故障检测系统的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提出了一种电机控制系统中微处理器的内核寄存器故障检测方法及系统。该方法及系统是在一次PWM中断的时间内将待测的每一类内核寄存器进行备份后,利用存储器测试算法对每一类待测的内核寄存器进行断路故障检测,以判断相应的内核寄存器是否失效。以下将结合实施例详细说明本发明的实现方式:
实施例一
本发明实施例一提出了一种电机控制系统中微处理器的内核寄存器故障检测方法,包括:
步骤S0:在本次PWM中断的时间内,对每一类待测内核寄存器中的内容进行备份,并采用存储器测试算法对每一类待测内核寄存器的断路故障进行检测,检测完成后,恢复相应类的内核寄存器的内容。
本发明实施例一中,微处理器每产生一个周期的PWM信号波形触发一次PWM中断,PWM中断的时间是指PWM信号的一个周期时长(即PWM信号的频率的倒数)。
本发明实施例一中,存储器测试算法优选采用棋盘格测试算法,其基本执行方式是:先运行0-1棋盘格向量,即向第一存储单元写1,第二存储单元写0,第三存储单元再写1,依此类推,直到最后一存储单元;之后再读取并验证所有存储单元;之后运行1-0棋盘格向量,即向所有存储单元写入与运行运行0-1棋盘格时完全相反的数据;之后再读取并验证所有存储单元。
本发明实施例一中,待测内核寄存器的类型可根据不同型号的微处理器所采用的处理器内核而确定。例如,对于TMS320F28x系列的微处理器,其处理器内核中的寄存器均为32bit寄存器,待测内核寄存器可包括如下三类:第一类是数据寄存器,数据寄存器又可包括累加寄存器(即:ACC寄存器)、乘积寄存器(即:P寄存器)、辅助寄存器(即:XAR0-XAR7寄存器)、被乘数寄存器(即:XT寄存器);第二类是堆栈寄存器(即:SP寄存器);第三类是专用寄存器,专用寄存器又可包括状态寄存器(即:ST0-ST1寄存器)、数据页寄存器(即:DP寄存器)、中断使能寄存器(即:IER寄存器)、中断标志寄存器(即:IFR寄存器)、调试中断使能寄存器(即:DBGIER寄存器)。
本发明实施例一中,对每一类待测内核寄存器的备份操作既可以在本类待测内核寄存器进行检测之前进行,也可在全部待测内核寄存器进行检测之前进行;同样地,对每一类待测内核寄存器的恢复操作既可以在本类待测内核寄存器检测完毕后立即进行,也可在全部待测内核寄存器检测完毕后进行。图2以一种实现方式为例,示出了步骤S0的详细流程,可包括以下步骤:
S00:在本次PWM中断的时间内,关闭电机控制系统中微处理器的全局中断,以启动对待测内核寄存器的故障检测。
本发明实施例一中,关闭全局中断即是说,在待测存储单元的故障检测过程中,不响应其它任何中断,以保证待测存储单元的故障检测过程不被可能的中断打断。
S01:对待测数据寄存器中的内容进行备份。
S02:利用存储器测试算法对待测数据寄存器的断路故障进行检测。
进一步地,当存储器测试算法采用棋盘格测试算法时,如图3所示,步骤S02可包括以下步骤:
S0201:向待测累加寄存器写入第一数据后,读取待测累加寄存器的内容。
S0202:判断待测累加寄存器的内容是否为第一数据,是则执行步骤S02023,否则执行步骤S0217。
S0203:向待测累加寄存器写入第二数据后,读取待测累加寄存器的内容。
S0204:判断待测累加寄存器的内容是否为第二数据,是则执行步骤S0205,否则执行步骤S0217。
S0205:向待测乘积寄存器写入第一数据后,读取待测乘积寄存器的内容。
S0206:判断待测乘积寄存器的内容是否为第一数据,是则执行步骤S0207,否则执行步骤S0217。
S0207:向待测乘积寄存器写入第二数据后,读取待测乘积寄存器的内容。
S0208:判断待测乘积寄存器的内容是否为第二数据,是则执行步骤S0209,否则执行步骤S0217。
S0209:向待测的各辅助寄存器分别写入第一数据后,读取待测的各辅助寄存器的内容。
S0210:判断待测的辅助寄存器的内容是否为第一数据,是则执行步骤S0211,否则执行步骤S0217。
S0211:向待测的各辅助寄存器分别写入第二数据后,读取待测的各辅助寄存器的内容。
S0212:判断待测的辅助寄存器的内容是否为第二数据,是则执行步骤S0213,否则执行步骤S0217。
S0213:向待测被乘数寄存器写入第一数据后,读取待测被乘数寄存器的内容。
S0214:判断待测被乘数寄存器的内容是否为第一数据,是则执行步骤S0215,否则执行步骤S0217。
S0215:向待测被乘数寄存器写入第二数据后,读取待测被乘数寄存器的内容。
S0216:判断待测被乘数寄存器的内容是否为第二数据,是则执行步骤S03,否则执行步骤S0217。
S0217:判定相应的数据寄存器未通过检测,即判定相应的数据寄存器存在断路。
本发明实施例一中,当各数据寄存器为32bit寄存器时,第一数据为0xAAAAAAAA,第二数据为0x55555555,或者第一数据为0x55555555,第二数据为0xAAAAAAAA。
S03:待测数据寄存器的检测通过后,对待测堆栈寄存器中的内容进行备份。
S04:利用存储器测试算法对待测堆栈寄存器的断路故障进行检测。
进一步地,当存储器测试算法采用棋盘格测试算法时,如图4所示,步骤S04可包括以下步骤:
S041:向待测堆栈寄存器写入第一数据后,读取待测堆栈寄存器的内容。
S042:判断待测堆栈寄存器的内容是否为第一数据,是则执行步骤S043,否则执行步骤S045。
S043:向待测堆栈寄存器写入第二数据后,读取待测堆栈寄存器的内容。
S044:判断待测堆栈寄存器的内容是否为第二数据,是则执行步骤S05,否则执行步骤S045。
S045:判定堆栈寄存器未通过检测,即判定相应的堆栈寄存器存在断路。
同样地,当堆栈寄存器为32bit寄存器时,第一数据为0xAAAAAAAA,第二数据为0x55555555,或者第一数据为0x55555555,第二数据为0xAAAAAAAA。
S05:待测堆栈寄存器的检测完成后,恢复堆栈寄存器的内容。
S06:对待测专用寄存器中的内容进行备份。
S07:利用存储器测试算法对待测专用寄存器的断路故障进行检测。
进一步地,当存储器测试算法采用棋盘格测试算法时,如图5所示,步骤S07可包括以下步骤:
S071:向待测的状态寄存器、数据页寄存器、中断使能寄存器、中断标志寄存器和调试中断使能寄存器分别写入第一数据后,读取待测的状态寄存器、数据页寄存器、中断使能寄存器、中断标志寄存器和调试中断使能寄存器的内容。
S072:判断读取的内容是否为第一数据,是则执行步骤S073,否则执行步骤S075。
S073:向待测的状态寄存器、数据页寄存器、中断使能寄存器、中断标志寄存器和调试中断使能寄存器分别写入第二数据后,读取待测的状态寄存器、数据页寄存器、中断使能寄存器、中断标志寄存器和调试中断使能寄存器的内容。
S074:判断读取的内容是否为第二数据,是则执行步骤S08,否则执行步骤S075。
S075:判定相应的专用寄存器未通过检测,即判定相应的专用寄存器存在断路。
S08:待测专用寄存器的检测完成后,恢复相应的专用寄存器的内容。
S09:恢复相应的数据寄存器的内容。
本发明实施例一提供的电机控制系统中微处理器的内核寄存器故障检测方法是在一次PWM中断的时间内将待测内核寄存器中的存储内容进行备份后,利用存储器测试算法对每一类待测的内核寄存器进行断路故障检测,以判断相应的内核寄存器是否失效,从而能及时发现内核寄存器的故障情况并对电机采取保护,提高了电机控制系统运行的可靠性。再有,由于存储器测试算法为破坏性测试,会将待测内核寄存器中原本的存储内容覆盖掉,因此,在故障检测开始后,首先对待测的内核寄存器的存储内容进行备份,并在故障检测完成后,将备份内容恢复到相应的内核寄存器,从而不会造成对内核寄存器的影响,检测过程安全而可靠。
实施例二
本发明实施例二提出了一种电机控制系统中微处理器的内核寄存器故障检测方法,如图6所示。与实施例一不同,实施例二中,在步骤S0之前还包括:
步骤S1:触发本次PWM中断,并根据本次PWM中断,利用ADC采样模块在上次PWM中断的时间内采集的电机定子线圈电流,计算ADC采样模块在下次PWM中断的时间内的采样时刻,即根据本次PWM中断首先执行算法程序,例如执行FOC算法。
同时与实施例一不同,实施例二中,在步骤S0之后还包括:
步骤S2:在本次PWM中断的时间内,打开微处理器的全局中断,在上次PWM中断的时间内计算得到的采样时刻到达时,触发ADC中断,以使得ADC采样模块对电机定子线圈电流进行正常采集和转换。
本发明实施例二中,ADC采样模块对电机定子线圈电流的采样时刻发生在本次PWM中断的最后四分之一周期内。
与实施例一不同,本发明实施例二提供的电机控制系统中微处理器的内核寄存器故障检测方法在一次PWM中断开始后,首先执行算法程序,之后执行如上实施例一所述的内核寄存器的故障检测,之后在打开全局中断后ADC采样模块执行对电机定子线圈电流的采样和转换,从而不影响电机的正常运行。此时,要保证算法程序的执行时间与ADC采样模块的正常电流采样之间的时间间隔大于内核寄存器故障检测的时间,例如,当PWM中断的频率为8KHz时,每一PWM中断的时间内对内核寄存器进行故障检测,且故障检测的时间可为14μs。
实施例三
本发明实施例三提出了一种电机控制系统中微处理器的内核寄存器故障检测系统,包括:故障检测模块,用于在本次PWM中断的时间内,对每一类待测内核寄存器中的内容进行备份,并采用存储器测试算法对每一类待测内核寄存器的断路故障进行检测,检测完成后,恢复相应类的内核寄存器的内容。
进一步地,如图7所示,故障检测模块可包括:检测启动子模块11,用于在本次PWM中断的时间内,关闭电机控制系统中微处理器的全局中断,以启动对待测内核寄存器的故障检测;第一备份子模块12,用于在检测启动子模块11执行完毕后,对待测数据寄存器中的内容进行备份;第一检测子模块13,用于在第一备份子模块12执行完毕后,利用存储器测试算法对待测数据寄存器的断路故障进行检测;第二备份子模块14,用于在第一检测子模块13执行完毕后,若待测数据寄存器的检测通过,则对待测堆栈寄存器中的内容进行备份;第二检测子模块15,用于在第二备份子模块14执行完毕后,利用存储器测试算法对待测堆栈寄存器的断路故障进行检测;第一恢复子模块16,用于在第二检测子模块15执行完毕后,若待测堆栈寄存器的检测完成,则恢复堆栈寄存器的内容;第三备份子模块17,用于在第一恢复子模块16执行完毕后,对待测专用寄存器中的内容进行备份;第三检测子模块18,用于在第三备份子模块17执行完毕后,利用存储器测试算法对待测专用寄存器的断路故障进行检测;第二恢复子模块19,用于在第三检测子模块18执行完毕后,若待测专用寄存器的检测完成,则恢复相应的专用寄存器的内容;第三恢复子模块20,用于在第二恢复子模块19执行完毕后,恢复相应的数据寄存器的内容。
更进一步地,如图8所示,第一检测子模块13可包括:第一读写子模块1301,用于向待测累加寄存器写入第一数据后,读取待测累加寄存器的内容;第一判断子模块1302,用于判断第一读写子模块1301读取的待测累加寄存器的内容是否为第一数据;第二读写子模块1303,用于当第一判断子模块1302判断第一读写子模块1301读取的待测累加寄存器的内容为第一数据时,向待测累加寄存器写入第二数据后,读取待测累加寄存器的内容;第二判断子模块1304,用于判断第二读写子模块1303读取的待测累加寄存器的内容是否为第二数据;第三读写子模块1305,用于当第二判断子模块1304判断第二读写子模块1303读取的待测累加寄存器的内容为第二数据时,向待测乘积寄存器写入第一数据后,读取待测乘积寄存器的内容;第三判断子模块1306,用于判断第三读写子模块1305读取的待测乘积寄存器的内容是否为第一数据;第四读写子模块1307,用于当第三判断子模块1306判断第三读写子模块1305读取的待测乘积寄存器的内容为第一数据时,向待测乘积寄存器写入第二数据后,读取待测乘积寄存器的内容;第四判断子模块1308,用于判断第四读写子模块1307读取的待测乘积寄存器的内容是否为第二数据;第五读写子模块1309,用于当第四判断子模块1308判断第四读写子模块1307读取的待测乘积寄存器的内容为第二数据时,向待测的各辅助寄存器分别写入第一数据后,读取待测的各辅助寄存器的内容;第五判断子模块1310,用于判断第五读写子模块1309读取的待测的辅助寄存器的内容是否为第一数据;第六读写子模块1311,用于当第五判断子模块1310判断第五读写子模块1309读取的待测的辅助寄存器的内容为第一数据时,向待测的各辅助寄存器分别写入第二数据后,读取待测的各辅助寄存器的内容;第六判断子模块1312,用于判断第六读写子模块1311读取的待测的辅助寄存器的内容是否为第二数据;第七读写子模块1313,用于当第六判断子模块1312判断第六读写子模块1311读取的待测的辅助寄存器的内容为第二数据时,向待测被乘数寄存器写入第一数据后,读取待测被乘数寄存器的内容;第七判断子模块1314,用于判断第七读写子模块1313读取的待测被乘数寄存器的内容是否为第一数据;第八读写子模块1315,用于当第七判断子模块1314判断第七读写子模块1313读取的待测被乘数寄存器的内容为第一数据时,向待测被乘数寄存器写入第二数据后,读取待测被乘数寄存器的内容;第八判断子模块1316,用于判断第八读写子模块1315读取的待测被乘数寄存器的内容是否为第二数据,是则待测数据寄存器的检测通过,由第二备份子模块14继续执行;第一判定子模块1317,用于当第一判断子模块1302判断第一读写子模块1301读取的待测累加寄存器的内容不为第一数据时,或当第二判断子模块1304判断第二读写子模块1303读取的待测累加寄存器的内容不为第二数据时,或当第三判断子模块1306判断第三读写子模块1305读取的待测乘积寄存器的内容不为第一数据时,或当第四判断子模块1308判断第四读写子模块1307读取的待测乘积寄存器的内容不为第二数据时,或当第五判断子模块1310判断第五读写子模块1309读取的待测的辅助寄存器的内容不为第一数据时,或当第六判断子模块1312判断第六读写子模块1311读取的待测的辅助寄存器的内容不为第二数据时,或当第七判断子模块1314判断第七读写子模块1313读取的待测被乘数寄存器的内容不为第一数据时,或当第八判断子模块1316判断第八读写子模块1315读取的待测被乘数寄存器的内容不为第二数据时,判定相应的数据寄存器未通过检测,即判定相应的数据寄存器存在断路。
更进一步地,如图9所示,第二检测子模块15可包括:第九读写子模块151,用于向待测堆栈寄存器写入第一数据后,读取待测堆栈寄存器的内容;第九判断子模块152,用于判断第九读写子模块151读取的待测堆栈寄存器的内容是否为第一数据;第十读写子模块153,用于当第九判断子模块152判断第九读写子模块151读取的待测堆栈寄存器的内容为第一数据时,向待测堆栈寄存器写入第二数据后,读取待测堆栈寄存器的内容;第十判断子模块154,用于判断第十读写子模块153读取的待测堆栈寄存器的内容是否为第二数据,是则待测堆栈寄存器的检测通过,由第一恢复子模块16继续执行;第二判定子模块155,用于当第九判断子模块152判断第九读写子模块151读取的待测堆栈寄存器的内容不为第一数据时,或当第十判断子模块154判断第十读写子模块153读取的待测堆栈寄存器的内容不为第二数据时,判定堆栈寄存器未通过检测,即判定相应的堆栈寄存器存在断路。
更进一步地,如图10所示,第三检测子模块18可包括:第十一读写子模块181,用于向待测的状态寄存器、数据页寄存器、中断使能寄存器、中断标志寄存器和调试中断使能寄存器分别写入第一数据后,读取待测的状态寄存器、数据页寄存器、中断使能寄存器、中断标志寄存器和调试中断使能寄存器的内容;第十一判断子模块182,用于判断第十一读写子模块181读取的内容是否为第一数据;第十二读写子模块183,用于当第十一判断子模块182判断第十一读写子模块181读取的内容为第一数据时,向待测的状态寄存器、数据页寄存器、中断使能寄存器、中断标志寄存器和调试中断使能寄存器分别写入第二数据后,读取待测的状态寄存器、数据页寄存器、中断使能寄存器、中断标志寄存器和调试中断使能寄存器的内容;第十二判断子模块184,用于判断第十二读写子模块183读取的内容是否为第二数据,是则待测专用寄存器的检测通过,由第二恢复子模块19继续执行;第三判定子模块185,用于当第十一判断子模块182判断第十一读写子模块181读取的内容不为第一数据时,或当第十二判断子模块184判断第十二读写子模块183读取的内容不为第二数据时,判定相应的专用寄存器未通过检测,即判定相应的专用寄存器存在断路。
本发明实施例三提供的电机控制系统中微处理器的内核寄存器故障检测系统是在一次PWM中断的时间内将待测内核寄存器的存储内容进行备份后,利用存储器测试算法对每一类待测的内核寄存器进行断路故障检测,以判断相应的内核寄存器是否失效,从而能及时发现内核寄存器的故障情况并对电机采取保护,提高了电机控制系统运行的可靠性。再有,由于存储器测试算法为破坏性测试,会将待测内核寄存器中原本的存储内容覆盖掉,因此,在故障检测开始后,首先对待测的内核寄存器的存储内容进行备份,并在故障检测通过后,将备份内容恢复到相应的内核寄存器,从而不会造成对内核寄存器的影响,检测过程安全而可靠。
实施例四
本发明实施例四提出了一种电机控制系统中微处理器的内核寄存器故障检测系统,如图11所示,为了便于说明,仅示出了与本发明实施例四相关的部分。
与实施例三不同,本发明实施例四提供的电机控制系统中微处理器的内核寄存器故障检测系统在故障检测模块1的基础上,还包括:计算模块2,用于触发本次PWM中断,在故障检测模块1执行前,根据本次PWM中断,利用ADC采样模块在上次PWM中断的时间内采集的电机定子线圈电流,计算ADC采样模块在下次PWM中断的时间内的采样时刻,即根据本次PWM中断首先执行算法程序,例如执行FOC算法;采样触发模块3,用于在本次PWM中断的时间内,在故障检测模块1执行完毕后,打开微处理器的全局中断,在上次PWM中断的时间内计算得到的采样时刻到达时,触发ADC中断,以使得ADC采样模块对电机定子线圈电流进行正常采集和转换。
与实施例三不同,本发明实施例四提供的电机控制系统中微处理器的内核寄存器故障检测系统在一次PWM中断开始后,首先执行算法程序,之后执行如上实施例一所述的内核寄存器的故障检测,之后在打开全局中断后ADC采样模块执行对电机定子线圈电流的采样和转换,从而不影响电机的正常运行。
实施例五
本发明实施例五提出了一种电机控制系统的微处理器,包括内核寄存器,以及连接内核寄存器的故障检测系统。该故障检测系统是如上实施例三或实施例四所述的电机控制系统中微处理器的内核寄存器故障检测系统,在此不赘述。
综上所述,本发明提供的电机控制系统中微处理器的内核寄存器故障检测方法及系统是在一次PWM中断的时间内将待测内核寄存器的存储内容进行备份后,利用存储器测试算法对每一类待测的内核寄存器进行断路故障检测,以判断相应的内核寄存器是否失效,从而能及时发现内核寄存器的故障情况并对电机采取保护,提高了电机控制系统运行的可靠性。再有,由于存储器测试算法为破坏性测试,会将待测内核寄存器中原本的存储内容覆盖掉,因此,在故障检测开始后,首先对待测的内核寄存器的存储内容进行备份,并在故障检测通过后,将备份内容恢复到相应的内核寄存器,从而不会造成对内核寄存器的影响,检测过程安全而可靠。另外,在一次PWM中断开始后,首先执行算法程序,之后执行内核寄存器的故障检测,之后在打开全局中断后ADC采样模块执行对电机定子线圈电流的采样和转换,从而不影响电机的正常运行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来控制相关的硬件完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种电机控制系统中微处理器的内核寄存器故障检测方法,其特征在于,所述方法包括以下步骤:
在本次PWM中断的时间内,对每一类待测内核寄存器中的内容进行备份,并采用存储器测试算法对所述每一类待测内核寄存器的断路故障进行检测,检测完成后,恢复相应类的内核寄存器的内容。
2.如权利要求1所述的电机控制系统中微处理器的内核寄存器故障检测方法,其特征在于,所述待测内核寄存器包括待测数据寄存器、待测堆栈寄存器和待测专用寄存器;
所述在本次PWM中断的时间内,对每一类待测内核寄存器中的内容进行备份,并采用存储器测试算法对所述每一类待测内核寄存器的断路故障进行检测,检测完成后,恢复相应类的内核寄存器的内容的步骤进一步包括以下步骤:
在本次PWM中断的时间内,关闭电机控制系统中微处理器的全局中断,以启动对所述待测内核寄存器的故障检测;
对所述待测数据寄存器中的内容进行备份;
利用存储器测试算法对所述待测数据寄存器的断路故障进行检测;
所述待测数据寄存器的检测通过后,对所述待测堆栈寄存器中的内容进行备份;
利用存储器测试算法对所述待测堆栈寄存器的断路故障进行检测;
所述待测堆栈寄存器的检测完成后,恢复堆栈寄存器的内容;
对所述待测专用寄存器中的内容进行备份;
利用存储器测试算法对所述待测专用寄存器的断路故障进行检测;
所述待测专用寄存器的检测完成后,恢复相应的专用寄存器的内容;
恢复相应的数据寄存器的内容。
3.如权利要求2所述的电机控制系统中微处理器的内核寄存器故障检测方法,其特征在于,所述待测数据寄存器包括待测累加寄存器、待测乘积寄存器、待测辅助寄存器、待测被乘数寄存器;
所述利用存储器测试算法对所述待测数据寄存器的断路故障进行检测的步骤进一步包括以下步骤:
向所述待测累加寄存器写入第一数据后,读取所述待测累加寄存器的内容。
判断所述待测累加寄存器的内容是否为第一数据,是向所述待测累加寄存器写入第二数据后,读取所述待测累加寄存器的内容,否则判定相应的数据寄存器未通过检测;
判断读取的所述待测累加寄存器的内容是否为第二数据,是则向所述待测乘积寄存器写入第一数据后,读取所述待测乘积寄存器的内容,否则判定相应的数据寄存器未通过检测;
判断读取的所述待测乘积寄存器的内容是否为第一数据,是则向所述待测乘积寄存器写入第二数据后,读取所述待测乘积寄存器的内容,否则判定相应的数据寄存器未通过检测;
判断读取的所述待测乘积寄存器的内容是否为第二数据,是则向所述待测的各辅助寄存器分别写入第一数据后,读取所述待测的各辅助寄存器的内容,否则判定相应的数据寄存器未通过检测;
判断读取的所述待测的辅助寄存器的内容是否为第一数据,是则向所述待测的各辅助寄存器分别写入第二数据后,读取所述待测的各辅助寄存器的内容,否则判定相应的数据寄存器未通过检测;
判断读取的所述待测的辅助寄存器的内容是否为第二数据,是则向所述待测被乘数寄存器写入第一数据后,读取所述待测被乘数寄存器的内容,否则判定相应的数据寄存器未通过检测;
判断读取的所述待测被乘数寄存器的内容是否为第一数据,是则向所述待测被乘数寄存器写入第二数据后,读取所述待测被乘数寄存器的内容,否则判定相应的数据寄存器未通过检测;
判断读取的所述待测被乘数寄存器的内容是否为第二数据,是则待测数据寄存器的检测通过,否则判定相应的数据寄存器未通过检测。
4.如权利要求2所述的电机控制系统中微处理器的内核寄存器故障检测方法,其特征在于,所述利用存储器测试算法对所述待测堆栈寄存器的断路故障进行检测的步骤进一步包括以下步骤:
向所述待测堆栈寄存器写入第一数据后,读取所述待测堆栈寄存器的内容;
判断所述待测堆栈寄存器的内容是否为第一数据,是则向所述待测堆栈寄存器写入第二数据后,读取所述待测堆栈寄存器的内容,否则判定所述堆栈寄存器未通过检测;
判断读取的所述待测堆栈寄存器的内容是否为第二数据,是则所述待测堆栈寄存器的检测通过,否则判定所述堆栈寄存器未通过检测。
5.如权利要求2所述的电机控制系统中微处理器的内核寄存器故障检测方法,其特征在于,所述待测专用寄存器包括待测的状态寄存器、数据页寄存器、中断使能寄存器、中断标志寄存器、调试中断使能寄存器;
所述利用存储器测试算法对所述待测专用寄存器的断路故障进行检测的步骤进一步包括以下步骤:
向所述待测的状态寄存器、数据页寄存器、中断使能寄存器、中断标志寄存器和调试中断使能寄存器分别写入第一数据后,读取所述待测的状态寄存器、数据页寄存器、中断使能寄存器、中断标志寄存器和调试中断使能寄存器的内容;
判断读取的内容是否为第一数据,是则向所述待测的状态寄存器、数据页寄存器、中断使能寄存器、中断标志寄存器和调试中断使能寄存器分别写入第二数据后,读取所述待测的状态寄存器、数据页寄存器、中断使能寄存器、中断标志寄存器和调试中断使能寄存器的内容,否则判定相应的专用寄存器未通过检测;
判断读取的内容是否为第二数据,是则所述待测专用寄存器的检测通过,否则判定相应的专用寄存器未通过检测。
6.如权利要求3至5任一项所述的电机控制系统中微处理器的内核寄存器故障检测方法,其特征在于,所述第一数据为0xAAAAAAAA,所述第二数据为0x55555555;或者所述第一数据为0x55555555,所述第二数据为0xAAAAAAAA。
7.如权利要求1至5任一项所述的电机控制系统中微处理器的内核寄存器故障检测方法,其特征在于,在所述在本次PWM中断的时间内,对每一类待测内核寄存器中的内容进行备份,并采用存储器测试算法对所述每一类待测内核寄存器的断路故障进行检测,检测完成后,恢复相应类的内核寄存器的内容的步骤的步骤之前,所述方法还包括以下步骤:触发本次PWM中断,并根据所述本次PWM中断,利用ADC采样模块在上次PWM中断的时间内采集的电机定子线圈电流,计算所述ADC采样模块在下次PWM中断的时间内的采样时刻;
在所述在本次PWM中断的时间内,对每一类待测内核寄存器中的内容进行备份,并采用存储器测试算法对所述每一类待测内核寄存器的断路故障进行检测,检测完成后,恢复相应类的内核寄存器的内容的步骤的步骤之后,所述方法还包括以下步骤:在所述本次PWM中断的时间内,打开微处理器的全局中断,在所述上次PWM中断的时间内计算得到的采样时刻到达时,触发ADC中断,以使得所述ADC采样模块对电机定子线圈电流进行正常采集和转换。
8.一种电机控制系统中微处理器的内核寄存器故障检测系统,其特征在于,所述系统包括:
故障检测模块,用于在本次PWM中断的时间内,对每一类待测内核寄存器中的内容进行备份,并采用存储器测试算法对所述每一类待测内核寄存器的断路故障进行检测,检测完成后,恢复相应类的内核寄存器的内容。
9.如权利要求8所述的电机控制系统中微处理器的内核寄存器故障检测系统,其特征在于,所述系统还包括:
计算模块,用于触发本次PWM中断,在所述故障检测模块执行前,根据所述本次PWM中断,利用ADC采样模块在上次PWM中断的时间内采集的电机定子线圈电流,计算所述ADC采样模块在下次PWM中断的时间内的采样时刻;
采样触发模块,用于在所述本次PWM中断的时间内,在所述故障检测模块执行完毕后,打开微处理器的全局中断,在所述上次PWM中断的时间内计算得到的采样时刻到达时,触发ADC中断,以使得所述ADC采样模块对电机定子线圈电流进行正常采集和转换。
10.一种电机控制系统的微处理器,包括内核寄存器,其特征在于,所述微处理器还包括连接所述内核寄存器的故障检测系统,所述故障检测系统是如权利要求8或9所述的电机控制系统中微处理器的内核寄存器故障检测系统。
CN201310586787.XA 2013-11-19 2013-11-19 电机控制系统中微处理器的内核寄存器故障检测方法 Active CN103744413B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310586787.XA CN103744413B (zh) 2013-11-19 2013-11-19 电机控制系统中微处理器的内核寄存器故障检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310586787.XA CN103744413B (zh) 2013-11-19 2013-11-19 电机控制系统中微处理器的内核寄存器故障检测方法

Publications (2)

Publication Number Publication Date
CN103744413A true CN103744413A (zh) 2014-04-23
CN103744413B CN103744413B (zh) 2016-07-06

Family

ID=50501441

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310586787.XA Active CN103744413B (zh) 2013-11-19 2013-11-19 电机控制系统中微处理器的内核寄存器故障检测方法

Country Status (1)

Country Link
CN (1) CN103744413B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107844392A (zh) * 2017-10-24 2018-03-27 北京全路通信信号研究设计院集团有限公司 一种x86架构cpu寄存器在线故障检测方法及装置
CN112256507A (zh) * 2020-10-22 2021-01-22 地平线(上海)人工智能技术有限公司 芯片故障诊断方法、装置、可读存储介质及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020149975A1 (en) * 1999-06-30 2002-10-17 Carsten Ohlhoff Testing device for testing a memory
CN1540511A (zh) * 2003-04-26 2004-10-27 华为技术有限公司 一种对寄存器进行巡检校验的方法
US20060242521A1 (en) * 1997-04-30 2006-10-26 Hii Kuong H Built-in self-test arrangement for integrated circuit memory devices
CN102231286A (zh) * 2009-10-08 2011-11-02 鸿富锦精密工业(深圳)有限公司 动态随机存取存储器的测试方法
CN102968363A (zh) * 2011-09-01 2013-03-13 英飞凌科技股份有限公司 用于保护和无损地检查与安全相关的寄存器的装置和方法
CN102981925A (zh) * 2012-12-20 2013-03-20 上海市共进通信技术有限公司 应用于通讯设备的寄存器巡检校验控制方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060242521A1 (en) * 1997-04-30 2006-10-26 Hii Kuong H Built-in self-test arrangement for integrated circuit memory devices
US20020149975A1 (en) * 1999-06-30 2002-10-17 Carsten Ohlhoff Testing device for testing a memory
CN1540511A (zh) * 2003-04-26 2004-10-27 华为技术有限公司 一种对寄存器进行巡检校验的方法
CN102231286A (zh) * 2009-10-08 2011-11-02 鸿富锦精密工业(深圳)有限公司 动态随机存取存储器的测试方法
CN102968363A (zh) * 2011-09-01 2013-03-13 英飞凌科技股份有限公司 用于保护和无损地检查与安全相关的寄存器的装置和方法
CN102981925A (zh) * 2012-12-20 2013-03-20 上海市共进通信技术有限公司 应用于通讯设备的寄存器巡检校验控制方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张毅 等: "星载计算机寄存器保护机制研究", 《第十五届计算机工程与工艺年会暨第一届微处理器技术论坛论文集(A辑)》, 12 August 2011 (2011-08-12), pages 82 - 87 *
胡志丹 等: "一种基于动态迁移技术的寄存器保护方法", 《计算机工程》, vol. 36, no. 17, 5 September 2010 (2010-09-05), pages 274 - 276 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107844392A (zh) * 2017-10-24 2018-03-27 北京全路通信信号研究设计院集团有限公司 一种x86架构cpu寄存器在线故障检测方法及装置
CN112256507A (zh) * 2020-10-22 2021-01-22 地平线(上海)人工智能技术有限公司 芯片故障诊断方法、装置、可读存储介质及电子设备
CN112256507B (zh) * 2020-10-22 2023-10-27 地平线(上海)人工智能技术有限公司 芯片故障诊断方法、装置、可读存储介质及电子设备

Also Published As

Publication number Publication date
CN103744413B (zh) 2016-07-06

Similar Documents

Publication Publication Date Title
CN106998164B (zh) 一种永磁同步电机故障诊断与容错控制系统及方法
CN103150188B (zh) 非x86指令集计算机的x86兼容显卡快速初始化方法
JP6070925B2 (ja) 電動機駆動システム
CN102360311A (zh) 计算机系统
CN102779094A (zh) 终端和软件异常测试方法
KR20150009301A (ko) 인버터 시스템의 동작 제어 장치 및 방법
CN103744413B (zh) 电机控制系统中微处理器的内核寄存器故障检测方法
US9575852B2 (en) Failure recovery apparatus of digital logic circuit and method thereof
CN103746625B (zh) 电机控制系统中微处理器的系统时钟故障检测方法
CN110504897B (zh) 监测用于电动机控制的脉宽调制占空比的计算执行的系统
JP5703174B2 (ja) 電流検出器の故障診断方法及び、その装置
KR102118184B1 (ko) 외란 관측기를 이용한 기계 부하의 강인한 에뮬레이션 방법 및 장치
CN104698290A (zh) 一种电机缺相报警的方法和系统
Sojka et al. Case study on combined validation of safety & security requirements
EP3629176A1 (en) Fault detection circuit with progress register and status register
EP2645562A2 (en) Control method for induction motor
CN106030544B (zh) 计算机设备内存的检测方法和计算机设备
CN108073252B (zh) 风扇装置及应用其的电子装置
CN105912417A (zh) 虚拟系统的检测方法和相关软件运行方法以及相关装置
CN107538484B (zh) 一种应用于机器人电机的上位机调试装置
CN112039023B (zh) 电机控制器过流自恢复方法、装置、电子设备及存储介质
US6745213B2 (en) Method and apparatus to facilitate testing of garbage collection implementations
CN104123205A (zh) 一种检测cpu超频工作状态的方法及装置
CN103677875A (zh) 一种电子设备启动的方法、权限控制方法和电子设备
CN103744756A (zh) 电机控制系统中微处理器的易失性存储模块故障检测方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant