電機控制系統中微處理器的內核寄存器故障檢測方法
【專利摘要】本發(fā)明屬于電機驅動控制【技術領域】,提供了一種電機控制系統中微處理器的內核寄存器故障檢測方法及系統。該方法及系統是在一次PWM中斷的時間內將待測內核寄存器的存儲內容進行備份后,利用存儲器測試算法對每一類待測的內核寄存器進行斷路故障檢測,以判斷相應的內核寄存器是否失效,從而能及時發(fā)現內核寄存器的故障情況并對電機采取保護,提高了電機控制系統運行的可靠性。
【專利說明】電機控制系統中微處理器的內核寄存器故障檢測方法
【技術領域】
[0001]本發(fā)明屬于電機驅動控制【技術領域】,尤其涉及一種電機控制系統中微處理器的內核寄存器故障檢測方法及系統。
【背景技術】
[0002]隨著技術電子技術的進步,在機電領域,普遍采用微電子控制技術實現對電機的控制及驅動。圖1以三相電機控制系統為例,示出了現有采用磁場導向控制(FieldOriented Control, FOC)技術的電機控制系統的結構原理。
[0003]具體來說,現有的電機控制系統包括用于將直流輸入轉換成三相交流輸出的三相逆變器、以及用于輸出PWM信號以驅動三相逆變器工作的微處理器。其中,位置和速度估算模塊估算電機的轉速ω ;速度PI調節(jié)模塊根據位置和速度估算模塊得到的偏差輸出T軸參考分量IS(Lreq ;ADC采樣模塊從三相逆變器的輸出采樣得到三相定子線圈電流,并經A./D轉換和坐標變換后,得到旋轉坐標系中的直流分量Isd和Isq ;將T軸參考分量IS(LM1和M軸參考分量Isd—_分別與直流分量Isq和13(1進行比較,得到的偏差分別經相應的轉矩電流PI調節(jié)模塊和勵磁電流PI調節(jié)模塊的調節(jié),得到旋轉坐標系的相電壓分量Uq和Ud,之后再通過坐標變換,得到α-β直角坐標系的定子相電壓矢量的分量仏和化;脈寬調制模塊根據兩個分量Ua和化計算實際輸出的PWM信號的占空比,生成并輸出具有相應占空比的PWM信號,同時,ADC米樣模塊根據脈寬調制模塊的輸出,在PWM信號的下一周期進行ADC米樣。
[0004]現有的微處理器的硬件架構均包括實現運算及控制等功能的處理器內核、總線接口、調試接口等模塊,內核寄存器是處理器內核的組成部分,其完好性直接影響處理器內核的邏輯處理及控制功能,進而對電機運行的可靠性產生影響,若某些處理器內核中的某些關鍵內核寄存器出現斷路故障,則會造成電機運行異常。而現有技術并未提供內核寄存器的故障檢測方法,無法及時發(fā)現內核寄存器的故障情況并進行保護,使得現有電機控制系統的運行存在隱患,可靠 性差,甚至造成電機的損毀。
【發(fā)明內容】
[0005]本發(fā)明實施例的目的在于提供一種電機控制系統中微處理器的內核寄存器故障檢測方法,旨在解決現有技術無法及時發(fā)現電機控制系統中微處理器的內核寄存器出現的故障情況,使得電機控制系統運行可靠性差的問題。
[0006]本發(fā)明實施例是這樣實現的,一種電機控制系統中微處理器的內核寄存器故障檢測方法,所述方法包括以下步驟:
[0007]在本次PWM中斷的時間內,對每一類待測內核寄存器中的內容進行備份,并采用存儲器測試算法對所述每一類待測內核寄存器的斷路故障進行檢測,檢測完成后,恢復相應類的內核寄存器的內容。
[0008]本發(fā)明實施例的另一目的在于,還提供了一種電機控制系統中微處理器的內核寄存器故障檢測系統,所述系統包括:[0009]故障檢測模塊,用于在本次PWM中斷的時間內,對每一類待測內核寄存器中的內容進行備份,并采用存儲器測試算法對所述每一類待測內核寄存器的斷路故障進行檢測,檢測完成后,恢復相應類的內核寄存器的內容。
[0010]本發(fā)明實施例的另一目的在于,還提供了一種電機控制系統的微處理器,包括內核寄存器,所述微處理器還包括連接所述內核寄存器的故障檢測系統,所述故障檢測系統是如上所述的電機控制系統中微處理器的內核寄存器故障檢測系統。
[0011]本發(fā)明實施例提供的電機控制系統中微處理器的內核寄存器故障檢測方法及系統是在一次PWM中斷的時間內將待測內核寄存器的存儲內容進行備份后,利用存儲器測試算法對每一類待測的內核寄存器進行斷路故障檢測,以判斷相應的內核寄存器是否失效,從而能及時發(fā)現內核寄存器的故障情況并對電機采取保護,提高了電機控制系統運行的可靠性。
【專利附圖】
【附圖說明】
[0012]圖1是現有技術提供的電機控制系統的結構原理圖;
[0013]圖2是本發(fā)明實施例一的對各類待測內核寄存器進行故障檢測的詳細流程圖;
[0014]圖3是本發(fā)明實施例一的對待測數據寄存器進行故障檢測的詳細流程圖;
[0015]圖4是本發(fā)明實施例一的對待測堆棧寄存器進行故障檢測的詳細流程圖;
[0016]圖5是本發(fā)明實施例一的對待測專用寄存器進行故障檢測的詳細流程圖;
[0017]圖6是本發(fā)明實施例二提供的電機控制系統中微處理器的內核寄存器故障檢測方法的流程圖;
[0018]圖7是本發(fā)明實施例三提供的電機控制系統中微處理器的內核寄存器故障檢測系統中,故障檢測模塊的結構圖;
[0019]圖8是圖7中第一檢測子模塊的結構圖;
[0020]圖9是圖7中第二檢測子模塊的結構圖;
[0021]圖10是圖7中第三檢測子模塊的結構圖;
[0022]圖11是本發(fā)明實施例四提供的電機控制系統中微處理器的內核寄存器故障檢測系統的結構圖。
【具體實施方式】
[0023]為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0024]針對現有技術存在的問題,本發(fā)明提出了一種電機控制系統中微處理器的內核寄存器故障檢測方法及系統。該方法及系統是在一次PWM中斷的時間內將待測的每一類內核寄存器進行備份后,利用存儲器測試算法對每一類待測的內核寄存器進行斷路故障檢測,以判斷相應的內核寄存器是否失效。以下將結合實施例詳細說明本發(fā)明的實現方式:
[0025]實施例一
[0026]本發(fā)明實施例一提出了 一種電機控制系統中微處理器的內核寄存器故障檢測方法,包括:[0027]步驟SO:在本次PWM中斷的時間內,對每一類待測內核寄存器中的內容進行備份,并采用存儲器測試算法對每一類待測內核寄存器的斷路故障進行檢測,檢測完成后,恢復相應類的內核寄存器的內容。
[0028]本發(fā)明實施例一中,微處理器每產生一個周期的PWM信號波形觸發(fā)一次PWM中斷,PWM中斷的時間是指PWM信號的一個周期時長(即PWM信號的頻率的倒數)。
[0029]本發(fā)明實施例一中,存儲器測試算法優(yōu)選采用棋盤格測試算法,其基本執(zhí)行方式是:先運行0-1棋盤格向量,即向第一存儲單元寫1,第二存儲單元寫0,第三存儲單元再寫I,依此類推,直到最后一存儲單元;之后再讀取并驗證所有存儲單元;之后運行1-0棋盤格向量,即向所有存儲單元寫入與運行運行0-1棋盤格時完全相反的數據;之后再讀取并驗證所有存儲單元。
[0030]本發(fā)明實施例一中,待測內核寄存器的類型可根據不同型號的微處理器所采用的處理器內核而確定。例如,對于TMS320F28X系列的微處理器,其處理器內核中的寄存器均為32bit寄存器,待測內核寄存器可包括如下三類:第一類是數據寄存器,數據寄存器又可包括累加寄存器(即:ACC寄存器)、乘積寄存器(即:P寄存器)、輔助寄存器(即:XAR0-XAR7寄存器)、被乘數寄存器(即:XT寄存器);第二類是堆棧寄存器(即:SP寄存器);第三類是專用寄存器,專用寄存器又可包括狀態(tài)寄存器(即=STO-STl寄存器)、數據頁寄存器(即:DP寄存器)、中斷使能寄存器(即:IER寄存器)、中斷標志寄存器(S卩:IFR寄存器)、調試中斷使能寄存器(S卩=DBGIER寄存器)。
[0031]本發(fā)明實施例一中,對每一類待測內核寄存器的備份操作既可以在本類待測內核寄存器進行檢測之前進行,也可在全部待測內核寄存器進行檢測之前進行;同樣地,對每一類待測內核寄存器的恢復操作既可以在本類待測內核寄存器檢測完畢后立即進行,也可在全部待測內核寄存器檢測完畢后進行。圖2以一種實現方式為例,示出了步驟SO的詳細流程,可包括以下步驟:
[0032]SOO:在本次PWM中斷的時間內,關閉電機控制系統中微處理器的全局中斷,以啟動對待測內核寄存器的故障檢測。
[0033]本發(fā)明實施例一中,關閉全局中斷即是說,在待測存儲單元的故障檢測過程中,不響應其它任何中斷,以保證待測存儲單元的故障檢測過程不被可能的中斷打斷。
[0034]SOl:對待測數據寄存器中的內容進行備份。
[0035]S02:利用存儲器測試算法對待測數據寄存器的斷路故障進行檢測。
[0036]進一步地,當存儲器測試算法采用棋盤格測試算法時,如圖3所示,步驟S02可包括以下步驟:
[0037]S0201:向待測累加寄存器寫入第一數據后,讀取待測累加寄存器的內容。
[0038]S0202:判斷待測累加寄存器的內容是否為第一數據,是則執(zhí)行步驟S02023,否則執(zhí)行步驟S0217。
[0039]S0203:向待測累加寄存器寫入第二數據后,讀取待測累加寄存器的內容。
[0040]S0204:判斷待測累加寄存器的內容是否為第二數據,是則執(zhí)行步驟S0205,否則執(zhí)行步驟S0217。
[0041]S0205:向待測乘積寄存器寫入第一數據后,讀取待測乘積寄存器的內容。
[0042]S0206:判斷待測乘積寄存器的內容是否為第一數據,是則執(zhí)行步驟S0207,否則執(zhí)行步驟S0217。
[0043]S0207:向待測乘積寄存器寫入第二數據后,讀取待測乘積寄存器的內容。
[0044]S0208:判斷待測乘積寄存器的內容是否為第二數據,是則執(zhí)行步驟S0209,否則執(zhí)行步驟S0217。
[0045]S0209:向待測的各輔助寄存器分別寫入第一數據后,讀取待測的各輔助寄存器的內容。
[0046]S0210:判斷待測的輔助寄存器的內容是否為第一數據,是則執(zhí)行步驟S0211,否則執(zhí)行步驟S0217。
[0047]S0211:向待測的各輔助寄存器分別寫入第二數據后,讀取待測的各輔助寄存器的內容。
[0048]S0212:判斷待測的輔助寄存器的內容是否為第二數據,是則執(zhí)行步驟S0213,否則執(zhí)行步驟S0217。
[0049]S0213:向待測被乘數寄存器寫入第一數據后,讀取待測被乘數寄存器的內容。
[0050]S0214:判斷待測被乘數寄存器的內容是否為第一數據,是則執(zhí)行步驟S0215,否則執(zhí)行步驟S0217。
[0051]S0215:向待測被乘數寄存器寫入第二數據后,讀取待測被乘數寄存器的內容。
[0052]S0216:判斷待測被乘數寄存器的內容是否為第二數據,是則執(zhí)行步驟S03,否則執(zhí)行步驟S0217。
[0053]S0217:判定相應的數據寄存器未通過檢測,即判定相應的數據寄存器存在斷路。
[0054]本發(fā)明實施例一中,當各數據寄存器為32bit寄存器時,第一數據為OxAAAAAAAA,第二數據為0x55555555,或者第一數據為0x55555555,第二數據為OxAAAAAAAA。
[0055]S03:待測數據寄存器的檢測通過后,對待測堆棧寄存器中的內容進行備份。
[0056]S04:利用存儲器測試算法對待測堆棧寄存器的斷路故障進行檢測。
[0057]進一步地,當存儲器測試算法采用棋盤格測試算法時,如圖4所示,步驟S04可包括以下步驟:
[0058]S041:向待測堆棧寄存器寫入第一數據后,讀取待測堆棧寄存器的內容。
[0059]S042:判斷待測堆棧寄存器的內容是否為第一數據,是則執(zhí)行步驟S043,否則執(zhí)行步驟S045。
[0060]S043:向待測堆棧寄存器寫入第二數據后,讀取待測堆棧寄存器的內容。
[0061]S044:判斷待測堆棧寄存器的內容是否為第二數據,是則執(zhí)行步驟S05,否則執(zhí)行步驟S045。
[0062]S045:判定堆棧寄存器未通過檢測,即判定相應的堆棧寄存器存在斷路。
[0063]同樣地,當堆棧寄存器為32bit寄存器時,第一數據為OxAAAAAAAA,第二數據為0x55555555,或者第一數據為 0x55555555,第二數據為 OxAAAAAAAA。
[0064]S05:待測堆棧寄存器的檢測完成后,恢復堆棧寄存器的內容。
[0065]S06:對待測專用寄存器中的內容進行備份。
[0066]S07:利用存儲器測試算法對待測專用寄存器的斷路故障進行檢測。
[0067]進一步地,當存儲器測試算法采用棋盤格測試算法時,如圖5所示,步驟S07可包括以下步驟:[0068]S071:向待測的狀態(tài)寄存器、數據頁寄存器、中斷使能寄存器、中斷標志寄存器和調試中斷使能寄存器分別寫入第一數據后,讀取待測的狀態(tài)寄存器、數據頁寄存器、中斷使能寄存器、中斷標志寄存器和調試中斷使能寄存器的內容。
[0069]S072:判斷讀取的內容是否為第一數據,是則執(zhí)行步驟S073,否則執(zhí)行步驟S075。
[0070]S073:向待測的狀態(tài)寄存器、數據頁寄存器、中斷使能寄存器、中斷標志寄存器和調試中斷使能寄存器分別寫入第二數據后,讀取待測的狀態(tài)寄存器、數據頁寄存器、中斷使能寄存器、中斷標志寄存器和調試中斷使能寄存器的內容。
[0071]S074:判斷讀取的內容是否為第二數據,是則執(zhí)行步驟S08,否則執(zhí)行步驟S075。
[0072]S075:判定相應的專用寄存器未通過檢測,即判定相應的專用寄存器存在斷路。
[0073]S08:待測專用寄存器的檢測完成后,恢復相應的專用寄存器的內容。
[0074]S09:恢復相應的數據寄存器的內容。
[0075]本發(fā)明實施例一提供的電機控制系統中微處理器的內核寄存器故障檢測方法是在一次PWM中斷的時間內將待測內核寄存器中的存儲內容進行備份后,利用存儲器測試算法對每一類待測的內核寄存器進行斷路故障檢測,以判斷相應的內核寄存器是否失效,從而能及時發(fā)現內核寄存器的故障情況并對電機采取保護,提高了電機控制系統運行的可靠性。再有,由于存儲器測試算法為破壞性測試,會將待測內核寄存器中原本的存儲內容覆蓋掉,因此,在故障檢測開始后,首先對待測的內核寄存器的存儲內容進行備份,并在故障檢測完成后,將備份內容恢復到相應的內核寄存器,從而不會造成對內核寄存器的影響,檢測過程安全而可靠。
[0076]實施例二
[0077]本發(fā)明實施例二提出了一種電機控制系統中微處理器的內核寄存器故障檢測方法,如圖6所示。與實施例一不同,實施例二中,在步驟SO之前還包括:
[0078]步驟S1:觸發(fā)本次P麗中斷,并根據本次PWM中斷,利用ADC采樣模塊在上次PWM中斷的時間內采集的電機定子線圈電流,計算ADC采樣模塊在下次PWM中斷的時間內的采樣時刻,即根據本次PWM中斷首先執(zhí)行算法程序,例如執(zhí)行FOC算法。
[0079]同時與實施例一不同,實施例二中,在步驟SO之后還包括:
[0080]步驟S2:在本次PWM中斷的時間內,打開微處理器的全局中斷,在上次PWM中斷的時間內計算得到的采樣時刻到達時,觸發(fā)ADC中斷,以使得ADC采樣模塊對電機定子線圈電流進行正常采集和轉換。
[0081]本發(fā)明實施例二中,ADC采樣模塊對電機定子線圈電流的采樣時刻發(fā)生在本次PWM中斷的最后四分之一周期內。
[0082]與實施例一不同,本發(fā)明實施例二提供的電機控制系統中微處理器的內核寄存器故障檢測方法在一次PWM中斷開始后,首先執(zhí)行算法程序,之后執(zhí)行如上實施例一所述的內核寄存器的故障檢測,之后在打開全局中斷后ADC采樣模塊執(zhí)行對電機定子線圈電流的采樣和轉換,從而不影響電機的正常運行。此時,要保證算法程序的執(zhí)行時間與ADC采樣模塊的正常電流采樣之間的時間間隔大于內核寄存器故障檢測的時間,例如,當PWM中斷的頻率為8KHz時,每一 PWM中斷的時間內對內核寄存器進行故障檢測,且故障檢測的時間可為 14 μ S。
[0083]實施例三[0084]本發(fā)明實施例三提出了一種電機控制系統中微處理器的內核寄存器故障檢測系統,包括:故障檢測模塊,用于在本次PWM中斷的時間內,對每一類待測內核寄存器中的內容進行備份,并采用存儲器測試算法對每一類待測內核寄存器的斷路故障進行檢測,檢測完成后,恢復相應類的內核寄存器的內容。
[0085]進一步地,如圖7所示,故障檢測模塊可包括:檢測啟動子模塊11,用于在本次PWM中斷的時間內,關閉電機控制系統中微處理器的全局中斷,以啟動對待測內核寄存器的故障檢測;第一備份子模塊12,用于在檢測啟動子模塊11執(zhí)行完畢后,對待測數據寄存器中的內容進行備份;第一檢測子模塊13,用于在第一備份子模塊12執(zhí)行完畢后,利用存儲器測試算法對待測數據寄存器的斷路故障進行檢測;第二備份子模塊14,用于在第一檢測子模塊13執(zhí)行完畢后,若待測數據寄存器的檢測通過,則對待測堆棧寄存器中的內容進行備份;第二檢測子模塊15,用于在第二備份子模塊14執(zhí)行完畢后,利用存儲器測試算法對待測堆棧寄存器的斷路故障進行檢測;第一恢復子模塊16,用于在第二檢測子模塊15執(zhí)行完畢后,若待測堆棧寄存器的檢測完成,則恢復堆棧寄存器的內容;第三備份子模塊17,用于在第一恢復子模塊16執(zhí)行完畢后,對待測專用寄存器中的內容進行備份;第三檢測子模塊18,用于在第三備份子模塊17執(zhí)行完畢后,利用存儲器測試算法對待測專用寄存器的斷路故障進行檢測;第二恢復子模塊19,用于在第三檢測子模塊18執(zhí)行完畢后,若待測專用寄存器的檢測完成,則恢復相應的專用寄存器的內容;第三恢復子模塊20,用于在第二恢復子模塊19執(zhí)行完畢后,恢復相應的數據寄存器的內容。
[0086]更進一步地,如圖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繼續(xù)執(zhí)行;第一判定子模塊1317,用于當第一判斷子模塊1302判斷第一讀寫子模塊1301讀取的待測累加寄存器的內容不為第一數據時,或當第二判斷子模塊1304判斷第二讀寫子模塊1303讀取的待測累加寄存器的內容不為第二數據時,或當第三判斷子模塊1306判斷第三讀寫子模塊1305讀取的待測乘積寄存器的內容不為第一數據時,或當第四判斷子模塊1308判斷第四讀寫子模塊1307讀取的待測乘積寄存器的內容不為第二數據時,或當第五判斷子模塊1310判斷第五讀寫子模塊1309讀取的待測的輔助寄存器的內容不為第一數據時,或當第六判斷子模塊1312判斷第六讀寫子模塊1311讀取的待測的輔助寄存器的內容不為第二數據時,或當第七判斷子模塊1314判斷第七讀寫子模塊1313讀取的待測被乘數寄存器的內容不為第一數據時,或當第八判斷子模塊1316判斷第八讀寫子模塊1315讀取的待測被乘數寄存器的內容不為第二數據時,判定相應的數據寄存器未通過檢測,即判定相應的數據寄存器存在斷路。
[0087]更進一步地,如圖9所示,第二檢測子模塊15可包括:第九讀寫子模塊151,用于向待測堆棧寄存器寫入第一數據后,讀取待測堆棧寄存器的內容;第九判斷子模塊152,用于判斷第九讀寫子模塊151讀取的待測堆棧寄存器的內容是否為第一數據;第十讀寫子模塊153,用于當第九判斷子模塊152判斷第九讀寫子模塊151讀取的待測堆棧寄存器的內容為第一數據時,向待測堆棧寄存器寫入第二數據后,讀取待測堆棧寄存器的內容;第十判斷子模塊154,用于判斷第十讀寫子模塊153讀取的待測堆棧寄存器的內容是否為第二數據,是則待測堆棧寄存器的檢測通過,由第一恢復子模塊16繼續(xù)執(zhí)行;第二判定子模塊155,用于當第九判斷子模塊152判斷第九讀寫子模塊151讀取的待測堆棧寄存器的內容不為第一數據時,或當第十判斷子模塊154判斷第十讀寫子模塊153讀取的待測堆棧寄存器的內容不為第二數據時,判定堆棧寄存器未通過檢測,即判定相應的堆棧寄存器存在斷路。
[0088]更進一步地,如圖10所示,第三檢測子模塊18可包括:第十一讀寫子模塊181,用于向待測的狀態(tài)寄存器、數據頁寄存器、中斷使能寄存器、中斷標志寄存器和調試中斷使能寄存器分別寫入第一數據后,讀取待測的狀態(tài)寄存器、數據頁寄存器、中斷使能寄存器、中斷標志寄存器和調試中斷使能寄存器的內容;第十一判斷子模塊182,用于判斷第十一讀寫子模塊181讀取的內容是否為第一數據;第十二讀寫子模塊183,用于當第十一判斷子模塊182判斷第十一讀寫子模塊181讀取的內容為第一數據時,向待測的狀態(tài)寄存器、數據頁寄存器、中斷使能寄存器、中斷標志寄存器和調試中斷使能寄存器分別寫入第二數據后,讀取待測的狀態(tài)寄存器、數據頁寄存器、中斷使能寄存器、中斷標志寄存器和調試中斷使能寄存器的內容;第十二判斷子模塊184,用于判斷第十二讀寫子模塊183讀取的內容是否為第二數據,是則待測專用寄存器的檢測通過,由第二恢復子模塊19繼續(xù)執(zhí)行;第三判定子模塊185,用于當第十一判斷子模塊182判斷第十一讀寫子模塊181讀取的內容不為第一數據時,或當第十二判斷子模塊184判斷第十二讀寫子模塊183讀取的內容不為第二數據時,判定相應的專用寄存器未通過檢測,即判定相應的專用寄存器存在斷路。
[0089]本發(fā)明實施例三提供的電機控制系統中微處理器的內核寄存器故障檢測系統是在一次PWM中斷的時間內將待測內核寄存器的存儲內容進行備份后,利用存儲器測試算法對每一類待測的內核寄存器進行斷路故障檢測,以判斷相應的內核寄存器是否失效,從而能及時發(fā)現內核寄存器的故障情況并對電機采取保護,提高了電機控制系統運行的可靠性。再有,由于存儲器測試算法為破壞性測試,會將待測內核寄存器中原本的存儲內容覆蓋掉,因此,在故障檢測開始后,首先對待測的內核寄存器的存儲內容進行備份,并在故障檢測通過后,將備份內容恢復到相應的內核寄存器,從而不會造成對內核寄存器的影響,檢測過程安全而可靠。
[0090]實施例四
[0091]本發(fā)明實施例四提出了一種電機控制系統中微處理器的內核寄存器故障檢測系統,如圖11所示,為了便于說明,僅示出了與本發(fā)明實施例四相關的部分。
[0092]與實施例三不同,本發(fā)明實施例四提供的電機控制系統中微處理器的內核寄存器故障檢測系統在故障檢測模塊I的基礎上,還包括:計算模塊2,用于觸發(fā)本次PWM中斷,在故障檢測模塊I執(zhí)行前,根據本次PWM中斷,利用ADC采樣模塊在上次PWM中斷的時間內采集的電機定子線圈電流,計算ADC采樣模塊在下次PWM中斷的時間內的采樣時刻,即根據本次PWM中斷首先執(zhí)行算法程序,例如執(zhí)行FOC算法;采樣觸發(fā)模塊3,用于在本次PWM中斷的時間內,在故障檢測模塊I執(zhí)行完畢后,打開微處理器的全局中斷,在上次PWM中斷的時間內計算得到的采樣時刻到達時,觸發(fā)ADC中斷,以使得ADC采樣模塊對電機定子線圈電流進行正常采集和轉換。
[0093]與實施例三不同,本發(fā)明實施例四提供的電機控制系統中微處理器的內核寄存器故障檢測系統在一次PWM中斷開始后,首先執(zhí)行算法程序,之后執(zhí)行如上實施例一所述的內核寄存器的故障檢測,之后在打開全局中斷后ADC采樣模塊執(zhí)行對電機定子線圈電流的采樣和轉換,從而不影響電機的正常運行。
[0094]實施例五
[0095]本發(fā)明實施例五提出了一種電機控制系統的微處理器,包括內核寄存器,以及連接內核寄存器的故障檢測系統。該故障檢測系統是如上實施例三或實施例四所述的電機控制系統中微處理器的內核寄存器故障檢測系統,在此不贅述。
[0096]綜上所述,本發(fā)明提供的電機控制系統中微處理器的內核寄存器故障檢測方法及系統是在一次PWM中斷的時間內將待測內核寄存器的存儲內容進行備份后,利用存儲器測試算法對每一類待測的內核寄存器進行斷路故障檢測,以判斷相應的內核寄存器是否失效,從而能及時發(fā)現內核寄存器的故障情況并對電機采取保護,提高了電機控制系統運行的可靠性。再有,由于存儲器測試算法為破壞性測試,會將待測內核寄存器中原本的存儲內容覆蓋掉,因此,在故障檢測開始后,首先對待測的內核寄存器的存儲內容進行備份,并在故障檢測通過后,將備份內容恢復到相應的內核寄存器,從而不會造成對內核寄存器的影響,檢測過程安全而可靠。另外,在一次PWM中斷開始后,首先執(zhí)行算法程序,之后執(zhí)行內核寄存器的故障檢測,之后在打開全局中斷后ADC采樣模塊執(zhí)行對電機定子線圈電流的采樣和轉換,從而不影響電機的正常運行。
[0097]本領域普通技術人員可以理解實現上述實施例方法中的全部或部分步驟是可以通過程序來控制相關的硬件完成,所述的程序可以在存儲于一計算機可讀取存儲介質中,所述的存儲介質,如ROM/RAM、磁盤、光盤等。
[0098] 以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內。
【權利要求】
1.一種電機控制系統中微處理器的內核寄存器故障檢測方法,其特征在于,所述方法包括以下步驟: 在本次PWM中斷的時間內,對每一類待測內核寄存器中的內容進行備份,并采用存儲器測試算法對所述每一類待測內核寄存器的斷路故障進行檢測,檢測完成后,恢復相應類的內核寄存器的內容。
2.如權利要求1所述的電機控制系統中微處理器的內核寄存器故障檢測方法,其特征在于,所述待測內核寄存器包括待測數據寄存器、待測堆棧寄存器和待測專用寄存器; 所述在本次PWM中斷的時間內,對每一類待測內核寄存器中的內容進行備份,并采用存儲器測試算法對所述每一類待測內核寄存器的斷路故障進行檢測,檢測完成后,恢復相應類的內核寄存器的內容的步驟進一步包括以下步驟: 在本次PWM中斷的時間內,關閉電機控制系統中微處理器的全局中斷,以啟動對所述待測內核寄存器的故障檢測; 對所述待測數據寄存器中的內容進行備份; 利用存儲器測試算法對所述待測數據寄存器的斷路故障進行檢測; 所述待測數據寄存器的檢測通過后,對所述待測堆棧寄存器中的內容進行備份; 利用存儲器測試算法對所述待測堆棧寄存器的斷路故障進行檢測; 所述待測堆棧寄存器的檢測完成后,恢復堆棧寄存器的內容; 對所述待測專用寄存器中的內容進行備份; 利用存儲器測試算法對所述待測專用寄存器的斷路故障進行檢測; 所述待測專用寄存器的檢測完成后,恢復相應的專用寄存器的內容; 恢復相應的數據寄存器的內容。
3.如權利要求2所述的電機控制系統中微處理器的內核寄存器故障檢測方法,其特征在于,所述待測數據寄存器包括待測累加寄存器、待測乘積寄存器、待測輔助寄存器、待測被乘數寄存器; 所述利用存儲器測試算法對所述待測數據寄存器的斷路故障進行檢測的步驟進一步包括以下步驟: 向所述待測累加寄存器寫入第一數據后,讀取所述待測累加寄存器的內容。 判斷所述待測累加寄存器的內容是否為第一數據,是向所述待測累加寄存器寫入第二數據后,讀取所述待測累加寄存器的內容,否則判定相應的數據寄存器未通過檢測; 判斷讀取的所述待測累加寄存器的內容是否為第二數據,是則向所述待測乘積寄存器寫入第一數據后,讀取所述待測乘積寄存器的內容,否則判定相應的數據寄存器未通過檢測; 判斷讀取的所述待測乘積寄存器的內容是否為第一數據,是則向所述待測乘積寄存器寫入第二數據后,讀取所述待測乘積寄存器的內容,否則判定相應的數據寄存器未通過檢測; 判斷讀取的所述待測乘積寄存器的內容是否為第二數據,是則向所述待測的各輔助寄存器分別寫入第一數據后,讀取所述待測的各輔助寄存器的內容,否則判定相應的數據寄存器未通過檢測; 判斷讀取的所述待測的輔助寄存器的內容是否為第一數據,是則向所述待測的各輔助寄存器分別寫入第二數據后,讀取所述待測的各輔助寄存器的內容,否則判定相應的數據寄存器未通過檢測; 判斷讀取的所述待測的輔助寄存器的內容是否為第二數據,是則向所述待測被乘數寄存器寫入第一數據后,讀取所述待測被乘數寄存器的內容,否則判定相應的數據寄存器未通過檢測; 判斷讀取的所述待測被乘數寄存器的內容是否為第一數據,是則向所述待測被乘數寄存器寫入第二數據后,讀取所述待測被乘數寄存器的內容,否則判定相應的數據寄存器未通過檢測; 判斷讀取的所述待測被乘數寄存器的內容是否為第二數據,是則待測數據寄存器的檢測通過,否則判定相應的數據寄存器未通過檢測。
4.如權利要求2所述的電機控制系統中微處理器的內核寄存器故障檢測方法,其特征在于,所述利用存儲器測試算法對所述待測堆棧寄存器的斷路故障進行檢測的步驟進一步包括以下步驟: 向所述待測堆棧寄存器寫入第一數據后,讀取所述待測堆棧寄存器的內容; 判斷所述待測堆棧寄存器的內容是否為第一數據,是則向所述待測堆棧寄存器寫入第二數據后,讀取所述待測堆棧寄存器的內容,否則判定所述堆棧寄存器未通過檢測; 判斷讀取的所述待測堆棧寄存器的內容是否為第二數據,是則所述待測堆棧寄存器的檢測通過,否則判定所述堆棧寄存器未通過檢測。
5.如權利要求2所述的電機控制系統中微處理器的內核寄存器故障檢測方法,其特征在于,所述待測專用寄存器包括待測的狀態(tài)寄存器、數據頁寄存器、中斷使能寄存器、中斷標志寄存器、調試中斷使能寄存器;` 所述利用存儲器測試算法對所述待測專用寄存器的斷路故障進行檢測的步驟進一步包括以下步驟: 向所述待測的狀態(tài)寄存器、數據頁寄存器、中斷使能寄存器、中斷標志寄存器和調試中斷使能寄存器分別寫入第一數據后,讀取所述待測的狀態(tài)寄存器、數據頁寄存器、中斷使能寄存器、中斷標志寄存器和調試中斷使能寄存器的內容; 判斷讀取的內容是否為第一數據,是則向所述待測的狀態(tài)寄存器、數據頁寄存器、中斷使能寄存器、中斷標志寄存器和調試中斷使能寄存器分別寫入第二數據后,讀取所述待測的狀態(tài)寄存器、數據頁寄存器、中斷使能寄存器、中斷標志寄存器和調試中斷使能寄存器的內容,否則判定相應的專用寄存器未通過檢測; 判斷讀取的內容是否為第二數據,是則所述待測專用寄存器的檢測通過,否則判定相應的專用寄存器未通過檢測。
6.如權利要求3至5任一項所述的電機控制系統中微處理器的內核寄存器故障檢測方法,其特征在于,所述第一數據為OxAAAAAAAA,所述第二數據為0x55555555 ;或者所述第一數據為0x55555555,所述第二數據為OxAAAAAAAA。
7.如權利要求1至5任一項所述的電機控制系統中微處理器的內核寄存器故障檢測方法,其特征在于,在所述在本次PWM中斷的時間內,對每一類待測內核寄存器中的內容進行備份,并采用存儲器測試算法對所述每一類待測內核寄存器的斷路故障進行檢測,檢測完成后,恢復相應類的內核寄存器的內容的步驟的步驟之前,所述方法還包括以下步驟:觸發(fā)本次PWM中斷,并根據所述本次PWM中斷,利用ADC采樣模塊在上次PWM中斷的時間內采集的電機定子線圈電流,計算所述ADC采樣模塊在下次PWM中斷的時間內的采樣時刻; 在所述在本次PWM中斷的時間內,對每一類待測內核寄存器中的內容進行備份,并采用存儲器測試算法對所述每一類待測內核寄存器的斷路故障進行檢測,檢測完成后,恢復相應類的內核寄存器的內容的步驟的步驟之后,所述方法還包括以下步驟:在所述本次PWM中斷的時間內,打開微處理器的全局中斷,在所述上次PWM中斷的時間內計算得到的采樣時刻到達時,觸發(fā)ADC中斷,以使得所述ADC采樣模塊對電機定子線圈電流進行正常采集和轉換。
8.一種電機控制系統中微處理器的內核寄存器故障檢測系統,其特征在于,所述系統包括: 故障檢測模塊,用于在本次PWM中斷的時間內,對每一類待測內核寄存器中的內容進行備份,并采用存儲器測試算法對所述每一類待測內核寄存器的斷路故障進行檢測,檢測完成后,恢復相應類的內核寄存器的內容。
9.如權利要求8所述的電機控制系統中微處理器的內核寄存器故障檢測系統,其特征在于,所述系統還包括: 計算模塊,用于觸發(fā)本 次PWM中斷,在所述故障檢測模塊執(zhí)行前,根據所述本次PWM中斷,利用ADC采樣模塊在上次PWM中斷的時間內采集的電機定子線圈電流,計算所述ADC采樣模塊在下次PWM中斷的時間內的采樣時刻; 采樣觸發(fā)模塊,用于在所述本次PWM中斷的時間內,在所述故障檢測模塊執(zhí)行完畢后,打開微處理器的全局中斷,在所述上次PWM中斷的時間內計算得到的采樣時刻到達時,觸發(fā)ADC中斷,以使得所述ADC采樣模塊對電機定子線圈電流進行正常采集和轉換。
10.一種電機控制系統的微處理器,包括內核寄存器,其特征在于,所述微處理器還包括連接所述內核寄存器的故障檢測系統,所述故障檢測系統是如權利要求8或9所述的電機控制系統中微處理器的內核寄存器故障檢測系統。
【文檔編號】G05B23/02GK103744413SQ201310586787
【公開日】2014年4月23日 申請日期:2013年11月19日 優(yōu)先權日:2013年11月19日
【發(fā)明者】張倩, 金萬兵, 柯文靜 申請人:廣東威靈電機制造有限公司