專利名稱:系統(tǒng)安全啟動(dòng)的方法及其裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)通信設(shè)備的啟動(dòng)技術(shù)領(lǐng)域,具體的說(shuō),特別是涉及一種系統(tǒng)安全啟動(dòng)的方法及其裝置。
背景技術(shù):
隨著數(shù)據(jù)通信設(shè)備的發(fā)展,用戶對(duì)數(shù)據(jù)通信設(shè)備的功能要求不斷的增強(qiáng),越來(lái)越多的通信設(shè)備都提供程序升級(jí)的功能,以保護(hù)用戶的投資。在用戶升級(jí)過(guò)程中,如果升級(jí)的環(huán)境比較惡劣,比如升級(jí)過(guò)程中掉電,或者升級(jí)的文件拷貝錯(cuò)誤,或者用戶對(duì)升級(jí)過(guò)程不是很熟悉而選擇的錯(cuò)誤的升級(jí)方法等等都可能導(dǎo)致數(shù)據(jù)通信設(shè)備不能正常的運(yùn)轉(zhuǎn);另外一方面,數(shù)據(jù)通信設(shè)備的程序,一般情況下都存儲(chǔ)在FLASH器件中。所述FLASH是Flash Memory的簡(jiǎn)稱,是一種可快速擦除、可現(xiàn)場(chǎng)編程的非易失性快擦寫(xiě)存儲(chǔ)器。由于FLASH器件具有非易失性,它被廣泛用于BOOTROM、在線擦寫(xiě)和掉電保護(hù)數(shù)據(jù)和分區(qū)保護(hù)數(shù)據(jù)等場(chǎng)合,在現(xiàn)代通信及微電子領(lǐng)域應(yīng)用極為廣泛。但是,在用戶升級(jí)時(shí)如果外界惡劣的使用環(huán)境可能導(dǎo)致FLASH器件的損壞,所以為提高數(shù)據(jù)通信設(shè)備的可靠性,有必要對(duì)數(shù)據(jù)通信設(shè)備的程序存儲(chǔ)空間進(jìn)行冗余設(shè)計(jì)。
目前,對(duì)數(shù)據(jù)通信的程序存儲(chǔ)空間進(jìn)行冗余設(shè)計(jì),詳見(jiàn)圖1,該圖為程序存儲(chǔ)方式的示意圖,由圖中可知,現(xiàn)在常用的方式是將數(shù)據(jù)通信設(shè)備的程序分成兩段,第一段程序?yàn)锽OOT引導(dǎo)程序,第二段程序?yàn)閼?yīng)用程序。在使用中,如果要求第一段程序不能被升級(jí),用戶只可以升級(jí)第二段的應(yīng)用程序。當(dāng)用戶升級(jí)應(yīng)用程序的時(shí)候,因誤操作、升級(jí)文件錯(cuò)誤或者其它原因,都可能導(dǎo)致升級(jí)失敗,而使系統(tǒng)無(wú)法使用。當(dāng)系統(tǒng)無(wú)法使用的時(shí)候,用戶還可以再通過(guò)第一段BOOT引導(dǎo)程序,重新啟動(dòng),即再一次升級(jí)程序,使系統(tǒng)正常工作。
但是,現(xiàn)在越來(lái)越多的數(shù)據(jù)產(chǎn)品中的電路板上只設(shè)計(jì)有一片F(xiàn)LASH,其中既存放了BOOT引導(dǎo)程序,也存放了應(yīng)用程序,而應(yīng)用程序一般都要求在線升級(jí)。FLASH芯片中的BOOT引導(dǎo)程序有可能在升級(jí)應(yīng)用程序時(shí)被誤寫(xiě),或者當(dāng)軟件出現(xiàn)故障時(shí)引起數(shù)據(jù)丟失。BOOT引導(dǎo)程序被破壞后將造成單板不能重新啟動(dòng)。
所述數(shù)據(jù)通信設(shè)備的系統(tǒng)中央處理器的系統(tǒng)設(shè)計(jì)如圖2所示,包括系統(tǒng)中央處理器11(系統(tǒng)中央處理器)、Flash1芯片12、時(shí)鐘信號(hào)15和看門(mén)狗電路16(watchdog)。其中,所述時(shí)鐘信號(hào)15、看門(mén)狗電路(watchdog)16與系統(tǒng)中央處理器11相連,系統(tǒng)中央處理器11通過(guò)地址總線、數(shù)據(jù)總線和讀寫(xiě)信號(hào)以及片選信號(hào)與Flash芯片相連。該看門(mén)狗電路用于系統(tǒng)復(fù)位,當(dāng)系統(tǒng)出現(xiàn)故障不能正常啟動(dòng)時(shí),該看門(mén)狗電路將系統(tǒng)復(fù)位,完成重新啟動(dòng)。
由此可見(jiàn),上述公開(kāi)方案的缺點(diǎn)為1)當(dāng)數(shù)據(jù)通信設(shè)備的BOOT引導(dǎo)程序和應(yīng)用程序只存在FLASH芯片中,沒(méi)有備份,當(dāng)FLASH芯片中的BOOT引導(dǎo)程序有重大缺陷,且又必須要對(duì)BOOT引導(dǎo)程序進(jìn)行升級(jí)時(shí),如果不提供BOOT引導(dǎo)程序升級(jí)的數(shù)據(jù)通信設(shè)備就無(wú)法啟動(dòng)系統(tǒng);2)當(dāng)數(shù)據(jù)通信設(shè)備的FLASH芯片因不可預(yù)知的原因(比如系統(tǒng)掉電、BOOT引導(dǎo)程序升級(jí)失敗)導(dǎo)致?lián)p壞時(shí),除非重新給FLASH芯片燒入新程序,否則,系統(tǒng)將不能重新啟動(dòng)。
發(fā)明內(nèi)容
本發(fā)明解決的技術(shù)問(wèn)題是提供一種系統(tǒng)安全啟動(dòng)的方法及其裝置,當(dāng)數(shù)據(jù)通信設(shè)備的主FLASH芯片被不可預(yù)知的原因損壞,導(dǎo)致系統(tǒng)無(wú)法啟動(dòng)時(shí),用戶可以通過(guò)使用新增的FLASH芯片,并使其作為主芯片來(lái)啟動(dòng)系統(tǒng),以實(shí)現(xiàn)數(shù)據(jù)通信設(shè)備程序的可靠備份、可靠使用及其可靠升級(jí),進(jìn)而提高數(shù)據(jù)通信設(shè)備的使用效率。
為解決上述問(wèn)題,本發(fā)明提供一種系統(tǒng)安全啟動(dòng)的方法,所述方法包括步驟A、將引導(dǎo)程序和應(yīng)用程序同時(shí)保存到第一程序掉電保存介質(zhì)和第二程序掉電保存介質(zhì)中;
B、設(shè)置用于啟動(dòng)引導(dǎo)程序和應(yīng)用程序的標(biāo)志,并保存在邏輯介質(zhì)中;C、系統(tǒng)上電后,邏輯介質(zhì)根據(jù)所述用于引導(dǎo)程序和應(yīng)用程序的啟動(dòng)標(biāo)志啟動(dòng)第一程序掉電保存介質(zhì)的程序;D、如果所述第一程序掉電保存介質(zhì)的程序啟動(dòng)失敗,啟動(dòng)第二程序掉電保存介質(zhì)的程序。
所述啟動(dòng)標(biāo)志包括高低變化的開(kāi)關(guān)信號(hào)以選擇啟動(dòng)第二還是第一程序掉電介質(zhì)的程序,當(dāng)系統(tǒng)啟動(dòng)成功時(shí),系統(tǒng)鎖定當(dāng)前開(kāi)關(guān)信號(hào)的狀態(tài)。
所述步驟C具體包括31)當(dāng)開(kāi)關(guān)信號(hào)輸出低電平時(shí),判斷第一程序掉電保存介質(zhì)的引導(dǎo)程序能否在預(yù)定時(shí)間T內(nèi)啟動(dòng);32)如果第一程序掉電保存介質(zhì)的引導(dǎo)程序能啟動(dòng),則判斷第一程序掉電保存介質(zhì)的應(yīng)用程序能否在預(yù)定時(shí)間T內(nèi)啟動(dòng);33)如果第一程序掉電保存介質(zhì)的應(yīng)用程序不能啟動(dòng),則判斷是否需要對(duì)第一程序掉電保存介質(zhì)的應(yīng)用程序升級(jí),若否,開(kāi)關(guān)信號(hào)跳轉(zhuǎn)到高電平;若是,則將開(kāi)關(guān)信號(hào)鎖定為低電平。
步驟33)中,采用下述步驟啟動(dòng)第二程序掉電保存介質(zhì)41)當(dāng)開(kāi)關(guān)信號(hào)輸出高電平時(shí),判斷第二程序掉電保存介質(zhì)的引導(dǎo)能否在預(yù)定時(shí)間T內(nèi)啟動(dòng),若能,則執(zhí)行步驟42),否則,輸出告警信號(hào);42)判斷第二程序掉電保存介質(zhì)的應(yīng)用程序能否在預(yù)定時(shí)間T內(nèi)啟動(dòng),若能,系統(tǒng)運(yùn)行正常,開(kāi)關(guān)信號(hào)輸出為高電平,否則,返回步驟41)。
所述開(kāi)關(guān)信號(hào)每隔時(shí)間T變化一次。
另外,本發(fā)明還提供一種系統(tǒng)安全啟動(dòng)裝置,包括系統(tǒng)中央處理器;第一程序掉電保存單元,用于存儲(chǔ)引導(dǎo)程序和應(yīng)用程序;第二程序掉電保存單元,用于存儲(chǔ)引導(dǎo)程序和應(yīng)用程序,通過(guò)數(shù)據(jù)總線、地址總線和控制總線分別與第一程序掉電保存介質(zhì)和系統(tǒng)中央處理器相連;邏輯單元,分別與系統(tǒng)中央處理器、第一程序掉電保存單元和第二程序掉電保存單元連接,通過(guò)設(shè)置其內(nèi)開(kāi)關(guān)信號(hào)的高低電平選擇啟動(dòng)所述第一和第二程序掉電保存單元的程序。
所述邏輯單元包括第一寄存器,其內(nèi)狀態(tài)高低變化即為所述開(kāi)關(guān)信號(hào),且狀態(tài)每隔預(yù)定的T時(shí)間變化一次;當(dāng)系統(tǒng)啟動(dòng)成功,中央處理器鎖定其當(dāng)前狀態(tài);再包括第二寄存器,用以狀態(tài)用以表示啟動(dòng)是否成功。
還包括第三寄存器,此時(shí)第三寄存器用以表示應(yīng)用程序啟動(dòng)是否成功,而第二寄存器用以表示應(yīng)用系統(tǒng)是否啟動(dòng)成功。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果本發(fā)明采用“初始備份”的方式,將用于啟動(dòng)的引導(dǎo)程序和應(yīng)用程序同時(shí)燒寫(xiě)到第一程序掉電保存介質(zhì)和第二程序掉電保存介質(zhì)(兩個(gè)閃存),當(dāng)系統(tǒng)上電,開(kāi)關(guān)信號(hào)輸出低電平時(shí),在內(nèi)分別啟動(dòng)第一程序掉電保存介質(zhì)的引導(dǎo)程序和應(yīng)用程序,若啟動(dòng)不成功,即升級(jí)失敗,或被不可預(yù)知的原因損壞,導(dǎo)致系統(tǒng)無(wú)法啟動(dòng)。當(dāng)再次上電時(shí),開(kāi)關(guān)信號(hào)輸出高電平時(shí),邏輯器件導(dǎo)通片選信號(hào)連接到第二程序掉電保存介質(zhì)上(閃存),對(duì)該器件的程序空間進(jìn)行升級(jí)操作,包括對(duì)引導(dǎo)程序和應(yīng)用程序的升級(jí)??梢陨?jí)最新的版本,也可以拷貝第二程序掉電保存介質(zhì)上的程序到第一程序掉電保存介質(zhì)中,這由用戶自由選擇,從而避免了當(dāng)數(shù)據(jù)通信設(shè)備的BOOT引導(dǎo)程序有重大缺陷時(shí)或不可預(yù)知的原因?qū)е聯(lián)p壞時(shí),系統(tǒng)將無(wú)法啟動(dòng)系統(tǒng)或永久性無(wú)法使用。因此,本發(fā)明對(duì)程序存儲(chǔ)空間的冗余設(shè)計(jì),實(shí)現(xiàn)了數(shù)據(jù)通信設(shè)備的程序的可靠備份及其升級(jí),進(jìn)而提高數(shù)據(jù)通信設(shè)備的可靠性。
圖1是現(xiàn)有技術(shù)中數(shù)據(jù)通信設(shè)備程序存儲(chǔ)方式的示意圖;圖2是現(xiàn)有技術(shù)中數(shù)據(jù)通信設(shè)備CPU系統(tǒng)設(shè)計(jì)的原理框圖;
圖3是本發(fā)明系統(tǒng)安全啟動(dòng)方法的流程圖;圖4是本發(fā)明數(shù)據(jù)通信設(shè)備程序存儲(chǔ)方式的示意圖;圖5是本發(fā)明邏輯處理流程的示意圖;圖6是本發(fā)明系統(tǒng)安全啟動(dòng)的裝置的CPU系統(tǒng)設(shè)計(jì)的原理框圖;圖7是本發(fā)明中邏輯開(kāi)關(guān)信號(hào)的示意圖。
具體實(shí)施例方式
本發(fā)明的核心在于使用兩個(gè)程序掉電保存介質(zhì)(比如,閃存,F(xiàn)ALSH芯片),分別存儲(chǔ)兩套完整的代碼。為了方便描述,下面所述兩個(gè)程序掉電保存介質(zhì)分別為第一程序掉電保存介質(zhì)和第二程序掉電保存介質(zhì)。正常處理情況下,數(shù)據(jù)通信設(shè)備的程序存儲(chǔ)在第一程序掉電保存介質(zhì)中,系統(tǒng)中央處理器通過(guò)地址總線、數(shù)據(jù)總線、讀寫(xiě)操作以及片選信號(hào)對(duì)第一程序掉電保存介質(zhì)中的引導(dǎo)程序和應(yīng)用程序進(jìn)行啟動(dòng)操作。而在本發(fā)明所述的技術(shù)方案中,首先將引導(dǎo)(Boot)和應(yīng)用程序同時(shí)固化到第一程序掉電保存介質(zhì)和第二程序掉電保存介質(zhì)中;其次,設(shè)置用于啟動(dòng)引導(dǎo)程序和應(yīng)用程序的啟動(dòng)標(biāo)志;再次,系統(tǒng)上電后,根據(jù)所述啟動(dòng)標(biāo)志啟動(dòng)第一程序掉電保存介質(zhì)的引導(dǎo)程序和應(yīng)用程序;如果用戶啟動(dòng)(升級(jí))第一程序掉電保存介質(zhì)的應(yīng)用程序失敗。用戶可以利用第一程序掉電保存介質(zhì)的BOOT程序,繼續(xù)對(duì)第一程序掉電保存介質(zhì)的應(yīng)用程序進(jìn)行啟動(dòng);如果用戶第一程序掉電保存介質(zhì)的BOOT程序啟動(dòng)也失敗時(shí),系統(tǒng)可以啟動(dòng)第二程序掉電保存介質(zhì),對(duì)第一程序掉電保存介質(zhì)器件程序存儲(chǔ)空間進(jìn)行升級(jí)操作,所述程序存儲(chǔ)方式包括BOOT程序和應(yīng)用程序,詳見(jiàn)圖3,為程序存儲(chǔ)方式的示意圖。在啟動(dòng)第二程序掉電保存介質(zhì)對(duì)第一程序掉電保存介質(zhì)進(jìn)行升級(jí)時(shí),可以采用最新的升級(jí)程序,也可以將第二程序掉電保存介質(zhì)中的程序拷貝到第一程序掉電保存介質(zhì)中,用戶可以自由的選擇采用哪種方式對(duì)第一程序掉電保存介質(zhì)的程序存儲(chǔ)空間進(jìn)行升級(jí)的操作。另外,如果第一程序掉電保存介質(zhì)由不可預(yù)知的原因?qū)е聯(lián)p壞,或者以其它原因?qū)е碌谝怀绦虻綦姳4娼橘|(zhì)再也無(wú)法啟動(dòng)起來(lái)時(shí),用戶可以使用第二程序掉電保存介質(zhì),作為主芯片來(lái)啟動(dòng)系統(tǒng)。當(dāng)?shù)诙绦虻綦姳4娼橘|(zhì)的應(yīng)用程序升級(jí)也失敗時(shí),在這種情況下,用戶可以通過(guò)不可升級(jí)的第二程序掉電保存介質(zhì)BOOT程序?qū)Φ诙绦虻綦姳4娼橘|(zhì)的應(yīng)用程序進(jìn)行升級(jí)。通過(guò)本發(fā)明所述的技術(shù)方案,實(shí)現(xiàn)了數(shù)據(jù)通信設(shè)備程序的可靠備份及其升級(jí),進(jìn)而提系統(tǒng)的可靠性。
下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的說(shuō)明。
請(qǐng)參閱圖3,為本發(fā)明系統(tǒng)安全啟動(dòng)方法的流程圖,所述方法包括步驟S10將引導(dǎo)程序和應(yīng)用程序同時(shí)保存到第一程序掉電保存介質(zhì)和第二程序掉電保存介質(zhì)中;步驟S11設(shè)置用于啟動(dòng)引導(dǎo)程序和應(yīng)用程序的標(biāo)志,并保存在邏輯介質(zhì)中;步驟S12系統(tǒng)上電后,邏輯介質(zhì)根據(jù)所述用于引導(dǎo)程序和應(yīng)用程序的啟動(dòng)標(biāo)志啟動(dòng)第一程序掉電保存介質(zhì)的程序;步驟S13如果所述第一程序掉電保存介質(zhì)的程序啟動(dòng)失敗,則啟動(dòng)第二程序掉電保存介質(zhì)的程序。
為了方便說(shuō)明,現(xiàn)將程序掉電保存介質(zhì)以閃存(FALSH芯片)為例進(jìn)行說(shuō)明。
本發(fā)明將引導(dǎo)(Boot)程序和應(yīng)用程序通過(guò)燒寫(xiě)器同時(shí)固化到FALSH1芯片和FALSH2芯片中(步驟S10),其程序的存儲(chǔ)方式詳見(jiàn)圖4;設(shè)置啟動(dòng)引導(dǎo)程序和應(yīng)用程序的啟動(dòng)標(biāo)志,并將該標(biāo)志存儲(chǔ)于邏輯介質(zhì)中(步驟S11);當(dāng)通信設(shè)備正常時(shí),根據(jù)系統(tǒng)的時(shí)鐘信號(hào)通過(guò)邏輯單元的計(jì)數(shù)器產(chǎn)生一個(gè)周期為2T的開(kāi)關(guān)信號(hào),所述周期為2T的開(kāi)關(guān)信號(hào)的寬度依據(jù)系統(tǒng)中央處理器的啟動(dòng)快慢、調(diào)試來(lái)決定的,通過(guò)邏輯編程可以控制。系統(tǒng)上電后,當(dāng)開(kāi)關(guān)信號(hào)輸出低電平時(shí),根據(jù)所述啟動(dòng)標(biāo)志即系統(tǒng)中央處理器的片選信號(hào)導(dǎo)通到第一片選信號(hào),選擇使用FLASH1芯片,當(dāng)在規(guī)定時(shí)間間隔T內(nèi),若系統(tǒng)能啟動(dòng)起來(lái)(說(shuō)明FLASH1啟動(dòng)系統(tǒng)正常),系統(tǒng)的中央處理單元會(huì)把該邏輯內(nèi)部的開(kāi)關(guān)信號(hào)強(qiáng)制設(shè)置為低電平(步驟S12)。反之,則FLASH1芯片損壞或者升級(jí)失敗導(dǎo)致程序不能啟動(dòng)起來(lái),超過(guò)開(kāi)關(guān)信號(hào)的時(shí)間T,當(dāng)邏輯單元內(nèi)部的開(kāi)關(guān)信號(hào)到達(dá)高電平時(shí),片選信號(hào)導(dǎo)通到第二片選信號(hào),從而選擇使用FLASH2芯片,當(dāng)在規(guī)定時(shí)間T內(nèi),系統(tǒng)會(huì)從FLASH2芯片中啟動(dòng)起來(lái)。當(dāng)系統(tǒng)起來(lái)后,系統(tǒng)的中央處理單元會(huì)依據(jù)邏輯單元內(nèi)部的狀態(tài),提供相應(yīng)的升級(jí)界面供用戶選擇是否升級(jí)恢復(fù)FLASH1芯片,還是就使用FLASH2芯片中的程序(步驟S13)。
所述步驟S12和步驟S13的具體實(shí)現(xiàn)過(guò)程詳見(jiàn)圖5,為本發(fā)明的邏輯處理流程。其實(shí)現(xiàn)過(guò)程為系統(tǒng)上電后,開(kāi)關(guān)信號(hào)輸出低電平時(shí),判斷FLASH1芯片的引導(dǎo)程序能否在預(yù)定內(nèi)啟動(dòng);若不能啟動(dòng),開(kāi)關(guān)信號(hào)輸出高電平;若能啟動(dòng),則判斷FLASH1芯片的應(yīng)用程序能否在預(yù)定內(nèi)啟動(dòng);如果FLASH1芯片的應(yīng)用程序不能啟動(dòng),則判斷是否需要對(duì)FLASH1芯片的應(yīng)用程序升級(jí),若是,則將開(kāi)關(guān)信號(hào)強(qiáng)制設(shè)置為低電平,否則啟動(dòng)FLASH2芯片的程序。其中所述將開(kāi)關(guān)信號(hào)強(qiáng)制設(shè)置為低電平,就是指強(qiáng)制性設(shè)置后不能再對(duì)該芯片進(jìn)行升級(jí)操作。
所述步驟S13啟動(dòng)FLASH2芯片的程序的具體實(shí)現(xiàn)過(guò)程為當(dāng)FLASH1芯片的應(yīng)用程序在不能啟動(dòng)時(shí),又不能對(duì)此升級(jí)時(shí),邏輯系統(tǒng)將開(kāi)關(guān)信號(hào)設(shè)置為高電平,即通過(guò)片選信號(hào)連接到FLASH2芯片上,判斷FLASH2芯片的引導(dǎo)程序能否在預(yù)定的內(nèi)啟動(dòng),若不能,輸出告警信號(hào),說(shuō)明該程序存儲(chǔ)芯片都不能再使用了,或打印出錯(cuò)信息;若能,則再判斷FLASH芯片的應(yīng)用程序能否也在預(yù)定的內(nèi)啟動(dòng),若能啟動(dòng),說(shuō)明系統(tǒng)運(yùn)行正常,邏輯系統(tǒng)將開(kāi)關(guān)信號(hào)設(shè)置為高電平,若不能啟動(dòng),則將開(kāi)關(guān)信號(hào)設(shè)置為低電平,重新執(zhí)行上述步驟S12。其中,所述預(yù)定時(shí)間為開(kāi)關(guān)信號(hào)的半個(gè)周期。
另外,本發(fā)明還提供一種系統(tǒng)安全啟動(dòng)裝置,詳見(jiàn)圖6,所述裝置包括系統(tǒng)中央處理器(比如BCM4704芯片)11、第一程序掉電保存單元12、第二程序掉電保存單元13和邏輯單元14;以及時(shí)鐘信號(hào)15、片選信號(hào)、第一片選信號(hào)和第二片選信號(hào)。其中所述第一程序掉電保存單元12與邏輯單元14相連,是用于存儲(chǔ)引導(dǎo)程序和應(yīng)用程序;所述第二程序掉電保存單元13,通過(guò)數(shù)據(jù)總線、地址總線和控制總線分別與第一程序掉電保存單元12和系統(tǒng)中央處理器11相連,用于備份存儲(chǔ)所述引導(dǎo)程序和應(yīng)用程序,通過(guò)第二片選信號(hào)升級(jí)第一序掉電保存單元;所述邏輯單元14,分別與系統(tǒng)中央處理器11、第一程序掉電保存單元12和第二程序掉電保存單元13相連,通過(guò)系統(tǒng)中央處理器的時(shí)鐘信號(hào)通過(guò)邏輯單元14產(chǎn)生一個(gè)周期為2T開(kāi)關(guān)信號(hào),通過(guò)設(shè)置開(kāi)關(guān)信號(hào)的高低電平來(lái)實(shí)現(xiàn)導(dǎo)通第一片選信號(hào)或第二片選信號(hào),實(shí)現(xiàn)對(duì)所述第一和第二程序掉電保存單元的控制。
所述第一和第二程序掉電保存單元包括閃存(FLASH芯片)或電可改寫(xiě)存儲(chǔ)器來(lái),只要是掉電后不丟失數(shù)據(jù)的介質(zhì)都可以。所述FLASH芯片為一種程序存儲(chǔ)空間,掉電后程序不丟失。
所述邏輯單元14,通??梢允褂每删幊踢壿嬈骷?lái)實(shí)現(xiàn);也可以通過(guò)簡(jiǎn)單的邏輯芯片進(jìn)行組合成具有邏輯功能的器件。本發(fā)明無(wú)論是采用可編程邏輯器件,還是采用簡(jiǎn)單的邏輯芯片組合成具有邏輯功能的器件。都可以實(shí)現(xiàn)開(kāi)關(guān)信號(hào)的設(shè)置來(lái)導(dǎo)通第一片選信號(hào)和第二片選信號(hào),以啟動(dòng)不同的程序存儲(chǔ)空間(即FLASH1或FLASH2第一和第二程序掉電保存單元)。
所述邏輯單元包括第一寄存器、第二寄存器、第三寄存器和計(jì)數(shù)器以及其它組合邏輯。所述計(jì)數(shù)器通常是由多個(gè)D觸發(fā)器來(lái)實(shí)現(xiàn)的。并提供計(jì)時(shí)功能,依據(jù)系統(tǒng)的時(shí)鐘,進(jìn)行計(jì)數(shù),并產(chǎn)生一個(gè)周期為2T的開(kāi)關(guān)信號(hào),所述開(kāi)關(guān)信號(hào)如圖7所示,當(dāng)開(kāi)關(guān)信號(hào)輸出低電平時(shí),第一片選信號(hào)導(dǎo)通,用戶選擇使用FLASH1芯片工作;否則,當(dāng)開(kāi)關(guān)信號(hào)輸出高電平時(shí),第二片選信號(hào)導(dǎo)通,用戶選擇使用FLASH2芯片工作。所述寄存器提供邏輯單元和系統(tǒng)中央處理器的握手功能,邏輯軟件程序運(yùn)行在系統(tǒng)中央處理器芯片中,可以讀寫(xiě)邏輯單元中寄存器的狀態(tài),從而達(dá)到系統(tǒng)中央處理器單元和邏輯單元之間的握手功能。
由圖6可知,對(duì)FLASH芯片進(jìn)行操作的地址總線、數(shù)據(jù)總線、讀寫(xiě)控制總線同時(shí)連接到兩個(gè)FLASH芯片上。片選信號(hào)通過(guò)邏輯單元,分別連接到兩個(gè)FLASH芯片上。其中片選信號(hào),讀寫(xiě)信號(hào),地址總線,數(shù)據(jù)總線都來(lái)自系統(tǒng)的系統(tǒng)中央處理器單元。而時(shí)鐘信號(hào)為數(shù)據(jù)通信設(shè)備系統(tǒng)中任何可以提供時(shí)鐘的單元(比如系統(tǒng)時(shí)鐘及其通過(guò)晶振而產(chǎn)生的時(shí)鐘信號(hào))。因此,實(shí)現(xiàn)本發(fā)明主要是賴系統(tǒng)中央處理單元對(duì)邏輯單元的控制,所述邏輯單元通過(guò)邏輯編程實(shí)現(xiàn)的對(duì)FLASH芯片的片選控制。
其邏輯實(shí)現(xiàn)的原理為首先利用邏輯單元的時(shí)鐘信號(hào)產(chǎn)生一個(gè)周期性的開(kāi)關(guān)信號(hào)。所述邏輯單元的時(shí)鐘可以通過(guò)外接一個(gè)晶振產(chǎn)成的,但通常情況下,每一個(gè)系統(tǒng)一般都由自己的時(shí)鐘,邏輯單元可以直接借用系統(tǒng)的時(shí)鐘,不需要在單板上再增加時(shí)鐘,這樣可以將低成本。所述時(shí)鐘的周期2T的寬度依據(jù)系統(tǒng)中央處理器的啟動(dòng)快慢進(jìn)行調(diào)節(jié),一般情況下,主頻高的系統(tǒng)啟動(dòng)快,如266MHz的系統(tǒng)的啟動(dòng)速度比50MHz的系統(tǒng)的啟動(dòng)速度要快很多。編程效率高的程序啟動(dòng)比編程效率低的程序啟動(dòng)要快。每個(gè)系統(tǒng)的啟動(dòng)時(shí)間都是不一樣的,因此,啟動(dòng)時(shí)間的快慢決定了邏輯單元的計(jì)數(shù)器計(jì)時(shí)的長(zhǎng)短,以發(fā)揮系統(tǒng)的最優(yōu)功能。比如一個(gè)系統(tǒng)266MHz的主頻,系統(tǒng)1分鐘就可以啟動(dòng)起來(lái),如果設(shè)計(jì)時(shí)鐘半個(gè)周期T為5分鐘,會(huì)很浪費(fèi)系統(tǒng)的資源和時(shí)間。如果將時(shí)鐘的半個(gè)周期T調(diào)節(jié)到1.2分鐘。這樣的設(shè)計(jì)是最優(yōu)設(shè)計(jì)。所述的周期性信號(hào),半個(gè)周期T要求滿足系統(tǒng)要求,也就是半個(gè)周期T的寬度依據(jù)系統(tǒng)中央處理器的啟動(dòng)快慢、調(diào)試來(lái)決定的,通過(guò)邏輯編程可以控制該過(guò)程。即在低電平時(shí),片選信號(hào)導(dǎo)通到第一片選信號(hào),從而選擇使用FLASH1芯片,當(dāng)在規(guī)定時(shí)間半個(gè)周期T內(nèi),系統(tǒng)啟動(dòng)起來(lái)(說(shuō)明FLASH1啟動(dòng)系統(tǒng)正常),系統(tǒng)的中央處理單元會(huì)把該邏輯內(nèi)部的開(kāi)關(guān)信號(hào)強(qiáng)制值為低電平。反之FLASH1芯片損壞或者升級(jí)失敗導(dǎo)而致程序不能啟動(dòng)起來(lái),當(dāng)超過(guò)時(shí)間T時(shí),邏輯單元內(nèi)部的開(kāi)關(guān)信號(hào)到達(dá)高電平時(shí),片選信號(hào)導(dǎo)通到第二片選信號(hào),從而選擇使用FLASH2芯片,系統(tǒng)在FLASH2中啟動(dòng)。當(dāng)系統(tǒng)起來(lái)后,系統(tǒng)的中央處理單元會(huì)依據(jù)邏輯單元內(nèi)部的狀態(tài),提供相應(yīng)的升級(jí)界面供用戶選擇是否升級(jí)恢復(fù)FLASH1,還是使用FLASH2中的程序。其實(shí)現(xiàn)原理為假如邏輯單元中有一個(gè)寄存器,當(dāng)系統(tǒng)按照如上所述的狀態(tài)啟動(dòng)時(shí)設(shè)置該寄存器的狀態(tài)為1,系統(tǒng)中央處理器通過(guò)讀取信號(hào)讀取該寄存器的狀態(tài)。當(dāng)寄存器狀態(tài)為0時(shí),說(shuō)明不是上述啟動(dòng)狀態(tài)0;當(dāng)寄存器為狀態(tài)為1時(shí),在系統(tǒng)中央處理器中的軟件執(zhí)行相應(yīng)的程序,提供客戶引導(dǎo)功能等人性化的界面。
為了能更清楚的描述,請(qǐng)參考下述例子系統(tǒng)上電后,假設(shè)邏輯內(nèi)部有一個(gè)第一寄存器,其內(nèi)的狀態(tài)變化表示開(kāi)關(guān)信號(hào),每隔T時(shí)間變化一次,其初始的狀態(tài)默認(rèn)為低電平,因而上電時(shí)系統(tǒng)的第一片選信號(hào)連接到FLASH1芯片上,在FLASH1芯片的程序的BOOT段程序啟動(dòng)成功時(shí),系統(tǒng)中央處理器會(huì)在邏輯單元的第二寄存器中寫(xiě)入1(上電時(shí)默認(rèn)為0);當(dāng)其應(yīng)用程序段也啟動(dòng)成功時(shí),系統(tǒng)中央處理器會(huì)在邏輯單元的另外一個(gè)第三寄存器中寫(xiě)入1(上電時(shí)默認(rèn)0);當(dāng)開(kāi)關(guān)信號(hào)的到達(dá)時(shí)間T時(shí),邏輯單元檢查上述第二和第三寄存器寫(xiě)入狀態(tài)是否相同,若相同,且為1,則表明系統(tǒng)從FLASH1中啟動(dòng)正常。如果第二寄存器的狀態(tài)為1,而第三寄存器的狀態(tài)為0,說(shuō)明FLASH1的應(yīng)用程序不正確,此時(shí)邏輯軟件輸出選擇菜單1)恢復(fù)FLASH1中的應(yīng)用程序;2)從FLASH2程序來(lái)啟動(dòng)系統(tǒng)。當(dāng)用戶選擇1時(shí),用戶開(kāi)始重新升級(jí)FLASH1中的應(yīng)用程序,然后相當(dāng)于重新上電啟動(dòng)系統(tǒng)。當(dāng)用戶選擇2時(shí),用戶開(kāi)始啟動(dòng)FLASH2的程序,來(lái)啟動(dòng)系統(tǒng)。同樣FLASH2程序的啟動(dòng)過(guò)程與FLASH1的啟動(dòng)過(guò)程相同,即先啟動(dòng)FLASH2的引導(dǎo)程序,若在時(shí)間T內(nèi)能啟動(dòng)時(shí),再啟動(dòng)FLASH2的應(yīng)用程序,如果其應(yīng)用程序也能在時(shí)間T內(nèi)啟動(dòng),則,說(shuō)明系統(tǒng)正常運(yùn)行。當(dāng)然,也可以選擇一個(gè)簡(jiǎn)化的例子來(lái)說(shuō)明即沒(méi)有第三寄存器的情況,只有第一和第二寄存器,此時(shí)第一寄存器功能不變,而第二寄存器則表征FLASH芯片是否啟動(dòng)成功,只有當(dāng)引動(dòng)程序和應(yīng)用程序都啟動(dòng)成功時(shí),才將第二寄存器置1,否則置0,意思就是說(shuō),從FLASH1芯片不能正常啟動(dòng),系統(tǒng)不會(huì)鎖定第一寄存器,當(dāng)時(shí)間T到達(dá)時(shí),第一寄存器跳轉(zhuǎn)高電平,系統(tǒng)將從FLASH2啟動(dòng)。
由上述可知,系統(tǒng)中央處理器依據(jù)邏輯單元提供的不同F(xiàn)LASH芯片的片選信號(hào),來(lái)啟動(dòng)不同的FLASH芯片。無(wú)論從哪個(gè)FLASH器件中啟動(dòng)起來(lái),都必須將啟動(dòng)狀態(tài)寫(xiě)入邏輯單元的寄存器中,使邏輯單元知道當(dāng)前系統(tǒng)中央處理器目前運(yùn)行的狀態(tài);反之,系統(tǒng)中央處理器也可以從邏輯單元中讀取到目前系統(tǒng)是從哪個(gè)FLASH器件中啟動(dòng)的,從而使用戶知道當(dāng)前數(shù)據(jù)通信設(shè)備的啟動(dòng)和運(yùn)行狀態(tài)。上述過(guò)程是由軟件程序來(lái)實(shí)現(xiàn)的,所述軟件程序存儲(chǔ)在FLASH芯片中,從啟動(dòng)FLASH的芯片后,軟件程序在系統(tǒng)中央處理器中運(yùn)行,相當(dāng)于軟件程序已經(jīng)開(kāi)始執(zhí)行,軟件程序通過(guò)系統(tǒng)中央處理器的地址總線,數(shù)據(jù)總線,讀寫(xiě)信號(hào)線或者GPIO管腳,訪問(wèn)邏輯單元中寄存器的邏輯地址空間,對(duì)所述寄存器進(jìn)行讀寫(xiě)操作,從而達(dá)到和邏輯單元握手的功能。
因此,采用本發(fā)明的技術(shù)方案具有以下技術(shù)效果A、可靠性高。本發(fā)明在解決通信設(shè)備系統(tǒng)安全啟動(dòng)的同時(shí),沒(méi)有引入新器件,也沒(méi)有引入新的輸入信號(hào)。所有關(guān)鍵器件都為普通通信系統(tǒng)所具有。B、應(yīng)用廣泛。在一般通用的系統(tǒng)CPU中都可以采用本發(fā)明。所述邏輯單元只要支持上電設(shè)置寄存器狀態(tài)即可,邏輯單元通過(guò)查找與比較系統(tǒng)上電后至少兩個(gè)寄存器存儲(chǔ)的狀態(tài)相同且為高電平(即1),來(lái)判斷是否正常啟動(dòng)或升級(jí)FLASH芯片中的程序。而對(duì)其它器件沒(méi)有要求。C、設(shè)計(jì)靈活。Boot引到程序的物理地址可以通過(guò)邏輯單元的片選信號(hào)來(lái)調(diào)整,以便于提供程序存儲(chǔ)的可靠備份及其升級(jí)。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明公開(kāi)的技術(shù)范圍內(nèi),在不脫離本發(fā)明原理的前提下,可以作出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種系統(tǒng)安全啟動(dòng)的方法,其特征在于,包括步驟A、將引導(dǎo)程序和應(yīng)用程序同時(shí)保存到第一程序掉電保存介質(zhì)和第二程序掉電保存介質(zhì)中;B、設(shè)置用于啟動(dòng)引導(dǎo)程序和應(yīng)用程序的標(biāo)志,并保存在邏輯介質(zhì)中;C、系統(tǒng)上電后,邏輯介質(zhì)根據(jù)所述用于引導(dǎo)程序和應(yīng)用程序的啟動(dòng)標(biāo)志啟動(dòng)第一程序掉電保存介質(zhì)的程序;D、如果所述第一程序掉電保存介質(zhì)的程序啟動(dòng)失敗,啟動(dòng)第二程序掉電保存介質(zhì)的程序。
2.根據(jù)權(quán)利要求1所述的系統(tǒng)安全啟動(dòng)方法,其特征在于,所述啟動(dòng)標(biāo)志包括高低變化的開(kāi)關(guān)信號(hào)以選擇啟動(dòng)第二還是第一程序掉電介質(zhì)的程序,當(dāng)系統(tǒng)啟動(dòng)成功時(shí),系統(tǒng)鎖定當(dāng)前開(kāi)關(guān)信號(hào)的狀態(tài)。
3.根據(jù)權(quán)利要求2所述的系統(tǒng)安全啟動(dòng)方法,其特征在于,所述步驟C具體包括31)當(dāng)開(kāi)關(guān)信號(hào)輸出低電平時(shí),判斷第一程序掉電保存介質(zhì)的引導(dǎo)程序能否在預(yù)定時(shí)間T內(nèi)啟動(dòng);32)如果第一程序掉電保存介質(zhì)的引導(dǎo)程序能啟動(dòng),則判斷第一程序掉電保存介質(zhì)的應(yīng)用程序能否在預(yù)定時(shí)間T內(nèi)啟動(dòng);33)如果第一程序掉電保存介質(zhì)的應(yīng)用程序不能啟動(dòng),則判斷是否需要對(duì)第一程序掉電保存介質(zhì)的應(yīng)用程序升級(jí),若否,開(kāi)關(guān)信號(hào)跳轉(zhuǎn)到高電平;若是,則將開(kāi)關(guān)信號(hào)鎖定為低電平。
4.根據(jù)權(quán)利要求3所述的系統(tǒng)安全啟動(dòng)方法,其特征在于,步驟33)中,采用下述步驟啟動(dòng)第二程序掉電保存介質(zhì)41)當(dāng)開(kāi)關(guān)信號(hào)輸出高電平時(shí),判斷第二程序掉電保存介質(zhì)的引導(dǎo)能否在預(yù)定時(shí)間T內(nèi)啟動(dòng),若能,則執(zhí)行步驟42),否則,輸出告警信號(hào);42)判斷第二程序掉電保存介質(zhì)的應(yīng)用程序能否在預(yù)定時(shí)間T內(nèi)啟動(dòng),若能,系統(tǒng)運(yùn)行正常,開(kāi)關(guān)信號(hào)輸出為高電平,否則,返回步驟41)。
5.根據(jù)權(quán)利要求2所述的系統(tǒng)安全啟動(dòng)方法,其特征在于,所述開(kāi)關(guān)信號(hào)每隔時(shí)間T變化一次。
6.一種系統(tǒng)安全啟動(dòng)裝置,包括系統(tǒng)中央處理器;其特征在于,所述裝置還包括第一程序掉電保存單元,用于存儲(chǔ)引導(dǎo)程序和應(yīng)用程序;第二程序掉電保存單元,用于存儲(chǔ)引導(dǎo)程序和應(yīng)用程序,通過(guò)數(shù)據(jù)總線、地址總線和控制總線分別與第一程序掉電保存介質(zhì)和系統(tǒng)中央處理器相連;邏輯單元,分別與系統(tǒng)中央處理器、第一程序掉電保存單元和第二程序掉電保存單元連接,通過(guò)設(shè)置其內(nèi)開(kāi)關(guān)信號(hào)的高低電平選擇啟動(dòng)所述第一和第二程序掉電保存單元的程序。
7.根據(jù)權(quán)利要求6所述的系統(tǒng)安全啟動(dòng)裝置,其特征在于,所述邏輯單元包括第一寄存器,其內(nèi)狀態(tài)高低變化即為所述開(kāi)關(guān)信號(hào),且狀態(tài)每隔預(yù)定的T時(shí)間變化一次;當(dāng)系統(tǒng)啟動(dòng)成功,中央處理器鎖定其當(dāng)前狀態(tài)。
8.根據(jù)權(quán)利要求7所述的系統(tǒng)安全啟動(dòng)裝置,其特征在于,第二寄存器,用以狀態(tài)用以表示啟動(dòng)是否成功。
9.根據(jù)權(quán)利要求8所述的系統(tǒng)安全啟動(dòng)裝置,其特征在于,還包括第三寄存器,此時(shí)第三寄存器用以表示應(yīng)用程序啟動(dòng)是否成功,而第二寄存器用以表示應(yīng)用系統(tǒng)是否啟動(dòng)成功。
全文摘要
本發(fā)明涉及一種系統(tǒng)安全啟動(dòng)的方法及裝置。所述方法包括A、將引導(dǎo)程序和應(yīng)用程序同時(shí)保存到第一和第二程序掉電保存介質(zhì)中;B、設(shè)置用于啟動(dòng)引導(dǎo)程序和應(yīng)用程序的標(biāo)志,并保存在邏輯介質(zhì)中;C、系統(tǒng)上電后,根據(jù)所述啟動(dòng)標(biāo)志啟動(dòng)第一程序掉電保存介質(zhì)的程序;D、如果所述第一程序掉電保存介質(zhì)的程序啟動(dòng)失敗,則啟動(dòng)第二程序掉電保存介質(zhì)的程序。所述裝置包括系統(tǒng)中央處理器、第一程和第二序掉電保存單元以及邏輯單元。以解決當(dāng)主FLASH芯片被損壞,導(dǎo)致系統(tǒng)無(wú)法啟動(dòng),用戶通過(guò)使用新增的FLASH芯片作為主芯片來(lái)啟動(dòng)系統(tǒng),以實(shí)現(xiàn)通信設(shè)備程序的可靠備份及其升級(jí),進(jìn)而提高通信設(shè)備的使用效率。
文檔編號(hào)G06F11/14GK1725179SQ20051007099
公開(kāi)日2006年1月25日 申請(qǐng)日期2005年5月19日 優(yōu)先權(quán)日2005年5月19日
發(fā)明者楊武 申請(qǐng)人:杭州華為三康技術(shù)有限公司