开发AT88系统加密芯片,前提是得到NDA文档。得不到完整的NDA文档,是无法完整开发AT88系统加密芯片的!
1、发送命令时,经常返回错误0x15=Command start failed。原来是Acknowledge Polling问题。NDA文档中P43中提到If the device is not ready for the next command it will not acknowlege and the sequence must be repeated(start condition,command byte,check for ACK).之前重复10次经常出现错误,改为100次后错误没有了。
2、命令格式:command+addr1+addr2+N+Data(N)。
每次认证不成功,Authentication Attempts Counter、Write/Read Password Attempts Counter都会递减,在芯片锁死之前认证成功一次,它们的值恢复为默认值0xFF。
3、NDA文档提供了可以完全开发AT88SC系列加密芯片的资料。前提是必须充分理解NDA文档。
4、芯片内部的伪随机数发生器一旦启动,即启动了F2算法,host主机做多少次F2运算,device芯片中也要做多少次。必须保持同步!
其实很多心得的,怪当时没时间记录下来,所以写写blog是很必要的。
5、最近再次调试一个供应商给过来的驱动,驱动提供的认证函数和密码验证都通过了,但是用户区的数据还是没办法读写。调试了三四天毫无结果,后来在基本函数做了一个非常低级的错误:每次认证通过后,都会发一个命令去复位芯片,晕。。。这样做都行!