專利名稱:一種切換引導(dǎo)雙存儲(chǔ)區(qū)內(nèi)代碼的裝置、系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)啟動(dòng)技術(shù)領(lǐng)域,特別是用引導(dǎo)存儲(chǔ)器來存儲(chǔ)兩份互為備份的引導(dǎo)代碼 、并在其主引導(dǎo)代碼啟動(dòng)失敗的情況下自動(dòng)切換到備份引導(dǎo)代碼的裝置、系統(tǒng)和方法。
背景技術(shù):
計(jì)算機(jī)系統(tǒng)上電復(fù)位之后首先執(zhí)行的一部分代碼被稱為引導(dǎo)程序,引導(dǎo)程序功能是( 1)把操作系統(tǒng)軟件和其他應(yīng)用軟件裝入內(nèi)存,并跳轉(zhuǎn)到操作系統(tǒng)或應(yīng)用軟件的入口; (2) 現(xiàn)場更新操作系統(tǒng)和應(yīng)用軟件。
引導(dǎo)程序存放在可擦除的非易失性存儲(chǔ)器芯片中,例如EPROM、 EEPROM、 flash等。CPU 從一個(gè)固定的物理地址裝入引導(dǎo)程序,因此如果沒有其他附加的地址映射裝置, 一個(gè)計(jì)算機(jī) 系統(tǒng)中只能有一份引導(dǎo)程序。 一旦這個(gè)引導(dǎo)程序遭到破壞,計(jì)算機(jī)系統(tǒng)將無法啟動(dòng),這種故 障不能用現(xiàn)場更新引導(dǎo)代碼的方法來解決。
通過一個(gè)附加的地址映射和切換裝置,能夠把CPU發(fā)出的一個(gè)引導(dǎo)代碼的物理地址映射 到非易失存儲(chǔ)器的兩個(gè)不同區(qū)域上,其中一個(gè)是主引導(dǎo)區(qū),另外一個(gè)備份引導(dǎo)區(qū)。當(dāng)用主引 導(dǎo)區(qū)的引導(dǎo)代碼啟動(dòng)失敗的情況,地址映射和切換裝置可以自動(dòng)切換到備份引導(dǎo)區(qū)來裝入引 導(dǎo)代碼。這種方法可以顯著提高引導(dǎo)過程的可靠性,降低由于引導(dǎo)代碼故障導(dǎo)致的帶有CPU 小系統(tǒng)的設(shè)備的反修率。
公開號為US2004/0250058 Al、申請?zhí)枮?0/861, 737的美國發(fā)明專利申請描述了一種用 門、計(jì)數(shù)器、選擇器等數(shù)字邏輯電路實(shí)現(xiàn)的地址映射和切換方法,該發(fā)明主要存在以下不 足
1、 采用計(jì)數(shù)器來計(jì)時(shí)實(shí)現(xiàn)延時(shí)功能,電路結(jié)構(gòu)相對更復(fù)雜,成本較高;
2、 計(jì)數(shù)器的清零通過其clear引腳接收來自于CPU的高電平信號來實(shí)現(xiàn),當(dāng)CPU運(yùn)行的程 序出現(xiàn)故障的時(shí)候,如果CPU的clear引腳處于高電平狀態(tài),則上述美國專利申請中計(jì)數(shù)器一 直為零,永遠(yuǎn)不會(huì)翻轉(zhuǎn),CPU也不會(huì)復(fù)位,無法從備份區(qū)重新裝入引導(dǎo)代碼,達(dá)不到備份的 效果;
3、 該發(fā)明內(nèi)部實(shí)現(xiàn)的看門狗功能沒有電源電壓監(jiān)控功能,因此系統(tǒng)還需配置專門的電 壓監(jiān)控芯片,提高了應(yīng)用成本
發(fā)明內(nèi)容
本發(fā)明的目的是解決現(xiàn)有技術(shù)存在的結(jié)構(gòu)復(fù)雜、成本更高、易出現(xiàn)引導(dǎo)失敗的問題,提 供一種成本更低、結(jié)構(gòu)更簡單、能夠自動(dòng)切換引導(dǎo)存儲(chǔ)器上的兩份引導(dǎo)代碼的裝置,提高產(chǎn) 品中CPU系統(tǒng)啟動(dòng)的成功率,進(jìn)而提高產(chǎn)品的可靠性。
本發(fā)明的另一個(gè)目的是提供一種應(yīng)用于上述切換引導(dǎo)雙存儲(chǔ)區(qū)內(nèi)代碼的系統(tǒng),可以采用 成本更低的方案提高產(chǎn)品應(yīng)用的可靠性。
本發(fā)明還有一個(gè)目的是提供一種切換引導(dǎo)雙存儲(chǔ)區(qū)內(nèi)代碼的方法,可以采用成本更低的 方案提高產(chǎn)品應(yīng)用的可靠性。
本發(fā)明的目的分別通過下述技術(shù)方案來實(shí)現(xiàn) 一種切換引導(dǎo)雙存儲(chǔ)區(qū)內(nèi)代碼的裝置包括
定時(shí)器電路,輸出映射控制信號,接收清零信號時(shí)被清零; 定時(shí)器清零電路,接收來自于外界的清零控制信號,輸出上述清零信號; 切換執(zhí)行電路,接收來自于外界的地址輸入信號,在上述映射控制信號的控制下,輸出地 址輸出信號。
作為本發(fā)明的一個(gè)實(shí)施方式,所述定時(shí)器電路在被清零時(shí),將清零信號作為映射控制信
號輸入給切換執(zhí)行電路。
作為本發(fā)明的一個(gè)實(shí)施方式,所述定時(shí)器電路由串聯(lián)的第二電阻、第二電容構(gòu)成,兩者
的連接端與定時(shí)器清零電路連接。
作為本發(fā)明的一個(gè)實(shí)施方式,所述定時(shí)器清零電路包括串聯(lián)后與地連接的第一電阻和第
一電容,其中第一電容的另一端接收來自于外界的清零控制信號;第一電阻和第一電容的連 接端連接第一三態(tài)門的控制端,第一三態(tài)門的輸入端通過第四電阻接地,第一三態(tài)門的輸出 端與定時(shí)器連接。
作為本發(fā)明的一個(gè)實(shí)施方式,所述切換執(zhí)行電路包括第二三態(tài)門和與其輸出端連接的第 三電阻,第二三態(tài)門的輸入端接收來自于外界的地址輸入信號,其控制端連接定時(shí)器電路, 其輸出端輸出地址輸出信號。
作為本發(fā)明的一個(gè)實(shí)施方式,所述切換執(zhí)行電路包括異或門電路和與其輸出端連接的第
三電阻,該異或門電路的一個(gè)輸入端接收來自于外界的地址輸入信號,另一個(gè)輸入端連接定 時(shí)器電路,其輸出端輸出地址輸出信號。
一種切換引導(dǎo)雙存儲(chǔ)區(qū)內(nèi)代碼的系統(tǒng)包括
中央處理器,輸出清零控制信號和地址輸入信號,接收定時(shí)器狀態(tài)信號; 引導(dǎo)存儲(chǔ)器,在其兩個(gè)區(qū)域內(nèi)各存儲(chǔ)有一份彼此相同的引導(dǎo)代碼,接收地址輸出信號;地址映射和切換電路,接收清零控制信號和地址輸入信號,輸出定時(shí)器狀態(tài)信號和地址 輸出信號;
看門狗電路,在引導(dǎo)存儲(chǔ)器上其中一個(gè)區(qū)域內(nèi)引導(dǎo)代碼被引導(dǎo)失敗的時(shí)候,該看門狗電
路復(fù)位中央處理器,然后從另一個(gè)區(qū)域內(nèi)裝入引導(dǎo)代碼。
所述地址映射和切換電路包括定時(shí)器電路、定時(shí)器清零電路、切換執(zhí)行電路; 所述定時(shí)器電路由串聯(lián)的第二電阻、第二電容構(gòu)成,兩者的連接端與定時(shí)器清零電路、
切換執(zhí)行電路連接;
所述定時(shí)器清零電路包括串聯(lián)后與地連接的第一電阻和第一電容,其中第一電容的另一 端接收來自于外界的清零控制信號;第一電阻和第一電容的連接端連接第一三態(tài)門的控制端 ,第一三態(tài)門的輸入端通過第四電阻接地,第一三態(tài)門的輸出端與定時(shí)器連接;
所述切換執(zhí)行電路包括第二三態(tài)門和與其輸出端連接的第三電阻,第二三態(tài)門的輸入端 接收來自于外界的地址輸入信號,其控制端連接定時(shí)器電路,其輸出端輸出地址輸出信號。
一種切換引導(dǎo)雙存儲(chǔ)區(qū)內(nèi)代碼的方法包括
中央處理器和弓1導(dǎo)存儲(chǔ)器之間通過地址映射和切換電路映射引導(dǎo)存儲(chǔ)區(qū)高位地址信號; 地址映射和切換電路根據(jù)是否接收到中央處理器輸出的表示正常的周期性高電平脈沖映
射引導(dǎo)存儲(chǔ)區(qū)高位地址信號;
如果是正常狀態(tài),則中央處理器的啟動(dòng)地址信號被地址映射和切換電路映射到弓1導(dǎo)存儲(chǔ)
器的主引導(dǎo)區(qū),引導(dǎo)讀取主引導(dǎo)區(qū)內(nèi)的代碼,中央處理器啟動(dòng)成功后持續(xù)輸出周期性高電平
脈沖;
如果是故障狀態(tài),則中央處理器的啟動(dòng)地址信號被地址映射和切換電路映射到弓1導(dǎo)存儲(chǔ) 器的備份引導(dǎo)區(qū),引導(dǎo)讀取備份引導(dǎo)區(qū)內(nèi)的代碼,中央處理器啟動(dòng)成功后不輸出周期性高電 平脈沖。
上述方法中,所述中央處理器從主引導(dǎo)區(qū)啟動(dòng),地址映射和切換電路輸出表示正常狀態(tài) 的狀態(tài)信號;中央處理器從備份引導(dǎo)區(qū)啟動(dòng),地址映射和切換電路輸出表示故障狀態(tài)的狀態(tài) 信號,中央處理器檢驗(yàn)地址映射和切換電路的狀態(tài)信號,判斷是正常啟動(dòng)狀態(tài)還是故障啟動(dòng) 狀態(tài)。
本發(fā)明采用上述結(jié)構(gòu)和/或方法,利用電阻、電容構(gòu)成的RC延時(shí)計(jì)時(shí)器,具有結(jié)構(gòu)簡單 、成本更低的優(yōu)點(diǎn);而在中央處理器運(yùn)行的程序出現(xiàn)故障時(shí),本發(fā)明的計(jì)時(shí)器會(huì)超時(shí)溢出, 而發(fā)出故障啟動(dòng)的信號。本發(fā)明具有的其它有益效果,將在具體實(shí)施方式
中進(jìn)一步說明。
本發(fā)明將通過例子并參照附圖的方式說明,其中
圖l是本發(fā)明的系統(tǒng)結(jié)構(gòu)示意圖2是本發(fā)明的裝置結(jié)構(gòu)示意圖3是本發(fā)明的引導(dǎo)存儲(chǔ)器示意圖4是本發(fā)明的裝置的另一實(shí)施例結(jié)構(gòu)示意圖5是本發(fā)明的方法示意圖。
具體實(shí)施例方式
一種應(yīng)用于CPU和弓1導(dǎo)存儲(chǔ)器之間的裝置,可以將CPU的弓1導(dǎo)地址或啟動(dòng)地址映射到弓1導(dǎo)
存儲(chǔ)器的主引導(dǎo)區(qū),或在主引導(dǎo)區(qū)出現(xiàn)故障時(shí),引導(dǎo)至備份引導(dǎo)區(qū)。 一個(gè)典型的實(shí)施例中, 引導(dǎo)存儲(chǔ)器是可擦除的非易失性存儲(chǔ)器,其中兩個(gè)存儲(chǔ)區(qū)域內(nèi)分別存儲(chǔ)有一份彼此相同的引 導(dǎo)代碼,這兩個(gè)存儲(chǔ)區(qū)域可以互為主、備,即其中一個(gè)是主引導(dǎo)區(qū),另一個(gè)則是備份引導(dǎo)區(qū)
一般情況下,CPU芯片上電復(fù)位之后,會(huì)從引導(dǎo)存儲(chǔ)器的一個(gè)固定的物理地址裝入第一
條指令,并開始運(yùn)行這條指令,這個(gè)地址稱為啟動(dòng)地址。后續(xù)裝入指令的地址由程序控制邏
輯來決定。CPU芯片啟動(dòng)地址由三部分構(gòu)成高位、中間位、低位。多數(shù)CPU的啟動(dòng)地址的中 間位全為0,例如Freescale PowerPC芯片啟動(dòng)地址為0xfff00100 (或者0x00000100)。 實(shí)施例l:
如圖2所示,上述能夠自動(dòng)切換引導(dǎo)雙存儲(chǔ)區(qū)內(nèi)代碼裝置為地址映射和切換電路100,包
括
定時(shí)器電路103,輸出映射控制信號,接收清零信號時(shí)被清零;
定時(shí)器清零電路101,接收來自于外界的清零控制信號,輸出上述清零信號,所述清零控 制信號為高電平脈沖信號;
切換執(zhí)行電路102,接收來自于外界的地址輸入信號,在上述映射控制信號的控制下,輸出 地址輸出信號。
地址映射和切換電路100可以是一種封裝的模塊、芯片或集成電路,具有四個(gè)外部引腳 ,分別是
status引腳,即狀態(tài)引腳,這是一個(gè)輸出引腳,它與CPU的一個(gè)配置為輸入的GPIO引腳 相連,地址映射和切換電路100用這個(gè)引腳輸出當(dāng)前啟動(dòng)過程是處于"正常狀態(tài)",還是" 故障狀態(tài)"。當(dāng)status輸出低電平的時(shí)候,表示當(dāng)前處于"正常狀態(tài)",引導(dǎo)代碼從引導(dǎo)存 儲(chǔ)器的主引導(dǎo)區(qū)裝入;clear引腳,即清零引腳,這是一個(gè)輸入引腳,它與CPU的一個(gè)配置為輸出的GPIO引腳相 連,當(dāng)這個(gè)引腳上定期輸出高電平脈沖信號的時(shí)候,地址輸出引腳fA18總是輸出高電平;當(dāng) 這個(gè)引腳上無電平信號輸出或者輸出固定不變的電平信號時(shí),地址輸出引腳fA18的電平信號 總是與地址輸入引腳cA18的電平信號相等。在系統(tǒng)上電引導(dǎo)階段的正常啟動(dòng)過程中,CPU通 過GPIO引腳定期輸出高電平脈沖,通過這種方式通知地址映射和切換電路當(dāng)前CPU引導(dǎo)程序 運(yùn)行正常,不需要切換到備份引導(dǎo)區(qū)裝入程序;在故障啟動(dòng)階段和主程序運(yùn)行階段,這個(gè)引 腳上不輸出任何信號,fA18引腳的電平信號總是與cA18引腳的電平信號相等;
cA18引腳,即地址輸入引腳,它與CPU地址總線中的一條地址線相連。通過調(diào)整與CPU相 連的地址引腳編號,可以調(diào)整引導(dǎo)區(qū)代碼的大小。例如cA18如果與CPU的A18相連,則主引 導(dǎo)區(qū)和備份引導(dǎo)區(qū)的大小都是256KByte,如果與CPU的A19引腳相連,則主引導(dǎo)區(qū)和備份引導(dǎo) 區(qū)的大小都是512Kbyte;
fA18引腳,即地址輸出引腳,它與flash地址總線中對應(yīng)的一條地址線相連。在正常引 導(dǎo)過程中,這個(gè)引腳上固定輸出高電平;在故障引導(dǎo)過程中或者主程序階段,這個(gè)引腳的電 平信號與cA18引腳信號相同。
更具體的是,如圖2所示,定時(shí)器清零電路101包括串聯(lián)后與地連接的第一電阻R1和第一 電容C1,其中第一電容Cl的另一端接收來自于CPU的清零控制信號,即與clear引腳相連,第 一電阻R1的另一端接地;第一電阻R1和第一電容C1的連接端連接第一三態(tài)門U1—A的控制端, 第一三態(tài)門U1—A的輸入端通過第四電阻R4接地,第一三態(tài)門U1—A的輸出端與定時(shí)器電路103 連接。
如圖2所示,切換執(zhí)行電路102包括第二三態(tài)門U1—B和與該三態(tài)門輸出端連接的第三電阻 R3,第三電阻R3的另一端與電源VCC連接,第二三態(tài)門U1—B的輸入端接收來自于CPU的地址輸 入信號(即與cA18引腳相連),其控制端連接定時(shí)器電路103,其輸出端輸出地址輸出信號 (即與fA18引腳相連)。
如圖2所示,定時(shí)器電路103由串聯(lián)的第二電阻R2、第二電容C2構(gòu)成,兩者的連接端與定 時(shí)器清零電路101的第一三態(tài)門U1—A的輸出端、切換執(zhí)行電路102的第二三態(tài)門U1—B的控制端 以及status引腳連接。
本實(shí)施例利用了CPU啟動(dòng)地址中間位一般是O的特點(diǎn),并且可以用同一個(gè)三態(tài)門芯片上的 U1—A和U1—B兩路三態(tài)門來實(shí)現(xiàn)相應(yīng)的功能。
本實(shí)施例中,圖2所示的地址映射和切換電路100利用中央處理器CPU輸出的啟動(dòng)地址中 間位為O的這個(gè)特點(diǎn),通過控制地址線的中間某一位變?yōu)?來把中央處理器CPU輸出的啟動(dòng)地
9址重映射到另外一個(gè)地址,例如在freescale的PowerPC上控制地址位A18,則把0x00000100 重映射到0x00040100,并把重映射之后的地址作為主引導(dǎo)區(qū)的地址,正常啟動(dòng)過程中這種重 映射總是會(huì)被執(zhí)行。當(dāng)主引導(dǎo)區(qū)出現(xiàn)故障的時(shí)候,把這一位地址恢復(fù)為O,變?yōu)閺膫浞菀龑?dǎo) 區(qū)啟動(dòng)。
實(shí)施例2:
除切換執(zhí)行電路102的具體結(jié)構(gòu)與實(shí)施例1不同,其它電路結(jié)構(gòu)與實(shí)施例l相同。
如果啟動(dòng)地址的中間位不為O,或者系統(tǒng)中剛好有一路空余的異或門XOR,則可以利用一 個(gè)異或門X0R實(shí)現(xiàn)上述第二三態(tài)門U1—B和第三電阻R3構(gòu)成的切換執(zhí)行電路,如圖4所示。其中 異或門X0R的一個(gè)輸入端與cA18引腳相連,接收來自于中央處理器CPU的地址輸入信號;另一 個(gè)輸入端連接定時(shí)器電路中第二電阻R2和第二電容C2的連接端;其輸出端連接第三電阻R3和 fA18引腳,輸出地址輸出信號。
本實(shí)施例中,當(dāng)用異或門XOR實(shí)現(xiàn)切換執(zhí)行電路的時(shí)候,主引導(dǎo)區(qū)地址與中央處理器 CPU啟動(dòng)地址相同。
實(shí)施例3:
一種切換引導(dǎo)雙存儲(chǔ)區(qū)內(nèi)代碼的系統(tǒng)如圖l所示,包括
中央處理器CPU,輸出清零控制信號clear和地址輸入信號cA18,接收定時(shí)器狀態(tài)信號 status;
引導(dǎo)存儲(chǔ)器flash,在其兩個(gè)區(qū)域內(nèi)各存儲(chǔ)有一份彼此相同的引導(dǎo)代碼,接收地址輸出
信號fA18;
地址映射和切換電路IOO,接收清零控制信號clear和地址輸入信號cA18,輸出定時(shí)器狀 態(tài)信號status和地址輸出信號fA18;
看門狗電路,在引導(dǎo)存儲(chǔ)器上其中一個(gè)區(qū)域內(nèi)引導(dǎo)代碼被引導(dǎo)失敗的時(shí)候,該看門狗電 路復(fù)位中央處理器,然后從另一個(gè)區(qū)域內(nèi)裝入引導(dǎo)代碼。
中央處理器CPU與弓1導(dǎo)存儲(chǔ)器flash之間還有通過控制總線CTRLs傳遞的控制信號、通過 數(shù)據(jù)總線DATAs傳遞的數(shù)據(jù)信號,通過地址總線A0-A17、 A19-A25傳遞地址信號,地址總線的 中間一條地址線A18則通過地址映射和切換電路100與引導(dǎo)存儲(chǔ)器傳遞信號。
如圖1所示,本實(shí)施例中與中央處理器CPU連接的看門狗電路,可以采用市場上銷售的商 品化看門狗芯片,實(shí)現(xiàn)"電源電壓監(jiān)控"和"軟件死機(jī)監(jiān)控"兩種功能,在引導(dǎo)區(qū)上引導(dǎo) 失敗的時(shí)候,該看門狗電路復(fù)位CPU,然后從備份引導(dǎo)區(qū)引導(dǎo)程序。
其中地址映射和切換電路100可以是如圖2所示實(shí)施例1的結(jié)構(gòu),也可以是如圖4所示實(shí)施例2的結(jié)構(gòu),根據(jù)具體的中央處理器CPU及系統(tǒng)的實(shí)際情況而定。
以圖2所示的地址映射和切換電路100應(yīng)用于本實(shí)施例的系統(tǒng)而言,定時(shí)器清零電路102 的第一電容Cl的一端通過clear引腳(即清零引腳)接收中央處理器CPU輸出的清零控制信號 clear,切換執(zhí)行電路102的第二三態(tài)門U1—B的輸入端通過cA18引腳(即地址輸入引腳)接收 地址輸入信號cA18,第二三態(tài)門U1—B的輸出端通過fA18引腳(即地址輸出引腳)輸出地址輸 出信號fA18,定時(shí)器電路103的第二電阻R2、第二電容C2的連接端通過status引腳(即狀態(tài)引 腳)輸出定時(shí)器狀態(tài)信號status。
本實(shí)施例通過在中央處理器CPU芯片和弓1導(dǎo)存儲(chǔ)器flash芯片之間插入一個(gè)地址映射和切 換電路IOO,在一片引導(dǎo)存儲(chǔ)器flash芯片的兩個(gè)區(qū)域內(nèi)存儲(chǔ)有兩份完全相同的引導(dǎo)代碼,其 中一份作為主引導(dǎo)代碼,正常情況下使用主引導(dǎo)代碼來啟動(dòng)并裝入后續(xù)程序,當(dāng)其引導(dǎo)代碼 被破壞的時(shí)候,使用備份引導(dǎo)代碼來啟動(dòng)并引導(dǎo)程序,以達(dá)到增強(qiáng)系統(tǒng)容錯(cuò)性能,提高系統(tǒng) 可靠性的目的。
上述實(shí)施例的地址映射和切換電路1 OO及其被應(yīng)用的系統(tǒng)的工作原理如下
本發(fā)明把從系統(tǒng)上電啟動(dòng)開始到關(guān)機(jī)的整個(gè)程序運(yùn)行過程分為"啟動(dòng)階段"和"主程序 階段"兩個(gè)階段。啟動(dòng)階段又分為"正常啟動(dòng)"和"故障啟動(dòng)"兩種類型。圖l所示地址映 射和切換電路只對啟動(dòng)階段起作用。在主程序運(yùn)行階段,cA18與fA18的信號總是相等的,地 址映射和切換電路作用被屏蔽掉了 ,就像系統(tǒng)中不存在地址映射和切換電路一樣。
如圖2所示,地址映射和切換電路100的定時(shí)器清零電路101接收到c 1 ear引腳輸入的來自 于中央處理器CPU的高電平脈沖的時(shí)候,在第一三態(tài)門U1—A的輸出端Point—C點(diǎn)輸出低電平清 零信號。當(dāng)clear引腳長時(shí)間保持低電平、高電平或者高阻狀態(tài)的時(shí)候,貝ljPoint—D點(diǎn)變?yōu)榈?電平狀態(tài),第一三態(tài)門U1—A的輸出變?yōu)楦咦锠顟B(tài),不輸出清零信號。
如圖2所示,切換執(zhí)行電路102的第二三態(tài)門U1—B的控制端為低電平時(shí),其輸出端保持高 阻狀態(tài),由于第三電阻R3的上拉作用,此時(shí)地址輸出引腳fA18上輸出固定的高電平信號,當(dāng) 中央處理器CPU通過地址輸入引腳cA18輸出的地址為0x00000000-0x0003ffff范圍(如圖3所 示,即引導(dǎo)存儲(chǔ)器的備份引導(dǎo)區(qū))時(shí),被重映射到flash地址的0x00040000-0x0007ffff范圍 (主引導(dǎo)區(qū))。當(dāng)?shù)诙龖B(tài)門U1—B的控制端為高電平時(shí),此時(shí)地址輸出引腳fA18的輸出信號 與地址輸入引腳cA18的輸入信號電平相同,被引導(dǎo)的flash地址與CPU輸出地址相同。當(dāng)用三 態(tài)門和電阻構(gòu)成地址映射和切換的執(zhí)行電路的時(shí)候,主引導(dǎo)區(qū)的地址與中央處理器CPU的啟 動(dòng)地址不同,是中央處理器CPU啟動(dòng)地址的被控制位經(jīng)過反向之后的地址。備份引導(dǎo)區(qū)的地 址與中央處理器CPU的啟動(dòng)地址相同。如圖2所示,定時(shí)器電路103中的第二電阻R2和第二電容C2的連接端既是輸入端( Point—C點(diǎn)),也是輸出端(Point—B點(diǎn))。當(dāng)它沒超時(shí)溢出的時(shí)候,在Point—B點(diǎn)輸出一個(gè) 低電平信號;超時(shí)溢出的時(shí)候在Point—B點(diǎn)的輸出一個(gè)高電平信號。Point—C點(diǎn)是這個(gè)定時(shí)器 的清零信號的輸入端,當(dāng)Point—C點(diǎn)輸入低電平的時(shí)候,第二電容C2放電,定時(shí)器清零。當(dāng) 第一三態(tài)門U1—A在Point—C點(diǎn)的輸出為高阻狀態(tài)時(shí),第二電容C2通過第二電阻R2緩慢充電。 若充電過程中未被清零,則一段時(shí)間之后Point—B點(diǎn)電壓變?yōu)楦唠娖?,定時(shí)器溢出。 point—B點(diǎn)的電平信號表示定時(shí)器是否溢出的狀態(tài),這個(gè)信號被連接到中央處理器CPU的一個(gè) 配置為輸入的GPIO引腳上,可以通過軟件讀這個(gè)引腳的電平值來判斷是正常啟動(dòng),還是故障 啟動(dòng)。
以圖l、圖2所示電路結(jié)構(gòu)和圖5所示流程圖為例,進(jìn)一步說明本發(fā)明切換引導(dǎo)雙存儲(chǔ)區(qū) 內(nèi)代碼的方法。
一次正常的CPU啟動(dòng)過程包括如下步驟
中央處理器CPU上電復(fù)位,并通過總線重讀取第一條指令,指令地址為0x00000100。中 央處理器CPU在總線輸出的第一條指令地址0x00000100經(jīng)過地址映射和切換電路之后變?yōu)?0x00040100,中央處理器CPU實(shí)際上是從flash上0x00040100這地址裝入了第一條指令。
中央處理器CPU繼續(xù)裝入后續(xù)指令,這些指令的地址被地址映射和切換電路100重新映射 到主引到區(qū)。
如圖5所示,中央處理器CPU程序運(yùn)行過程中,讀取status引腳邏輯值為0,判斷這是一 次正常啟動(dòng)過程,則每隔一段時(shí)間,在clear引腳上輸出一個(gè)高電平脈沖,清零第二電阻R2 和第二電容C2構(gòu)成的RC定時(shí)器。
引導(dǎo)程序運(yùn)行結(jié)束前,軟件等待status引腳邏輯值變?yōu)閘,再開始運(yùn)行主程序。
而一次有故障的CPU啟動(dòng)過程包括如下步驟
中央處理器CPU上電復(fù)位,并通過總線讀取第一條指令,指令地址為0x00000100,中央 處理器CPU在總線輸出的第一條指令地址0x00000100經(jīng)過地址映射和切換電路100之后變?yōu)?0x00040100,中央處理器CPU實(shí)際上是從引導(dǎo)存儲(chǔ)器flash上0x00040100這個(gè)地址裝入了第一 條指令,即主引導(dǎo)區(qū)。
中央處理器CPU繼續(xù)裝入后續(xù)指令,這些指令的地址被地址切換和映射電路映射重新映 射到主引到區(qū)。
如圖5所示,中央處理器CPU引導(dǎo)程序運(yùn)行過程中,讀取status引腳邏輯值為O,判斷這 是一次正常啟動(dòng)過程,則每隔一段時(shí)間,在clear引腳上輸入一個(gè)高電平脈沖,清零第二電阻R2和第二電容C2構(gòu)成的RC定時(shí)器。
由于主引導(dǎo)區(qū)上存儲(chǔ)的代碼被破壞,這時(shí)中央處理器CPU變?yōu)?死機(jī)"狀態(tài),即陷入某 一段非法的代碼區(qū)運(yùn)行。此時(shí)中央處理器CPU不能定期在clear引腳上輸出高電平脈沖信號, clear引腳變?yōu)楣潭ǖ母唠娖交虻碗娖?,同時(shí)中央處理器CPU也不能正常輸出看門狗信號。
一段時(shí)間之后,圖2中Point—D點(diǎn)變?yōu)榈碗娖?,并一直保持低電平狀態(tài),第一三態(tài)門 U1—A保持關(guān)斷狀態(tài)。再過一段時(shí)間之后,第二電阻R2和第二電容C2構(gòu)成的定時(shí)器超時(shí)溢出, Point—B點(diǎn)電壓為高電平,第二三態(tài)門U1—B變?yōu)殚_通狀態(tài),則中央處理器CPU輸出的地址將不 再被重映射。
再過一段時(shí)間之后,看門狗電路超時(shí),中央處理器CPU被重新復(fù)位。 中央處理器CPU通過總線讀取第一條指令,指令地址為0x00000100,經(jīng)過地址映射和切
換電路1 OO之后的地址依然是0x00000100 ,中央處理器CPU從引導(dǎo)存儲(chǔ)器flash上的備份引導(dǎo)
區(qū)裝入指令。
中央處理器cpu引導(dǎo)程序運(yùn)行過程中,判斷status讀出的邏輯值為l,判斷這是一次故障 啟動(dòng)過程,可知主引導(dǎo)記錄已經(jīng)被損壞,以后運(yùn)行過程中不再定時(shí)輸出clear引腳上的高電 平脈沖信號,以保持從備份引導(dǎo)區(qū)裝入指令。
引導(dǎo)程序運(yùn)行結(jié)束后,開始運(yùn)行主程序。
從上述各實(shí)施例可以看出,本發(fā)明與現(xiàn)有技術(shù)的公開號為US2004/0250058 Al、申請?zhí)?為10/861, 737的美國發(fā)明專利申請相比,具有如下優(yōu)點(diǎn)
1、 本發(fā)明使用RC電路實(shí)現(xiàn)延時(shí)功能,電路簡單,成本低;
2、 現(xiàn)有技術(shù)中,clear引腳用高電平信號來清零延時(shí)計(jì)數(shù)器,而本發(fā)明用clear引腳上 周期性輸出高電平脈沖信號來為延時(shí)RC電路進(jìn)行放電。當(dāng)CPU運(yùn)行的程序出現(xiàn)故障的時(shí)候, 如果CPU的clear引腳處于高電平狀態(tài),則現(xiàn)有技術(shù)的計(jì)數(shù)器一直為零,永遠(yuǎn)不會(huì)翻轉(zhuǎn),CPU 也不會(huì)復(fù)位,無法從備份區(qū)重新裝入引導(dǎo)代碼,達(dá)不到備份的效果,而本發(fā)明則不存在這個(gè) 問題;
3、 本發(fā)明的地址映射和切換裝置只使用一根地址線,不比較高位地址線,不關(guān)心CPU訪 問的地址是否為引導(dǎo)代碼存儲(chǔ)區(qū)。本發(fā)明的判斷是否需要對地址進(jìn)行重映射的方法是把運(yùn) 行過程分成"啟動(dòng)"和"正常運(yùn)行"兩個(gè)階段,只對啟動(dòng)階段進(jìn)行重映射,在正常運(yùn)行階段 不進(jìn)行重映射,直接把cA18和fA18連通(見圖l),因而本發(fā)明的方法簡化了電路版布線,減 少了電路版面積,成本更低。
4、 本發(fā)明的地址切換和映射電路中不包括看門狗功能,在引導(dǎo)區(qū)上引導(dǎo)失敗的時(shí)候,利用外部看門狗電路復(fù)位CPU,然后從備份引導(dǎo)區(qū)引導(dǎo)代碼。目前市場上銷售的商品化看門
狗芯片成本很低,而且具有"電源電壓監(jiān)控"和"軟件死機(jī)監(jiān)控"兩種功能,而現(xiàn)有技術(shù)內(nèi) 部實(shí)現(xiàn)的看門狗功能沒有電源電壓監(jiān)控功能,因此系統(tǒng)還需配置專門的電壓監(jiān)控芯片。相對 于現(xiàn)有技術(shù)來說,本發(fā)明節(jié)約了成本。
本說明書中公開的所有特征,或公開的所有方法或過程中的步驟,除了互相排斥的特征 和/或步驟以外,均可以以任何方式組合。
本說明書(包括任何附加權(quán)利要求、摘要和附圖)中公開的任一特征,除非特別敘述, 均可被其他等效或具有類似目的的替代特征加以替換。g卩,除非特別敘述,每個(gè)特征只是一 系列等效或類似特征中的一個(gè)例子而已。
本發(fā)明并不局限于前述的具體實(shí)施方式
。本發(fā)明擴(kuò)展到任何在本說明書中披露的新特征 或任何新的組合,以及披露的任一新的方法或過程的步驟或任何新的組合。
權(quán)利要求
1.一種切換引導(dǎo)雙存儲(chǔ)區(qū)內(nèi)代碼的裝置,其特征在于,包括定時(shí)器電路,輸出映射控制信號,接收清零信號時(shí)被清零;定時(shí)器清零電路,接收來自于外界的清零控制信號,輸出上述清零信號;切換執(zhí)行電路,接收來自于外界的地址輸入信號,在上述映射控制信號的控制下,輸出地址輸出信號。
2 如權(quán)利要求l所述一種切換引導(dǎo)雙存儲(chǔ)區(qū)內(nèi)代碼的裝置,其特征在 于,所述定時(shí)器電路在被清零時(shí),將清零信號作為映射控制信號輸入給切換執(zhí)行電路。
3 如權(quán)利要求l所述一種切換引導(dǎo)雙存儲(chǔ)區(qū)內(nèi)代碼的裝置,其特征在 于,所述定時(shí)器電路由串聯(lián)的第二電阻、第二電容構(gòu)成,兩者的連接端與定時(shí)器清零電路連 接。
4 如權(quán)利要求l所述一種切換引導(dǎo)雙存儲(chǔ)區(qū)內(nèi)代碼的裝置,其特征在 于,所述定時(shí)器清零電路包括串聯(lián)后與地連接的第一電阻和第一電容,其中第一電容的另一 端接收來自于外界的清零控制信號;第一電阻和第一電容的連接端連接第一三態(tài)門的控制端 ,第一三態(tài)門的輸入端通過第四電阻接地,第一三態(tài)門的輸出端與定時(shí)器連接; 所述清零控制信號為高電平脈沖信號。
5 如權(quán)利要求l所述一種切換引導(dǎo)雙存儲(chǔ)區(qū)內(nèi)代碼的裝置,其特征在 于,所述切換執(zhí)行電路包括第二三態(tài)門和與其輸出端連接的第三電阻,第二三態(tài)門的輸入端 接收來自于外界的地址輸入信號,其控制端連接定時(shí)器電路,其輸出端輸出地址輸出信號。
6 如權(quán)利要求l所述一種切換引導(dǎo)雙存儲(chǔ)區(qū)內(nèi)代碼的裝置,其特征在 于,所述切換執(zhí)行電路包括異或門電路和與其輸出端連接的第三電阻,該異或門電路的一個(gè) 輸入端接收來自于外界的地址輸入信號,另一個(gè)輸入端連接定時(shí)器電路,其輸出端輸出地址 輸出信號。
7 如權(quán)利要求3所述所述一種切換引導(dǎo)雙存儲(chǔ)區(qū)內(nèi)代碼的裝置,其特征在于,所述定時(shí)器清零電路包括串聯(lián)后與地連接的第一電阻和第一電容,其中第一電容的 另一端接收來自于外界的清零控制信號;第一電阻和第一電容的連接端連接第一三態(tài)門的控 制端,第一三態(tài)門的輸入端通過第四電阻接地,第一三態(tài)門的輸出端與定時(shí)器連接;所述切換執(zhí)行電路包括第二三態(tài)門和與其輸出端連接的第三電阻,第二三態(tài)門的 輸入端接收來自于外界的地址輸入信號,其控制端連接定時(shí)器電路,其輸出端輸出地址輸出 信號。
8.一種切換引導(dǎo)雙存儲(chǔ)區(qū)內(nèi)代碼的系統(tǒng),其特征在于,包括 中央處理器,輸出清零控制信號和地址輸入信號,接收定時(shí)器狀態(tài)信號; 引導(dǎo)存儲(chǔ)器,在其兩個(gè)區(qū)域內(nèi)各存儲(chǔ)有一份彼此相同的引導(dǎo)代碼,接收地址輸出信號地址映射和切換電路,接收清零控制信號和地址輸入信號,輸出定時(shí)器狀態(tài)信號和地 址輸出信號;看門狗電路,在引導(dǎo)存儲(chǔ)器上其中一個(gè)區(qū)域內(nèi)引導(dǎo)代碼被引導(dǎo)失敗的時(shí)候,該看門狗電路復(fù)位中央處理器,然后從另一個(gè)區(qū)域內(nèi)裝入引導(dǎo)代碼。所述地址映射和切換電路包括定時(shí)器電路、定時(shí)器清零電路、切換執(zhí)行電路; 所述定時(shí)器電路由串聯(lián)的第二電阻、第二電容構(gòu)成,兩者的連接端與定時(shí)器清零電路、切換執(zhí)行電路連接;所述定時(shí)器清零電路包括串聯(lián)后與地連接的第一電阻和第一電容,其中第一電容的另 一端接收來自于外界的清零控制信號;第一電阻和第一電容的連接端連接第一三態(tài)門的控制 端,第一三態(tài)門的輸入端通過第四電阻接地,第一三態(tài)門的輸出端與定時(shí)器連接;所述切換執(zhí)行電路包括第二三態(tài)門和與其輸出端連接的第三電阻,第二三態(tài)門的輸入 端接收來自于外界的地址輸入信號,其控制端連接定時(shí)器電路,其輸出端輸出地址輸出信號
9. 一種切換引導(dǎo)雙存儲(chǔ)區(qū)內(nèi)代碼的方法,其特征在于,包括 中央處理器和弓1導(dǎo)存儲(chǔ)器之間通過地址映射和切換電路映射引導(dǎo)存儲(chǔ)區(qū)高位地址信號地址映射和切換電路根據(jù)是否接收到中央處理器輸出的表示正常的周期性高電平脈沖 映射引導(dǎo)存儲(chǔ)區(qū)高位地址信號;如果是正常狀態(tài),則中央處理器的啟動(dòng)地址信號被地址映射和切換電路映射到弓1導(dǎo)存儲(chǔ)器的主引導(dǎo)區(qū),引導(dǎo)讀取主引導(dǎo)區(qū)內(nèi)的代碼,中央處理器啟動(dòng)成功后持續(xù)輸出周期性高電 平脈沖;如果是故障狀態(tài),則中央處理器的啟動(dòng)地址信號被地址映射和切換電路映射到弓1導(dǎo)存 儲(chǔ)器的備份引導(dǎo)區(qū),引導(dǎo)讀取備份引導(dǎo)區(qū)內(nèi)的代碼,中央處理器啟動(dòng)成功后不輸出周期性高 電平脈沖。
10.如權(quán)利要求9所述一種切換引導(dǎo)雙存儲(chǔ)區(qū)內(nèi)代碼的方法,其特征 在于,中央處理器從主引導(dǎo)區(qū)啟動(dòng),地址映射和切換電路輸出表示正常狀態(tài)的狀態(tài)信號;中 央處理器從備份引導(dǎo)區(qū)啟動(dòng),地址映射和切換電路輸出表示故障狀態(tài)的狀態(tài)信號,中央處理 器檢驗(yàn)地址映射和切換電路的狀態(tài)信號,判斷是正常啟動(dòng)狀態(tài)還是故障啟動(dòng)狀態(tài)。
全文摘要
本發(fā)明公開了一種切換引導(dǎo)雙存儲(chǔ)區(qū)內(nèi)代碼的裝置、系統(tǒng)及方法,涉及計(jì)算機(jī)啟動(dòng)技術(shù)領(lǐng)域,目的是解決現(xiàn)有技術(shù)存在的結(jié)構(gòu)復(fù)雜、成本更高、易出現(xiàn)引導(dǎo)失敗的問題,裝置包括定時(shí)器電路,輸出映射控制信號,接收清零信號時(shí)被清零;定時(shí)器清零電路,接收來自于外界的清零控制信號,輸出上述清零信號;切換執(zhí)行電路,接收來自于外界的地址輸入信號,在上述映射控制信號的控制下,輸出地址輸出信號,其中定時(shí)器電路為由電阻和電容構(gòu)成的RC延時(shí)電路;方法包括中央處理器檢驗(yàn)地址映射和切換電路的狀態(tài)信號,判斷是正常狀態(tài)還是故障狀態(tài),然后由地址映射和切換電路分別映射中央處理器的啟動(dòng)地址信號到引導(dǎo)存儲(chǔ)器的主引導(dǎo)區(qū)或備份引導(dǎo)區(qū)。
文檔編號G06F9/445GK101599024SQ20091030493
公開日2009年12月9日 申請日期2009年7月29日 優(yōu)先權(quán)日2009年7月29日
發(fā)明者馮克平, 巖 黃 申請人:邁普通信技術(shù)股份有限公司