密级:国网电力科学研究院通信与用电技术分公司芯片产业中心拟制人:刘国华审核人:苏伟批准人:项目名称(项目名称全称)项目编号(技术管理给出,规则见《项目编号规范》)文件名称安全芯片SPI接口通信协议文件编号(规则见《项目文件编号规范》)日期:安全芯片SPI接口通信协议目录1编写目的...............................................................................................................12适用范围...............................................................................................................13SPI物理层............................................................................................................13.1SPI传输模式...................................................................................................13.2安全芯片SPI传输模式..................................................................................23.3SPI通信流程...................................................................................................43.4设计要点..........................................................................................................43.4.1命令的结构和处理...................................................................................63.4.2发送数据结构...........................................................................................63.4.3接收数据结构...........................................................................................63.4.4状态字节...................................................................................................63.5数据重发机制..................................................................................................7图表目录图表1SPI接口时序(CPOL=0,CPHA=0)..........................................................1图表2SPI接口时序(CPOL=0,CPHA=1)..........................................................2图表3SPI接口时序(CPOL=1,CPHA=0)..........................................................2图表4SPI接口时序(CPOL=1,CPHA=1)..........................................................2表格目录未找到图形项目表。安全芯片SPI接口通信协议版本历史版本号作者项目角色修改日期修改内容及原因V1.0刘国华2013-3-20初稿V1.1刘国华2013-4-24将协议改为与终端安全芯片协议一致V1.2苏伟2013-5-28对T-ESAM错误返回码进行补充,返回SW1SW2Len1Len2DATALRC2安全芯片SPI接口通信协议第1页共7页1编写目的规范电表安全芯片的SPI接口。2适用范围电表安全芯片的SPI主设备和SPI从设备均须遵守本协议。3SPI物理层3.1SPI传输模式SPI有四种通信模式,如下表所示:表格1SPI模式模式CPOLCPHA第一个数据的驱动源其它数据的驱动源采样数据MODE0CPOL=0,CPHA=0SSN下降沿SCK下降沿SCK上升沿MODE1CPOL=0,CPHA=1第一个SCK上升沿SCK上升沿SCK下降沿MODE2CPOL=1,CPHA=0SSN下降沿SCK上升沿SCK下降沿MODE3CPOL=1,CPHA=1第一个SCK下降沿SCK下降沿SCK上升沿bit2bit3bit4bit6bit5msbbit1lsbSCKMOSI/MISOSSN图表1SPI接口时序(CPOL=0,CPHA=0)安全芯片SPI接口通信协议第2页共7页bit2bit3bit4bit6bit5msbbit1lsbSCKMOSI/MISOSSN图表2SPI接口时序(CPOL=0,CPHA=1)bit2bit3bit4bit6bit5msbbit1lsbSCKMOSI/MISOSSN图表3SPI接口时序(CPOL=1,CPHA=0)bit2bit3bit4bit6bit5msbbit1lsbSCKMOSI/MISOSSN图表4SPI接口时序(CPOL=1,CPHA=1)3.2安全芯片SPI传输模式总线工作方式采用MODE3,时钟极性(CPOL=1),串行同步时钟的空闲状态为高电平,时钟相位(CPHA=1),在串行同步时钟的下降沿转换数据,上升沿采样数据。1、接口设备发送数据,T-ESAM接收数据:图1T-ESAM接收数据信号图安全芯片SPI接口通信协议第3页共7页注:接口设备在发送数据时,MISO引脚需保持接收态,MISO引脚上的数据为无效数据,接口设备无需做处理,直接舍弃或不接收。2、接口设备接收数据,T-ESAM发送数据:图2T-ESAM发送数据信号图注:接口设备在接收数据时,MOSI引脚应始终保持低电平。安全芯片SPI接口通信协议第4页共7页3.3SPI通信流程接口设备设置SSN=0;接口设备发送0x55CLAINSP1P2Len1Len2DATALRC1接口设备设置SSN=1;接口设备读取数据:SW1SW2Len1Len2DATALRC2接口设备设置SSN=1;接口设备初始化SPI接口;接口设备等待获取BUSY状态字;接口设备判别状态字,是否为0x55?是否结束接口设备设置SSN=0;图3SPI通信流程3.4设计要点芯片上电期间,SSN引脚保持高电平。SSN=0:将SSN置低;SSN=1:将SSN置高。安全芯片SPI接口通信协议第5页共7页Len1代表长度的高字节,Len2代表长度的低字节。LRC1的计算方法:对CLAINSP1P2Len1Len2DATA数据,每个字节的异或值,再取反。LRC2的计算方法:对SW1SW2Len1Len2DATA数据,每个字节的异或值,再取反。Len1Len2代表DATA域的长度,不包括LRC1或LRC2。接口设备接收BUSY状态字的最长等待时间为3s。严格按照流程中对SSN信号的处理方式,禁止在数据传输中,将SSN置高。SCK推荐速率5MHz。接口设备发送/接收数据完成后,建议在10μs内将SSN置高。发送数据、接收数据字节间延时设为3μs。在市电供电的情况下,为了保证T-ESAM和主站会话通道的连续性,正常情况下不建议接口设备对T-ESAM断电。在SSN置高后,T-ESAM将进入低功耗状态,高电平保持时间至少10μs以上(见图7),才能置低。接口设备将SSN再次置低后,需等待50μs以上时间(见图8),才能开始发送数据。图4SSN高电平保持时间图5SSN再次置低后,需等待时间安全芯片SPI接口通信协议第6页共7页3.4.1命令的结构和处理命令由接口设备发起,T-ESAM应答。3.4.2发送数据结构发送数据的结构为:55CLAINSP1P2Len1Len2DATALRC1,其中:(1)55为发送命令结构的命令头;(2)CLA是命令类别;(3)INS是命令类别中的指令代码;(4)P1、P2是一个完成指令代码的参考符号;(5)Len1Len2是后续DATA的长度,不包含LRC1,由两字节表示;(6)DATA是由T-ESAM来处理的数据输入;(7)LRC1是发送数据的校验值,计算方法见SPI通信流程说明。3.4.3接收数据结构接收数据的结构为:SW1SW2Len1Len2DATALRC2,其中:(1)SW1SW2是指令执行完毕后,从设备返回的状态字;(2)Len1Len2是后续DATA的长度,不包含LRC2,由两字节表示;(3)DATA是T-ESAM处理数据完毕后,返回的输出数据;(4)LRC2是接收数据的校验值,计算方法见SPI通信流程说明;3.4.4状态字节SW1、SW2构成结束序列,结束序列在命令的结尾指示芯片的状态。SW1SW2=‘9000’表示正常结束。表1状态字信息表SW1SW2含义63CF认证失败/切换失败6400内部执行出错6581EEPROM损坏,导致卡锁定6700Lc或Le长度错安全芯片SPI接口通信协议第7页共7页SW1SW2含义6901离线计数器为0/时间比较错误/命令不接受,无效状态6982不满足安全状态6983Kut使用次数为06984引用数据无效(未申请随机数)6985使用条件不满足/计算时不存在临时密钥6986在线计数器为06988计算错误/MAC错误/证书解析错误698F证书解析错误6A80数据域不正确6A86参数P1、P2不正确6A88未找到引用数据6A90传输数据校验错6D00命令不存在6E00命令类型错,CLA错6F00数据无效9000命令执行成功9086验签错误9E2X文件错误9E3X算法计算错误9E57认证错误9E60建立会话错误9E5ECA证书错误3.5数据重发机制SPI传输层支持错误重发机制。例如在【会话初始化】、【会话恢复】和【会话协商】过程中,出现SPI数据传输数据错时,允许重新发送。支持错误重发次数为3次。(1)发送数据错误终端发送数据,如果T-ESAM返回的错误码为6A900000LRC2(SW1SW2Len1Len2LRC2),表明数据在传输时出现错误,此时终端可以重发指令。(2)接收数据错误终端收到数据后,需校验从T-ESAM接收的LRC与接收数据计算的LRC是否一致,如果不一致,说明T-ESAM数据在传输过程中出现错误,此时终端可以重新启动接收流程(将MOSI置高(低),不停接收数据,收到55后继续接收后续有效数据(SW1SW2Len1Len2DataLrc))。