本發(fā)明涉及一種一次可編程(OTP, One Time Programable)存儲(chǔ)器領(lǐng)域,特別涉及一種訪問(wèn)OTP存儲(chǔ)器的方法和裝置。
背景技術(shù):
隨著電子信息社會(huì)的不斷發(fā)展,數(shù)據(jù)存儲(chǔ)需求量呈現(xiàn)出爆炸式的增長(zhǎng)。與MASK(掩膜)和Flash(閃存)存儲(chǔ)器相比,OTP存儲(chǔ)器兼具二者之優(yōu)勢(shì),既有一定的靈活性,成本又不太高。也因此在嵌入式系統(tǒng)或者芯片內(nèi)部,作為存儲(chǔ)一次編程后不可更改的信息或者對(duì)加密芯片密鑰信息的存儲(chǔ)起著不可替代的作用。OTP存儲(chǔ)器非常適用于對(duì)特定應(yīng)用數(shù)據(jù)的一次可編程存儲(chǔ),在一個(gè)片上系統(tǒng)(SOC, System On Chip)系統(tǒng)中,需要存儲(chǔ)很多特定一次性信息,比如芯片序列號(hào)、接口封閉信息以及有關(guān)芯片安全的秘鑰信息等,這些信息在整個(gè)系統(tǒng)測(cè)試芯片中編程進(jìn)去后不允許客戶去改變,且這些信息不需要擦除,即一次編程后不可修改。采用MASK掩膜做成光刻版,靈活性太差,采用Flash閃存成本又太高。因此,采用OTP存儲(chǔ)器存儲(chǔ)這類(lèi)特定信息,最大程度減少硬件及研發(fā)開(kāi)銷(xiāo)。
對(duì)OTP存儲(chǔ)器進(jìn)行編程和讀取及其他訪問(wèn)時(shí),需要一個(gè)硬件控制器,把訪問(wèn)OTP存儲(chǔ)器的具體操作通過(guò)解析指令,判定是否為有效指令轉(zhuǎn)換為訪問(wèn)OTP存儲(chǔ)器的具體時(shí)序,按照OTP存儲(chǔ)器件的接口時(shí)序完成讀取、編程、復(fù)位、睡眠、喚醒操作。圖2是訪問(wèn)OTP存儲(chǔ)器的框圖,包括訪問(wèn)OTP存儲(chǔ)器的各種指令,該硬件控制器需要按照不同的訪問(wèn)指令產(chǎn)生相應(yīng)的時(shí)序,完成對(duì)OTP存儲(chǔ)器的訪問(wèn)。
由于OTP存儲(chǔ)器對(duì)一些特定信息的存儲(chǔ)及成本不高的特點(diǎn),在存儲(chǔ)器領(lǐng)域受到越來(lái)越廣泛的應(yīng)用。硬件電路基于根據(jù)不同的指令提供不同的時(shí)序電路驅(qū)動(dòng)OTP存儲(chǔ)器,實(shí)現(xiàn)對(duì)OTP存儲(chǔ)器件的訪問(wèn)。OTP存儲(chǔ)器件由于自身的因素,在讀取和編程過(guò)程中很容易出錯(cuò),如何在對(duì)OTP編程和讀取中降低出錯(cuò)率,提高OTP存儲(chǔ)器的可靠性,成為OTP存儲(chǔ)器領(lǐng)域的技術(shù)難點(diǎn)。其次,隨著安全芯片愈來(lái)愈廣泛地應(yīng)用,OTP存儲(chǔ)器實(shí)現(xiàn)對(duì)密鑰信息的編程后,不希望使用者將其密鑰信息讀出,因此就需要在讀取OTP密鑰信息時(shí)對(duì)其做特殊處理,如何做特殊處理從而保證存入OTP的密鑰信息不被泄密,保證芯片安全技術(shù)也是當(dāng)前訪問(wèn)OTP存儲(chǔ)器技術(shù)所欠缺的方案。再者,在OTP存儲(chǔ)器芯片內(nèi)部增加容錯(cuò)硬件電路單元很大程度上增加了OTP存儲(chǔ)器芯片面積,且可移植性不好。這些缺點(diǎn)都大大增加訪問(wèn)OTP存儲(chǔ)器的研發(fā)時(shí)間和成本。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問(wèn)題是,提供一種訪問(wèn)OTP存儲(chǔ)器的方法和裝置,目的是可以靈活配置不同指令訪問(wèn)OTP存儲(chǔ)器并產(chǎn)生對(duì)應(yīng)指令的訪問(wèn)OTP存儲(chǔ)器接口時(shí)序,完成對(duì)OTP存儲(chǔ)器的編程、讀取、復(fù)位、喚醒、睡眠操作。對(duì)OTP編程操作采用本發(fā)明方法,很大程度提高了OTP存儲(chǔ)器良率,解決了OTP在編程過(guò)程中易出錯(cuò)的問(wèn)題,極大地提高了OTP存儲(chǔ)器件的可靠性。并對(duì)存儲(chǔ)在OTP的重要信息密鑰信息在讀取時(shí)作了相應(yīng)地加擾處理,保護(hù)了數(shù)據(jù)的安全性。
為解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種訪問(wèn)OTP存儲(chǔ)器的方法,包括以下步驟:
步驟1:定義一系列指令用于操作OTP存儲(chǔ)器;
步驟2:上電讀取OTP存儲(chǔ)器各個(gè)區(qū)域信息,包括OTP存儲(chǔ)器模式信息、OTP存儲(chǔ)器接口封閉信息、OTP存儲(chǔ)器系統(tǒng)區(qū)域封閉信息、OTP存儲(chǔ)器用戶區(qū)域封閉信息以及密鑰區(qū)域信息;
步驟3:解析所定義的操作OTP存儲(chǔ)器的指令,按照解析出的指令驅(qū)動(dòng)訪問(wèn)OTP存儲(chǔ)器時(shí)序;
步驟4:進(jìn)入機(jī)臺(tái)工作模式,發(fā)送OTP存儲(chǔ)器編程密鑰指令,解析編程密鑰指令,并由OTP時(shí)序發(fā)生器產(chǎn)生該指令對(duì)應(yīng)的訪問(wèn)OTP存儲(chǔ)器接口時(shí)序,將密鑰數(shù)據(jù)編程至OTP存儲(chǔ)器中,讀取密鑰信息,對(duì)讀取出來(lái)的密鑰信息進(jìn)行加擾處理;
步驟5:進(jìn)入正常工作模式,發(fā)送OTP存儲(chǔ)器編程信息指令,編程芯片序列號(hào),OTP時(shí)序發(fā)生器產(chǎn)生編程O(píng)TP存儲(chǔ)器時(shí)序,將芯片序列號(hào)編程至OTP存儲(chǔ)器中對(duì)應(yīng)區(qū)域;
步驟6:發(fā)送OTP存儲(chǔ)器編程信息指令,經(jīng)過(guò)指令譯碼器對(duì)指令譯碼,并由OTP時(shí)序發(fā)生器產(chǎn)生編程O(píng)TP存儲(chǔ)器時(shí)序,傳送至OTP存儲(chǔ)器件,完成編程接口封閉信息和編程系統(tǒng)區(qū)域信息。
進(jìn)一步的,所述定義一系列指令操作OTP存儲(chǔ)器包括:提供CPU或者機(jī)臺(tái)模式配置訪問(wèn)OTP存儲(chǔ)器的不同指令,所述一系列指令用于操作OTP存儲(chǔ)器,完成對(duì)OTP存儲(chǔ)器的編程,讀取,復(fù)位,喚醒等操作。所述一系列指令包括:OTP存儲(chǔ)器睡眠模式、OTP存儲(chǔ)器喚醒模式、復(fù)位OTP存儲(chǔ)器、OTP存儲(chǔ)器編程信息、OTP存儲(chǔ)器編程密鑰、讀取OTP存儲(chǔ)器及OTP存儲(chǔ)器自測(cè)模式;
所述解析所定義的操作OTP存儲(chǔ)器的指令包括:
定義訪問(wèn)OTP存儲(chǔ)器的具體指令;
等待訪問(wèn)OTP存儲(chǔ)器指令;
檢查OTP存儲(chǔ)器指令;以及
判定訪問(wèn)OTP存儲(chǔ)器指令是否為有效指令,如果為有效指令則傳送至OTP時(shí)序發(fā)生器,如果為無(wú)效指令則終止OTP存儲(chǔ)器的訪問(wèn);
所述OTP時(shí)序發(fā)生器,用于產(chǎn)生用于產(chǎn)生解析出的有效訪問(wèn)OTP存儲(chǔ)器指令的具體時(shí)序;
所述OTP存儲(chǔ)器編程密鑰指令或OTP存儲(chǔ)器編程信息指令,采用對(duì)OTP存儲(chǔ)器編程地址的冗余處理及在編程操作中采取對(duì)同一個(gè)地址的編程操作實(shí)施可以允許高達(dá)16次脈沖編程的方法。
所述對(duì)OTP存儲(chǔ)器編程操作的地址的分配進(jìn)行冗余處理,包括:
對(duì)OTP存儲(chǔ)器進(jìn)行一位數(shù)據(jù)編程操作時(shí),將該位數(shù)據(jù)映射到OTP存儲(chǔ)器4位物理地址并依次編程,若其中不少于3位地址編程成功,則認(rèn)為所配置的一位數(shù)據(jù)編程成功,否則認(rèn)為該位數(shù)據(jù)沒(méi)有編程成功。
所述對(duì)OTP存儲(chǔ)器4位物理地址中的每一位數(shù)據(jù)編程操作包括:
配置所要編程的地址,編程地址等于提供的初始編程地址;
在初始編程地址位置施加3個(gè)編程脈沖電壓;
施加完3個(gè)編程脈沖電壓基礎(chǔ)上繼續(xù)施加1個(gè)編程脈沖電壓;
編程驗(yàn)證操作;
通過(guò)編程驗(yàn)證操作得到的數(shù)據(jù)判定編程的數(shù)據(jù)是否為1,其中,OTP存儲(chǔ)器編程的數(shù)據(jù)為“1”,未編程的數(shù)據(jù)為“0”,若編程數(shù)據(jù)為“1”,則表示本次對(duì)該地址的編程操作成功,繼續(xù)按照該方法執(zhí)行下一個(gè)地址的編程操作,若編程數(shù)據(jù)為“0”,執(zhí)行下一步;
判定是否在該位置加了16次編程脈沖電壓,若在指定的該OTP存儲(chǔ)器地址位置未達(dá)到所加16次編程電壓,則繼續(xù)施加脈沖電壓,每施加一次脈沖電壓進(jìn)行編程數(shù)據(jù)是否為“1”的判定,再判定編程脈沖電壓是否編程至16次的循環(huán)判定;若在該位置加了16次編程電壓還是數(shù)據(jù)為“0”,則編程失敗。
本發(fā)明還提供了一種包括OTP存儲(chǔ)器和訪問(wèn)OTP存儲(chǔ)器的裝置,其中,所述OTP存儲(chǔ)器包括:芯片序列號(hào)區(qū)域,用于存儲(chǔ)芯片序列號(hào);接口封閉區(qū)域,用于存儲(chǔ)相關(guān)接口封閉信息;OTP存儲(chǔ)器工作模式:用于存儲(chǔ)OTP存儲(chǔ)器的操作模式,包括機(jī)臺(tái)工作模式和正常工作模式;系統(tǒng)封閉控制區(qū)域,用于存儲(chǔ)封閉系統(tǒng)區(qū)域的控制信息;用戶封閉控制區(qū)域,用于存儲(chǔ)用戶區(qū)域的控制信息;系統(tǒng)密鑰區(qū)域,用于存儲(chǔ)密鑰信息區(qū)域;以及用戶區(qū),用于存儲(chǔ)用戶所要存儲(chǔ)的信息。
本發(fā)明的有益技術(shù)效果是:提供了一種訪問(wèn)OTP存儲(chǔ)器的方法和裝置,并且可以通過(guò)CPU或者機(jī)臺(tái)兩種模式靈活配置不同操作指令,并產(chǎn)生對(duì)應(yīng)指令的訪問(wèn)OTP存儲(chǔ)器接口時(shí)序。對(duì)特定信息密鑰信息在OTP存儲(chǔ)器件外部進(jìn)行嚴(yán)格加密處理,從而有效地保證了芯片的安全性。對(duì)OTP編程采用地址容錯(cuò)處理及在同一個(gè)編程地址多次施加編程脈沖電壓的方法,確保數(shù)據(jù)正確編程至OTP存儲(chǔ)器對(duì)應(yīng)區(qū)域,解決了OTP在編程過(guò)程中易出錯(cuò)的問(wèn)題,保證數(shù)據(jù)的正確性,很大程度提高了OTP存儲(chǔ)器良率,大大增強(qiáng)了訪問(wèn)OTP存儲(chǔ)器件的可靠性。
附圖說(shuō)明
圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的OTP存儲(chǔ)器區(qū)域分布圖。
圖2是根據(jù)本發(fā)明一個(gè)實(shí)施例的訪問(wèn)OTP存儲(chǔ)器的操作框圖。
圖3是根據(jù)本發(fā)明一個(gè)實(shí)施例的OTP存儲(chǔ)控制電路框圖。
圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例的OTP存儲(chǔ)器上電讀取電路操作流程圖。
圖5是根據(jù)本發(fā)明一個(gè)實(shí)施例的OTP存儲(chǔ)器指令譯碼器解析指令方法。
圖6是根據(jù)本發(fā)明一個(gè)實(shí)施例的OTP存儲(chǔ)器編程、讀取操作的地址分配及冗余處理圖。
圖7是根據(jù)本發(fā)明一個(gè)實(shí)施例的的OTP存儲(chǔ)器編程算法模塊電路的編程算法流程圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。本發(fā)明主要用于訪問(wèn)OTP存儲(chǔ)器,實(shí)現(xiàn)對(duì)OTP存儲(chǔ)器的不同操作,包括編程、讀取、復(fù)位、喚醒、睡眠、OTP自測(cè)操作。在對(duì)OTP存儲(chǔ)器編程時(shí),易編程出錯(cuò)導(dǎo)致數(shù)據(jù)不能正確地存儲(chǔ)在OTP存儲(chǔ)器件中,本發(fā)明提出對(duì)編程地址冗余處理,同時(shí),對(duì)同一個(gè)編程地址可允許施加高達(dá)16次編程脈沖電壓,嚴(yán)格地保證了編程數(shù)據(jù)正確編程至OTP存儲(chǔ)器件中,對(duì)編程密鑰信息采用機(jī)臺(tái)工作模式進(jìn)行編程至OTP存儲(chǔ)器中,在讀取密鑰信息時(shí),采用加擾電路對(duì)從OTP存儲(chǔ)器件中讀取出的密鑰信息進(jìn)行加擾,從而保證密鑰信息的高度安全,符合其特殊信息的保護(hù)要求。詳述如下。
參見(jiàn)圖1,本發(fā)明實(shí)施例中,OTP存儲(chǔ)器的區(qū)域分布為:芯片序列號(hào)區(qū)域,用于存儲(chǔ)芯片序列號(hào);接口封閉區(qū)域,用于存儲(chǔ)相關(guān)接口封閉信息;OTP存儲(chǔ)器工作模式:用于存儲(chǔ)OTP存儲(chǔ)器的操作模式,包括機(jī)臺(tái)工作模式和正常工作模式;系統(tǒng)封閉控制區(qū)域,用于存儲(chǔ)封閉系統(tǒng)區(qū)域的控制信息;用戶封閉控制區(qū)域,用于存儲(chǔ)用戶區(qū)域的控制信息;系統(tǒng)密鑰區(qū)域,用于存儲(chǔ)密鑰信息區(qū)域;用戶區(qū),用于存儲(chǔ)用戶所要存儲(chǔ)的信息。
參見(jiàn)圖2,為訪問(wèn)OTP存儲(chǔ)器的框圖,實(shí)現(xiàn)對(duì)OTP存儲(chǔ)器的操作包括:編程、讀取、復(fù)位、喚醒、睡眠、OTP自測(cè)操作,由OTP控制器電路完成,如圖2所示,所要訪問(wèn)的OTP存儲(chǔ)器指令包括如下:
OTP存儲(chǔ)器睡眠模式,使OTP處于睡眠模式,即當(dāng)前OTP處于不工作狀態(tài),可以進(jìn)行在不用OTP存儲(chǔ)器時(shí)候置于該指令,降低系統(tǒng)的功耗,該指令的配置可以由CPU或者機(jī)臺(tái)模式完成;
OTP存儲(chǔ)器喚醒模式,將OTP從睡眠模式喚醒,當(dāng)需要操作OTP存儲(chǔ)器件時(shí),如往OTP存儲(chǔ)器編程數(shù)據(jù)、讀取數(shù)據(jù)時(shí)候需要首先將OTP存儲(chǔ)器從睡眠模式切換到喚醒模式,該指令的配置可以由CPU或者機(jī)臺(tái)模式完成;
復(fù)位OTP存儲(chǔ)器,在對(duì) OTP存儲(chǔ)器操作之前需要對(duì)OTP存儲(chǔ)器進(jìn)行復(fù)位,在指令之間切換的時(shí)候也需要對(duì)其發(fā)生復(fù)位操作復(fù)位OTP存儲(chǔ)器件,該指令的配置可以由CPU或者機(jī)臺(tái)模式完成;
OTP存儲(chǔ)器編程信息,對(duì)OTP編程操作時(shí)候需要配置該指令,例如芯片序列號(hào)、芯片接口封閉信息、系統(tǒng)信息的編程通過(guò)配置OTP_PROGRAMINFO指令完成OTP存儲(chǔ)器的編程操作,該指令的配置可以由CPU或者機(jī)臺(tái)模式完成;
OTP存儲(chǔ)器編程密鑰,只針對(duì)編程密鑰信息在OTP存儲(chǔ)器的存儲(chǔ),為了保證密鑰信息的嚴(yán)格安全性,該指令必須由機(jī)臺(tái)模式進(jìn)行配置;
讀取OTP存儲(chǔ)器,執(zhí)行對(duì)OTP存儲(chǔ)器各個(gè)區(qū)域信息的讀取操作,該指令的配置可以由CPU或者機(jī)臺(tái)模式完成;
OTP存儲(chǔ)器自測(cè)模式,執(zhí)行對(duì)OTP存儲(chǔ)器件的自我測(cè)試,該指令的配置可以由CPU或者機(jī)臺(tái)模式完成。
一種訪問(wèn)OTP存儲(chǔ)器的裝置,包括依次相連的CPU或機(jī)臺(tái)完成指令配置、上電讀取電路、總線控制電路、多路選擇器電路、OTP時(shí)序發(fā)生器電路、編程算法模塊電路、加擾電路、OTP存儲(chǔ)器件,所有模塊均采用全數(shù)字邏輯電路實(shí)現(xiàn);
所述CPU或機(jī)臺(tái)模式配置電路:用于配置訪問(wèn)OTP存儲(chǔ)器的指令;
所述上電讀取電路:用于在OTP存儲(chǔ)器上電時(shí),首先讀取OTP存儲(chǔ)器各個(gè)區(qū)域的信息,包括OTP存儲(chǔ)器模式信息、OTP存儲(chǔ)器接口封閉信息、OTP存儲(chǔ)器系統(tǒng)區(qū)域封閉信息、OTP存儲(chǔ)器用戶區(qū)域封閉信息以及密鑰區(qū)域信息;
所述總線控制電路:包括指令寄存器電路和指令譯碼器電路,用于裝載CPU或者機(jī)臺(tái)所配置的一系列指令,并解析所定義的操作OTP存儲(chǔ)器的指令;指令寄存器電路用于存儲(chǔ)CPU或者機(jī)臺(tái)所配置的一系列指令,指令譯碼器電路實(shí)現(xiàn)將配置的指令翻譯成具體有效的指令并傳送至多路選擇器。
所述多路選擇器:用于選擇上電讀取電路讀取信息指令傳送至OTP操作時(shí)序產(chǎn)生控制器或者總線控制電路的指令傳送至OTP操作時(shí)序產(chǎn)生控制器;
所述OTP時(shí)序發(fā)生器電路:用于產(chǎn)生不同訪問(wèn)OTP存儲(chǔ)器指令的具體時(shí)序電路,包括復(fù)位、喚醒、編程、讀取、睡眠操作,按照CPU或機(jī)臺(tái)所配置的具體操作OTP存儲(chǔ)器的指令產(chǎn)生對(duì)應(yīng)的訪問(wèn)OTP存儲(chǔ)器時(shí)序電路,傳送至OTP存儲(chǔ)器件接口;
所述編程算法模塊電路:針對(duì)對(duì)OTP存儲(chǔ)器的編程操作,解決在OTP存儲(chǔ)器中編程易出錯(cuò)的問(wèn)題,該算法電路實(shí)現(xiàn)在編程O(píng)TP存儲(chǔ)器操作時(shí),對(duì)OTP存儲(chǔ)器所要編程的地址進(jìn)行冗余處理和對(duì)每一位數(shù)據(jù)編程采取施加可允許16次編程脈沖電壓的處理,該模塊電路由全數(shù)字電路實(shí)現(xiàn),采用狀態(tài)機(jī)控制實(shí)現(xiàn)編程算法。
所述加擾電路:用于從OTP存儲(chǔ)器中讀取密鑰信息進(jìn)行加密處理,即對(duì)讀出的密鑰數(shù)據(jù)經(jīng)過(guò)加擾電路進(jìn)行加擾,使得用戶所見(jiàn)的密鑰數(shù)據(jù)不是真正編程至OTP存儲(chǔ)器的數(shù)據(jù),從而對(duì)密鑰信息安全進(jìn)行保護(hù)。
參見(jiàn)圖3,是根據(jù)本發(fā)明一個(gè)實(shí)施例的OTP存儲(chǔ)控制電路框圖。訪問(wèn)OTP存儲(chǔ)器,首先需要采用CPU或者機(jī)臺(tái)模式對(duì)OTP存儲(chǔ)器下發(fā)操作指令。對(duì)OTP存儲(chǔ)器下發(fā)指令包括:正常工作模式和機(jī)臺(tái)測(cè)試模式,正常工作模式即采用CPU配置所要操作OTP存儲(chǔ)器的指令,機(jī)臺(tái)測(cè)試模式則采用自動(dòng)測(cè)試設(shè)備機(jī)臺(tái)對(duì)操作指令地下發(fā)。本發(fā)明采用CPU或者機(jī)臺(tái)兩種模式靈活地對(duì)OTP存儲(chǔ)器實(shí)現(xiàn)訪問(wèn)。通過(guò)多路選擇器(MUX)電路對(duì)CPU或者機(jī)臺(tái)所配置的指令傳送至總線控制器;參見(jiàn)圖2所示,CPU或機(jī)臺(tái)所配置的指令包括:OTP存儲(chǔ)器睡眠模式、OTP存儲(chǔ)器喚醒模式、復(fù)位OTP存儲(chǔ)器、OTP存儲(chǔ)器編程信息、OTP存儲(chǔ)器編程密鑰、讀取OTP存儲(chǔ)器以及OTP存儲(chǔ)器自測(cè)模式。CPU或者機(jī)臺(tái)配置這些操作OTP存儲(chǔ)器的指令傳送至總線控制模塊電路,這些指令存儲(chǔ)在總線控制電路地指令寄存器中,由總線控制模塊的指令譯碼器電路解析所定義的操作OTP存儲(chǔ)器的指令,將解析出地具體操作OTP存儲(chǔ)器的有效指令通過(guò)MUX電路傳送至OTP時(shí)序發(fā)生器。上電讀取電路實(shí)現(xiàn)上電時(shí),對(duì)OTP存儲(chǔ)器各個(gè)區(qū)域,即圖1所示的OTP存儲(chǔ)器分布信息進(jìn)行讀??;上電讀取電路將讀取操作命令通過(guò)MUX(多路選擇器)電路傳送至OTP時(shí)序發(fā)生器,產(chǎn)生讀取時(shí)序,實(shí)現(xiàn)對(duì)OTP存儲(chǔ)器各個(gè)區(qū)域的讀?。恢噶钭g碼器電路對(duì)CPU或機(jī)臺(tái)所配置的訪問(wèn)OTP存儲(chǔ)器指令解析后,產(chǎn)生有效的訪問(wèn)OTP存儲(chǔ)器指令至OTP時(shí)序發(fā)生器,由時(shí)序發(fā)生器實(shí)現(xiàn)所配置的指令的具體時(shí)序生成,按照所配置的指令時(shí)序完成對(duì)OTP存儲(chǔ)器的訪問(wèn)。圖3所示的編程算法模塊電路,針對(duì)OTP存儲(chǔ)器編程密鑰指令或OTP存儲(chǔ)器編程信息指令對(duì)OTP存儲(chǔ)器編程操作時(shí),采用本發(fā)明的算法,算法電路實(shí)現(xiàn)在編程O(píng)TP存儲(chǔ)器操作時(shí),對(duì)OTP存儲(chǔ)器所要編程的地址進(jìn)行冗余處理和對(duì)每一位數(shù)據(jù)編程采取施加可允許16次編程脈沖電壓的處理,該模塊電路由全數(shù)字電路實(shí)現(xiàn),采用狀態(tài)機(jī)控制實(shí)現(xiàn)編程算法。在對(duì)OTP存儲(chǔ)器密鑰信息進(jìn)行讀取時(shí),本發(fā)明針對(duì)密鑰信息的特殊要求,嚴(yán)格對(duì)密鑰信息進(jìn)行保密,保證芯片安全,采取加擾電路對(duì)從OTP存儲(chǔ)器中讀取的數(shù)據(jù)進(jìn)行加擾處理,使得用戶所見(jiàn)的密鑰數(shù)據(jù)不是真正編程至OTP存儲(chǔ)器的數(shù)據(jù),從而對(duì)密鑰信息安全進(jìn)行保護(hù)。
一種訪問(wèn)OTP存儲(chǔ)器的方法,包括:
1)根據(jù)所要訪問(wèn)OTP存儲(chǔ)器的具體操作,采用CPU模式或者機(jī)臺(tái)模式定義一系列指令操作OTP存儲(chǔ)器;對(duì)于編程密鑰信息,為了保證密鑰信息的嚴(yán)格安全性,配置編程密鑰指令只能采用機(jī)臺(tái)模式進(jìn)行。其余指令的配置可以采用CPU模式(即正常工作模式)或者機(jī)臺(tái)模式。所述可以配置的訪問(wèn)OTP存儲(chǔ)器的一系列指令包括:OTP存儲(chǔ)器睡眠模式、OTP存儲(chǔ)器喚醒模式、復(fù)位OTP存儲(chǔ)器、OTP存儲(chǔ)器編程信息、OTP存儲(chǔ)器編程密鑰、讀取OTP存儲(chǔ)器以及OTP存儲(chǔ)器自測(cè)模式。
2)上電讀取OTP各個(gè)區(qū)域信息,由圖1所示上電讀取電路完成,其上電讀取電路操作流程圖如圖7所示,包括OTP模式信息、OTP接口封閉信息、OTP系統(tǒng)區(qū)域封閉信息、OTP用戶區(qū)域封閉信息以及密鑰區(qū)域信息,其中,讀取密鑰區(qū)域信息為做過(guò)加擾后地信息,確保密鑰信息的安全性。
參見(jiàn)圖3,首先采用CPU或機(jī)臺(tái)定義操作OTP存儲(chǔ)器的指令,由上電讀取電路讀取OTP存儲(chǔ)器各個(gè)區(qū)域信息,OTP存儲(chǔ)器各個(gè)區(qū)域信息參見(jiàn)圖1。
參見(jiàn)圖4,實(shí)現(xiàn)對(duì)OTP存儲(chǔ)器上電讀取,包括:芯片上電復(fù)位、上電喚醒OTP存儲(chǔ)器、上電復(fù)位OTP存儲(chǔ)器、讀取OTP存儲(chǔ)器模式信息、讀取OTP存儲(chǔ)器接口信息、讀取OTP存儲(chǔ)器系統(tǒng)區(qū)域信息、讀取用戶區(qū)域信息、讀取密鑰區(qū)域信息,進(jìn)入OTP睡眠模式,上電讀取OTP存儲(chǔ)器各個(gè)區(qū)域結(jié)束。
3)解析所定義的操作OTP存儲(chǔ)器的指令,按照解析出的指令驅(qū)動(dòng)訪問(wèn)OTP時(shí)序;采用指令譯碼器將CPU或機(jī)臺(tái)所配置的具體指令傳送至指令譯碼器電路,指令譯碼包括:定義好訪問(wèn)OTP的具體指令,等待訪問(wèn)OTP指令,檢查OTP指令,判定訪問(wèn)OTP指令是否為有效指令,如果為有效指令則傳送至OTP時(shí)序發(fā)生器,產(chǎn)生對(duì)應(yīng)指令的時(shí)序,完成對(duì)OTP存儲(chǔ)器訪問(wèn);若為無(wú)效指令則不繼續(xù)執(zhí)行下面步驟,終止訪問(wèn)OTP存儲(chǔ)器。所謂無(wú)效指令包括:在編程密鑰信息時(shí)發(fā)送OTP編程信息指令,在正常工作模式下配置編程密鑰指令,在CPU模式下配置OTP自測(cè)模式指令,自測(cè)模式指令同樣也只能針對(duì)機(jī)臺(tái)模式。
參見(jiàn)圖5,是根據(jù)本發(fā)明一個(gè)實(shí)施例的OTP存儲(chǔ)器指令譯碼器解析指令方法,解析所定義的操作OTP存儲(chǔ)器的指令包括:
定義訪問(wèn)OTP存儲(chǔ)器的具體指令;
等待訪問(wèn)OTP存儲(chǔ)器指令;
檢查OTP存儲(chǔ)器指令;以及
判定訪問(wèn)OTP存儲(chǔ)器指令是否為有效指令,如果為有效指令則傳送至OTP時(shí)序發(fā)生器,執(zhí)行OTP存儲(chǔ)器操作指令,如果為無(wú)效指令則終止OTP存儲(chǔ)器的訪問(wèn)。
4)進(jìn)入機(jī)臺(tái)工作模式,發(fā)送OTP存儲(chǔ)器編程密鑰指令,解析編程密鑰指令,并由OTP時(shí)序發(fā)生器產(chǎn)生該指令對(duì)應(yīng)的訪問(wèn)OTP存儲(chǔ)器接口時(shí)序,將密鑰數(shù)據(jù)編程至OTP存儲(chǔ)器中。密鑰信息由于其具有特殊性,需要保證其信息的安全,因此在編程密鑰信息時(shí),必須采用機(jī)臺(tái)工作模式完成密鑰信息編程至OTP存儲(chǔ)器對(duì)應(yīng)區(qū)域;讀取密鑰信息,對(duì)讀取出來(lái)的密鑰信息進(jìn)行加擾處理,防止真正編程至OTP存儲(chǔ)器件的信息泄露,嚴(yán)格保證密鑰的安全性。
5)進(jìn)入正常工作模式,參見(jiàn)圖1,為本發(fā)明實(shí)施例的OTP存儲(chǔ)器存儲(chǔ)分布圖,因此需要對(duì)OTP相關(guān)區(qū)域編程信息,此時(shí),發(fā)送OTP編程信息指令,編程芯片序列號(hào),OTP時(shí)序發(fā)生器產(chǎn)生編程O(píng)TP存儲(chǔ)器時(shí)序,將芯片序列號(hào)編程至OTP存儲(chǔ)器中所對(duì)應(yīng)區(qū)域。
6)在正常工作模式下,發(fā)送OTP存儲(chǔ)器編程信息指令,經(jīng)過(guò)指令譯碼器對(duì)指令譯碼,并由OTP時(shí)序發(fā)生器產(chǎn)生編程O(píng)TP存儲(chǔ)器時(shí)序,送至OTP存儲(chǔ)器件,完成編程接口封閉信息、編程系統(tǒng)區(qū)域信息。
為了解決在對(duì)OTP存儲(chǔ)器編程數(shù)據(jù)時(shí)易出錯(cuò)的問(wèn)題,增大了OTP存儲(chǔ)器的可靠性,對(duì)OTP存儲(chǔ)器編程密鑰指令或OTP存儲(chǔ)器編程信息指令的操作,采用本發(fā)明的地址冗余處理及同一個(gè)地址的數(shù)據(jù)進(jìn)行允許達(dá)16次編程脈沖電壓的施加。
參見(jiàn)圖6,是本發(fā)明一個(gè)實(shí)施例的OTP存儲(chǔ)器編程、讀取操作的地址分配及冗余處理圖。首先,編程操作對(duì)OTP存儲(chǔ)器的地址進(jìn)行容錯(cuò)處理,即每編程一個(gè)數(shù)據(jù)對(duì)應(yīng)4位OTP存儲(chǔ)器的物理地址,并依次對(duì)4位物理地址每一位進(jìn)行編程,當(dāng)其中不少于3位地址都編程成功時(shí)才可認(rèn)為所配置的該位數(shù)據(jù)編程成功,否則認(rèn)為該位數(shù)據(jù)編程失敗。圖6所示,本發(fā)明實(shí)施例中訪問(wèn)OTP存儲(chǔ)器的地址由13位地址構(gòu)成,包括系統(tǒng)地址、邏輯位地址以及物理地址。系統(tǒng)地址及邏輯位地址為選中OTP存儲(chǔ)器的具體一個(gè)區(qū)域。對(duì)于編程地址,一位邏輯地址映射4位物理地址的冗余,并一次對(duì)4為地址的每一位進(jìn)行編程,當(dāng)其中不少于3位地址都編程成功時(shí)才可認(rèn)為所配置的該位數(shù)據(jù)編程成功,否則認(rèn)為該位數(shù)據(jù)編程失敗。
其中,所述對(duì)OTP存儲(chǔ)器4位物理地址中的每一位數(shù)據(jù)編程操作包括,參見(jiàn)圖7,包括:
開(kāi)啟OTP存儲(chǔ)器編程算法;
配置所要編程的地址,編程地址等于提供的初始編程地址;
在提供的初始編程地址位置施加3個(gè)編程脈沖電壓,并記N(表示記錄編程脈沖次數(shù))等于0次;
施加完3個(gè)編程脈沖電壓基礎(chǔ)上繼續(xù)施加1個(gè)編程脈沖電壓;
編程驗(yàn)證操作;
通過(guò)編程驗(yàn)證操作得到的數(shù)據(jù)判定編程的數(shù)據(jù)是否為1(OTP存儲(chǔ)器編程數(shù)據(jù)為“1”,未編程的數(shù)據(jù)為“0”),若編程數(shù)據(jù)為“1”,則表示本次對(duì)該地址的編程操作成功,繼續(xù)按照該方法執(zhí)行下一個(gè)地址的編程操作。若編程數(shù)據(jù)為“0”,執(zhí)行下一步;
判定是否在該位置加了16次編程脈沖電壓,判定次數(shù)由N來(lái)計(jì)數(shù)。若在指定的該OTP存儲(chǔ)器地址位置未達(dá)到所加16次編程電壓,則繼續(xù)施加脈沖電壓,N此時(shí)加一;每施加一次脈沖電壓(即N每增加一)進(jìn)行編程數(shù)據(jù)是否為“1”的判定,再判定編程脈沖電壓是否編程至16次的循環(huán)判定,在16次編程脈沖操作之類(lèi)驗(yàn)證編程數(shù)據(jù)成功,則該地址數(shù)據(jù)編程成功;若在該位置加了16次編程電壓還是數(shù)據(jù)為“0”,則編程失敗。
按照上述編程方法,在正常工作模式下,完成OTP存儲(chǔ)器接口封閉信息、系統(tǒng)區(qū)域信息的編程存儲(chǔ)操作,實(shí)現(xiàn)對(duì)OTP存儲(chǔ)器的訪問(wèn)。
最后應(yīng)說(shuō)明的是:以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非對(duì)其進(jìn)行限制,盡管參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而這些修改或者等同替換亦不能使修改后的技術(shù)方案脫離本發(fā)明技術(shù)方案的精神和范圍。