OTP(一次性可编程)简介

随着嵌入式应用越来越广泛,产品的安全性变得越来越重要。 一方面是为了保护硬件设计,另一方面也是为了产品本身的安全,防止被HACKED。
在嵌入式系统中,所有代码和系统数据都存储在FLASH芯片内部。 FLASH芯片的特点是可以多次擦除和写入,并且断电时数据不会丢失。 为了保护FLASH中的数据,越来越多的FLASH厂家在FLASH内部提供了一个特殊的寄存器:OTP寄存器。 OTP=ONE TIME PROGRAMDABLE,表示该寄存器只能编程一次,编程后就不能再修改。 0TP寄存器与FLASH数据区非常相似。 1可以改写为0,但0永远不能改写为1。如果有32位OTP寄存器,则产生的值为OxFFFFFFFF。 如果用户通过编程将OTP寄存器的值写入为0xFFFFFFFE后,OTP寄存器就不能再被重写为0xFFFFFFFF; 当然,这个OTP寄存器的值也可以重写为0xFFFFFFFD或其他。

为了对0TP寄存器提供保护,此类FLASH芯片一般还提供了LOCK寄存器。 LOCK 寄存器也是一次性可编程的。 LOCK 寄存器的每一位对应一个 OTP 寄存器。 如果OTP寄存器对应的LOCK寄存器的位(BIT)从1写入0,则意味着锁定的OTP寄存器不能再被写入。 即使 OTP 的当前值为 0XFFFFFFFF,其值也永远不会改变。 可以重写。
通过OTP寄存器和LOCK寄存器,用户可以在0TP中保存一些特定的信息,如软件版本号、硬件版本号、密钥等信息。 同时,此类FLASH芯片内部还会有一个OTP寄存器。 该寄存器在生产时已由制造商编程,写入特定的序列号,并锁定。 如果有需要,FLASH厂家也可以根据客户需求写入特定的序列号。 这样,每个芯片都会有不同的ID号,避免被复制。
除了FLASH芯片外,很多CPU厂商还在CPU内部提供了类似的OTP寄存器供用户使用,这有利于开发更安全的应用。 像一些较大的厂商,如TI、FREESCALE等,他们往往不会公开某些芯片的数据表。 如果想要获得他们的数据表,就必须下大订单,并签署一定的保密协议。
OTP 本身并不提供绝对安全的应用程序。 然而,0TP的提供有助于开发者开发和部署更安全的应用程序,保护自己和客户的利益。 很多大厂商,如NOKIA、MOTOROAL、SAMSUNG、SONYERRICSON等,都需要根据客户(运营商)的要求,开发一些只能在自己网络中使用的手机。 许多软件和硬件保护都是基于 OTP 的。

立即获取报价

想要采购语音芯片或者定制语音芯片?你可以通过微信,QQ,电话等方式与我们联系