一種mcu中的系統(tǒng)配置信息的讀取方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及MCU技術(shù)領(lǐng)域,特別是涉及一種MCU中的系統(tǒng)配置信息的讀取方法和系統(tǒng)。
【背景技術(shù)】
[0002]微控制單元(Micro Control Unit, MCU),又稱單片微型計算機(Single ChipMicrocomputer, SCM)或者單片機,是指隨著大規(guī)模集成電路的出現(xiàn)及其發(fā)展,將計算機的中央處理器(Central Processing Unit,CPU)、隨機存儲器(Random Access Memory,RAM)、只讀存儲器(Read-Only Memory, ROM)、定時計數(shù)器和多種1/0接口集成在一片芯片上,形成芯片級的計算機,為不同的應用場合做不同組合控制。
[0003]MCU可以應用于多種產(chǎn)品中,由于每個產(chǎn)品的特性都不一致,如不同閃存容量、不同內(nèi)存容量大小、不同外設(shè)、某種功能是否打開等,不同的產(chǎn)品可能用于不同用戶、不同應用場景,因此根據(jù)個性化需求,需要為不同產(chǎn)品定制不同功能的MCU。而要定制不同功能的MCU需要通過系統(tǒng)配置信息去配置,系統(tǒng)配置信息一般所占的空間不大(比如幾十個bytes),但要求該系統(tǒng)配置信息在某一特定產(chǎn)品中一直保持不變,并且系統(tǒng)掉電不丟失。
[0004]目前較為常用的是一次性可編程(One Time Programmable, OTP)技術(shù),將OTP集成到MCU中,每個產(chǎn)品的系統(tǒng)配置信息都存儲在OTP中。MCU在測試階段同時可以通過某個測試用例,將系統(tǒng)配置信息一次性燒寫到OTP中,在MCU運行時,將OTP中的系統(tǒng)配置信息讀到系統(tǒng)中。OTP可以保證編程后數(shù)據(jù)掉電不丟失。
[0005]但是,上述方法存在以下缺點:由于將OTP集成到MCU中,并且OTP的面積較大,因此會使MCU增加較大的面積;制造工藝復雜,OTP與標準單元庫的工藝不一樣,可能會產(chǎn)生兼容性問題,雖然現(xiàn)在的芯片生產(chǎn)廠家此類工藝比較成熟,但仍然會增加生產(chǎn)過程中的流程,額外增加費用;產(chǎn)生錯誤概率增加,由于制造工藝不同,產(chǎn)生錯誤概率增加,從而導致芯片成品率降低。
【發(fā)明內(nèi)容】
[0006]本發(fā)明提供一種MCU中的系統(tǒng)配置信息的讀取方法和系統(tǒng),以解決目前的OTP技術(shù)導致的在MCU中集成OTP使MCU增加較大的面積、制造工藝復雜、以及產(chǎn)生錯誤概率增加的問題。
[0007]為了解決上述問題,本發(fā)明公開了一種微控制單元MCU的系統(tǒng)配置信息的讀取方法,其特征在于,所述MCU與閃存芯片連接,所述MCU包括系統(tǒng)配置寄存器單元,所述閃存芯片包括系統(tǒng)配置部分和程序數(shù)據(jù)部分,所述系統(tǒng)配置部分存儲有所述MCU的系統(tǒng)配置信息,所述程序數(shù)據(jù)部分存儲有所述MCU的程序數(shù)據(jù),
[0008]所述方法包括:
[0009]在所述MCU上電復位后,所述MCU從所述閃存芯片的系統(tǒng)配置部分讀取所述系統(tǒng)配置信息,并將所述系統(tǒng)配置信息存儲到所述系統(tǒng)配置寄存器單元;
[0010]所述MCU采用所述系統(tǒng)配置寄存器單元中的系統(tǒng)配置信息配置所述MCU ;
[0011]配置完成后,所述MCU從所述閃存芯片內(nèi)部的程序數(shù)據(jù)部分讀取所述程序數(shù)據(jù),并運行所述程序數(shù)據(jù)。
[0012]可選地,所述MCU還包括閃存配置寄存器單元,所述閃存配置寄存器單元包括操作寄存器和數(shù)據(jù)寄存器,
[0013]所述方法還包括:
[0014]當需要修改所述系統(tǒng)配置部分的系統(tǒng)配置信息時,將要寫入的系統(tǒng)配置信息寫入到所述數(shù)據(jù)寄存器中;
[0015]通過配置所述操作寄存器對所述系統(tǒng)配置部分的系統(tǒng)配置信息進行擦除,并讀取所述數(shù)據(jù)寄存器中的系統(tǒng)配置信息,將所述數(shù)據(jù)寄存器中的系統(tǒng)配置信息寫入到所述系統(tǒng)配置部分。
[0016]可選地,在將所述數(shù)據(jù)寄存器中的系統(tǒng)配置信息寫入到所述系統(tǒng)配置部分之后,還包括:
[0017]通過配置所述操作寄存器對所述系統(tǒng)配置部分的系統(tǒng)配置信息進行讀取,并將所述系統(tǒng)配置部分的系統(tǒng)配置信息寫入所述數(shù)據(jù)寄存器;
[0018]通過配置所述數(shù)據(jù)寄存器將所述操作寄存器讀取的所述系統(tǒng)配置信息與所述數(shù)據(jù)寄存器中的系統(tǒng)配置信息進行對比檢查;
[0019]當所述操作寄存器讀取的系統(tǒng)配置信息與所述數(shù)據(jù)寄存器中的系統(tǒng)配置信息相同時,確定修改正確完成,將所述MCU重新上電復位;
[0020]當所述操作寄存器讀取的系統(tǒng)配置信息與所述數(shù)據(jù)寄存器中的系統(tǒng)配置信息不相同時,執(zhí)行所述通過配置所述操作寄存器對所述系統(tǒng)配置部分的系統(tǒng)配置信息進行擦除,讀取所述數(shù)據(jù)寄存器中的系統(tǒng)配置信息,將所述數(shù)據(jù)寄存器中的系統(tǒng)配置信息寫入到所述系統(tǒng)配置部分的步驟。
[0021]可選地,所述閃存配置寄存器單元還包括密鑰寄存器,
[0022]在將要寫入的系統(tǒng)配置信息寫入到所述數(shù)據(jù)寄存器中之前,還包括:
[0023]向所述密鑰寄存器寫入一個或多個密鑰,通過配置所述密鑰寄存器將所述一個或多個密鑰與所述密鑰寄存器自身預先存儲的一個或多個密鑰進行對比驗證;
[0024]當驗證成功時,執(zhí)行所述將要寫入的系統(tǒng)配置信息寫入到所述數(shù)據(jù)寄存器中步驟;
[0025]當驗證不成功時,將所述MCU重新上電復位。
[0026]可選地,所述方法還包括:
[0027]當需要調(diào)試所述系統(tǒng)配置部分的系統(tǒng)配置信息時,通過配置所述操作寄存器對所述系統(tǒng)配置部分的系統(tǒng)配置信息進行讀取,并對所述系統(tǒng)配置信息進行調(diào)試。
[0028]可選地,所述MCU與所述閃存芯片相互獨立并在外部物理連接,或者所述閃存芯片集成在所述MCU中。
[0029]另一方面,本發(fā)明還公開了一種微控制單元MCU的系統(tǒng)配置信息的讀取系統(tǒng),其特征在于,包括MCU和與所述MCU連接的閃存芯片,所述MCU包括系統(tǒng)配置寄存器單元,所述閃存芯片包括系統(tǒng)配置部分和程序數(shù)據(jù)部分,所述系統(tǒng)配置部分存儲有所述MCU的系統(tǒng)配置信息,所述程序數(shù)據(jù)部分存儲有所述MCU的程序數(shù)據(jù),
[0030]所述MCU還包括:
[0031]讀取存儲單元,用于在所述MCU上電復位后,從所述閃存芯片的系統(tǒng)配置部分讀取所述系統(tǒng)配置信息,并將所述系統(tǒng)配置信息存儲到所述系統(tǒng)配置寄存器單元;
[0032]配置單元,用于采用所述系統(tǒng)配置寄存器單元中的系統(tǒng)配置信息配置所述MCU ;
[0033]讀取運行單元,用于所述配置單元配置完成后,從所述閃存芯片內(nèi)部的程序數(shù)據(jù)部分讀取所述程序數(shù)據(jù),并運行所述程序數(shù)據(jù)。
[0034]可選地,所述MCU還包括閃存配置寄存器單元,所述閃存配置寄存器單元包括操作寄存器和數(shù)據(jù)寄存器,
[0035]所述MCU還包括:
[0036]寫入單元,用于當需要修改所述系統(tǒng)配置部分的系統(tǒng)配置信息時,將要寫入的系統(tǒng)配置信息寫入到所述數(shù)據(jù)寄存器中;
[0037]操作配置單元,用于通過配置所述操作寄存器對所述系統(tǒng)配置部分的系統(tǒng)配置信息進行擦除,并讀取所述數(shù)據(jù)寄存器中的系統(tǒng)配置信息,將所述數(shù)據(jù)寄存器中的系統(tǒng)配置信息寫入到所述系統(tǒng)配置部分。
[0038]可選地,所述操作配置單元,還用于在將所述數(shù)據(jù)寄存器中的系統(tǒng)配置信息寫入到所述系統(tǒng)配置部分之后,通過配置所述操作寄存器對所述系統(tǒng)配置部分的系統(tǒng)配置信息進行讀取,并將所述系統(tǒng)配置部分的系統(tǒng)配置信息寫入所述數(shù)據(jù)寄存器;
[0039]所述MCU還包括:
[0040]數(shù)據(jù)配置單元,用于通過配置所述數(shù)據(jù)寄存器將所述操作寄存器讀取的所述系統(tǒng)配置信息與所述數(shù)據(jù)寄存器中的系統(tǒng)配置信息進行對比檢查;當所述操作寄存器讀取的系統(tǒng)配置信息與所述數(shù)據(jù)寄存器中的系統(tǒng)配置信息相同時,確定修改正確完成,將所述MCU重新上電復位;當所述操作寄存器讀取的系統(tǒng)配置信息與所述數(shù)據(jù)寄存器中的系統(tǒng)配置信息不相同時,所述操作配置單元通過配置所述操作寄存器對所述系統(tǒng)配置部分的系統(tǒng)配置信息進行擦除,讀取所述數(shù)據(jù)寄存器中的系統(tǒng)配置信息,將所述數(shù)據(jù)寄存器中的系統(tǒng)配置信息寫入到所述系統(tǒng)配置部分。
[0041]可選地,所述閃存配置寄存器單元還包括密鑰寄存器,
[0042]所述MCU還包括:
[0043]密鑰配置單元,用于在所述寫入單元將要寫入的系統(tǒng)配置信息寫入到所述數(shù)據(jù)寄存器中之前,向所述密鑰寄存器寫入一個或多個密鑰,通過配置所述密鑰寄存器將所述一個或多個密鑰與所述密鑰寄存器自身預先存儲的一個或多個密鑰進行對比驗證;當驗證成功時,所述寫入單元將要寫入的系統(tǒng)配置信息寫入到所述數(shù)據(jù)寄存器中;當驗證不成功時,將所述MCU重新上電復位。
[0044]可選地,所述操作配置單元,還用于當需要調(diào)試所述系統(tǒng)配置部分的系統(tǒng)配置信息時,通過配置所述操作寄存器對所述系統(tǒng)配置部分的系統(tǒng)配置信息進行讀取,并對所述系統(tǒng)配置信息進行調(diào)試。
[0045]與現(xiàn)有技術(shù)相比,本發(fā)明實施例包括以下優(yōu)點:
[0046]本發(fā)明實施例中,MCU與閃存芯片連接,MCU包括系統(tǒng)配置寄存器單元,閃存芯片包括系統(tǒng)配置部分和程序數(shù)據(jù)部分,系統(tǒng)配置部分存儲有所述MCU的系統(tǒng)配置信息,程序數(shù)據(jù)部分存儲有所述MCU的程序數(shù)據(jù)。在MCU上電復位后,首先,MCU從閃存芯片內(nèi)部的系統(tǒng)配置部分讀取所述系統(tǒng)配置信息,并將所述系統(tǒng)配置信息存儲到所述系統(tǒng)配置寄存器單元;然后,MCU采用所述系統(tǒng)配置寄存器單元中的系統(tǒng)配置信息配置所述MCU ;最后,配置完成后,MCU從所述閃存芯片內(nèi)部的程序數(shù)據(jù)部分讀取所述程序數(shù)據(jù),并運行所述程序數(shù)據(jù)。
[0047]本發(fā)明實施例中采用閃存芯片空間存儲系統(tǒng)配置信息,對這些系統(tǒng)配置信息進行處理只需在MCU中增加幾個寄存器即可,因此并不會增加太多MCU芯片面積;并且,在MCU系統(tǒng)中,MCU本身就與閃存芯片連接,因此不需要增加額外的特殊工藝(即不需要額外將閃存芯