OTP操作是什么样子的

描述

  OTP操作的大概样子

  OTP寄存器和FLASH数据区域很类似,1能被改写为0,但0永远也不能写成1.如果有一个32位的OTP寄存器,出产的值是0xFFFFFFFF,如果用户通过编程,将OTP寄存器的值写为0xFFFFFFFE后,那OTP寄存器再也不能在改写为0xFFFFFFFF了;当然,这个OTP寄存器的值还可以改写为0xFFFFFFFC或其它。

  (不知道这里是否难理解,我再啰嗦一下,这里就是只修改了最后一个位,其他的都还是保持原始的状态还没有修改,那我当然还可以再修改一次。)

  为了给OTP寄存器提供保护,一般这类FLASH芯片还会提供一个LOCK寄存器。LOCK寄存器(同属OTP)也只能烧写一次。LOCK寄存器的每一位对应于一个OTP寄存器。

  (套娃,就是告诉你这如果部分flash的数据很重要,所以我要保护好它,我用了OTP。然后我还得保护好操作OTP的寄存器,那我就把操作它的的也保护好,所以LOCK就是拿来保护好OTP寄存器的)

  如果与OTP寄存器对应LOCK寄存器的位(BIT)从1写为0,就意味着这个被锁住的OTP寄存器再也不能进行写操作了。即使OTP的当前值为0XFFFFFFFF,它的值也永远不可以被改写了。

  通过OTP寄存器与LOCK寄存器,用户可以在OTP里保存一些特定的信息,例如软件版本号,硬件版本号,秘钥等信息。(这不就实例化了它的作用,你还能想到什么?)

  同时,这类FLASH芯片内部还会有另外一个OTP寄存器,这个寄存器在出产的时候就被厂家编程过了,写入特定的序列号,并LOCK住。

  如果有需要,FLASH厂商也可以根据客户的需要写入特定的序列号。这样,每个芯片都会有一个不一样的ID号,避免被复制。

  除了FLASH芯片,很多CPU厂商,也在CPU内部提供类似的OTP寄存器,供用户使用,利于开发更安全的应用。

  象一些比较大的厂商,例如TI,FREESCALE等,他们往往是不公开某些芯片的数据手册的。如果要获得他们的数据手册,一是要有大量的订货,同时也需要签署一定的保密协议。

  OTP本身并不能提供绝对安全的应用。但OTP的提供,有利于开发商开发和部署更安全的应用,保护自己和客户的利益。

  象很多大的厂商,例如NOKIA,MOTOROAL,SAMSUNG和SONYERRICSON等,都需要根据客户(运营商)的要求,开发一些只能在自己的网络里使用的手机。其中很多软件和硬件的保护都是基于OTP来实现的。

  OTP的解密

  对于OTP芯片根据其存储器的特点,简单的方法就是想办法把密码去掉,因为OTP形式存储不能用电擦除,但是可以用紫外光来擦除,那么只要能控制好了只把密码部分擦除掉,而保留了程序段,那么这样的芯片就是不加密的了。

  如果这样还没有办法,那么如果把芯片经过去层处理,把存储器进行拍照,因为代码是以电荷的码点形式存在的,然后把照片经过染色处理,把1和0区分读出整理,这样就得到了存储器里的代码。 解密的方法和手段很多,以上只是简单的提了一下思路。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分