算法移植类加密芯片是凌科芯安公司的专利产品,主要功能是芯片内部嵌入凌科芯安公司的LKCOS智能操作系统,用户可以把MCU中程序一部分关键算法函数移植到芯片中运行。用户采用标准C语言编写代码,通过KEIL C编译器,编译并下载到智能芯片中。在实际运行中,通过调用函数方式运行智能卡芯片内的程序段,获得运行结果,并以此结果作为用户程序进一步运行的输入数据。因此芯片成了产品的一部分,而算法在芯片内部运算,盗版商无法破解,从根本上杜绝了程序被破解的可能。
算法移植加密芯片的调试包含2个部分:通讯调试和算法调试。本次先针对通讯调试环节常见问题进行解析。
通讯调试常见问题
1、通讯格式设置
一帧数据格式为:1个起始位,8个数据位,1个偶校验位(不可省略),2个停止位,共12位。
2、通讯速率
加密芯片的通讯速率=外部时钟频率/分频系数(默认分频系数是372)。若更改外部时钟频率,则通讯速率改变。我司demo电路使用3.579Mhz外部时钟,故默认通讯速率=3.579M/372,所以采用9600bps通讯。
3、复位问题
加密芯片上电后至少复位一次才能发指令,通讯异常后可先进行复位操作,然后重新进行指令交互。
4、时钟问题
必须提供外部时钟。若通讯不正常,应先检查时钟VPP、频率是否正常,保证复位和进行指令交互时,CLK处于连续正常供给状态。很多客户反馈的通讯失败均是由时钟不起振、起振晚、时钟供给不连续等问题造成。可通过逻辑分析仪和示波器辅助观察。
5、从时序上判断芯片的问题根源
“之前通讯是正常的,现在不行了,怎么回事?”
“我发了指令,加密芯片就是不回复,是不是芯片有问题?”
“我接收到的数据错误,是不是加密芯片运行算法出错了?”
上述引号中的内容均为用户反馈的真实信息。这些问题描述均为表象,若初步分析后仍无法定位,需要从底层时序查起。使用逻辑分析仪或示波器抓取MCU与加密芯片通讯的时序,与MCU收发的数据做比对,以此判断是加密芯片还是MCU的通讯异常引起的问题。