一种主控芯片与安全芯片之间稳定通信的实现方法及系统技术方案

技术编号:22238049 阅读:61 留言:0更新日期:2019-10-09 17:57
本发明专利技术公开一种主控芯片与安全芯片之间稳定通信的实现方法及系统,方法包括:主控芯片给安全芯片发送数据,打开第二定时器开始计时;安全芯片接收主控芯片发送的数据并打开第一定时器开始计时,根据数据进行操作,将操作响应返回给主控芯片,关闭第一定时器;主控芯片判断接收到的数据的类型,如为操作响应则关闭第二定时器,对操作响应进行处理;如为延时请求则重置第二定时器并打开开始计时;当第一定时器到达第一预设时间时进入中断,安全芯片给主控芯片发送延时请求,重置第一定时器,退出中断;主控芯片通过第二定时器判断是否等待超时,是则报错;否则继续等待接收数据。该发明专利技术保证了主控芯片与安全芯片之间的正常通信。

A Realization Method and System of Stable Communication between Main Control Chip and Security Chip

【技术实现步骤摘要】
一种主控芯片与安全芯片之间稳定通信的实现方法及系统
本专利技术涉及通信
,尤其涉及一种主控芯片与安全芯片之间稳定通信的实现方法及系统。
技术介绍
智能设备包括安全芯片(英文简称:SE,中文名称:SecureElement)和主控芯片(英文简称:MCU,中文名称:MicrocontrollerUnit),MCU与SE之间进行数据传输。当安全芯片用于智能家居或物联网等其他需要SE参与的电路模块中时,MCU与SE之间的数据传输目前仅仅依靠物理层的通信协议来实现,传统的物理层通信协议包括SPI(全双工、同步的通信总线)和I2C(并行总线),由于物理层逻辑简单,数据响应速度快,而SE功能复杂,对不同指令的响应时间会有所差别,故使用现有的物理层通信协议无法保证应用数据通信的完整性;且SE在预设时间内未处理完数据无法给MCU返回响应,就会出现SE假死现象,无法保证MCU与SE之间的正常通信。故亟待提供一种可以使SE与MCU(即主控芯片)之间进行通信的方法。
技术实现思路
本专利技术的目的是为了克服现有技术的不足,提供一种主控芯片与安全芯片之间稳定通信的实现方法及系统。本专利技术提供了一种主控芯片本文档来自技高网...

【技术保护点】
1.一种主控芯片与安全芯片之间稳定通信的实现方法,其特征在于,包括:步骤A1:主控芯片上电并初始化第二定时器;安全芯片上电并初始化第一定时器;步骤A2:所述主控芯片给所述安全芯片发送数据,打开所述第二定时器开始计时,等待接收所述安全芯片返回的数据;步骤A3:当所述安全芯片接收到所述主控芯片发送的数据时,打开所述第一定时器开始计时;步骤A4:所述安全芯片根据接收到的所述数据进行操作,并将操作响应返回给所述主控芯片,关闭所述第一定时器;步骤A5:当所述主控芯片接收到数据时,判断接收到的数据的类型,如为操作响应则关闭所述第二定时器,对所述操作响应进行处理;如为延时请求则重置所述第二定时器并打开开始计...

【技术特征摘要】
1.一种主控芯片与安全芯片之间稳定通信的实现方法,其特征在于,包括:步骤A1:主控芯片上电并初始化第二定时器;安全芯片上电并初始化第一定时器;步骤A2:所述主控芯片给所述安全芯片发送数据,打开所述第二定时器开始计时,等待接收所述安全芯片返回的数据;步骤A3:当所述安全芯片接收到所述主控芯片发送的数据时,打开所述第一定时器开始计时;步骤A4:所述安全芯片根据接收到的所述数据进行操作,并将操作响应返回给所述主控芯片,关闭所述第一定时器;步骤A5:当所述主控芯片接收到数据时,判断接收到的数据的类型,如为操作响应则关闭所述第二定时器,对所述操作响应进行处理;如为延时请求则重置所述第二定时器并打开开始计时,等待接收数据,返回步骤A5;当所述第一定时器到达第一预设时间时进入中断,所述中断包括:所述安全芯片给所述主控芯片发送延时请求,重置所述第一定时器,退出中断;在步骤A3与步骤A5之间还包括:所述主控芯片通过所述第二定时器判断是否等待超时,是则向应用层报错;否则继续等待接收所述安全芯片返回的数据。2.如权利要求1所述的方法,其特征在于,所述主控芯片通过第二定时器判断是否等待超时,具体为:所述主控芯片判断第二定时器的时间值是否大于所述超过第一预设时间,是则等待超时,否则等待未超时。3.如权利要求1所述的方法,其特征在于,所述步骤A1与步骤A2之间还包括:步骤Y11:所述主控芯片根据主机通信参数组织生成复位请求,并将所述复位请求发送给所述安全芯片;所述主机通信参数包括主机可接收最大帧长度;步骤Y12:所述安全芯片解析复位请求得到主机通信参数,根据自身的安全芯片通信参数组织生成复位应答并将其返回给所述主控芯片;步骤Y13:所述主控芯片接收所述安全芯片返回的复位应答,从复位应答中获取安全芯片通信参数,根据安全芯片通信参数得到安全芯片可接收最大帧长度、第一预设时间和安全芯片使用的校验和算法。4.如权利要求3所述的方法,其特征在于,所述步骤A1还包括:所述主控芯片初始化第二块号;所述安全芯片初始化第一块号;所述步骤A2包括:步骤A21:所述主控芯片判断是否进行数据块链传,是则置位链传标识,根据安全芯片可接收最大帧长度对待发送数据进行分包,根据链传标识、第二块号和第一个未处理的数据包组织生成第一类型数据块,执行步骤A22,否则根据待发送数据和第二块号组织生成第一类型数据块,执行步骤A22;步骤A22:所述主控芯片将所述第一类型数据块发送给所述安全芯片,打开所述第二定时器开始计时,等待接收所述安全芯片返回的数据块。5.如权利要求4所述的方法,其特征在于,所述步骤A4包括:步骤A41:所述安全芯片根据所述数据块中的命令头判断数据块的类型,如为第一类型数据块则执行步骤A42,如为第二类型数据块则执行步骤A49;步骤A42:所述安全芯片从接收到的第一类型数据块中获取数据域,根据所述第一类型数据块中的命令头获取链接指示位和收到块号,根据链接指示位保存链传标识;步骤A43:所述安全芯片反转第一块号,根据所述收到块号和保存的链接标识判断是否需要向所述主控芯片发送第二类型数据块,是则执行步骤A44,否则执行步骤A45;步骤A44:所述安全芯片向所述主控芯片发送包含成功信息和所述第一块号的第二类型数据块,关闭所述第一定时器,等待接收数据;步骤A45:所述安全芯片根据数据域的数据执行相应操作并生成响应数据;步骤A46:所述安全芯片判断是否进行数据块链传,是则执行步骤A47,否则执行步骤A48;步骤A47:所述安全芯片根据主机可接收最大帧长度对所述响应数据进行分包得到多个响应数据包,根据未处理的第一个响应数据包和所述第一块号组织得到第一类型数据块并发送给所述主控芯片,关闭所述第一定时器,等待接收数据;步骤A48:所述安全芯片根据响应数据和所述第一块号组织得到第一类型数据块,并将第一类型数据块发送给所述主控芯片,关闭所述第一定时器,等待接收数据;步骤A49:所述安全芯片从所述数据块中的命令头中获取收到块号,并判断收到块号与第一块号是否相同,是则向所述主控芯片重新发送上次发送的第一类型数据块,关闭所述第一定时器,等待接收数据,否则执行步骤A410;步骤A410:所述安全芯片反转第一块号,根据第一块号和未处理的下一个响应数据包组织第一类型数据块并发送给所述主控芯片,关闭所述第一定时器,等待接收数据。6.如权利要求5所述的方法,其特征在于,所述步骤A42与所述步骤A43之间还包括:所述安全芯片判断所述数据块中的数据长度是否大于所述安全芯片可接收的最大帧长度,是则所述安全芯片向所述主控芯片报错,关闭所述第一定时器,等待接收数据,否则执行步骤A43。7.如权利要求5所述的方法,其特征在于,所述步骤A41之前包括:当所述安全芯片接收到数据块时,从接收到的数据块中获取校验和,并根据校验和判断接收到的数据块是否有效,是则执行步骤A41,否则所述安全芯片向所述主控芯片报错,关闭所述第一定时器,等待接收数据。8.如权利要求6或7所述的方法,其特征在于,所述安全芯片向所述主控芯片报错,具体为:所述安全芯片给所述主控芯片发送包含错误信息和所述第一块号的第二类型数据块。9.如权利要求5所述的方法,其特征在于,所述对所述操作响应进行处理,包括:步骤A51:所述主控芯片从所述接收到的数据块中获取命令头、数据域;步骤A52:所述主控芯片根据所述命令头判断数据块的类型,如为第一类型数据块则执行步骤A53,如为第二类型数据块则执行步骤A56;如为第三类型数据块则执行步骤A59;步骤A53:所述主控芯片根据所述命令头得到链接指示位和收到块号,判断所述收到块号和第二块号是否相同,是则执行步骤A54,否则所述主控芯片向所述安全芯片报错,打开所述第二定时器开始计时,等待接收数据;步骤A54:所述主控芯片反转第二块号,根据所述链接指示位保存链传标识,保存所述数据域;步骤A55:所述主控芯片根据保存的链传标识判断是否需要向所述安全芯片发送第二类型数据块,是则向所述安全芯片发送包含成功信息和所述第二块号的第二类型数据块,打开所述第二定时器开始计时,等待接收数据;否则所述主控芯片根据保存的所述数据域向应用层返回响应数据,结束;步骤A56:所述主控芯片判断数据长度是否为0,是则执行步骤A57,否则所述主控芯片向应用层返回错误信息,结束;步骤A57:所述主控芯片根据命令头得到收到块号,判断收到块号和第二块号是否相同,是则执行步骤A58,否则向所述安全芯片重发上一次发送的第一类型数据块,打开所述第二定时器开始计时,等待接收数据;步骤A58:所述主控芯片反转第二块号,根据下一个待发送数据块和所述第二块号组织得到第一类型数据块并发送给所述安全芯片,打开所述第二定时器开始计时,等待接收数据;步骤A59:所述主控芯片重置第二定时器并打开开始计时,等待接收数据。10.如权利要求9所述的方法,其特征在于,所述步骤A52与所述步骤A53之间还包括:所述主控芯片判断接收到的数据块中的数据长度是否大于所述主机可接收最大帧长度,是则所述主控芯片向所述安全芯片报错,打开所述第二定时器开始计时,等待接收数据,否则执行步骤A53。11.如权利要求9所述的方法,其特征在于,所述步骤A51与步骤A52之间还包括:所述主控芯片根据所述安全芯片使用的校验和算法判断接收到的数据块中的校验值是否正确,是则执行步骤A52,否则所述主控芯片向所述安全芯片报错,打开所述第二定时器开始计时,等待接收数据。12.如权利要求10或11所述的方法,其特征在于,所述主控芯片向所述安全芯片报错,具体为:所述主控芯片给所述安全芯片发送包含错误信息和所述第二块号的第二类型数据块。13.如权利要求1所述的方法,其特征在于,所述步骤A1还包括:所述安全芯片将安全芯片的状态设置为未激活状态;所述主控芯片初始化第二块号;所述安全芯片初始化第一块号;所述步骤A1与步骤A2之间还包括:步骤T1:所述主控芯片根据主机通信参数组织生成复位请求,并将包含复位请求和第二块号的第二数据块发送给所述安全芯片;所述主机通信参数包括主机可接收最大帧长度;步骤T2:所述安全芯片解析接收到的第一类型数据块中的复位请求得到主机通信参数,根据安全芯片通信参数组织生成复位应答,并将包含所述复位应答和第一块号的第一类型数据块发送给所述主控芯片,将所述安全芯片的状态设置为激活状态;步骤T3:所述主控芯片接收所述安全芯片返回的第一类型数据块,从所述第一类型数据块的复位应答中获取安全芯片通信参数,根据安全芯片通信参数得到安全芯片可接收最大帧长度、第一预设时间和安全芯片使用的校验和算法。14.如权利要求13所述的方法,其特征在于,所述步骤A2包括:步骤A21:所述主控芯片判断是否进行数据块链传,是则置位链传标识,根据安全芯片可接收最大帧长度对待发送数据进行分包,根据链传标识、第二块号和第一个未处理的数据包组织生成第一类型数据块,执行步骤A22,否则根据待发送数据和第二块号组织生成第一类型数据块,执行步骤A22;步骤A22:所述主控芯片将所述第一类型数据块发送给所述安全芯片,打开所述第二定时器开始计时,等待接收所述安全芯片返回的数据块。15.如权利要求14所述的方法,其特征在于,所述步骤A4包括:步骤B1:所述安全芯片根据所述数据块中的命令头判断数据块的类型,如为第一类型数据块则执行步骤B2;步骤B2:所述安全芯片判断第一类型数据块是否包含复位请求,是则执行步骤B3;否则执行步骤B6;步骤B3:所述安全芯片判断安全芯片的状态是否为未激活状态,是则执行步骤B4;否则执行步骤B5;步骤B4:所述安全芯片对复位请求进行解析得到主机通信参数,根据所述安全芯片通信参数生成复位应答,并将包含复位应答与所述第一块号的第一类型数据块和包含所述第一块号的第四类型数据块返回给所述主控芯片,关闭所述第一定时器,将安全芯片的状态设置为激活状态,等待接收数据;步骤B5:所述安全芯片向所述主控芯片报错,关闭所述第一定时器,等待接收数据;步骤B6:所述安全芯片从接收到的第一类型数据块中获取数据域,根据所述第一类型数据块中的命令头获取链接指示位和收到块号,根据链接指示位保存链传标识;步骤B7:所述安全芯片根据所述收到块号和保存的链接标识判断是否需要向所述主控芯片发送包含成功信息的第二类型数据块,是则执行步骤B8,否则执行步骤B9;步骤B8:所述安全芯片反转第一块号,向所述主控芯片发送包含成功信息与所述第一块号的第二类型数据块和包含第一块号的第四类型数据块,关闭所述第一定时器,等待接收数据;步骤B9:所述安全芯片根据数据域的数据执行相应操作并生成响应数据;步骤B10:所述安全芯片判断是否进行数据块链传,是则执行步骤B11,否则执行步骤B12;步骤B11:所述安全芯片根据主机可接收最大帧长度对所述响应数据进行分包得到多个响应数据包,反转第一块号,根据未处理的第一个响应数据包和所述第一块号组织得到第一类型数据块,并将所述第一类型数据块和包含第一块号的第四类型数据块发送给所述主控芯片,关闭所述第一定时器,等待接收数据;步骤B12:所述安全芯片反转第一块号,根据响应数据和所述第一块号组织得到第一类型数据块,并将第一类型数据块和包含第一块号的第四类型数据块发送给所述主控芯片,关闭所述第一定时器,等待接收数据。16.如权利要求15所述的方法,其特征在于,所述步骤A4还包括:步骤C1:所述安全芯片根据所述数据块中的命令头判断数据块的类型,如为第二类型数据块则执行步骤C2;步骤C2:所述安全芯片判断所述安全芯片的状态是否为激活状态,是则执行步骤C4,否则执行步骤C3;步骤C3:所述安全芯片向所述主控芯片报错,关闭所述第一定时器,等待接收数据;步骤C4:所述安全芯片判断接收到的第二类型数据块是否包含成功信息,是则执行步骤C5,否则重新向所述主控芯片发送上一次发送的第四类型数据块和第一类型数据块,关闭所述第一定时器,等待接收数据;步骤C5:所述安全芯片将所述第一块号反转,根据下一个未处理的响应数据包和所述第一块号组织得到第一类型数据块,给所述主控芯片返回包含第一块号的第四类型数据块和所述第一类型数据块,关闭所述第一定时器,等待接收数据。17.如权利要求16所述的方法,其特征在于,所述步骤A4还包括:步骤D1:所述安全芯片根据所述数据块中的命令头判断数据块的类型,如为第三类型数据块则执行步骤D2;步骤D2:所述安全芯片判断安全芯片的状态是否为激活状态,是则执行步骤D5,否则执行步骤D3;步骤D3:所述安全芯片判断接收到的第三类型数据块是否包含热复位请求,是则执行步骤D4,否则执行步骤D5;步骤D4:所述安全芯片给所述主控芯片返回包含所述第一块号的第四类型数据块和包含热复位应答与所述第一块号的第一类型数据块,关闭所述第一定时器,将安全芯片的状态设置为未激活状态,等待接收数据;步骤D5:所述安全芯片向所述主控芯片报错,关闭所述第一定时器,等待接收数据。18.如权利要求15所述的方法,其特征在于,所述步骤B6与所述步骤B7之间还包括:所述安全芯片判断第一类型数据块中的数据长度是否大于安全芯片可接收的最大帧长度,是则所述安全芯片向所述主控芯片报错,关闭所述第一定时器,等待接收数据,否则执行步骤B7。19.如权利要求15-17任意一项所述的方法,其特征在于,所述安全芯片根据所述数据块中的命令头判断数据块的类型之前包括:当所述安全芯片接收到数据块时,从接收到的数据块中获取校验和,并根据校验和判断接收到的数据块是否有效,是则所述安全芯片根据所述数据块中的命令头判断数据块的类型,否则所述安全芯片向所述主控芯片报错,关闭所述第一定时器,等待接收数据。20.如权利要求15-19任意一项所述的方法,其特征在于,所述安全芯片向所述主控芯片报错,具体为:所述安全芯片给主控芯片返回包含所述第一块号的第四类型数据块和包含错误信息与所述第一块号的第二类型数据块。21.如权利要求17所述的方法,其特征在于,所述对所述操作响应进行处理,包括:步骤a1:所述主控芯片判断接收到数据块是否包含第四类型数据块,是则执行步骤a2,否则所述主控芯片向所述安全芯片报错,打开所述第二定时器开始计时,等待接收数据;步骤a2:所述主控芯片判断第四类型数据块中的块号是否与第二块号一致,是则执行步骤a3,否则所述主控芯片向所述安全芯片报错,打开所述第二定时器开始计时,等待接收数据;步骤a3:所述主控芯片从所述接收到的数据块中获取命令头、数据域;步骤a4:所述主控芯片根据所述命令头判断数据块的类型,如为第一类型数据块则执行步骤a5;步骤a5:所述主控芯片判断第一类型数据块是否包含复位应答,是则从第一类型数据块的复位应答中获取安全芯片通信参数,根据安全芯片通信参数得到安全芯片可接收最大帧长度、第一预设时间和安全芯片使用的校验和算法,返回步骤A2,否则执行步骤a6;步骤a6:所述主控芯片根据命令头得到链接指示位和收到块号;步骤a7:所述主控芯片判断收到块号和第二块号是否相同,是则执行步骤a9,否则执行步骤a8;步骤a8:所述主控芯片向所述安全芯片报错,打开第二定时器开始计时,等待接收数据;步骤a9:所述主控芯片将第二块号反转,根据链接指示位保存链传标识,保存数据域;步骤a10:所述主控芯片根据保存的链传标识判断是否需要向所述安全芯片发送包含成功信息的第二类型数据块,是则向所述安全芯片发送包含成功信息和第二块号的第二类型数据块,打开第二定时器开始计时,等待接收数据,否则执行步骤a11;步骤a11:所述主控芯片根据保存的数据域向应用层返回响应数据,结束。22.如权利要求21所述的方法,其特征在于,所述步骤a4还包括:所述主控芯片根据所述命令头判断数据块的类型如为第二类型数据块则执行步骤a12;步骤a12:所述主控芯片判断第二类型数据块中的数据长度是否为0,是则执行步骤a13,否则所述主控芯片向应用层返回错误信息,结束;步骤a13:所述主控芯片根据命令头得到收到块号;步骤a14:所述主控芯片判断接收到的第二类型数据块是否包含成功信息,是则执行步骤a15,否则向所述安全芯片重发上一次发送的第一类型数据块,打开第二定时器开始计时,等待接收数据;步骤a15:所述主控芯片判断收到块号和第二块号是否相同,是则执行步骤a16,否则向所述安全芯片重发上一次发送的第一类型数据块,打开第二定时器开始计时,等待接收数据;步骤a16:所述主控芯片反转第二块号,根据下一个未处理的待发送数据块和第二块号组织得到第一类型数据块并发送给所述安全芯片,打开第二定时器开始计时,等待接收数据。23.如权利要求22所述的方法,其特征在于,所述步骤a4还包括:所述主控芯片根据所述命令头判断数据块的类型如为第三类型数据块则执行步骤a17;步骤a17:所述主控芯片判断第三类型数据块是否为延时请求,是则执行步骤a18,否则执行步骤a19;步骤a18:所述主控芯片重置第二定时器并打开开始计时,等待接收数据;步骤a19:所述主控芯片判断第三类型数据块是否为热复位应答,是则执行步骤a20,否则执行步骤a21;步骤a20:所述主控芯片对所述安全芯片执行热复位操作,给所述安全芯片发送包含复位请求和第二块号的第一数据块,打开第二定时器开始计时,等待接收数据;步骤a21:所述主控芯片向所述安全芯片发送包含成功信息和第二块号的第二类型数据块,打开第二定时器开始计时,等待接收数据。24.如权利要求21所述的方法,其特征在于,所述步骤a4与所述步骤a5之间包括:所述主控芯片判断所述接收到的数据块中的数据长度是否大于所述主机可接收最大帧长度,是则所述主控芯片向所述安全芯片报错,打开所述第二定时器开始计时,等待接收数据,否则执行步骤a5。25.如权利要求21所述的方法,其特征在于,所述步骤a3与所述步骤a4之间还包括:所述主控芯片根据所述安全芯片使用的校验和算法判断接收到的数据块中的校验值是否正确,是则执行步骤a4,否则所述主控芯片向所述安全芯片报错,打开所述第二定时器开始计时,等待接收数据。26.如权利要求21-25任意一项所述的方法,其特征在于,所述主控芯片向所述安全芯片报错包括:所述主控芯片给安全芯片发送包含所述第二块号和错误信息的第二类型数据块。27.如权利要求4或14所述的方法,其特征在于,所述主控芯片判断是否进行数据块链传,包括:所述主控芯片判断待发送数据的长度是否大于所述安全芯片可接收最大帧长度,是则需要链传,否则不需要链传。28.如权利要求5或15所述的方法,其特征在于,所述安全芯片判断是否进行数据块链传,包括:所述安全芯片判断响应数据的长度是否所述大于主机可接收最大帧长度,是则需要链传,否则不需要链传。29.一种主控芯片与安全芯片之间稳定通信的实现系统,其特征在于,包括主控芯片和安全芯片,所述主控芯片包括第二初始化模块、第二定时器、第二发送模块、第二接收模块、第一判断模块、第二重置模块、第二判断模块、第一处理模块;所述安全芯片包括:第一初始化模块、第一接收模块、第一定时器、操作模块、第一发送模块、中断处理模块;所述第二初始化模块,用于在所述主控芯片上电后初始化第二定时器;所述第一初始化模块,用于在所述安全芯片上电后初始化第一定时器;所述第二发送模块,用于给所述安全芯片发送数据,打开所述第二定时器;所述第二定时器,用于被打开后开始计时;所述第一接收模块,用于接收所述第二发送模块发送的数据,打开所述第一定时器;所述第一定时器,用于被打开后开始计时;所述操作模块,用...

【专利技术属性】
技术研发人员:陆舟于华章
申请(专利权)人:飞天诚信科技股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1