關(guān)于我們
OTP (One Time Programmable) 的介紹
隨著嵌入式應(yīng)用的越來越廣泛,產(chǎn)品的安全也顯得越來越重要。一方面是為了保護(hù)硬件設(shè)計,另外一方面也是為了產(chǎn)品本身的安全,防止被HACKED.
在嵌入式系統(tǒng)當(dāng)中,所有的代碼和系統(tǒng)數(shù)據(jù)都是被存儲在FLASH芯片內(nèi)部的。FLASH芯片的特點是可多次擦寫,而且掉電數(shù)據(jù)不會丟失。為了保護(hù) FLASH中的數(shù)據(jù),越來越多的FLASH廠商在FLASH內(nèi)部提供了一種特殊的寄存器:OTP寄存器。OTP=ONE TIME PROGRAMMABLE,意思是這個寄存器是 只可以編程一次的,編程后就再也不可以修改了。OTP寄存器和FLASH數(shù)據(jù)區(qū)域很類似,1能被改寫為0,但0永遠(yuǎn)也不能寫成1.如果有一個32位的OTP 寄存器,出產(chǎn)的值是0xFFFFFFFF,如果用戶通過編程,將OTP寄存器的值寫為0xFFFFFFFE后,那OTP寄存器再也不能在改寫為0xFFFFFFFF了;當(dāng)然,這 個OTP寄存器的值還可以改寫為0xFFFFFFFD或其它。。。。。 為了給OTP寄存器提供保護(hù),一般這類FLASH芯片還會提供一個LOCK寄存器。LOCK寄存器也是ONE TIME PROGRAMMABLE的。LOCK寄存器的每一位對應(yīng)于 一個OTP寄存器。如果與OTP寄存器對應(yīng)LOCK寄存器的位(BIT)被從1寫為0,就意味著這個被鎖住的OTP寄存器在也不能進(jìn)行寫操作了。即使OTP的當(dāng)前值為 0XFFFFFFFF,它的值也永遠(yuǎn)不可以被改寫了。 通過OTP寄存器與LOCK寄存器,用戶可以在OTP里保存一些特定的信息,例如軟件版本號,硬件版本號,秘鑰等信息。同時,這類FLASH芯片內(nèi)部還會 有另外一個OTP寄存器,這個寄存器在出產(chǎn)的時候就被廠家編程過了,寫入特定的序列號,并LOCK住。如果有需要,F(xiàn)LASH廠商也可以根據(jù)客戶的需要 寫入特定的序列號。這樣,每個芯片都會有一個不一樣的ID號,避免被復(fù)制。 除了FLASH芯片,很多CPU廠商,也在CPU內(nèi)部提供類似的OTP寄存器,供用戶使用,利于開發(fā)更安全的應(yīng)用。象一些比較大的廠商,例如TI,F(xiàn)REESCALE 等,他們往往是不公開某些芯片的數(shù)據(jù)手冊的。如果要獲得他們的數(shù)據(jù)手冊,一是要有大量的訂貨,同時也需要簽署一定的保密協(xié)議。 OTP本身并不能提供絕對安全的應(yīng)用。但OTP的提供,有利于開發(fā)商開發(fā)和部署更安全的應(yīng)用,保護(hù)自己和客戶的利益。象很多大的廠商,例如NOKIA, MOTOROAL,SAMSUNG和SONYERRICSON等,都需要根據(jù)客戶(運營商)的要求,開發(fā)一些只能在自己的網(wǎng)絡(luò)里使用的手機。其中很多軟件和硬件的保護(hù) 都是基于OTP來實現(xiàn)的。 以上是一個簡單的介紹,僅供參考,如有不當(dāng)?shù)牡胤剑堉赋觥?BR>
上一條: 語音OTP的選用指南
下一條: 什么是OTP
|