一種指令診斷方法
【專利摘要】本發(fā)明公開了一種指令診斷方法,方法包括:S101,監(jiān)控芯片向主芯片發(fā)送指令診斷請求;S102,主芯片接收請求指令診斷,對主芯片的多個執(zhí)行指令操作結果值與相對應的多個主芯片的第一預設結果值進行比較;S103,當多個執(zhí)行指令操作結果值等于相對應的多個第一預設結果值時,則判斷指令操作為正常;或當任意一個執(zhí)行指令操作結果值大于或小于相對應的第一預設結果時,則主芯片進行復位。該指令診斷方法實現了對運行錯誤的指令進行監(jiān)控和診斷并且使用的成本很低,同時開發(fā)程序也比較簡單。
【專利說明】一種指令診斷方法
【技術領域】
[0001] 本發(fā)明涉及指令診斷,具體地,涉及一種指令診斷方法。
【背景技術】
[0002] 指令是指存儲在CPU內部,對CPU運算進行指導和優(yōu)化的硬程序。比如加法指令、 減法指令、乘法指令、除法指令等。這些指令是CPU內部固化的程序,程序員是不能對指令 程序本身進行修改或調試的。但在CPU的使用過程中,由于CPU硬件的損壞或電磁環(huán)境的 干擾,這些指令運行時有可能出現錯誤,對于嵌入式開發(fā)領域,如果這些CPU被用于與人身 安全相關的領域,如汽車、飛機等電子控制系統,為了滿足對嵌入式系統CPU高可靠性的要 求,必須對這些可能的指令運行錯誤進行監(jiān)控和診斷。
[0003] 在現有技術中,對CPU運算進行指導和優(yōu)化的方法是采用冗余系統,即用兩塊相 同的CPU或雙核的CPU,每一塊CPU或雙核CPU上的每一個運算核心,運行相同的程序,并比 對運行結果,只有兩個CPU或雙核CPU的兩個運算核心運行結果相同才能執(zhí)行動作。這種 冗余方案固然能解決指令運行錯誤診斷的問題,但兩個CPU或雙核CPU運行同一個程序,導 致了 CPU使用效率低,并且使用的成本很高,開發(fā)程序也比較復雜的問題。
【發(fā)明內容】
[0004] 本發(fā)明的目的是提供一種指令診斷方法,該指令診斷方法實現了對運行錯誤的指 令進行監(jiān)控和診斷并且使用的成本很低,同時開發(fā)程序也比較簡單。
[0005] 為了實現上述目的,本發(fā)明提供一種指令診斷方法,所述方法包括:S101,監(jiān)控芯 片向主芯片發(fā)送指令診斷請求;S102,所述主芯片接收請求指令診斷,將所述主芯片的多個 執(zhí)行指令操作結果值與相對應的多個所述主芯片的第一預設結果值進行比較;S103,當多 個所述執(zhí)行指令操作結果值等于相對應的多個所述第一預設結果值時,則判斷指令操作為 正常;或當任意一個所述執(zhí)行指令操作結果值大于或小于相對應的所述第一預設結果時, 則所述主芯片進行復位。
[0006] 優(yōu)選地,步驟S103的方法還包括:當所述主芯片執(zhí)行指令操作結果值等于所述主 芯片的預設結果值時;S201,將所有所述執(zhí)行指令操作結果值相加得到的和發(fā)送給所述監(jiān) 控芯片;S202,所述監(jiān)控芯片將所述和與第二預設結果進行比較;S203,當所述和等于所述 第二預設結果時,則判斷指令操作為正常;或當所述和大于或小于所述第二預設結果時,則 將指令診斷不通過信息發(fā)送給所述主芯片,所述主芯片進行復位。
[0007] 優(yōu)選地,在S101中,所述監(jiān)控芯片以時間間隔為一個周期向所述主芯片發(fā)送請求 指令診斷。
[0008] 進一步優(yōu)選地,所述時間間隔為10-40mS。
[0009] 更進一步優(yōu)選地,所述時間間隔為20ms。
[0010] 優(yōu)選地,在S101中,所述監(jiān)控芯片通過串行外設接口向所述主芯片發(fā)送請求指令 診斷。
[0011] 進一步優(yōu)選地,在S201中,所有所述執(zhí)行指令操作結果值相加得到的和通過串行 外設接口發(fā)送給所述監(jiān)控芯片。
[0012] 優(yōu)選地,在S102中,對多個所述執(zhí)行指令進行診斷包括:對加法指令、減法指令以 及乘法指令進行診斷。
[0013] 通過上述實施方式,本發(fā)明的指令診斷方法中的監(jiān)控芯片只需要完成相對簡單的 工作即可,可以選擇低價位的單片機來實現,主芯片則完成系統的控制功能和指令診斷子 程序,充分利用主芯片的高性能處理能力。比如一種常用的搭配組合:主芯片采用32位高 性能單片機芯片,來完成嵌入式系統的功能控制及指令診斷子程序,監(jiān)控芯片則采用價格 低廉的8位單片機芯片,來實現指令診斷功能的激活和診斷結果的對比。通過這樣的方式, 主芯片和監(jiān)控芯片的使用效率高,并且使用的成本很低,開發(fā)程序也比較簡單實用。
[0014] 本發(fā)明的其他特征和優(yōu)點將在隨后的【具體實施方式】部分予以詳細說明。
【專利附圖】
【附圖說明】
[0015] 附圖是用來提供對本發(fā)明的進一步理解,并且構成說明書的一部分,與下面的具 體實施方式一起用于解釋本發(fā)明,但并不構成對本發(fā)明的限制。在附圖中:
[0016] 圖1是本發(fā)明的【具體實施方式】中的一種指令診斷方法的流程圖;以及
[0017] 圖2是本發(fā)明的優(yōu)選實施方式中的一種指令診斷方法的流程圖。
【具體實施方式】
[0018] 以下結合附圖對本發(fā)明的【具體實施方式】進行詳細說明。應當理解的是,此處所描 述的【具體實施方式】僅用于說明和解釋本發(fā)明,并不用于限制本發(fā)明。
[0019] 圖1是本發(fā)明的優(yōu)選實施方式中的一種指令診斷方法的流程圖。以及圖2是本發(fā) 明的優(yōu)選實施方式中的一種指令診斷方法的流程圖。如圖1所示,本發(fā)明提供一種指令診 斷方法,所述方法包括:S101,監(jiān)控芯片向主芯片發(fā)送指令診斷請求,通過上述方式實現信 號控制進行診斷;S102,所述主芯片接收請求指令診斷,將所述主芯片的多個執(zhí)行指令操作 結果值與相對應的多個所述主芯片的第一預設結果值進行比較,通過上述方式實現執(zhí)行指 令操作結果值與正確值的判斷;S103,當多個所述執(zhí)行指令操作結果值等于相對應的多個 所述第一預設結果值時,則判斷指令操作為正常;或當任意一個所述執(zhí)行指令操作結果值 大于或小于相對應的所述第一預設結果時,則所述主芯片進行復位,通過上述實施方式實 現對指令操作是否正常的判斷,正常則不進行操作,不正常則所述主芯片進行復位。
[0020] 通過上述實施方式,本發(fā)明的指令診斷方法中的監(jiān)控芯片只需要完成相對簡單的 工作即可,可以選擇低價位的單片機來實現,主芯片則完成系統的控制功能和指令診斷子 程序,充分利用主芯片的高性能處理能力。比如一種常用的搭配組合:主芯片采用32位高 性能單片機芯片,來完成嵌入式系統的功能控制及指令診斷子程序,監(jiān)控芯片則采用價格 低廉的8位單片機芯片,來實現指令診斷功能的激活和診斷結果的對比。通過這樣的方式, 主芯片和監(jiān)控芯片的使用效率高,并且使用的成本很低,開發(fā)程序也比較簡單實用。
[0021] 在一種實施方式中,步驟S103的方法還包括:當所述主芯片執(zhí)行指令操作結果值 等于所述主芯片的預設結果值時;S201,將所有所述執(zhí)行指令操作結果值相加得到的和發(fā) 送給所述監(jiān)控芯片,通過監(jiān)控芯片再對所述指令操作是否正常進行判斷,通過對整體的判 斷,防止指令操作的結果值發(fā)生漏檢;S202,所述監(jiān)控芯片將所述和與第二預設結果進行比 較;S203,當所述和等于所述第二預設結果時,則判斷指令操作為正常;或當所述和大于或 小于所述第二預設結果時,則將指令診斷不通過信息發(fā)送給所述主芯片,所述主芯片進行 復位,通過上述實施方式實現對指令操作是否正常的判斷,正常則不進行操作,不正常則所 述主芯片進行復位,通過上述方式使得主芯片和監(jiān)控芯片的使用效率變高。
[0022] 在一種實施方式中,在S101中,所述監(jiān)控芯片以時間間隔為一個周期向所述主芯 片發(fā)送請求指令診斷,通過多個周期對主芯片進行實時的監(jiān)控。在優(yōu)選實施方式中,所述時 間間隔為10-40ms,可以更好的對主芯片進行實時的監(jiān)控。進一步優(yōu)選地,所述時間間隔為 20ms,這樣的效果更好。
[0023] 在一種實施方式中,在S101中,所述監(jiān)控芯片通過串行外設接口向所述主芯片發(fā) 送請求指令診斷,通過上述方式實現監(jiān)控芯片對所述主芯片的監(jiān)控管理。
[0024] 在另一種實施方式中,在S201中,所有所述執(zhí)行指令操作結果值相加得到的和通 過串行外設接口發(fā)送給所述監(jiān)控芯片,通過上述方式實現監(jiān)控芯片對所述主芯片的監(jiān)控管 理。
[0025] 在一種實施方式中,在S102中,對多個所述執(zhí)行指令進行診斷包括:對加法指令、 減法指令以及乘法指令進行診斷,通過上述方式,該方法可以對多種指令進行診斷。
[0026] 如圖2所示,在本發(fā)明所提供的一種【具體實施方式】中,本發(fā)明應用于汽車上的剎 車防抱死嵌入式控制系統,采用了英飛凌的TC1724芯片作為主芯片,為了實現對主芯片的 指令診斷,選擇飛思卡爾的低端8位單片機MC9S08QG8作為監(jiān)控芯片。主芯片和監(jiān)控芯片 之間通過SPI (串行外設接口)進行通訊。
[0027] 在主芯片上實現3個指令診斷子程序Rl、R2和R3 :
[0028] R1對加法指令進行診斷,預設操作數為1和2,預期結果為3 ;
[0029] R2對減法指令進行診斷,預設操作數為45和12,預期結果為33 ;
[0030] R3對乘法指令進行診斷,預設操作數為4和5,預期結果為20 ;
[0031] 主芯片收到指令診斷不通過信息時,進行復位操作。
[0032] 監(jiān)控芯片以20ms為周期,每20ms通過SPI接口向主芯片發(fā)出指令診斷請求。
[0033] 主芯片收到監(jiān)控芯片發(fā)來的指令診斷請求后,依次執(zhí)行指令診斷子程序Rl、R2和 R3,并將3個指令診斷子程序的結果相加,把相加的結果反饋給監(jiān)控芯片。
[0034] 監(jiān)控芯片收到主芯片發(fā)來的相加結果,與預設值56比較,如果相加結果為56,則 指令工作正常。如果相加結果不等于56,則說明指令診斷發(fā)現了錯誤,監(jiān)控芯片向主芯片發(fā) 出指令診斷不通過的信息。
[0035] 主芯片收到指令診斷不通過的信息后,進行復位操作。
[0036] 以上結合附圖詳細描述了本發(fā)明的優(yōu)選實施方式,但是,本發(fā)明并不限于上述實 施方式中的具體細節(jié),在本發(fā)明的技術構思范圍內,可以對本發(fā)明的技術方案進行多種簡 單變型,這些簡單變型均屬于本發(fā)明的保護范圍。
[0037] 另外需要說明的是,在上述【具體實施方式】中所描述的各個具體技術特征,在不矛 盾的情況下,可以通過任何合適的方式進行組合,為了避免不必要的重復,本發(fā)明對各種可 能的組合方式不再另行說明。
[0038] 此外,本發(fā)明的各種不同的實施方式之間也可以進行任意組合,只要其不違背本 發(fā)明的思想,其同樣應當視為本發(fā)明所公開的內容。
【權利要求】
1. 一種指令診斷方法,其特征在于,所述方法包括: S101,監(jiān)控芯片向主芯片發(fā)送指令診斷請求; 5102, 所述主芯片接收請求指令診斷,將所述主芯片的多個執(zhí)行指令操作結果值與相 對應的多個所述主芯片的第一預設結果值進行比較; 5103, 當多個所述執(zhí)行指令操作結果值等于相對應的多個所述第一預設結果值時,則 判斷指令操作為正常;或 當任意一個所述執(zhí)行指令操作結果值大于或小于相對應的所述第一預設結果時,則所 述主芯片進行復位。
2. 根據權利要求1所述的指令診斷方法,其特征在于,步驟S103的方法還包括:當所 述主芯片執(zhí)行指令操作結果值等于所述主芯片的預設結果值時; S201,將所有所述執(zhí)行指令操作結果值相加得到的和發(fā)送給所述監(jiān)控芯片; 5202, 所述監(jiān)控芯片將所述和與第二預設結果進行比較; 5203, 當所述和等于所述第二預設結果時,則判斷指令操作為正常;或 當所述和大于或小于所述第二預設結果時,則將指令診斷不通過信息發(fā)送給所述主芯 片,所述主芯片進行復位。
3. 根據權利要求1所述的指令診斷方法,其特征在于,在S101中,所述監(jiān)控芯片以時間 間隔為一個周期向所述主芯片發(fā)送請求指令診斷。
4. 根據權利要求3所述的指令診斷方法,其特征在于,所述時間間隔為10-40ms。
5. 根據權利要求4所述的指令診斷方法,其特征在于,所述時間間隔為20ms。
6. 根據權利要求1所述的指令診斷方法,其特征在于,在S101中,所述監(jiān)控芯片通過串 行外設接口向所述主芯片發(fā)送請求指令診斷。
7. 根據權利要求2所述的指令診斷方法,其特征在于,在S201中,所有所述執(zhí)行指令操 作結果值相加得到的和通過串行外設接口發(fā)送給所述監(jiān)控芯片。
8. 根據權利要求1所述的指令診斷方法,其特征在于,在S102中,對多個所述執(zhí)行指令 進行診斷包括:對加法指令、減法指令以及乘法指令進行診斷。
【文檔編號】G06F11/36GK104063317SQ201410284152
【公開日】2014年9月24日 申請日期:2014年6月23日 優(yōu)先權日:2014年6月23日
【發(fā)明者】謝小娟, 丁緒星, 馮友宏 申請人:安徽師范大學