片集成到MCU中),使得芯片制造工藝簡單,有效的減少了成本,并且產(chǎn)生錯(cuò)誤的概率降低。
【附圖說明】
[0048]圖1是本發(fā)明實(shí)施例一的一種MCU的系統(tǒng)配置信息的讀取方法的流程圖;
[0049]圖2是本發(fā)明實(shí)施例二的一種MCU的系統(tǒng)配置信息的讀取方法的流程圖;
[0050]圖3是本發(fā)明實(shí)施例三的一種MCU的整體結(jié)構(gòu)圖;
[0051]圖4是本發(fā)明實(shí)施例三的一種閃存配置寄存器單元的結(jié)構(gòu)框圖;
[0052]圖5是本發(fā)明實(shí)施例三的一種MCU的系統(tǒng)配置信息的讀取方法的流程圖;
[0053]圖6是本發(fā)明實(shí)施例四的一種MCU的系統(tǒng)配置信息的讀取系統(tǒng)的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0054]為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和【具體實(shí)施方式】對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說明。
[0055]MCU可以應(yīng)用于多種產(chǎn)品中,由于每個(gè)產(chǎn)品的特性都不一致,因此根據(jù)個(gè)性化需求,需要為不同產(chǎn)品定制不同功能的MCU。而要定制不同功能的MCU需要通過系統(tǒng)配置信息去配置,系統(tǒng)配置信息一般所占的空間不大,但要求該系統(tǒng)配置信息在某一特定產(chǎn)品中一直保持不變,并且系統(tǒng)掉電不丟失。
[0056]在MCU系統(tǒng)中,閃存芯片(或者其他非易失性存儲(chǔ)器)是不可或缺的,即MCU與閃存芯片連接,該連接可以是MCU與閃存芯片相互獨(dú)立并在外部物理連接(例如通過導(dǎo)線連接),也可以是將閃存芯片集成在MCU中。需要說明的是,本發(fā)明中MCU本身就與閃存芯片連接,因此不需要再額外將MCU與閃存芯片進(jìn)行外部物理連接或者額外將閃存芯片集成在MCU中,即不需要額外的特殊工藝。
[0057]閃存芯片具有掉電數(shù)據(jù)不丟失的特點(diǎn),主要用于存儲(chǔ)MCU的程序數(shù)據(jù)。一般閃存芯片的容量比較大(比如從幾十Kbytes到幾Mbytes不等),并且MCU的程序數(shù)據(jù)不會(huì)用到閃存芯片的所有空間,所以一般閃存芯片有一小部分空間不會(huì)被用到,即是空閑的。
[0058]本發(fā)明就是要通過閃存芯片中這一少量空閑空間實(shí)現(xiàn)對(duì)配置信息的存儲(chǔ)。因此在本發(fā)明中,可以將閃存芯片分為程序數(shù)據(jù)部分和系統(tǒng)配置部分這兩部分,其中,在程序數(shù)據(jù)部分存儲(chǔ)有MCU的程序數(shù)據(jù),該程序數(shù)據(jù)為系統(tǒng)運(yùn)行時(shí)所需要的程序以及常數(shù)性數(shù)據(jù);在系統(tǒng)配置部分存儲(chǔ)有MCU的系統(tǒng)配置信息,該系統(tǒng)配置信息為將MCU配置出不同功能所需的配置數(shù)據(jù)。因此,本發(fā)明中不需要在MCU中集成面積較大的0ΤΡ,從而不會(huì)增加太多MCU芯片面積,也不需要額外的特殊工藝,芯片制造工藝簡單、節(jié)約了成本。
[0059]下面,通過以下各個(gè)實(shí)施例對(duì)本發(fā)明的MCU的系統(tǒng)配置信息的讀取方法和系統(tǒng)進(jìn)行介紹。
[0060]實(shí)施例一:
[0061]參照?qǐng)D1,示出了本發(fā)明實(shí)施例一的一種MCU的系統(tǒng)配置信息的讀取方法的流程圖,該方法可以包括以下步驟:
[0062]步驟100,在所述MCU上電復(fù)位后,所述MCU從所述閃存芯片內(nèi)部的系統(tǒng)配置部分讀取所述系統(tǒng)配置信息,并將所述系統(tǒng)配置信息存儲(chǔ)到所述系統(tǒng)配置寄存器單元。
[0063]本發(fā)明實(shí)施例中,MCU包括系統(tǒng)配置寄存器單元,該系統(tǒng)配置寄存器單元主要用于存儲(chǔ)MCU的系統(tǒng)配置信息,然后在系統(tǒng)配置時(shí)為MCU提供系統(tǒng)配置信息。
[0064]由于本發(fā)明實(shí)施例中將MCU的系統(tǒng)配置信息存儲(chǔ)在閃存芯片內(nèi)部的系統(tǒng)配置部分,因此在MCU上電復(fù)位后,MCU可以自動(dòng)從閃存芯片的系統(tǒng)配置部分讀取所述系統(tǒng)配置信息,然后將所述系統(tǒng)配置信息存儲(chǔ)到所述系統(tǒng)配置寄存器單元,以供后續(xù)系統(tǒng)配置過程使用。
[0065]步驟102,所述MCU采用所述系統(tǒng)配置寄存器單元中的系統(tǒng)配置信息配置所述MCU。
[0066]MCU讀取到閃存芯片內(nèi)的系統(tǒng)配置信息并將其存儲(chǔ)至MCU中的系統(tǒng)配置寄存器單元中之后,可以采用讀取到的系統(tǒng)配置信息配置所述MCU。例如,可以將系統(tǒng)配置寄存器單元中的系統(tǒng)配置信息輸出到MCU的其他模塊中,以使MCU具有特定的功能,從而達(dá)到個(gè)性化需求。
[0067]步驟104,配置完成后,所述MCU從所述閃存芯片內(nèi)部的程序數(shù)據(jù)部分讀取所述程序數(shù)據(jù),并運(yùn)行所述程序數(shù)據(jù)。
[0068]在MCU配置完成后,即可使MCU運(yùn)行時(shí)具有某一特定的功能。首先,MCU要從所述閃存芯片內(nèi)部的程序數(shù)據(jù)部分讀取所述程序數(shù)據(jù),然后運(yùn)行所述程序數(shù)據(jù),此時(shí)MCU正常運(yùn)行。
[0069]本發(fā)明實(shí)施例中采用閃存芯片空間存儲(chǔ)系統(tǒng)配置信息,對(duì)這些系統(tǒng)配置信息進(jìn)行處理只需在MCU中增加幾個(gè)寄存器即可,因此并不會(huì)增加太多MCU芯片面積;并且,在MCU系統(tǒng)中,MCU本身就與閃存芯片連接,因此不需要增加額外的特殊工藝(即不需要額外將閃存芯片集成到MCU中),使得芯片制造工藝簡單,有效的減少了成本,并且產(chǎn)生錯(cuò)誤的概率降低。
[0070]實(shí)施例二:
[0071]參照?qǐng)D2,示出了本發(fā)明實(shí)施例二的一種MCU的系統(tǒng)配置信息的讀取方法的流程圖,該方法可以包括以下步驟:
[0072]步驟200,在所述MCU上電復(fù)位后,所述MCU從所述閃存芯片的系統(tǒng)配置部分讀取所述系統(tǒng)配置信息,并將所述系統(tǒng)配置信息存儲(chǔ)到所述系統(tǒng)配置寄存器單元。
[0073]本發(fā)明實(shí)施例中,MCU上電復(fù)位后,將自動(dòng)從閃存芯片的系統(tǒng)配置部分讀取所述系統(tǒng)配置信息,然后將所述系統(tǒng)配置信息存儲(chǔ)到所述系統(tǒng)配置寄存器單元,以供后續(xù)的系統(tǒng)配置過程使用。
[0074]步驟202,所述MCU采用所述系統(tǒng)配置寄存器單元中的系統(tǒng)配置信息配置所述MCU。
[0075]MCU要正常運(yùn)行,首先要對(duì)自身進(jìn)行配置,以使MCU可以運(yùn)行在某一特定功能上,MCU的這些功能是通過上述系統(tǒng)配置信息實(shí)現(xiàn)的,不同的系統(tǒng)配置信息可以是MCU實(shí)現(xiàn)不同的功能。因此,MCU運(yùn)行之前要采用上述系統(tǒng)配置寄存器單元中的系統(tǒng)配置信息配置所述MCU,這些系統(tǒng)配置信息可能涉及到不同模塊對(duì)應(yīng)的功能,因此可以將這些系統(tǒng)配置信息分別輸出到MCU的對(duì)應(yīng)模塊中。
[0076]步驟204,配置完成后,所述MCU從所述閃存芯片內(nèi)部的程序數(shù)據(jù)部分讀取所述程序數(shù)據(jù),并運(yùn)行所述程序數(shù)據(jù)。
[0077]在配置完成后,該MCU即可正常運(yùn)行其中的程序。MCU的程序數(shù)據(jù)存儲(chǔ)在閃存芯片的程序數(shù)據(jù)部分,因此MCU首先要從所述閃存芯片內(nèi)部的程序數(shù)據(jù)部分讀取所述程序數(shù)據(jù),并運(yùn)行所述程序數(shù)據(jù),此時(shí),MCU即可執(zhí)行程序設(shè)定的功能。
[0078]上述步驟200?步驟204是MCU正常運(yùn)行的過程,本發(fā)明實(shí)施例中還增加了對(duì)系統(tǒng)配置部分的系統(tǒng)配置信息進(jìn)行修改的功能。需要說明的是,該修改是指生產(chǎn)廠家的修改,而非用戶的修改,即生產(chǎn)廠家通過修改MCU的配置信息定制不同功能的MCU,而禁止用戶對(duì)系統(tǒng)配置信息進(jìn)行修改。
[0079]本發(fā)明實(shí)施例中,MCU還可以包括閃存配置寄存器單元,該閃存配置寄存器單元中可以包括一系列寄存器,MCU通過配置閃存配置寄存器單元可以控制MCU中的閃存控制單元的運(yùn)行,進(jìn)而實(shí)現(xiàn)對(duì)閃存芯片的操作。本發(fā)明實(shí)施例可以在MCU的閃存配置寄存器單元中增加密鑰寄存器、操作寄存器和數(shù)據(jù)寄存器,MCU通過對(duì)這些寄存器進(jìn)行配置可以實(shí)現(xiàn)對(duì)閃存芯片中的系統(tǒng)配置信息進(jìn)行修改。雖然在閃存配置寄存器單元中增加了上述寄存器,但是這些寄存器的面積較小,因此增加這些寄存器并不會(huì)導(dǎo)致MCU增加很大面積。
[0080]優(yōu)選的,本發(fā)明實(shí)施例的微控制單元MCU的系統(tǒng)配置信息的讀取方法還可以包括以下步驟:
[0081]步驟S206,當(dāng)需要修改所述系統(tǒng)配置部分的系統(tǒng)配置信息時(shí),向所述密鑰寄存器寫入一個(gè)或多個(gè)密鑰,通過配置所述密鑰寄存器將所述一個(gè)或多個(gè)密鑰與所述密鑰寄存器自身預(yù)先存儲(chǔ)的一個(gè)或多個(gè)密鑰進(jìn)行對(duì)比驗(yàn)證。
[0082]本發(fā)明實(shí)施例中,由于系統(tǒng)配置部分只用于在芯片測(cè)試階段為了定制某個(gè)特定功能的MCU,生產(chǎn)廠家將系統(tǒng)配置信息寫入閃存芯片中的系統(tǒng)配置部分,因此,用戶不可操作系統(tǒng)配置部分的系統(tǒng)配置信息。因此為了保證系統(tǒng)配置信息只可被生產(chǎn)廠家修改,而不能被用戶修改,本發(fā)明實(shí)施例中設(shè)置了密鑰寄存器,只有知道密鑰才可以對(duì)系統(tǒng)配置信息進(jìn)行修改,因此這些密鑰只有生產(chǎn)廠家才能獲得。
[0083]首先生產(chǎn)廠家在生產(chǎn)該MCU時(shí),可以在密鑰寄存器中預(yù)先存儲(chǔ)一個(gè)或多個(gè)密鑰,為了增強(qiáng)對(duì)系統(tǒng)配置信息的保護(hù),可以設(shè)置多個(gè)密鑰,只有所有密鑰驗(yàn)證成功之后才確認(rèn)最終驗(yàn)證成功,或者也可以設(shè)置當(dāng)有預(yù)設(shè)個(gè)數(shù)的密鑰驗(yàn)證成功之后確認(rèn)最終驗(yàn)證成功,本發(fā)明實(shí)施例對(duì)此并不加以限制。上述密鑰可以為一串?dāng)?shù)字(例如123456)、字母(例如abcdef)、或者數(shù)字和字母的組合(例如123abc)等形式,本發(fā)明實(shí)施例對(duì)此并不加以限制。
[0084]當(dāng)需要修改所述系統(tǒng)配置部分的系統(tǒng)配置信息時(shí)(即需要定制不同功能的MCU時(shí)),首先需要向所述密鑰寄存器寫入一個(gè)或多個(gè)密鑰,并通過配置所述密鑰寄存器將所述一個(gè)或多個(gè)密鑰與所述密鑰寄存器自身預(yù)先存儲(chǔ)的一個(gè)或多個(gè)密鑰進(jìn)行對(duì)比驗(yàn)證。如果寫入的密鑰與密鑰寄存器中預(yù)先存儲(chǔ)的密鑰全部相同,則說明驗(yàn)證成功,此時(shí)可以執(zhí)行步驟208 ;如果寫入的密鑰與密鑰寄存器中預(yù)先存儲(chǔ)的密鑰至少有一個(gè)不相同,則說明驗(yàn)證不成功,此時(shí)需要將MCU重新上電復(fù)位才能正常運(yùn)行,上電復(fù)位之后,可以返回執(zhí)行上述步驟200。
[0085]步驟208,將要寫入的系統(tǒng)配置信息寫入到所述數(shù)據(jù)寄存器中。
[0086]如果上述步驟206中驗(yàn)證成功,說明可以對(duì)閃存芯片中的系統(tǒng)配置信息進(jìn)行修改。首先可以根據(jù)預(yù)先設(shè)置的MCU要實(shí)現(xiàn)的功能獲取要寫入的系統(tǒng)配置信息,然后MCU將要寫入的系統(tǒng)配置信息寫入到閃存配置寄存器單元內(nèi)的數(shù)據(jù)寄存器中存儲(chǔ)。
[0087]步驟210,通過配置所述操作寄存器對(duì)所述系統(tǒng)配置部分的系統(tǒng)配置信息進(jìn)行擦除,并讀取所述數(shù)據(jù)寄存器中的系統(tǒng)配置信息,將所述數(shù)據(jù)寄存器中的系統(tǒng)配置信息寫入到