具有配置字自檢功能的mcu上電啟動(dòng)方法及其自檢方法
【專利摘要】本發(fā)明提供了一種具有配置字自檢功能的MCU上電啟動(dòng)方法,提出通過(guò)簡(jiǎn)單的配置字自檢方法,在電路上電過(guò)程中增加配置字自檢過(guò)程,確認(rèn)電路加載的配置字正確后再啟動(dòng)電路的程序運(yùn)行,否則將重新加載配置字,直至配置字確認(rèn)正確為止。本發(fā)明的優(yōu)點(diǎn)是:通過(guò)增加配置字自檢這個(gè)過(guò)程,確保電路能夠進(jìn)入預(yù)期的運(yùn)行狀態(tài),保證后續(xù)程序運(yùn)行能夠正常工作,避免電路進(jìn)入不可恢復(fù)的錯(cuò)誤狀態(tài)。
【專利說(shuō)明】具有配置字自檢功能的MCU上電啟動(dòng)方法及其自檢方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及MCU類(lèi)集成電路的上電配置啟動(dòng)技術(shù),具體是一種具有配置字自檢功 能的MCU上電啟動(dòng)方法及其自檢方法。
【背景技術(shù)】
[0002] 本發(fā)明涉及MCU (微處理器)類(lèi)集成電路的上電配置啟動(dòng)技術(shù),主要是針對(duì)程序存 儲(chǔ)器為非易失型的可編程只讀存儲(chǔ)器,對(duì)電路基本配置等有上電選擇過(guò)程的MCU類(lèi)集成電 路產(chǎn)品。
[0003] 現(xiàn)在MCU類(lèi)產(chǎn)品的應(yīng)用范圍非常廣泛,特別是帶有可編程只讀存儲(chǔ)器(EPROM, EEPR0M)的MCU,針對(duì)同一款MCU產(chǎn)品,其程序靈活可變,被廣泛使用。針對(duì)不同的應(yīng)用場(chǎng) 合,對(duì)系統(tǒng)配置選擇也各有不同需求,這些配置選項(xiàng)一般存儲(chǔ)在可編程只讀存儲(chǔ)器里面,在 上電過(guò)程中被讀取并配置相應(yīng)狀態(tài)。配置字內(nèi)容一般包括:復(fù)用端口選擇,復(fù)位電壓選擇, 系統(tǒng)主/從時(shí)鐘源及其頻率選擇,看門(mén)狗選擇,保密位選擇等。
[0004] 針對(duì)此類(lèi)MCU產(chǎn)品,一旦配置字讀取錯(cuò)誤,隨即整個(gè)芯片狀態(tài)設(shè)置錯(cuò)誤會(huì)導(dǎo)致死 機(jī)并送出不可預(yù)計(jì)的錯(cuò)誤輸出結(jié)果,且不可恢復(fù),甚至可能損壞整機(jī)裝置。所以讓MCU芯片 按照需求完成上電配置使之正常工作顯得尤為重要。針對(duì)上電過(guò)程中讀取的配置字的正確 性判斷,增加合適、高效的自檢是有意義的。
[0005] 現(xiàn)有的MCU類(lèi)集成電路的上電過(guò)程如圖1所示,主要分四步完成: (1) 達(dá)到上電復(fù)位(poweron)電壓后,系統(tǒng)復(fù)位; (2) 看門(mén)狗(WDT)計(jì)數(shù)達(dá)到計(jì)數(shù)要求后,讀取存儲(chǔ)器中的配置字; (3) 電路寄存器清零,根據(jù)配置字信息配置芯片; (4) 系統(tǒng)主時(shí)鐘達(dá)到計(jì)數(shù)要求后,MCU開(kāi)始讀取程序并執(zhí)行工作。
[0006] 如上過(guò)程所述,配置字讀取后采取直接配置的方式。
[0007] 如圖1所示的上電配置過(guò)程中,并沒(méi)有對(duì)獲取得到的配置字進(jìn)行檢查就直接配 置。一旦配置字讀取出錯(cuò),系統(tǒng)又不做任何確認(rèn),整個(gè)電路的運(yùn)行就會(huì)進(jìn)入非正常狀態(tài),并 無(wú)法自行恢復(fù)。即使重新上下電,也會(huì)同樣重復(fù)進(jìn)入異常狀態(tài)。
[0008] 事實(shí)上,配置字讀錯(cuò)現(xiàn)象在可編程只讀存儲(chǔ)器的MCU類(lèi)集成電路中出現(xiàn)頻繁,在 此類(lèi)電路做可靠性實(shí)驗(yàn)室如:雷擊浪涌試驗(yàn),插拔試驗(yàn),EFT測(cè)試試驗(yàn)等過(guò)程中,該類(lèi)錯(cuò)誤 都極易發(fā)生。
[0009] 在上電過(guò)程中讀錯(cuò)配置字信息的主要原因是受電源電壓影響: (1)上電緩慢(讀取配置字時(shí)電源電壓偏低,存儲(chǔ)器結(jié)果輸出有誤)。
[0010] (2)電源波動(dòng),干擾串入,導(dǎo)致錯(cuò)誤的配置字被鎖存。
[0011] 還有一種可能情況就是原先存儲(chǔ)進(jìn)存儲(chǔ)器的配置字信息本身就存在錯(cuò)誤,因種種 操作異常而未被發(fā)現(xiàn)。對(duì)于這類(lèi)失效片,采用具有配置字自檢功能的MCU上電啟動(dòng)方法就 容易被發(fā)現(xiàn)并及時(shí)剔除。
【發(fā)明內(nèi)容】
[0012] 為了規(guī)避現(xiàn)有MCU類(lèi)(特別是存儲(chǔ)器類(lèi)型為可編程只讀存儲(chǔ)器)集成電路設(shè)計(jì)中, 因?yàn)榕渲米肿x錯(cuò)而導(dǎo)致的異常工作的問(wèn)題,本發(fā)明提供一種具有配置字自檢功能的MCU上 電啟動(dòng)方法及其自檢方法,在整個(gè)上電啟動(dòng)過(guò)程中,添加了配置字校驗(yàn)過(guò)程。
[0013] 按照本發(fā)明提供的技術(shù)方案,所述的具有配置字自檢功能的MCU上電啟動(dòng)方法, 其特征包括以下步驟: (1) 達(dá)到上電復(fù)位(poweron)電壓后,系統(tǒng)復(fù)位; (2) 看門(mén)狗(WDT)計(jì)數(shù)達(dá)到計(jì)數(shù)要求后,讀取存儲(chǔ)器中的配置字; (3) 進(jìn)行配置字自檢:將所有配置字的每個(gè)字節(jié)按位做異或運(yùn)算,將運(yùn)算結(jié)果與預(yù)存在 存儲(chǔ)器中的一個(gè)字節(jié)的配置字校驗(yàn)位比較;若不一致則重新加載配置字; (4) 配置字比較結(jié)果一致后,寄存器清零,根據(jù)配置字信息配置MCU芯片; (5) 啟動(dòng)系統(tǒng)時(shí)鐘計(jì)數(shù),系統(tǒng)主時(shí)鐘達(dá)到計(jì)數(shù)要求后,MCU開(kāi)始讀取主程序并執(zhí)行工作。
[0014] 其中的配置字自檢方法為:在MCU的存儲(chǔ)器空白區(qū)域的地址位中預(yù)先存入一個(gè)字 節(jié)的配置字校驗(yàn)位,所述配置字校驗(yàn)位為所有配置字的每個(gè)字節(jié)按位做異或運(yùn)算的結(jié)果; 在MCU讀取配置字后進(jìn)行自檢,即將所有配置字的每個(gè)字節(jié)按位做異或運(yùn)算,將運(yùn)算結(jié)果 與所述配置字校驗(yàn)位比較;若不一致則重新加載配置字;比較結(jié)果一致后,寄存器清零,根 據(jù)配置字信息配置MCU芯片。
[0015] 本發(fā)明的優(yōu)點(diǎn)是:通過(guò)增加配置字自檢這個(gè)過(guò)程,確保電路能夠進(jìn)入預(yù)期的運(yùn)行 狀態(tài),保證后續(xù)程序運(yùn)行能夠正常工作,避免電路進(jìn)入不可恢復(fù)的錯(cuò)誤狀態(tài)。
【專利附圖】
【附圖說(shuō)明】
[0016] 圖1是現(xiàn)有的MCU類(lèi)集成電路的上電過(guò)程的流程圖。
[0017] 圖2是帶本發(fā)明的MCU的上電過(guò)程的流程圖。
[0018] 圖3是實(shí)施例的存儲(chǔ)器地址分配示意圖。
[0019] 圖4是實(shí)施例的配置字自檢方法的示意圖。
【具體實(shí)施方式】
[0020] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖和實(shí)施例對(duì)本發(fā) 明作進(jìn)一步地詳細(xì)描述。
[0021] 本發(fā)明提供了增加配置字自檢的上電啟動(dòng)方法,在整個(gè)上電啟動(dòng)過(guò)程中,添加了 配置字校驗(yàn)過(guò)程,需確認(rèn)配置字讀取無(wú)誤后才能清零內(nèi)部寄存器,根據(jù)正確的配置字信息 配置芯片,啟動(dòng)系統(tǒng)時(shí)鐘計(jì)數(shù),然后再運(yùn)行MCU主程序。
[0022] 如圖2所示,本發(fā)明具有配置字自檢功能的MCU的上電過(guò)程中增加了配置字自檢 環(huán)節(jié),其上電過(guò)程主要分五步完成: (1) 達(dá)到上電復(fù)位(poweron)電壓后,系統(tǒng)復(fù)位; (2) 看門(mén)狗(WDT)計(jì)數(shù)達(dá)到計(jì)數(shù)要求后,讀取存儲(chǔ)器中的配置字; (3) 進(jìn)行配置字自檢:將所有配置字的每個(gè)字節(jié)按位做異或運(yùn)算,將運(yùn)算結(jié)果與預(yù)存在 存儲(chǔ)器中的一個(gè)字節(jié)的配置字校驗(yàn)位比較;若不一致則重新加載配置字; (4) 配置字比較結(jié)果一致后,寄存器清零,根據(jù)配置字信息配置MCU芯片; (5)啟動(dòng)系統(tǒng)時(shí)鐘計(jì)數(shù),系統(tǒng)主時(shí)鐘達(dá)到計(jì)數(shù)要求后,MCU開(kāi)始讀取主程序并執(zhí)行工作。
[0023] 圖3是存儲(chǔ)器ROM的地址分配的實(shí)施例示意圖,此實(shí)施例示意圖以2KB ROM為 例,其中定義配置字區(qū)域以3個(gè)字節(jié)為例,設(shè)定為ROM區(qū)域的最后三個(gè)地址07FDH,07FEH, 07FFH〇
[0024] 在實(shí)際設(shè)計(jì)中:(1)配置字的容量可以隨需求增加。(2)配置字的字長(zhǎng)按照實(shí)際情 況定義(如一個(gè)字節(jié)8位的二進(jìn)制數(shù)值,或一個(gè)字節(jié)16位的二進(jìn)制數(shù)值)(3)配置字的區(qū)域 可以獨(dú)立于程序存儲(chǔ)器。
[0025] 配置字的三個(gè)字節(jié)我們分別定義為word2, wordl,wordO。其中wordl和wordO用 以定義所需的配置字信息;word2為配置字校驗(yàn)位用以存放wordl和wordO的二進(jìn)制數(shù)值 按位異或以后的運(yùn)算結(jié)果。
[0026] 在實(shí)際設(shè)計(jì)中,配置字容量可能不止兩個(gè)字節(jié),無(wú)論配置字的容量多大,我們均將 所有的配置字按位做異或運(yùn)算,并將其運(yùn)算結(jié)果預(yù)先存在配置字校驗(yàn)位。配置字校驗(yàn)位的 存放地址為任何某指定的空閑地址區(qū)域。
[0027] 圖4是本發(fā)明實(shí)施例的配置字自檢方法的示意圖。按照?qǐng)D3的實(shí)施例,在MCU芯 片內(nèi)部,當(dāng)讀取到配置字信息wordl和wordO以后,在芯片內(nèi)部先做wordl和wordO按位異 或運(yùn)算,結(jié)果輸出為wordcheck。將wordcheck與配置字校驗(yàn)位word2做比較,當(dāng)兩個(gè)字節(jié) 內(nèi)容完全一致時(shí),輸出使能信號(hào)option_en為高;當(dāng)兩個(gè)字節(jié)內(nèi)容有差異時(shí),輸出使能信號(hào) option_en為低。使能信號(hào)option_en為低時(shí),需要重新獲取配置字信息,重新運(yùn)算,重新比 較,直至使能信號(hào)〇ption_en為高時(shí),再進(jìn)行下一步動(dòng)作。
[0028] 本發(fā)明的配置字的自檢方法主要是通過(guò)將所有配置字按位異或,并將得到的異或 結(jié)果與預(yù)存入的配置字校驗(yàn)位相比較,以此判斷電路上電啟動(dòng)時(shí)獲取的配置字的正確性。
[0029] 本發(fā)明提出通過(guò)簡(jiǎn)單的配置字自檢方法,在電路上電過(guò)程中增加配置字自檢過(guò) 程,確認(rèn)電路加載的配置字正常正確后再啟動(dòng)MCU的程序運(yùn)行,否則將重新加載配置字,直 至配置字正確為止。通過(guò)增加配置字自檢這個(gè)過(guò)程,確保電路能夠進(jìn)入預(yù)期的運(yùn)行狀態(tài),保 證后續(xù)程序運(yùn)行能夠正常工作,避免電路進(jìn)入不可恢復(fù)的錯(cuò)誤狀態(tài)。
[0030] 所述自檢方法簡(jiǎn)單易實(shí)現(xiàn),自檢過(guò)程迅速安全,添加的運(yùn)算和校驗(yàn)邏輯幾乎不占 芯片面積。電路通過(guò)在上電過(guò)程中自運(yùn)行配置字的自我比較和自我校正,提高了電路工作 的可靠性,是一種幾乎不耗成本的高安全設(shè)計(jì)方案。
【權(quán)利要求】
1. 具有配置字自檢功能的MCU上電啟動(dòng)方法,其特征是,包括以下步驟: (1) 達(dá)到上電復(fù)位電壓后,系統(tǒng)復(fù)位; (2) 看門(mén)狗計(jì)數(shù)達(dá)到計(jì)數(shù)要求后,讀取存儲(chǔ)器中的配置字; (3) 進(jìn)行配置字自檢:將所有配置字的每個(gè)字節(jié)按位做異或運(yùn)算,將運(yùn)算結(jié)果與預(yù)存在 存儲(chǔ)器中的一個(gè)字節(jié)的配置字校驗(yàn)位比較;若不一致則重新加載配置字; (4) 配置字比較結(jié)果一致后,寄存器清零,根據(jù)配置字信息配置MCU芯片; (5) 啟動(dòng)系統(tǒng)時(shí)鐘計(jì)數(shù),系統(tǒng)主時(shí)鐘達(dá)到計(jì)數(shù)要求后,MCU開(kāi)始讀取主程序并執(zhí)行工作。
2. 如權(quán)利要求1所述具有配置字自檢功能的MCU上電啟動(dòng)方法,其特征是,所述配置 字校驗(yàn)位預(yù)先存入存儲(chǔ)器的空白區(qū)域,其值為所有配置字的每個(gè)字節(jié)按位做異或運(yùn)算的結(jié) 果。 3. MCU上電啟動(dòng)的配置字自檢方法,其特征是,在MCU的存儲(chǔ)器中預(yù)先存入一個(gè)字節(jié) 的配置字校驗(yàn)位,所述配置字校驗(yàn)位為所有配置字的每個(gè)字節(jié)按位做異或運(yùn)算的結(jié)果;在 MCU讀取配置字后,進(jìn)行自檢,將所有配置字的每個(gè)字節(jié)按位做異或運(yùn)算,將運(yùn)算結(jié)果與所 述配置字校驗(yàn)位比較;若不一致則重新加載配置字;直至配置字比較結(jié)果一致后,寄存器 清零,根據(jù)配置字信息配置MCU芯片。
【文檔編號(hào)】G06F9/445GK104123167SQ201410385473
【公開(kāi)日】2014年10月29日 申請(qǐng)日期:2014年8月6日 優(yōu)先權(quán)日:2014年8月6日
【發(fā)明者】饒喜冰, 劉明峰, 陳恒江, 黃堅(jiān), 俞小平 申請(qǐng)人:無(wú)錫中微愛(ài)芯電子有限公司