專(zhuān)利名稱(chēng):自啟動(dòng)串行引導(dǎo)程序加載與讀取系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本實(shí)用新型涉及程序加載系統(tǒng)領(lǐng)域,具體是指基于系統(tǒng)級(jí)芯片的自啟動(dòng)串 行引導(dǎo)程序加載與讀取系統(tǒng)。
背景技術(shù):
目前,基于系統(tǒng)級(jí)芯片(SOC芯片或DSP芯片等)的程序加載與讀取系統(tǒng), 結(jié)構(gòu)如圖1所示,包括S0C芯片或DSP芯片和用于存儲(chǔ)算法程序的外部存儲(chǔ)器, 如SPI-EEPR0M (高速同步串行口-電可擦寫(xiě)可編程只讀存儲(chǔ)器)等。其中,S0C 或DSP芯片包括CPU、程序加載模塊以及芯片內(nèi)部程序存儲(chǔ)器(RAM),該程序 加載模塊由外部接口和一個(gè)自帶初始化引導(dǎo)程序的ROM組成,所述RAM、外部 接口、自帶初始化引導(dǎo)程序的ROM分別與CPU信號(hào)連接,外部接口還外接外部 存儲(chǔ)器。該S0C或DSP芯片系統(tǒng)的程序加載方法是一種復(fù)雜的引導(dǎo)程序加載方 法,具體如下系統(tǒng)上電后,CPU讀取ROM內(nèi)的初始化引導(dǎo)程序并對(duì)其執(zhí)行解 碼等處理,對(duì)將要進(jìn)行加載算法程序的外部接口進(jìn)行讀寫(xiě)模式配置等初始化操 作,然后通過(guò)外部接口讀取外部存儲(chǔ)器中的算法程序,最后,算法程序在CPU 的控制下加載到芯片內(nèi)部程序存儲(chǔ)器(RAM)內(nèi)并執(zhí)行。
上述程序加載系統(tǒng)的程序加載方法存在的問(wèn)題是每次系統(tǒng)上電后,CPU 都要花費(fèi)一段時(shí)間來(lái)啟動(dòng)初始化引導(dǎo)程序等復(fù)雜的初始化配置。首先要花費(fèi)一 段時(shí)間對(duì)ROM內(nèi)自帶的初始化引導(dǎo)程序進(jìn)行讀取、解碼等處理,然后對(duì)將要進(jìn)
行加載算法程序的外部接口進(jìn)行讀寫(xiě)模式配置等初始化操作,最后才真正開(kāi)始 下載算法程序并執(zhí)行。啟動(dòng)初始化引導(dǎo)程序所花費(fèi)的時(shí)間拖慢了 S0C或DSP芯 片系統(tǒng)的啟動(dòng)時(shí)間。
實(shí)用新型內(nèi)容
本實(shí)用新型目的在于克服上述現(xiàn)有技術(shù)的不足,提供一種自啟動(dòng)串行引導(dǎo) 程序加載與讀取系統(tǒng),本系統(tǒng)上電后,其內(nèi)置的自啟動(dòng)串行引導(dǎo)程序加載模塊 (SSBL, Self Serial Boot Loader)無(wú)需經(jīng)過(guò)CPU的初始化配置,而直接通過(guò)標(biāo)準(zhǔn)SPI協(xié)議接口快速讀取外部SPI接口存儲(chǔ)器中的算法程序,然后通過(guò)兩路
雙向復(fù)用器(Multiplexer)將算法程序快速加載到內(nèi)部程序存儲(chǔ)器(RAM)中, 程序加載方法簡(jiǎn)單、系統(tǒng)啟動(dòng)時(shí)間短,而且容易實(shí)現(xiàn)。
本實(shí)用新型的目的通過(guò)下述技術(shù)方案實(shí)現(xiàn)自啟動(dòng)串行引導(dǎo)程序加載與讀 取系統(tǒng),包括系統(tǒng)級(jí)芯片和用于存儲(chǔ)算法程序的外部SPI接口存儲(chǔ)器,其中, 系統(tǒng)級(jí)芯片包括CPU、內(nèi)部程序存儲(chǔ)器(RAM)、自啟動(dòng)串行引導(dǎo)程序加載模 塊(SSBL, Self Serial Boot Loader)、兩路雙向復(fù)用器(Multiplexer)及標(biāo)準(zhǔn)SPI協(xié) 議接口,所述自啟動(dòng)串行引導(dǎo)程序加載模塊分別與兩路雙向復(fù)用器的輸入端I、 CPU信號(hào)連接,自啟動(dòng)串行引導(dǎo)程序加載模塊還通過(guò)標(biāo)準(zhǔn)SPI協(xié)議接口與外部 存儲(chǔ)器信號(hào)連接,同時(shí),兩路雙向復(fù)用器的輸入端II與CPU信號(hào)連接,兩路雙 向復(fù)用器的輸出端與RAM信號(hào)連接。所述自啟動(dòng)串行引導(dǎo)程序加載模塊由自啟 動(dòng)加載電路(SBL)、工作模式切換電路(SMC)、 SPI主模式電路(SPIM)組成,工 作模式切換電路分別與自啟動(dòng)加載電路、SPI主模式電路信號(hào)連接。
為了更好地實(shí)現(xiàn)本實(shí)用新型目的,所述系統(tǒng)級(jí)芯片為SOC芯片或DSP芯片, 所述用于存儲(chǔ)算法程序的外部SPI接口存儲(chǔ)器為SPI — EEPROM。
上述自啟動(dòng)串行引導(dǎo)程序加載與讀取系統(tǒng)實(shí)現(xiàn)算法程序加載和讀取的方 法,包括算法程序加載方法和讀取方法,其中,加載方法具體包括如下步驟
(1) 系統(tǒng)上電后,自啟動(dòng)串行引導(dǎo)程序加載模塊中的工作模式切換電路 (SMC)禁用SPI主模式電路(SPIM),并選通自啟動(dòng)加載電路(SBL);
(2) 自啟動(dòng)加載電路(SBL)發(fā)送復(fù)位(RESET)信號(hào)對(duì)CPU進(jìn)行復(fù)位 (RESET),同時(shí),發(fā)送選通控制信號(hào)選通兩路雙向復(fù)用器(Multiplexer)的輸入
一山 1"
頓I 5
(3) 自啟動(dòng)加載電路(SBL)控制工作模式切換電路(SMC)通過(guò)標(biāo)準(zhǔn)SPI 協(xié)議接口讀取外部SPI接口存儲(chǔ)器中的算法程序,并將所讀取的算法程序經(jīng)兩 路雙向復(fù)用器(Multiplexer)加載到內(nèi)部程序存儲(chǔ)器(RAM)中;
讀取方法具體包括以下步驟
A、 上述加載方法步驟(3)中,當(dāng)算法程序加載到內(nèi)部程序存儲(chǔ)器(RAM) 完成后,自啟動(dòng)串行引導(dǎo)程序加載模塊中的工作模式切換電路(SMC)禁用自 啟動(dòng)加載電路(SBL),并選通SPI主模式電路(SPIM),使SPI主模式電路(SPIM) 連接上外部SPI接口存儲(chǔ)器;
B、 自啟動(dòng)加載電路(SBL)發(fā)送選通控制信號(hào)使CPU進(jìn)入正 運(yùn)行狀態(tài),同時(shí),自啟動(dòng)加載電路(SBL)發(fā)送選通控制信號(hào)選通兩路雙向復(fù)用器
(Multiplexer)的輸入端II;然后,CPU通過(guò)兩路雙向復(fù)用器(Multiplexer)讀取內(nèi) 部程序存儲(chǔ)器(RAM)中的算法程序。
上述方法步驟B中,當(dāng)CPU通過(guò)兩路雙向復(fù)用器(Multiplexer)讀取內(nèi)部程 序存儲(chǔ)器(RAM)中的算法程序后,若CPU發(fā)現(xiàn)算法程序內(nèi)的代碼包含對(duì)外部 SPI接口存儲(chǔ)器的重新訪(fǎng)問(wèn),則控制SPI主模式電路(SPIM)二次讀取外部SPI接 口存儲(chǔ)器中對(duì)應(yīng)與CPU所讀取算法程序內(nèi)的代碼的算法程序,并將二次讀取的 算法程序經(jīng)兩路雙向復(fù)用器(Multiplexer) 二次加載到內(nèi)部程序存儲(chǔ)器(RAM) 中,然后,CPU通過(guò)兩路雙向復(fù)用器(Multiplexer)對(duì)二次加載到內(nèi)部程序存儲(chǔ)器 (RAM)的算法程序進(jìn)行二次讀取。
若CPU發(fā)現(xiàn)二次讀取的算法程序內(nèi)的代碼包含對(duì)外部SPI接口存儲(chǔ)器的重 新訪(fǎng)問(wèn),可以按照上述二次加載和讀取方法進(jìn)行循環(huán)多次加載和讀取操作。
本實(shí)用新型相對(duì)于現(xiàn)有技術(shù)具有如下的優(yōu)點(diǎn)及效果
(1)本實(shí)用新型自啟動(dòng)串行引導(dǎo)程序加載與讀取系統(tǒng),在進(jìn)行外部算法 程序加載時(shí),系統(tǒng)內(nèi)置的自啟動(dòng)串行引導(dǎo)程序加載模塊直接通過(guò)標(biāo)準(zhǔn)SPI協(xié)議 接口快速讀取外部SPI接口存儲(chǔ)器中的算法程序,然后通過(guò)兩路雙向復(fù)用器將 算法程序快速加載到RAM中,而無(wú)需經(jīng)過(guò)CPU的初始化配置,從而節(jié)省了現(xiàn)有 系統(tǒng)級(jí)芯片的程序加載系統(tǒng)啟動(dòng)時(shí)用在啟動(dòng)初始化引導(dǎo)程序的時(shí)間,程序加載 方法簡(jiǎn)單、程序加載所需時(shí)間短,所以系統(tǒng)啟動(dòng)時(shí)間相對(duì)于現(xiàn)有程序加載系統(tǒng) 短,而且容易實(shí)現(xiàn);
(2 )本實(shí)用新型自啟動(dòng)串行引導(dǎo)程序加載與讀取系統(tǒng)在外部算法程序加 載完成后,內(nèi)置的自啟動(dòng)串行引導(dǎo)程序加載模塊立刻選通兩路雙向復(fù)用器與 CPU的相連接的輸入端II,從而,CPU可以快速讀取RAM中的算法程序并執(zhí)行;
(3)本實(shí)用新型中,當(dāng)CPU通過(guò)兩路雙向復(fù)用器(Multiplexer)讀取內(nèi)部 程序存儲(chǔ)器(RAM)中的算法程序后,若CPU發(fā)現(xiàn)算法程序內(nèi)的代碼包含對(duì) 外部存儲(chǔ)器的重新訪(fǎng)問(wèn),則CPU可以根據(jù)算法程序內(nèi)的代碼控制SPI主模式 電路(SPIM)讀取外部SPI接口存儲(chǔ)器對(duì)應(yīng)于所述代碼的算法程序,以實(shí)現(xiàn)二次 加載或讀寫(xiě)操作,甚至于循環(huán)多次加載和讀取操作,而且多次加載和讀取操作 邏輯簡(jiǎn)單、快速、容易實(shí)現(xiàn)。
圖1為現(xiàn)有基于系統(tǒng)級(jí)芯片的程序加載與讀取系統(tǒng)的結(jié)構(gòu)示意圖; 圖2為本實(shí)用新型自啟動(dòng)串行引導(dǎo)程序加載與讀取系統(tǒng)的結(jié)構(gòu)示意圖; 圖3為本實(shí)用新型系統(tǒng)中自啟動(dòng)串行引導(dǎo)程序加載模塊的結(jié)構(gòu)示意圖; 圖4為本實(shí)用新型自啟動(dòng)串行引導(dǎo)程序加載與讀取系統(tǒng)的工作流程框圖。
具體實(shí)施方式
下面結(jié)合實(shí)施例及附圖對(duì)本實(shí)用新型作進(jìn)一步詳細(xì)的描述,但本實(shí)用新型 的實(shí)施方式不限于此。 實(shí)施例1
如圖2所示,本實(shí)用新型自啟動(dòng)串行引導(dǎo)程序加載與讀取系統(tǒng),包括SOC 芯片或DSP芯片和用于存儲(chǔ)算法程序的SPI—EEPROM,其中,SOC芯片或DSP 芯片包括CPU、內(nèi)部程序存儲(chǔ)器(RAM)、自啟動(dòng)串行引導(dǎo)程序加載模塊(SSBL, Self Serial Boot Loader)、兩路雙向復(fù)用器(Multiplexer)及標(biāo)準(zhǔn)SPI協(xié)議接口 ,所 述自啟動(dòng)串行引導(dǎo)程序加載模塊分別與兩路雙向復(fù)用器的輸入端I 、 CPU信號(hào) 連接,自啟動(dòng)串行引導(dǎo)程序加載模塊還通過(guò)標(biāo)準(zhǔn)SPI協(xié)議接口與外部存儲(chǔ)器信
號(hào)連接,同時(shí),兩路雙向復(fù)用器的輸入端n與cpu信號(hào)連接,兩路雙向復(fù)用器
的輸出端與RAM信號(hào)連接。
如圖3所示,自啟動(dòng)串行引導(dǎo)程序加載模塊由自啟動(dòng)加載電路(SBL)、工作 模式切換電路(SMC)、 SPI主模式電路(SPIM)組成,工作模式切換電路分別與 自啟動(dòng)加載電路、SPI主模式電路信號(hào)連接,工作模式切換電路根據(jù)具體情況連 通自啟動(dòng)加載電路或SPI主模式電路,以實(shí)現(xiàn)自啟動(dòng)串行引導(dǎo)程序加載模塊的 工作模式轉(zhuǎn)換。
上述自啟動(dòng)串行引導(dǎo)程序加載與讀取系統(tǒng)實(shí)現(xiàn)算法程序加載和讀取的方 法,包括算法程序加載方法和讀取方法,其中,加載方法具體包括如下步驟
(1) 系統(tǒng)上電后,自啟動(dòng)串行引導(dǎo)程序加載模塊中的工作模式切換電路 (SMC)禁用SPI主模式電路(SPIM),并選通自啟動(dòng)加載電路(SBL);
(2) 自啟動(dòng)加載電路(SBL)發(fā)送復(fù)位(RESET)信號(hào)對(duì)CPU進(jìn)行復(fù)位 (RESET),同時(shí),發(fā)送選通控制信號(hào)選通兩路雙向復(fù)用器(Multiplexer)的輸入
上山 t
順I(yè) 5
(3) 自啟動(dòng)加載電路(SBL)控制工作模式切換電路(SMC)通過(guò)標(biāo)準(zhǔn)SPI協(xié)議接口讀取外部SPI接口存儲(chǔ)器中的算法程序,并將所讀取的算法程序經(jīng)兩
路雙向復(fù)用器(Multiplexer)加載到內(nèi)部程序存儲(chǔ)器(RAM)中; 讀取方法具體包括以下步驟
A、 上述加載方法步驟(3)中,當(dāng)算法程序加載到內(nèi)部程序存儲(chǔ)器(RAM) 完成后,自啟動(dòng)串行引導(dǎo)程序加載模塊中的工作模式切換電路(SMC)禁用自 啟動(dòng)加載電路(SBL),并選通SPI主模式電路(SPIM),使SPI主模式電路(SPIM) 連接上外部SPI接口存儲(chǔ)器;
B、 自啟動(dòng)加載電路(SBL)發(fā)送選通控制信號(hào)釋放CPU,使CPU進(jìn)入正常 運(yùn)行狀態(tài),同時(shí),自啟動(dòng)加載電路(SBL)發(fā)送選通控制信號(hào)選通兩路雙向復(fù)用 器(Multiplexer)的輸入端II;然后,CPU通過(guò)兩路雙向復(fù)用器(Multiplexer)讀取 內(nèi)部程序存儲(chǔ)器(RAM)中的算法程序。
上述方法步驟B中,當(dāng)CPU通過(guò)兩路雙向復(fù)用器(Multiplexer)讀取內(nèi)部程 序存儲(chǔ)器(RAM)中的算法程序后,若CPU發(fā)現(xiàn)算法程序內(nèi)的代碼包含對(duì)外部 SPI接口存儲(chǔ)器的重新訪(fǎng)問(wèn),則控制SPI主模式電路(SPIM)二次讀取外部SPI接 口存儲(chǔ)器中對(duì)應(yīng)與CPU所讀取算法程序內(nèi)的代碼的算法程序,并將二次讀取的 算法程序經(jīng)兩路雙向復(fù)用器(Multiplexer) 二次加載到內(nèi)部程序存儲(chǔ)器(RAM) 中,然后,CPU通過(guò)兩路雙向復(fù)用器(Multiplexer)對(duì)二次加載到內(nèi)部程序存儲(chǔ)器 (RAM)的算法程序進(jìn)行二次讀取。
若CPU發(fā)現(xiàn)二次讀取的算法程序內(nèi)的代碼包含對(duì)外部SPI接口存儲(chǔ)器的重 新訪(fǎng)問(wèn),可以按照上述二次加載和讀取方法進(jìn)行循環(huán)多次加載和讀取操作。
如上所述,便可較好地實(shí)現(xiàn)本實(shí)用新型。
權(quán)利要求1、自啟動(dòng)串行引導(dǎo)程序加載與讀取系統(tǒng),包括系統(tǒng)級(jí)芯片和用于存儲(chǔ)算法程序的外部存儲(chǔ)器,系統(tǒng)級(jí)芯片包括CPU、內(nèi)部程序存儲(chǔ)器,其特征在于所述外部存儲(chǔ)器為外部SPI接口存儲(chǔ)器,所述系統(tǒng)級(jí)芯片還包括自啟動(dòng)串行引導(dǎo)程序加載模塊、兩路雙向復(fù)用器及標(biāo)準(zhǔn)SPI協(xié)議接口,所述自啟動(dòng)串行引導(dǎo)程序加載模塊分別與兩路雙向復(fù)用器的輸入端I、CPU信號(hào)連接,自啟動(dòng)串行引導(dǎo)程序加載模塊還通過(guò)標(biāo)準(zhǔn)SPI協(xié)議接口與外部存儲(chǔ)器信號(hào)連接,同時(shí),兩路雙向復(fù)用器的輸入端II與CPU信號(hào)連接,兩路雙向復(fù)用器的輸出端與RAM信號(hào)連接;所述自啟動(dòng)串行引導(dǎo)程序加載模塊由自啟動(dòng)加載電路、工作模式切換電路、SPI主模式電路組成,工作模式切換電路分別與自啟動(dòng)加載電路、SPI主模式電路信號(hào)連接。
2、 根據(jù)權(quán)利要求1所述自啟動(dòng)串行引導(dǎo)程序加載與讀取系統(tǒng),其特征在于 所述系統(tǒng)級(jí)芯片為SOC芯片或DSP芯片。
3、 根據(jù)權(quán)利要求1所述自啟動(dòng)串行引導(dǎo)程序加載與讀取系統(tǒng),其特征在于 所述外部SPI接口存儲(chǔ)器為SPI—EEPR0M。
專(zhuān)利摘要本實(shí)用新型為自啟動(dòng)串行引導(dǎo)程序加載與讀取系統(tǒng),包括系統(tǒng)級(jí)芯片和外部SPI接口存儲(chǔ)器,系統(tǒng)級(jí)芯片包括CPU、內(nèi)部程序存儲(chǔ)器、自啟動(dòng)串行引導(dǎo)程序加載模塊、兩路雙向復(fù)用器及標(biāo)準(zhǔn)SPI協(xié)議接口。自啟動(dòng)串行引導(dǎo)程序加載模塊分別與兩路雙向復(fù)用器的輸入端I、CPU連接,通過(guò)標(biāo)準(zhǔn)SPI協(xié)議接口與外部SPI接口存儲(chǔ)器連接,兩路雙向復(fù)用器的輸入端II與CPU連接,輸出端與RAM連接;自啟動(dòng)串行引導(dǎo)程序加載模塊由自啟動(dòng)加載電路、工作模式切換電路、SPI主模式電路組成。上電后,自啟動(dòng)串行引導(dǎo)程序加載模塊直接讀取外部存儲(chǔ)器中的算法程序,并快速加載到內(nèi)部程序存儲(chǔ)器,程序加載方法簡(jiǎn)單、系統(tǒng)啟動(dòng)時(shí)間短,且能進(jìn)行多次加載和讀取操作。
文檔編號(hào)G06F9/445GK201359723SQ200820206679
公開(kāi)日2009年12月9日 申請(qǐng)日期2008年12月31日 優(yōu)先權(quán)日2008年12月31日
發(fā)明者伍康文, 李世銳 申請(qǐng)人:廣州市鴻芯微電子有限公司