【发明授权】一种主控芯片与安全芯片之间稳定通信的实现方法及系统_飞天诚信科技股份有限公司_201910580901.5 

申请/专利权人:飞天诚信科技股份有限公司

申请日:2019-06-29

发明/设计人:陆舟;于华章

公开(公告)日:2021-06-08

代理机构:

公开(公告)号:CN110297800B

代理人:

主分类号:G06F15/163(20060101)

地址:100085 北京市海淀区学清路9号汇智大厦B楼17层

分类号:G06F15/163(20060101);G06F15/177(20060101);G06F1/26(20060101)

优先权:

专利状态码:有效-授权

法律状态:2021.06.08#授权;2019.11.01#实质审查的生效;2019.10.01#公开

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

主权项:1.一种主控芯片与安全芯片之间稳定通信的实现方法,其特征在于,包括:步骤A1:主控芯片上电并初始化第二定时器;安全芯片上电并初始化第一定时器;步骤A2:所述主控芯片给所述安全芯片发送数据,打开所述第二定时器开始计时,等待接收所述安全芯片返回的数据;步骤A3:当所述安全芯片接收到所述主控芯片发送的数据时,打开所述第一定时器开始计时;步骤A4:所述安全芯片根据接收到的所述数据进行操作,并将操作响应返回给所述主控芯片,关闭所述第一定时器;步骤A5:当所述主控芯片接收到数据时,判断接收到的数据的类型,如为操作响应则关闭所述第二定时器,对所述操作响应进行处理;如为延时请求则重置所述第二定时器并打开开始计时,等待接收数据,返回步骤A5;当所述第一定时器到达第一预设时间时进入中断,所述中断包括:所述安全芯片给所述主控芯片发送延时请求,重置所述第一定时器,退出中断;在步骤A3与步骤A5之间还包括:所述主控芯片通过所述第二定时器判断是否等待超时,是则向应用层报错;否则继续等待接收所述安全芯片返回的数据;所述步骤A4包括:步骤A41:所述安全芯片根据所述数据块中的命令头判断数据块的类型,如为第一类型数据块则执行步骤A42,如为第二类型数据块则执行步骤A49;步骤A42:所述安全芯片从接收到的第一类型数据块中获取数据域,根据所述第一类型数据块中的命令头获取链接指示位和收到块号,根据链接指示位保存链传标识;步骤A43:所述安全芯片反转第一块号,根据所述收到块号和保存的链接标识判断是否需要向所述主控芯片发送第二类型数据块,是则执行步骤A44,否则执行步骤A45;步骤A44:所述安全芯片向所述主控芯片发送包含成功信息和所述第一块号的第二类型数据块,关闭所述第一定时器,等待接收数据;步骤A45:所述安全芯片根据数据域的数据执行相应操作并生成响应数据;步骤A46:所述安全芯片判断是否进行数据块链传,是则执行步骤A47,否则执行步骤A48;步骤A47:所述安全芯片根据主机可接收最大帧长度对所述响应数据进行分包得到多个响应数据包,根据未处理的第一个响应数据包和所述第一块号组织得到第一类型数据块并发送给所述主控芯片,关闭所述第一定时器,等待接收数据;步骤A48:所述安全芯片根据响应数据和所述第一块号组织得到第一类型数据块,并将第一类型数据块发送给所述主控芯片,关闭所述第一定时器,等待接收数据;步骤A49:所述安全芯片从所述数据块中的命令头中获取收到块号,并判断收到块号与第一块号是否相同,是则向所述主控芯片重新发送上次发送的第一类型数据块,关闭所述第一定时器,等待接收数据,否则执行步骤A410;步骤A410:所述安全芯片反转第一块号,根据第一块号和未处理的下一个响应数据包组织第一类型数据块并发送给所述主控芯片,关闭所述第一定时器,等待接收数据。

全文数据:一种主控芯片与安全芯片之间稳定通信的实现方法及系统技术领域本发明涉及通信技术领域,尤其涉及一种主控芯片与安全芯片之间稳定通信的实现方法及系统。背景技术智能设备包括安全芯片英文简称:SE,中文名称:SecureElement和主控芯片英文简称:MCU,中文名称:MicrocontrollerUnit,MCU与SE之间进行数据传输。当安全芯片用于智能家居或物联网等其他需要SE参与的电路模块中时,MCU与SE之间的数据传输目前仅仅依靠物理层的通信协议来实现,传统的物理层通信协议包括SPI全双工、同步的通信总线和I2C并行总线,由于物理层逻辑简单,数据响应速度快,而SE功能复杂,对不同指令的响应时间会有所差别,故使用现有的物理层通信协议无法保证应用数据通信的完整性;且SE在预设时间内未处理完数据无法给MCU返回响应,就会出现SE假死现象,无法保证MCU与SE之间的正常通信。故亟待提供一种可以使SE与MCU即主控芯片之间进行通信的方法。发明内容本发明的目的是为了克服现有技术的不足,提供一种主控芯片与安全芯片之间稳定通信的实现方法及系统。本发明提供了一种主控芯片与安全芯片之间稳定通信的实现方法,包括:步骤A1:主控芯片上电并初始化第二定时器;安全芯片上电并初始化第一定时器;步骤A2:所述主控芯片给所述安全芯片发送数据,打开所述第二定时器开始计时,等待接收所述安全芯片返回的数据;步骤A3:当所述安全芯片接收到所述主控芯片发送的数据时,打开所述第一定时器开始计时;步骤A4:所述安全芯片根据接收到的所述数据进行操作,并将操作响应返回给所述主控芯片,关闭所述第一定时器;步骤A5:当所述主控芯片接收到数据时,判断接收到的数据的类型,如为操作响应则关闭所述第二定时器,对所述操作响应进行处理;如为延时请求则重置所述第二定时器并打开开始计时,等待接收数据,返回步骤A5;当所述第一定时器到达第一预设时间时进入中断,所述中断包括:所述安全芯片给所述主控芯片发送延时请求,重置所述第一定时器,退出中断;在步骤A3与步骤A5之间还包括:所述主控芯片通过所述第二定时器判断是否等待超时,是则向应用层报错;否则继续等待接收所述安全芯片返回的数据。本发明又提供了一种主控芯片与安全芯片之间稳定通信的实现系统,包括主控芯片和安全芯片,所述主控芯片包括第二初始化模块、第二定时器、第二发送模块、第二接收模块、第一判断模块、第二重置模块、第二判断模块、第一处理模块;所述安全芯片包括:第一初始化模块、第一接收模块、第一定时器、操作模块、第一发送模块、中断处理模块;所述第二初始化模块,用于在所述主控芯片上电后初始化第二定时器;所述第一初始化模块,用于在所述安全芯片上电后初始化第一定时器;所述第二发送模块,用于给所述安全芯片发送数据,打开所述第二定时器;所述第二定时器,用于被打开后开始计时;所述第一接收模块,用于接收所述第二发送模块发送的数据,打开所述第一定时器;所述第一定时器,用于被打开后开始计时;所述操作模块,用于根据接收到所述第一接收模块接收到的数据进行操作;所述第一发送模块,用于将所述操作模块的操作响应返回给所述主控芯片,关闭所述第一定时器;所述第二接收模块,用于接收所述第一发送模块发送的数据;所述第一判断模块,用于判断所述第二接收模块接收到的数据的类型,如为操作响应则关闭所述第二定时器,触发所述第一处理模块;如为延时请求则触发所述第二重置模块;所述第二重置模块,用于重置所述第二定时器并打开;所述第一处理模块,用于对所述操作响应进行处理;所述中断处理模块,用于当所述第一定时器到达第一预设时间时给所述主控芯片发送延时请求,重置所述第一定时器;所述第二判断模块,用于通过所述第二定时器判断所述主控芯片是否等待超时,是则向应用层报错;否则继续等待接收所述安全芯片返回的数据,触发所述第二接收模块。本发明与现有技术相比,具有以下优点:本发明为MCU和SE之间提供一个可靠、资源耗费少且实现相对简单的通信方法,解决了MCU和SE之间的正常通信,保证应用数据的完整传输。附图说明图1为本发明实施例一提供的一种主控芯与安全芯片之间稳定通信的实现方法流程图;图2和图3为本发明实施例二提供的一种主控芯片与安全芯片之间稳定通信的实现方法流程图;图4-图6为本发明实施例三提供的一种主控芯片与安全芯片之间稳定通信的实现方法流程图;图7为本发明实施例四提供的一种主控芯与安全芯片之间稳定通信的实现系统方框图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例一本发明实施例一提供的一种MCU与SE之间稳定通信的实现方法,如图1所示,包括:步骤A1:MCU上电并初始化第二定时器;SE上电并初始化第一定时器;步骤A2:MCU给SE发送数据,打开第二定时器开始计时,等待接收SE返回的数据;步骤A3:当SE接收到MCU发送的数据时,打开第一定时器开始计时;步骤A4:SE根据接收到的数据进行操作,并将操作响应返回给MCU,关闭第一定时器;步骤A5:当MCU接收到数据时,判断接收到的数据的类型,如为操作响应则关闭第二定时器,对操作响应进行处理;如为延时请求则重置第二定时器并打开开始计时,等待接收数据,返回步骤A5;当第一定时器到达第一预设时间时进入中断,中断包括:SE给MCU发送延时请求,重置第一定时器,退出中断;在本实施例中,步骤A3与步骤A5之间还包括:MCU通过第二定时器判断是否等待超时,是则向应用层报错;否则继续等待接收SE返回的数据。安全芯片通信参数包括第一预设时间,MCU通过第二定时器判断是否等待超时,具体为:MCU判断第二定时器的时间值是否大于第一预设时间,是则等待超时,否则等待未超时;本实施例的方法中在MCU与SE两边各设置一个定时器,用于约定等待时间即第一预设时间,如SE在约定的时间内未处理完数据,则向MCU发送延时请求,即让MCU再等待一个约定时间,SE这边继续进行处理,有效防止出现SE假死现象,保证了MCU与SE之间的正常通信。本实施例的方法有多种实现方式,具体以下述方式进行详细描述。第一种方式,在步骤A1与步骤A2之间还包括:步骤Y11:MCU根据主机通信参数组织生成复位请求,并将复位请求发送给SE;主机通信参数包括主机可接收最大帧长度;步骤Y12:SE解析复位请求得到主机通信参数,根据自身的安全芯片通信参数组织生成复位应答并将其返回给MCU;步骤Y13:MCU接收SE返回的复位应答,从复位应答中获取安全芯片通信参数,根据安全芯片通信参数得到安全芯片可接收最大帧长度、第一预设时间和SE使用的校验和算法。在本实施例中,步骤A1还包括:MCU初始化第二块号;SE初始化第一块号;步骤A2包括:步骤A21:MCU判断是否进行数据块链传,是则置位链传标识,根据安全芯片可接收最大帧长度对待发送数据进行分包,根据链传标识、第二块号和第一个未处理的数据包组织生成第一类型数据块,执行步骤A22,否则根据待发送数据和第二块号组织生成第一类型数据块,执行步骤A22;步骤A22:MCU将第一类型数据块发送给SE,打开第二定时器开始计时,等待接收SE返回的数据块。在本实施例中,步骤A4包括:步骤A41:SE根据数据块中的命令头判断数据块的类型,如为第一类型数据块则执行步骤A42,如为第二类型数据块则执行步骤A49;在本实施例中,步骤A41之前包括:当SE接收到数据块时,从接收到的数据块中获取校验和,并根据校验和判断接收到的数据块是否有效,是则执行步骤A41,否则SE向MCU报错,关闭第一定时器,等待接收数据。步骤A42:SE从接收到的第一类型数据块中获取数据域,根据第一类型数据块中的命令头获取链接指示位和收到块号,根据链接指示位保存链传标识;在本实施例中,步骤A42与步骤A43之间还包括:SE判断数据块中的数据长度是否大于SE可接收的最大帧长度,是则SE向MCU报错,关闭第一定时器,等待接收数据,否则执行步骤A43。步骤A43:SE反转第一块号,根据收到块号和保存的链接标识判断是否需要向MCU发送第二类型数据块,是则执行步骤A44,否则执行步骤A45;步骤A44:SE向MCU发送包含成功信息和第一块号的第二类型数据块,关闭第一定时器,等待接收数据;步骤A45:SE根据数据域的数据执行相应操作并生成响应数据;步骤A46:SE判断是否进行数据块链传,是则执行步骤A47,否则执行步骤A48;步骤A47:SE根据主机可接收最大帧长度对响应数据进行分包得到多个响应数据包,根据未处理的第一个响应数据包和第一块号组织得到第一类型数据块并发送给MCU,关闭第一定时器,等待接收数据;步骤A48:SE根据响应数据和第一块号组织得到第一类型数据块,并将第一类型数据块发送给MCU,关闭第一定时器,等待接收数据;步骤A49:SE从数据块中的命令头中获取收到块号,并判断收到块号与第一块号是否相同,是则向MCU重新发送上次发送的第一类型数据块,关闭第一定时器,等待接收数据,否则执行步骤A410;步骤A410:SE反转第一块号,根据第一块号和未处理的下一个响应数据包组织第一类型数据块并发送给MCU,关闭第一定时器,等待接收数据。可选的,SE向MCU报错,具体为:SE给MCU发送包含错误信息和第一块号的第二类型数据块。具体的,在本实施例中,对操作响应进行处理,包括:步骤A51:MCU从接收到的数据块中获取命令头、数据域;在本实施例中,步骤A51与步骤A52之间还包括:MCU根据SE使用的校验和算法判断接收到的数据块中的校验值是否正确,是则执行步骤A52,否则MCU向SE报错,打开第二定时器开始计时,等待接收数据。步骤A52:MCU根据命令头判断数据块的类型,如为第一类型数据块则执行步骤A53,如为第二类型数据块则执行步骤A56;如为第三类型数据块则执行步骤A59;在本实施例中,步骤A52与步骤A53之间还包括:MCU判断接收到的数据块中的数据长度是否大于主机可接收最大帧长度,是则MCU向SE报错,打开第二定时器开始计时,等待接收数据,否则执行步骤A53。步骤A53:MCU根据命令头得到链接指示位和收到块号,判断收到块号和第二块号是否相同,是则执行步骤A54,否则MCU向SE报错,打开第二定时器开始计时,等待接收数据;步骤A54:MCU反转第二块号,根据链接指示位保存链传标识,保存数据域;步骤A55:MCU根据保存的链传标识判断是否需要向SE发送第二类型数据块,是则向SE发送包含成功信息和第二块号的第二类型数据块,打开第二定时器开始计时,等待接收数据;否则MCU根据保存的数据域向应用层返回响应数据,结束;步骤A56:MCU判断数据长度是否为0,是则执行步骤A57,否则MCU向应用层返回错误信息,结束;步骤A57:MCU根据命令头得到收到块号,判断收到块号和第二块号是否相同,是则执行步骤A58,否则向SE重发上一次发送的第一类型数据块,打开第二定时器开始计时,等待接收数据;步骤A58:MCU反转第二块号,根据下一个待发送数据块和第二块号组织得到第一类型数据块并发送给SE,打开第二定时器开始计时,等待接收数据;步骤A59:MCU重置第二定时器并打开开始计时,等待接收数据。上述步骤中的MCU向SE报错,具体为:MCU给SE发送包含错误信息和第二块号的第二类型数据块。第二种方式,步骤A1还包括:SE将SE的状态设置为未激活状态;MCU初始化第二块号;SE初始化第一块号;步骤A1与步骤A2之间还包括:步骤T1:MCU根据主机通信参数组织生成复位请求,并将包含复位请求和第二块号的第二数据块发送给SE;主机通信参数包括主机可接收最大帧长度;步骤T2:SE解析接收到的第一类型数据块中的复位请求得到主机通信参数,根据安全芯片通信参数组织生成复位应答,并将包含复位应答和第一块号的第一类型数据块发送给MCU,将SE的状态设置为激活状态;步骤T3:MCU接收SE返回的第一类型数据块,从第一类型数据块的复位应答中获取安全芯片通信参数,根据安全芯片通信参数得到安全芯片可接收最大帧长度、第一预设时间和SE使用的校验和算法。具体的,步骤A2包括:步骤A21:MCU判断是否进行数据块链传,是则置位链传标识,根据安全芯片可接收最大帧长度对待发送数据进行分包,根据链传标识、第二块号和第一个未处理的数据包组织生成第一类型数据块,执行步骤A22,否则根据待发送数据和第二块号组织生成第一类型数据块,执行步骤A22;步骤A22:MCU将第一类型数据块发送给SE,打开第二定时器开始计时,等待接收SE返回的数据块。相应的,步骤A4包括:步骤B1:SE根据数据块中的命令头判断数据块的类型,如为第一类型数据块则执行步骤B2;步骤B2:SE判断第一类型数据块是否包含复位请求,是则执行步骤B3;否则执行步骤B6;步骤B3:SE判断SE的状态是否为未激活状态,是则执行步骤B4;否则执行步骤B5;步骤B4:SE对复位请求进行解析得到主机通信参数,根据安全芯片通信参数生成复位应答,并将包含复位应答与第一块号的第一类型数据块和包含第一块号的第四类型数据块返回给MCU,关闭第一定时器,将SE的状态设置为激活状态,等待接收数据;步骤B5:SE向MCU报错,关闭第一定时器,等待接收数据;步骤B6:SE从接收到的第一类型数据块中获取数据域,根据第一类型数据块中的命令头获取链接指示位和收到块号,根据链接指示位保存链传标识;可选的,步骤B6与步骤B7之间还包括:SE判断第一类型数据块中的数据长度是否大于SE可接收的最大帧长度,是则SE向MCU报错,关闭第一定时器,等待接收数据,否则执行步骤B7。步骤B7:SE根据收到块号和保存的链接标识判断是否需要向MCU发送包含成功信息的第二类型数据块,是则执行步骤B8,否则执行步骤B9;步骤B8:SE反转第一块号,向MCU发送包含成功信息与第一块号的第二类型数据块和包含第一块号的第四类型数据块,关闭第一定时器,等待接收数据;步骤B9:SE根据数据域的数据执行相应操作并生成响应数据;步骤B10:SE判断是否进行数据块链传,是则执行步骤B11,否则执行步骤B12;步骤B11:SE根据主机可接收最大帧长度对响应数据进行分包得到多个响应数据包,反转第一块号,根据未处理的第一个响应数据包和第一块号组织得到第一类型数据块,并将第一类型数据块和包含第一块号的第四类型数据块发送给MCU,关闭第一定时器,等待接收数据;步骤B12:SE反转第一块号,根据响应数据和第一块号组织得到第一类型数据块,并将第一类型数据块和包含第一块号的第四类型数据块发送给MCU,关闭第一定时器,等待接收数据。在本实施例中,步骤A4还包括:步骤C1:SE根据数据块中的命令头判断数据块的类型,如为第二类型数据块则执行步骤C2;步骤C2:SE判断SE的状态是否为激活状态,是则执行步骤C4,否则执行步骤C3;步骤C3:SE向MCU报错,关闭第一定时器,等待接收数据;步骤C4:SE判断接收到的第二类型数据块是否包含成功信息,是则执行步骤C5,否则重新向MCU发送上一次发送的第四类型数据块和第一类型数据块,关闭第一定时器,等待接收数据;步骤C5:SE将第一块号反转,根据下一个未处理的响应数据包和第一块号组织得到第一类型数据块,给MCU返回包含第一块号的第四类型数据块和第一类型数据块,关闭第一定时器,等待接收数据。在本实施例中,步骤A4还包括:步骤D1:SE根据数据块中的命令头判断数据块的类型,如为第三类型数据块则执行步骤D2;步骤D2:SE判断SE的状态是否为激活状态,是则执行步骤D5,否则执行步骤D3;步骤D3:SE判断接收到的第三类型数据块是否包含热复位请求,是则执行步骤D4,否则执行步骤D5;步骤D4:SE给MCU返回包含第一块号的第四类型数据块和包含热复位应答与第一块号的第一类型数据块,关闭第一定时器,将SE的状态设置为未激活状态,等待接收数据;步骤D5:SE向MCU报错,关闭第一定时器,等待接收数据。在本实施例中,SE根据数据块中的命令头判断数据块的类型之前包括:当SE接收到数据块时,从接收到的数据块中获取校验和,并根据校验和判断接收到的数据块是否有效,是则SE根据数据块中的命令头判断数据块的类型,否则SE向MCU报错,关闭第一定时器,等待接收数据。在上述步骤中的SE向MCU报错,具体为:SE给MCU返回包含第一块号的第四类型数据块和包含错误信息与第一块号的第二类型数据块。对应的,对操作响应进行处理,包括:步骤a1:MCU判断接收到数据块是否包含第四类型数据块,是则执行步骤a2,否则MCU向SE报错,打开第二定时器开始计时,等待接收数据;步骤a2:MCU判断第四类型数据块中的块号是否与第二块号一致,是则执行步骤a3,否则MCU向SE报错,打开第二定时器开始计时,等待接收数据;步骤a3:MCU从接收到的数据块中获取命令头、数据域;可选的,步骤a3与步骤a4之间还包括:MCU根据SE使用的校验和算法判断接收到的数据块中的校验值是否正确,是则执行步骤a4,否则MCU向SE报错,打开第二定时器开始计时,等待接收数据;步骤a4:MCU根据命令头判断数据块的类型,如为第一类型数据块则执行步骤a5;可选的,步骤a4与步骤a5之间包括:MCU判断接收到的数据块中的数据长度是否大于主机可接收最大帧长度,是则MCU向SE报错,打开第二定时器开始计时,等待接收数据,否则执行步骤a5。步骤a5:MCU判断第一类型数据块是否包含复位应答,是则从第一类型数据块的复位应答中获取安全芯片通信参数,根据安全芯片通信参数得到安全芯片可接收最大帧长度、第一预设时间和安全芯片使用的校验和算法,返回步骤A2,否则执行步骤a6;步骤a6:MCU根据命令头得到链接指示位和收到块号;步骤a7:MCU判断收到块号和第二块号是否相同,是则执行步骤a9,否则执行步骤a8;步骤a8:MCU向SE报错,打开第二定时器开始计时,等待接收数据;步骤a9:MCU将第二块号反转,根据链接指示位保存链传标识,保存数据域;步骤a10:MCU根据保存的链传标识判断是否需要向SE发送包含成功信息的第二类型数据块,是则向SE发送包含成功信息和第二块号的第二类型数据块,打开第二定时器开始计时,等待接收数据,否则执行步骤a11;步骤a11:MCU根据保存的数据域向应用层返回响应数据,结束。在本实施例中,步骤a4还包括:MCU根据命令头判断数据块的类型如为第二类型数据块则执行步骤a12;步骤a12:MCU判断第二类型数据块中的数据长度是否为0,是则执行步骤a13,否则MCU向应用层返回错误信息,结束;步骤a13:MCU根据命令头得到收到块号;步骤a14:MCU判断接收到的第二类型数据块是否包含成功信息,是则执行步骤a15,否则向SE重发上一次发送的第一类型数据块,打开第二定时器开始计时,等待接收数据;步骤a15:MCU判断收到块号和第二块号是否相同,是则执行步骤a16,否则向SE重发上一次发送的第一类型数据块,打开第二定时器开始计时,等待接收数据;步骤a16:MCU反转第二块号,根据下一个未处理的待发送数据块和第二块号组织得到第一类型数据块并发送给SE,打开第二定时器开始计时,等待接收数据。在本实施例中,步骤a4还包括:MCU根据命令头判断数据块的类型如为第三类型数据块则执行步骤a17;步骤a17:MCU判断第三类型数据块是否为延时请求,是则执行步骤a18,否则执行步骤a19;步骤a18:MCU重置第二定时器并打开开始计时,等待接收数据;步骤a19:MCU判断第三类型数据块是否为热复位应答,是则执行步骤a20,否则执行步骤a21;步骤a20:MCU对SE执行热复位操作,给SE发送包含复位请求和第二块号的第一数据块,打开第二定时器开始计时,等待接收数据;步骤a21:MCU向SE发送包含成功信息和第二块号的第二类型数据块,打开第二定时器开始计时,等待接收数据。上述步骤中的MCU向SE报错包括:MCU给SE发送包含第二块号和错误信息的第二类型数据块。在本实施例中,MCU判断是否进行数据块链传,包括:MCU判断待发送数据的长度是否大于安全芯片可接收最大帧长度,是则需要链传,否则不需要链传。在本实施例中,SE判断是否进行数据块链传,包括:SE判断响应数据的长度是否大于主机可接收最大帧长度,是则需要链传,否则不需要链传。实施例二本发明实施例二提供一种主控芯片与安全芯片之间稳定通信的实现方法,如图3和图4所示,包括:步骤300:MCU上电并初始化第二块号和第二定时器;SE同时上电并初始化第一块号和第一定时器;例如,本实施例中,MCU初始化第二块号为0,第二定时器默认状态为关闭,SE初始化第一块号为1,第一定时器默认状态为关闭;步骤301:MCU根据主机通信参数组织生成复位请求,并将复位请求发送给SE;例如,本实施例中的复位请求为E06181;MCU可发送一帧最大长度是2的6次方64;步骤302:SE解析复位请求得到主机通信参数,根据安全芯片通信参数组织生成复位应答并将其返回给MCU;具体的,在本实施例中,复位请求包括:固定数值、主机通信参数;主机通信参数包括:主机可接收最大帧长度、主机使用校验和算法;主机通信参数长度为1个字节,高4位为主机帧长度指示器,代表主机最大可接收最大帧的长度单位字节,低4位为主机使用的校验和算法,目前只支持异或,用1表示;例如,本实施例中的复位应答为050600100112;SE可接收一帧最大长度是2的6次方64;例如,复位应答包括复位应答长度为固定值05h、安全芯片通信参数;安全芯片通信参数包括:SE帧长度指示器、SE支持波特率指示器、第一预设时间、SE检验和指示器、校验和;其中SE帧长度指示器表示安全芯片可接收最大帧长度,SE波特率指示器代表SE的通信速率,SE检验和指示器表示SE使用的校验和算法;第一预设时间代表主机最大可等待时间,校验和指示器只支持异或算法;步骤303:MCU接收SE返回的复位应答,从复位应答中获取安全芯片通信参数,根据安全芯片通信参数得到安全芯片可接收最大帧长度、第一预设时间和SE使用的校验和算法;步骤304:MCU根据应用层发送来的待发送数据和安全芯片可接收最大帧长度判断是否链传,是则执行步骤305,否则执行步骤306;步骤305:MCU置位链传标识,根据安全芯片可接收最大帧长度将待发送数据分成多个待发送数据包,根据第一个未处理待发送数据包和链传标识组织生成第一类型数据块,执行步骤307;例如,本步骤中链传的第一帧长度为0x3c,块号为0;第一类型数据块02003C0001000059A8864621E1B77FFC32DC4D8B848B1ABE9D110FD5ECF665FCD57913F68D955119C7B516A97DF4B3051C773CD1105B2D6855E8B03704030015;步骤306:MCU根据待发送数据组织生成第一类型数据块,执行步骤307;例如,本步骤中非链传的第一帧长度为0x0E,块号为0;第一类型数据块00001300A404000E325041592E5359532E444446303100CA;步骤307:MCU向SE发送第一类型数据块,打开第二定时器开始计时;步骤308:SE接收数据块,第一定时器开始计时,从接收到的数据块中获取命令头和校验和,并根据校验和判断接收到的数据块是否有效,是则执行步骤309,否则给MCU发送包含错误信息的第二类型数据块,重置第一定时器,等待接收数据;具体的,在本实施例中,SE从接收到的数据块中的高8位获取命令头,低8位获取校验和;例如,本步骤中包含错误信息的第二类型数据块为81000081;步骤309:SE根据命令头判断数据块的类型,如为第一类型数据块则执行步骤310,如为第二类型数据块则执行步骤318;本实施例中数据块格式具体为:PCB1字节+数据长度2字节+数据域+校验和1字节;其中第一类型数据块的PCB中第7位到第2位为000000,第1位代表链接指示位,第0位代表块号;第二类型数据块的PCB中第7位到第1位为1000000,第0位代表块号;第三类型数据块块的PCB固定为C0;具体的,SE判断命令头最高两位上的值,如为00b则表示数据块的类型为第一类型数据块,如为10b则表示数据块的类型为第二类型数据块;步骤310:SE从接收到的第一类型数据块中获取数据长度和数据域,根据命令头获取链接指示位和收到块号,根据链接指示位保存链传标识;具体的,在本实施例中,从第一类型数据块的命令头中的第1位获取链接指示位,如为1则表示存在链接即数据块是非最后一块,如为0则表示不存在链接数据块是最后一块,接收到完整的命令;从第一类型数据块命令头中的第0位获取收到块号;步骤311:SE判断获取的数据长度是否大于SE可接收的最大帧长度,是则给MCU发送包含错误信息的第二类型数据块,重置第一定时器,等待接收数据,否则执行步骤312;步骤312:SE将块号反转,根据收到块号和保存的链接标识判断是否需要向MCU发送第二类型数据块,是则执行步骤313,否则执行步骤314;步骤313:SE向MCU发送包含成功信息的第二类型数据块,重置第一定时器,等待接收MCU发送的数据;例如,本步骤中包含成功信息的第二类型数据块为80000080;步骤314:SE根据数据域的数据执行相应操作并生成响应数据;步骤315:SE根据主机可接收最大帧长度和响应数据的长度,判断是否进行数据块链传,是则执行步骤316,否则执行步骤317;步骤316:SE根据主机可接收最大帧长度对响应数据进行分包得到多个响应数据包,根据未处理的第一个响应数据包组织得到第一类型数据块并发送给MCU,重置第一定时器,等待接收MCU发送的数据;例如,本步骤中组织得到的第一类型数据块链传为02003C6f5c8408a000000003000000a550734a06072a864886fc6b01600c060a2a864886fc6b02020101630906072a864886fc6b03640b06092a864886fc6b040255650b0683;步骤317:SE根据响应数据组织得到第一类型数据块,并将第一类型数据块发送给MCU,重置第一定时器,等待接收MCU发送的数据;例如,本步骤中的第一类型数据块非链传为00000A4649444f5f325f30900096;步骤318:SE从命令头中获取收到块号,并判断收到块号与第一块号是否相同,是则向MCU重新发送上次发送的第一类型数据块,重置第一定时器,等待接收MCU发送的数据,否则执行步骤319;步骤319:SE将的第一块号反转,根据的第一块号和未处理的下一个响应数据包组织第一类型数据块并发送给MCU,重置第一定时器,等待接收MCU发送的数据;例如,本步骤中的下一个第一类型数据块为00001E092b8510864864020103660c060a2b060104012a026e01029f6501ff900083;步骤320:MCU根据第二定时器判断是否等待超时,是则执行步骤321,否则执行步骤322;步骤321:MCU向应用层返回错误,结束;可选的,本实施例中,步骤321还可替换为:MCU向SE发送包含错误信息的第二类型数据块例如80000080或复位应答命令,打开第二定时器,或通知物理层协议重新给SE上电;步骤322:当MCU接收到响应数据块时,重置第二定时器,从响应数据块中获取命令头、数据长度、数据域和校验值;步骤323:MCU根据SE使用的校验和算法判断校验值是否正确,是则执行步骤324,否则MCU通知SE检测到错误帧,打开第二定时器开始计时,等待接收数据;具体的,在本实施例中,MCU通知SE检测到错误帧,可以通过MCU给SE返回第二类型数据块或复位请求来实现;步骤324:MCU根据命令头判断响应数据块的类型,如为第一类型数据块则执行步骤325,如为第二类型数据块则执行步骤332;如为第三类型数据块则MCU重置第二定时器并打开开始计时,等待接收数据;具体的,在本实施例中,如命令头为C0h则为第三类型数据块,如命令头的高6位为000000b则为第一类型数据块,如命令头的高7位为1000000b则为第二类型数据块;例如,响应数据块为C00000C0则数据块类型为第三类型数据块;例如,接收到的数据为80000080,其中80为数据头,命令头的高7位为1000000则数据块类型为第二类型数据块,块号为0,数据长度为0,无数据域,校验和为80;步骤325:MCU判断获取的数据长度是否大于主机可接收最大帧长度,是则执行步骤328,否则执行步骤326;步骤326:MCU根据命令头得到链接指示位和收到块号;步骤327:MCU判断收到块号和第二块号是否相同,是则执行步骤329,否则执行步骤328;步骤328:MCU通知SE检测到错误帧,打开第二定时器开始计时,等待接收数据;例如,本步骤中的MCU给SE发送81000081来通知SE检测到错误帧;具体的,在本实施例中,MCU通知SE检测到错误帧可以通过MCU给SE返回第二类型数据块或复位请求来实现;步骤329:MCU将第二块号反转,根据链接指示位保存链传标识,保存数据域;步骤330:MCU根据保存的链传标识判断是否需要向SE发送第二类型数据块,是则向SE发送包含成功信息和第二块号的第二类型数据块,打开第二定时器开始计时,等待接收数据,否则执行步骤331;例如,本步骤中的包含成功信息的第二类型数据块为81000081;优选的,本实施例中的MCU向SE发送包含成功信息的第二类型数据块为80000080;步骤331:MCU根据保存的数据域向应用层返回响应数据,结束;可选的,在本实施例中,步骤331也可替换为MCU向应用层发送复位请求;步骤332:MCU判断数据长度是否为0,是则执行步骤333,否则MCU向应用层返回错误,结束;可选的,在本实施例中,步骤332判断为否时也可向应用层发送复位请求;步骤333:MCU根据命令头得到收到块号;步骤334:MCU判断收到块号和第二块号是否相同,是则执行步骤335,否则向SE重发上一次发发送的第一类型数据块,打开第二定时器开始计时,等待接收数据;例如,本步骤中重发的第一类型数据块为:02003C0001000059A8864621E1B77FFC32DC4D8B848B1ABE9D110FD5ECF665FCD57913F68D955119C7B516A97DF4B3051C773CD1105B2D6855E8B03704030015;步骤335:MCU将块号反转,根据下一个待发送数据块和第二块号组织得到第一类型数据块并发送给SE,打开第二定时器开始计时,等待接收数据。例如,本步骤中的第一类型数据块为:0100221787CBC2B2D94FA0EF64E0527B91F966D43563104BB04FB1AB54627BBB9D98E8D08026;本实施例中采用校验和的方式进行校验,计算简单,且SE给MCU发送延时请求而无需等待MCU返回响应,实现简单方便。在本实施例中,当第一定时器到达第一预设时间时进入中断,中断包括:SE给MCU发送延时请求,重置第一定时器并开始计时,退出中断。实施例三本发明实施例三提供一种主控芯片与安全芯片之间稳定通信的实现方法,如图4-图6所示,包括:步骤700:MCU上电并初始化第二块号和第二定时器;SE上电并初始化第一块号和第一定时器,设置SE的状态为未激活状态;具体的,本实施例中的第一定时器用于在SE接收到MCU发送的第一类型数据块时开始计时,每次SE给MCU发送第一类型数据块后进行重置;第一定时器默认状态为关闭;具体的,在本实施例中,SE将第一块号初始化为1;在预设时间内例如5ms完成初始化;MCU初始化第二块号为0;无论什么时候上电或复位,都是MCU主动发起通信,但防止SE还没有处于接收数据的状态,MCU就发送第一帧数据,在实施例2中Treset时间内SE完成初始化,并具备接收数据的能力,过了此时间段MCU才可以发送第一帧数据,保证了两者的同步;步骤701:MCU根据主机通信参数组织生成复位请求,并将包含复位请求和第二块号的第一类型数据块发送给SE;步骤702:SE解析第一类型数据块中的复位请求得到主机通信参数,根据安全芯片通信参数组织生成复位应答并将包含复位应答和第一块号的第一数据块发送给MCU,将SE的状态设置为激活状态;本实施例中的主机通信参数包括:主机可接收最大帧长度、主机通信速率;安全芯片通信参数包括安全芯片可接收最大帧长度、第一预设时间和SE使用的校验和算法;步骤703:MCU接收SE发送的第一类型数据块,从第一类型数据块的复位应答中获取安全芯片通信参数,根据安全芯片通信参数得到安全芯片可接收最大帧长度、第一预设时间和SE使用的校验和算法;在本实施例中,安全芯片可接收最大帧长度包括命令头、数据长度、数据域及校验和的总长度;步骤704:MCU并根据应用层发送来的待发送数据和安全芯片可接收最大帧长度判断是否链传,是则执行步骤705,否则执行步骤706;步骤705:MCU置位链传标识,根据安全芯片可接收最大帧长度将待发送数据分成多个待发送数据包,根据第一个未处理过的待发送数据包、第二块号和链传标识组织生成第一类型数据块,执行步骤707;步骤706:MCU根据待发送数据和第二块号组织生成第一类型数据块,执行步骤707;步骤707:MCU向SE发送第一类型数据块,打开第二定时器开始计时;步骤708:SE接收数据块,打开第一定时器开始计时,从接收到的数据块中获取命令头和校验和,并根据校验和判断接收到的数据块是否有效,是则执行步骤709,否则给MCU发送包含第一块号的第四类型数据块和包含错误信息与第二块号的第二类型数据块,关闭第一定时器,等待接收数据;具体的,在本实施例中,SE从接收到的数据块中的高16位获取命令头,低16位获取校验和;步骤709:SE根据命令头判断数据块的类型,如为第一类型数据块则执行步骤710,如为第二类型数据块则执行步骤722;如为第三类型数据块则执行步骤726;在本实施例中,本实施例中的数据块格式为:NAD1字节+PCB1字节+LEN2字节+DATALEN个字节+CRC2字节;其中,NAD用于标识数据的发送方,MCU给SE发送的数据NAD的值为0x5A,SE给MCU返回的数据块的NAD的值为0xA5;对于不同数据类型数据块,PCB的值不同,具体如表1、表2、表3和表4所示;对于第一类型数据块的LEN的值的范围为00–0xFFF9;第二类型数据块和第三类型数据块的LEN的值为0;第四类型数据块的LEN的值为2,表示下一个帧的长度;本实施例中所有数据块中CRC表示采用crc16算法;表1第一类型数据块:B7B6B5B4B3B2B1B0说明00I块0链接块1非链接块最后一块1100RATRATR请求块1110ATR0普通I块xx保留x块号,0或1表2第二类型数据块:B7B6B5B4B3B2B1B0说明10R块0RACK块,肯定确认1RNAK块,否定确定xxxx保留x块号,0或1表3第三类型数据块:表4第四类型数据块:B7B6B5B4B3B2B1B0说明01L块x块号,0或1xxxxx保留具体的,SE判断命令头第二字节最高两位上的值,如为00b则表示数据类型为第一类型数据块,如为50b则表示数据类型为第二类型数据块;如为51b则表示数据类型为第三类型数据块;如为01b则表示数据类型为第四类型数据块;具体的,SE无论什么时候向主机发送第一类型、第二类型或第三类型数据块时,应先发送第四类型数据块,此包含了下一次要发送的数据块总长度;步骤710:SE判断第一类型数据块是否为复位请求,是则执行步骤711;否则执行步骤714;在本实施例中,第一类型数据块包括复位请求和复位应答;步骤711:SE判断SE的状态是否为未激活状态,是则执行步骤712;否则执行步骤713;步骤712:SE对复位请求进行解析得到主机通信参数,根据安全芯片通信参数生成复位应答,并将包含复位应答与第一块号的第一类型数据块和包含第一块号的第四类型数据块返回给MCU,关闭第一定时器,将SE的状态设置为激活状态,等待接收数据;具体的,本实施例中的主机通信参数包括:主机可接受最大帧长度包括命令头、数据长度、数据域及校验和、通信速率等;例如,复位应答包括复位应答长度、SE帧长度指示器、SE支持波特率指示器、第一预设时间、SE使用的校验和算法;步骤713:SE向MCU返回包含第一块号的第四类型数据块和包含错误信息与第一块号的第二类型数据块,重置第一定时器,等待接收数据;步骤714:SE从接收到的第一类型数据块中获取数据长度和数据域,根据命令头获取链接指示位和收到块号,根据链接指示位保存链传标识;具体的,在本实施例中,从第一类型数据块第二字节第6位获取链接指示位,如00则表示存在链接即数据块是非最后一块,如为1则表示不存在链接数据块是最后一块,接收到完整的命令;从第一类型数据块命令头中的第0位获取收到块号;步骤715:SE判断获取的数据长度是否大于SE可接收的最大帧长度,是则给MCU发送包含第一块号的第四类型数据块和包含错误信息与第一块号的第二类型数据块,关闭第一定时器,等待接收数据,否则执行步骤716;步骤716:SE根据收到块号和保存的链接标识判断是否需要向MCU发送包含成功信息的第二类型数据块,是则执行步骤717,否则执行步骤718;步骤717:SE反转第一块号,向MCU发送包含第一块号的第四类型数据块和包含成功信息与第一块号的第二类型数据块,关闭第一定时器,等待接收数据;步骤718:SE根据数据域的数据执行相应操作并生成响应数据;步骤719:SE根据主机可接收最大帧长度和响应数据的长度,判断是否进行数据块链传,是则执行步骤720,否则执行步骤721;步骤720:SE根据主机可接收最大帧长度对响应数据进行分包得到多个响应数据包,反转第一块号,根据未处理的第一个响应数据包和第一块号组织得到第一类型数据块并将该第一类型数据块和包含第一块号的第四类型数据块发送给MCU,关闭第一定时器,等待接收数据;步骤721:SE反转第一块号,根据响应数据和第一块号组织得到第一类型数据块,并将该第一类型数据块和包含第一块号的第四类型数据块发送给MCU,关闭第一定时器,等待接收数据;步骤722:SE判断SE的状态是否为激活状态,是则执行步骤724,否则执行步骤723;步骤723:SE向MCU返回包含第一块号的第四类型数据块和包含错误信息与第一块号的第二类型数据块,关闭第一定时器,等待接收数据;步骤724:SE判断接收到的第二类型数据块是否包含成功信息,是则执行步骤725,否则重新向MCU发送上一次发送的第四类型数据块和第一类型数据块,关闭第一定时器,等待接收数据;步骤725:SE将第一块号反转,根据下一个未处理的响应数据包和第一块号组织得到第一类型数据块,给MCU返回包含第一块号的第四类型数据块和第一类型数据块,关闭第一定时器,等待接收数据;步骤726:SE判断SE的状态是否为激活状态,是则执行步骤727,否则执行步骤729;步骤727:SE判断接收到的第三类型数据块是否包含热复位请求,是则执行步骤728,否则执行步骤729;步骤728:SE给MCU返回包含第一块号的第四类型数据块和包含热复位应答与第一块号的第一类型数据块,关闭第一定时器,将SE的状态设置为未激活状态,等待接收数据;步骤729:SE向MCU返回包含第一块号的第四类型数据块和包含错误信息与第一块号的第二类型数据块,关闭第一定时器,等待接收数据;步骤730:MCU根据第二定时器判断是否等待超时,是则执行步骤731,否则执行步骤732;具体的,步骤730包括:MCU判断第二定时器的时间值是否大于第一预设时间,是则等待超时,执行步骤731,否则等待未超时,执行步骤732;步骤731:MCU向应用层返回错误,结束;可选的,本实施例中,步骤731还可替换为:MCU向SE发送包含错误信息的第二类型数据块例如80000080或复位应答命令,打开第二定时器,或通知物理层协议重新给SE上电;步骤732:当MCU接收到数据块时关闭第二定时器,判断接收到数据块是否包含第四类型数据块,是则执行步骤733,否则执行步骤734;步骤733:MCU判断第四类型数据块中的块号是否与第二块号一致,是则执行步骤735,否则执行步骤734;步骤734:MCU向SE发送包含错误信息和第二块号的第二类型数据块,打开第二定时器开始计时,等待接收数据;步骤735:MCU从响应数据块中获取命令头、数据长度、数据域和校验值;步骤736:MCU根据SE使用的校验和算法判断校验值是否正确,是则执行步骤737,否则MCU通知SE检测到错误帧,打开第二定时器开始计时,等待接收数据;具体的,在本实施例中,MCU通知SE检测到错误帧,可以通过MCU给SE返回包含的第二块号的第二类型数据块或包含的第二块号的复位请求来实现;步骤737:MCU根据命令头判断响应数据块的类型,如为第三类型数据块则执行步骤738,如为第一类型数据块则执行步骤743,如为第二类型数据块则执行步骤751;具体的,在本实施例中,如命令头为C0h则为第三类型数据块,如命令头的高6位为000000b则为第一类型数据块,如命令头的高7位为1000000b则为第二类型数据块;例如,接收到的数据为80000080,其中80为数据头,命令头的高7位为1000000则数据块类型为第二类型数据块,块号为0,数据长度为0,无数据域,校验和为80;步骤738:MCU判断第三类型数据块是否为延时请求,是则执行步骤739,否则执行步骤740;步骤739:MCU重置第二定时器并打开开始计时,等待接收数据;步骤740:MCU判断第三类型数据块是否为热复位应答,是则执行步骤741,否则执行步骤742;步骤741:MCU对SE执行热复位操作,给SE发送包含复位请求和第二块号的第一数据块,等待接收数据;步骤742:MCU向SE发送包含成功信息和第二块号的第二类型数据块,打开第二定时器开始计时,等待接收数据;步骤743:MCU判断获取的数据长度是否大于主机可接收最大帧长度,是则执行步骤747,否则执行步骤744;步骤744:MCU判断第一类型数据块是否包含复位应答,是则MCU从第一类型数据块的复位应答中获取安全芯片通信参数,根据安全芯片通信参数得到安全芯片可接收最大帧长度、第一预设时间和SE使用的校验和算法,返回步骤704,否则执行步骤745;步骤745:MCU根据命令头得到链接指示位和收到块号;步骤746:MCU判断收到块号和第二块号是否相同,是则执行步骤748,否则执行步骤747;步骤747:MCU向SE发送包含错误信息和第二块号的第二类型数据块,打开第二定时器开始计时,等待接收数据;具体的,在本实施例中,MCU向发送包含错误信息和第二块号的第二类型数据块可以替换为MCU给SE发送复位请求来实现;步骤748:MCU反转第二块号,根据链接指示位保存链传标识,保存数据域;步骤749:MCU根据保存的链传标识判断是否需要向SE发送包含成功信息的第二类型数据块,是则向SE发送包含成功信息和第二块号的第二类型数据块,打开第二定时器开始计时,等待接收数据,否则执行步骤750;例如,MCU向SE发送包含成功信息的第二类型数据块为5A80000000DA;步骤750:MCU根据保存的数据域向应用层返回响应数据,结束;步骤751:MCU判断第二类型数据块中的数据长度是否为0,是则执行步骤752,否则MCU向应用层返回错误,结束;可选的,在本实施例中,步骤732判断为否时也可向应用层发送复位请求;步骤752:MCU根据命令头得到收到块号;步骤753:MCU判断接收到的第二类型数据块是否包含成功信息,是则执行步骤754,否则向SE重发上一次发送的第一类型数据块,打开第二定时器开始计时,等待接收数据;步骤754:MCU判断收到块号和第二块号是否相同,是则执行步骤735,否则向SE重发上一次发送的第一类型数据块,打开第二定时器开始计时,等待接收数据;步骤755:MCU反转第二块号,根据下一个未处理的待发送数据块和第二块号组织得到第一类型数据块并发送给SE,打开第二定时器开始计时,等待接收数据。在本实施例中,当第一定时器到达第一预设时间时进入中断,中断包括:SE给MCU发送延时请求,重置第一定时器并开始计时,退出中断。本发明实施例为MCU和SE的之间提供一个可靠、资源耗费少且实现相对简单的通信方法,可广泛的用于智能家居等产品,解决了MCU和SE之间的通信,保证的可靠传输;且在MCU与SE两边各设置一个定时器,用于约定等待时间,如SE在约定的时间内未处理完数据,则向MCU发送延时请求,即让MCU再等待一次约定时间,SE这边继续进行处理,有效防止出现SE假死现象,保证了MCU与SE之间的正常通信。在实施例中,协议帧格式中的NAD实施例2中协议帧结构第一个字节用于标识数据的发送方,MCU和SE发送时的NAD值不同,可以方便的通过NAD来判断此帧数据的发送方。本实施例中的L块,它是SE发送数据时使用,每次发送IRS块时,先发送L块来指定下一对应块的数据长度,它可以完美的解决物理层接受方要接收数据的长度。实施例2中有复位请求的RWRSTARWRST功能,如果出现不可协调的错误,比如MCU超过FWT接收不到SE的数据,可以发送复位请求,两者同时回到复位状态。对于现有技术中在MCU和SE不对接收到的数据进行处理,通过本发明实施例的方案,可保证MCU与SE之间正常安全的通信。实施例四本发明实施例四提供一种一种主控芯片与安全芯片之间稳定通信的实现系统,如图7所示,该系统包括主控芯片41和安全芯片42,主控芯片41包括第二初始化模块411、第二定时器412、第二发送模块413、第二接收模块414、第一判断模块415、第二重置模块416、第二判断模块417、第一处理模块418;安全芯片42包括:第一初始化模块421、第一接收模块422、第一定时器423、操作模块424、第一发送模块425、中断处理模块426;第二初始化模块411,用于在主控芯片41上电后初始化第二定时器412;第一初始化模块421,用于在安全芯片42上电后初始化第一定时器423;第二发送模块413,用于给安全芯片42发送数据,打开第二定时器412;第二定时器412,用于被打开后开始计时;第一接收模块422,用于接收第二发送模块413发送的数据,打开第一定时器423;第一定时器423,用于被打开后开始计时;操作模块424,用于根据接收到第一接收模块422接收到的数据进行操作;第一发送模块425,用于将操作模块424的操作响应返回给主控芯片41,关闭第一定时器423;第二接收模块414,用于接收第一发送模块425发送的数据;第一判断模块415,用于判断第二接收模块414接收到的数据的类型,如为操作响应则关闭第二定时器412,触发第一处理模块418;如为延时请求则触发第二重置模块416;第二重置模块416,用于重置第二定时器412并打开;第一处理模块418,用于对操作响应进行处理;中断处理模块426,用于当第一定时器423到达第一预设时间时给主控芯片41发送延时请求,重置第一定时器423;第二判断模块417,用于通过第二定时器412判断主控芯片41是否等待超时,是则向应用层报错;否则继续等待接收安全芯片42返回的数据,触发第二接收模块414。在本实施例中,第二判断模块417具体用于判断第二定时器412的时间值是否大于第一预设时间,是则向应用层报错;否则继续等待接收安全芯片42返回的数据,触发第二接收模块414;在本实施例中,主控芯片41还包括第一组织生成模块和第一获取模块,安全芯片42还包括第一解析生成模块;第一组织生成模块,用于根据主机通信参数组织生成复位请求,触发第二发送模块413将复位请求发送给安全芯片42;主机通信参数包括主机可接收最大帧长度;第一接收模块422还用于接收第二发送模块413发送的复位请求;第一解析生成模块,用于解析第一接收模块422接收到的复位请求得到主机通信参数,根据自身的安全芯片通信参数组织生成复位应答;第一发送模块425还用于将第一解析生成模块的复位应答返回给主控芯片41;第二接收模块414还用于接收安全芯片42返回的复位应答;第一获取模块,用于从第二接收模块414接收到的复位应答中获取安全芯片通信参数,根据安全芯片通信参数得到安全芯片可接收最大帧长度、第一预设时间和安全芯片使用的校验和算法。可选的,第二初始化模块411还用于初始化第二块号;第一初始化模块421还用于初始化第一块号;第二发送模块413包括:第一判断单元,用于判断是否进行数据块链传,是则触发第一置位分包单元,否则触发第一生成单元;第一置位分包单元,用于置位链传标识,根据安全芯片可接收最大帧长度对待发送数据进行分包,根据链传标识、第二块号和第一个未处理的数据包组织生成第一类型数据块;第一生成单元,用于根据待发送数据和第二块号组织生成第一类型数据块;第一发送单元,用于将第一置位分包单元和第一生成单元生成的第一类型数据块发送给安全芯片42,打开第二定时器412开始计时,等待接收安全芯片42返回的数据块。可选的,操作模块424包括:第二判断单元,用于根据数据块中的命令头判断数据块的类型,如为第一类型数据块则触发第一获取保存单元,如为第二类型数据块则触发第一获取判断单元;第一获取保存单元,用于片从接收到的第一类型数据块中获取数据域,根据第一类型数据块中的命令头获取链接指示位和收到块号,根据链接指示位保存链传标识;第一反转判断单元,用于反转第一块号,根据收到块号和保存的链接标识判断是否需要向主控芯片41发送第二类型数据块,是则触发第二发送模块413向主控芯片41发送包含成功信息和第一块号的第二类型数据块,关闭第一定时器423,等待接收数据,否则触发第一操作生成单元;第一操作生成单元,用于根据数据域的数据执行相应操作并生成响应数据;第三判断单元,用于判断是否进行数据块链传,是则触发第一分包组织单元,否则触发第二生成单元;第一分包组织单元,用于根据主机可接收最大帧长度对响应数据进行分包得到多个响应数据包,根据未处理的第一个响应数据包和第一块号组织得到第一类型数据块,并触发第一发送模块425将第一类型数据块发送给主控芯片41,关闭第一定时器423,等待接收数据;第二生成单元,用于根据响应数据和第一块号组织得到第一类型数据块,并触发第一发送模块425将第一类型数据块将第一类型数据块发送给主控芯片41,关闭第一定时器423,等待接收数据;第一获取判断单元,用于从数据块中的命令头中获取收到块号,并判断收到块号与第一块号是否相同,是则触发第一发送模块425向主控芯片41重新发送上次发送的第一类型数据块,关闭第一定时器423,等待接收数据,否则触发第二反转生成单元;第二反转生成单元,用于反转第一块号,根据第一块号和未处理的下一个响应数据包组织第一类型数据块,并触发第一发送模块425将第一类型数据块发送给主控芯片41,关闭第一定时器423,等待接收数据。可选的,操作模块424还包括:第三判断单元,用于判断数据块中的数据长度是否大于安全芯片42可接收的最大帧长度,是则触发第一发送模块425向主控芯片41报错,关闭第一定时器423,等待接收数据,否则触发第一反转判断单元。可选的,操作模块424还包括:第四判断单元,用于从接收到的数据块中获取校验和,并根据校验和判断接收到的数据块是否有效,是则触发第二判断单元,否则触发第一发送模块425向主控芯片41报错,关闭第一定时器423,等待接收数据。在本实施例中,触发第一发送模块425向主控芯片41报错,具体为:触发第一发送模块425给主控芯片41发送包含错误信息和第一块号的第二类型数据块。相应的,第一处理模块418包括:第一获取单元,用于从接收到的数据块中获取命令头、数据域;第五判断单元,用于根据命令头判断数据块的类型,如为第一类型数据块则触发第六判断单元,如为第二类型数据块则触发第八判断单元;如为第三类型数据块则触发第二重置模块416;第六判断单元,用于根据命令头得到链接指示位和收到块号,判断收到块号和第二块号是否相同,是则触发第一反转保存单元,否则触发第二发送模块413向安全芯片42报错,打开第二定时器412开始计时,等待接收数据;第一反转保存单元,用于反转第二块号,根据链接指示位保存链传标识,保存数据域;第七判断单元,用于根据保存的链传标识判断是否需要向安全芯片42发送第二类型数据块,是则触发第二发送模块413向安全芯片42发送包含成功信息和第二块号的第二类型数据块,打开第二定时器412开始计时,等待接收数据;否则根据保存的数据域向应用层返回响应数据,结束;第八判断单元,用于判断数据长度是否为0,是则触发第九判断单元,否则向应用层返回错误信息,结束;第九判断单元,用于根据命令头得到收到块号,判断收到块号和第二块号是否相同,是则触发第一反转组织单元,否则触发第二发送模块413向安全芯片42重发上一次发送的第一类型数据块,打开第二定时器412开始计时,等待接收数据;第一反转组织单元,用于反转第二块号,根据下一个待发送数据块和第二块号组织得到第一类型数据块,触发第二发送模块413将第一类型数据块发送给安全芯片42,打开第二定时器412开始计时,等待接收数据。可选的,第一处理模块418还包括:第十判断单元,用于判断接收到的数据块中的数据长度是否大于主机可接收最大帧长度,是则触发第二发送模块413向安全芯片42报错,打开第二定时器412开始计时,等待接收数据,否则触发第六判断单元。可选的,第一处理模块418还包括:第十一判断单元,用于根据安全芯片使用的校验和算法判断接收到的数据块中的校验值是否正确,是则触发第五判断单元,否则触发第二发送模块413向安全芯片42报错,打开第二定时器412开始计时,等待接收数据。可选的,触发第二发送模块413向安全芯片42报错,具体为:触发第二发送模块413给安全芯片42发送包含错误信息和第二块号的第二类型数据块。在本实施例中,第一初始化模块421还用于将安全芯片42的状态设置为未激活状态、初始化第一块号;第二初始化模块411还用于初始化第二块号;主控芯片41还包括第二组织生成模块、第三获取模块;安全芯片42还包括第二解析生成模块;第二组织生成模块,用于根据主机通信参数组织生成复位请求,并触发等待第二发送模块413将包含复位请求和第二块号的第二数据块发送给安全芯片42;主机通信参数包括主机可接收最大帧长度;第一接收模块422还用于接收第二发送模块413发送的包含复位请求和第二块号的第二数据块;第二解析生成模块,用于解析接收到的第一类型数据块中的复位请求得到主机通信参数,根据安全芯片通信参数组织生成复位应答,将安全芯片42的状态设置为激活状态;第一发送模块425还用于将包含第二解析生成模块生成的复位应答和第一块号的第一类型数据块发送给主控芯片41;第二接收模块414还用于接收安全芯片42返回的包含复位应答和第一块号的第一类型数据块;第三获取模块,用于从第一类型数据块的复位应答中获取安全芯片通信参数,根据安全芯片通信参数得到安全芯片可接收最大帧长度、第一预设时间和安全芯片使用的校验和算法。本实施例中的第二发送模块413包括:第十二判断单元,用于判断是否进行数据块链传,是则触发第二置位分包单元,否则触发第三生成单元;第二置位分包单元,用于置位链传标识,根据安全芯片可接收最大帧长度对待发送数据进行分包,根据链传标识、第二块号和第一个未处理的数据包组织生成第一类型数据块;第三生成单元,用于根据待发送数据和第二块号组织生成第一类型数据块;第二发送单元,用于将第二置位分包单元和第三生成单元生成的第一类型数据块发送给安全芯片42,打开第二定时器412开始计时,等待接收安全芯片42返回的数据块。具体的,在本实施例中,操作模块424包括:第十三判断单元,用于根据数据块中的命令头判断数据块的类型,如为第一类型数据块则触发第十四判断单元;第十四判断单元,用于判断第一类型数据块是否包含复位请求,是则触发第十五判断单元;否则触发第四获取单元;第十五判断单元,用于判断安全芯片42的状态是否为未激活状态,是则触发第一解析生成单元;否则触发第一发送模块425向主控芯片41报错,关闭第一定时器423,等待接收数据;第一解析生成单元,用于对复位请求进行解析得到主机通信参数,根据安全芯片通信参数生成复位应答,并触发第一发送模块425将包含复位应答与第一块号的第一类型数据块和包含第一块号的第四类型数据块返回给主控芯片41,关闭第一定时器423,将安全芯片42的状态设置为激活状态,等待接收数据;第四获取单元,用于从接收到的第一类型数据块中获取数据域,根据第一类型数据块中的命令头获取链接指示位和收到块号,根据链接指示位保存链传标识;第十六判断单元,用于根据收到块号和保存的链接标识判断是否需要向主控芯片41发送包含成功信息的第二类型数据块,是则反转第一块号,触发第一发送模块425向主控芯片41发送包含成功信息与第一块号的第二类型数据块和包含第一块号的第四类型数据块,关闭第一定时器423,等待接收数据;否则触发第二操作生成单元;第二操作生成单元,用于根据数据域的数据执行相应操作并生成响应数据;第十七判断单元,用于判断是否进行数据块链传,是则触发第二分包组织单元,否则触发第四生成单元;第二分包组织单元,用于根据主机可接收最大帧长度对响应数据进行分包得到多个响应数据包,反转第一块号,根据未处理的第一个响应数据包和第一块号组织得到第一类型数据块;第四生成单元,用于反转第一块号,根据响应数据和第一块号组织得到第一类型数据块;第一发送模块425,还用于将第二分包组织单元或第四生成单元生成的第一类型数据块和包含第一块号的第四类型数据块发送给主控模块。可选的,操作模块424还包括:第十八判断单元,用于当第十三判断单元判断数据块的类型为第二类型数据块时,判断安全芯片42的状态是否为激活状态,是则触发第十九判断单元,否则触发第一发送模块425向主控芯片41报错,关闭第一定时器423,等待接收数据;第十九判断单元,用于判断接收到的第二类型数据块是否包含成功信息,是则触发第三反转组织单元,否则触发第一发送模块425重新向主控芯片41发送上一次发送的第四类型数据块和第一类型数据块,关闭第一定时器423,等待接收数据;第三反转组织单元,用于将第一块号反转,根据下一个未处理的响应数据包和第一块号组织得到第一类型数据块,触发第一发送模块425给主控芯片41返回包含第一块号的第四类型数据块和第一类型数据块,关闭第一定时器423,等待接收数据。可选的,操作模块424还包括:第二十判断单元,用于当第十三判断单元判断数据块的类型为第三类型数据块时,判断安全芯片42的状态是否为激活状态,是则触发第一发送模块425向主控芯片41报错,关闭第一定时器423,等待接收数据,否则触发第二十一判断单元;第二十一判断单元,用于判断接收到的第三类型数据块是否包含热复位请求,是则触发第一发送模块425给主控芯片41返回包含第一块号的第四类型数据块和包含热复位应答与第一块号的第一类型数据块,关闭第一定时器423,将安全芯片42的状态设置为未激活状态,等待接收数据;否则触发第一发送模块425向主控芯片41报错,关闭第一定时器423,等待接收数据。可选的,操作模块424还包括:第二十二判断单元,用于判断第一类型数据块中的数据长度是否大于安全芯片42可接收的最大帧长度,是则触发第一发送模块425向主控芯片41报错,关闭第一定时器423,等待接收数据,否则触发第十六判断单元。可选的,操作模块424还包括:第二十三判断单元,用于从接收到的数据块中获取校验和,并根据校验和判断接收到的数据块是否有效,是则触发第十三判断单元,否则触发第一发送模块425向主控芯片41报错,关闭第一定时器423,等待接收数据。在本实施例中,触发第一发送模块425向主控芯片41报错,具体为:触发第一发送模块425给主控芯片41返回包含第一块号的第四类型数据块和包含错误信息与第一块号的第二类型数据块。对应的,第一处理模块418包括:第二十四判断单元,用于判断接收到数据块是否包含第四类型数据块,是则触发第二十五判断单元,否则触发第二发送模块413向安全芯片42报错,打开第二定时器412开始计时,等待接收数据;第二十五判断单元,用于判断第四类型数据块中的块号是否与第二块号一致,是则触发第五获取单元,否则所触发第二发送模块413向安全芯片42报错,打开第二定时器412开始计时,等待接收数据;第五获取单元,从接收到的数据块中获取命令头、数据域;第二十六判断单元,用于根据命令头判断数据块的类型,如为第一类型数据块则触发第二十七判断单元;第二十七判断单元,用于判断第一类型数据块是否包含复位应答,是则从第一类型数据块的复位应答中获取安全芯片通信参数,根据安全芯片通信参数得到安全芯片可接收最大帧长度、第一预设时间和安全芯片使用的校验和算法,否则触发第二得到单元;在本实施例中,系统经过第二十七判断单元为是之后,主控芯片开始重新向安全芯片发送数据;第二得到单元,用于根据命令头得到链接指示位和收到块号;第二十八判断单元,用于判断收到块号和第二块号是否相同,是则触发第二反转保存单元,否则触发第二发送模块413向安全芯片42报错,打开第二定时器412开始计时,等待接收数据;第二反转保存单元,用于将第二块号反转,根据链接指示位保存链传标识,保存数据域;第二十九判断单元,用于根据保存的链传标识判断是否需要向安全芯片42发送包含成功信息的第二类型数据块,是则触发等待第二发送模块413向安全芯片42发送包含成功信息和第二块号的第二类型数据块,打开第二定时器412开始计时,等待接收数据,否则根据保存的数据域向应用层返回响应数据,结束。可选的,第一处理模块418还包括:第三十判断单元,用于当第二十六判断单元判断数据块的类型为第二类型数据块时,判断第二类型数据块中的数据长度是否为0,是则触发第三得到单元,否则向应用层返回错误信息,结束;第三得到单元,用于根据命令头得到收到块号;第三十一判断单元,用于判断接收到的第二类型数据块是否包含成功信息,是则触发第三十二判断单元,否则触发第二发送模块413向安全芯片42重发上一次发送的第一类型数据块,打开第二定时器412开始计时,等待接收数据;第三十二判断单元,用于判断收到块号和第二块号是否相同,是则触发第四反转组织单元,否则触发第二发送模块413向安全芯片42重发上一次发送的第一类型数据块,打开第二定时器412开始计时,等待接收数据;第四反转组织单元,用于反转第二块号,根据下一个未处理的待发送数据块和第二块号组织得到第一类型数据块,并触发第二发送模块413将第一类型数据块发送给安全芯片42,打开第二定时器412开始计时,等待接收数据。可选的,第一处理模块418还包括:第三十三判断单元,用于当第二十六判断单元判断数据块的类型为第三类型数据块时,判断第三类型数据块是否为延时请求,是则触发第二重置模块416,否则触发三十四判断单元;三十四判断单元,用于判断第三类型数据块是否为热复位应答,是则触发热复位操作单元,否则触发第二发送模块413向安全芯片42发送包含成功信息和第二块号的第二类型数据块,打开第二定时器412开始计时,等待接收数据;热复位操作单元,用哦与对安全芯片42执行热复位操作,触发等待第二发送模块413给安全芯片42发送包含复位请求和第二块号的第一数据块,打开第二定时器412开始计时,等待接收数据。可选的,第一处理模块418还包括:第三十五判断单元,用于判断接收到的数据块中的数据长度是否大于主机可接收最大帧长度,是则触发第二发送模块413向安全芯片42报错,打开第二定时器412开始计时,等待接收数据,否则触发第二十七判断单元。可选的,第一处理模块418还包括:第三十六判断单元,用于根据安全芯片使用的校验和算法判断接收到的数据块中的校验值是否正确,是则触发第二十六判断单元,否则触发第二发送模块413向安全芯片42报错,打开第二定时器412开始计时,等待接收数据。在本实施例中,触发第二发送模块413向安全芯片42报错具体为:触发第二发送模块413给安全芯片42发送包含第二块号和错误信息的第二类型数据块。在本实施例中,第一判断单元和第十二判断模块中的判断是否进行数据块链传,包括:判断待发送数据的长度是否大于安全芯片可接收最大帧长度,是则需要链传,否则不需要链传。在本实施例中,第三判断单元和第十七判断单元中的判断是否进行数据块链传,包括:判断响应数据的长度是否大于主机可接收最大帧长度,是则需要链传,否则不需要链传。本发明实施例通过在MCU与SE两边各设置一个定时器,用于约定等待时间,如SE在约定的时间内未处理完数据,则向MCU发送延时请求,即让MCU再等待一个约定时间,SE这边继续进行处理,有效防止出现SE假死现象,保证了MCU与SE之间的正常通信。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

权利要求: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.一种主控芯片与安全芯片之间稳定通信的实现系统,其特征在于,包括主控芯片和安全芯片,所述主控芯片包括第二初始化模块、第二定时器、第二发送模块、第二接收模块、第一判断模块、第二重置模块、第二判断模块、第一处理模块;所述安全芯片包括:第一初始化模块、第一接收模块、第一定时器、操作模块、第一发送模块、中断处理模块;所述第二初始化模块,用于在所述主控芯片上电后初始化第二定时器;所述第一初始化模块,用于在所述安全芯片上电后初始化第一定时器;所述第二发送模块,用于给所述安全芯片发送数据,打开所述第二定时器;所述第二定时器,用于被打开后开始计时;所述第一接收模块,用于接收所述第二发送模块发送的数据,打开所述第一定时器;所述第一定时器,用于被打开后开始计时;所述操作模块,用于根据接收到所述第一接收模块接收到的数据进行操作;所述第一发送模块,用于将所述操作模块的操作响应返回给所述主控芯片,关闭所述第一定时器;所述第二接收模块,用于接收所述第一发送模块发送的数据;所述第一判断模块,用于判断所述第二接收模块接收到的数据的类型,如为操作响应则关闭所述第二定时器,触发所述第一处理模块;如为延时请求则触发所述第二重置模块;所述第二重置模块,用于重置所述第二定时器并打开;所述第一处理模块,用于对所述操作响应进行处理;所述中断处理模块,用于当所述第一定时器到达第一预设时间时给所述主控芯片发送延时请求,重置所述第一定时器;所述第二判断模块,用于通过所述第二定时器判断所述主控芯片是否等待超时,是则向应用层报错;否则继续等待接收所述安全芯片返回的数据,触发所述第二接收模块。30.如权利要求29所述的系统,其特征在于,所述第二判断模块具体用于判断第二定时器的时间值是否大于所述第一预设时间,是则向应用层报错;否则继续等待接收所述安全芯片返回的数据,触发所述第二接收模块。31.如权利要求29所述的系统,其特征在于,所述主控芯片还包括第一组织生成模块和第一获取模块,所述安全芯片还包括第一解析生成模块;所述第一组织生成模块,用于根据主机通信参数组织生成复位请求,触发所述第二发送模块将所述复位请求发送给所述安全芯片;所述主机通信参数包括主机可接收最大帧长度;所述第一接收模块还用于接收所述第二发送模块发送的复位请求;所述第一解析生成模块,用于解析所述第一接收模块接收到的复位请求得到主机通信参数,根据自身的安全芯片通信参数组织生成复位应答;所述第一发送模块还用于将所述第一解析生成模块的复位应答返回给所述主控芯片;所述第二接收模块还用于接收所述安全芯片返回的复位应答;所述第一获取模块,用于从所述第二接收模块接收到的复位应答中获取安全芯片通信参数,根据安全芯片通信参数得到安全芯片可接收最大帧长度、第一预设时间和安全芯片使用的校验和算法。32.如权利要求31所述的系统,其特征在于,所述第二初始化模块还用于初始化第二块号;所述第一初始化模块还用于初始化第一块号;所述第二发送模块包括:第一判断单元,用于判断是否进行数据块链传,是则触发第一置位分包单元,否则触发第一生成单元;所述第一置位分包单元,用于置位链传标识,根据安全芯片可接收最大帧长度对待发送数据进行分包,根据链传标识、第二块号和第一个未处理的数据包组织生成第一类型数据块;所述第一生成单元,用于根据待发送数据和第二块号组织生成第一类型数据块;第一发送单元,用于将所述第一置位分包单元和所述第一生成单元生成的第一类型数据块发送给所述安全芯片,打开所述第二定时器开始计时,等待接收所述安全芯片返回的数据块。33.如权利要求32所述的系统,其特征在于,所述操作模块包括:第二判断单元,用于根据所述数据块中的命令头判断数据块的类型,如为第一类型数据块则触发第一获取保存单元,如为第二类型数据块则触发第一获取判断单元;所述第一获取保存单元,用于片从接收到的第一类型数据块中获取数据域,根据所述第一类型数据块中的命令头获取链接指示位和收到块号,根据链接指示位保存链传标识;第一反转判断单元,用于反转第一块号,根据所述收到块号和保存的链接标识判断是否需要向所述主控芯片发送第二类型数据块,是则触发所述第二发送模块向所述主控芯片发送包含成功信息和所述第一块号的第二类型数据块,关闭所述第一定时器,等待接收数据,否则触发第一操作生成单元;所述第一操作生成单元,用于根据数据域的数据执行相应操作并生成响应数据;第三判断单元,用于判断是否进行数据块链传,是则触发第一分包组织单元,否则触发第二生成单元;所述第一分包组织单元,用于根据主机可接收最大帧长度对所述响应数据进行分包得到多个响应数据包,根据未处理的第一个响应数据包和所述第一块号组织得到第一类型数据块,并触发所述第一发送模块将所述第一类型数据块发送给所述主控芯片,关闭所述第一定时器,等待接收数据;所述第二生成单元,用于根据响应数据和所述第一块号组织得到第一类型数据块,并触发所述第一发送模块将所述第一类型数据块将第一类型数据块发送给所述主控芯片,关闭所述第一定时器,等待接收数据;所述第一获取判断单元,用于从所述数据块中的命令头中获取收到块号,并判断收到块号与第一块号是否相同,是则触发所述第一发送模块向所述主控芯片重新发送上次发送的第一类型数据块,关闭所述第一定时器,等待接收数据,否则触发第二反转生成单元;第二反转生成单元,用于反转第一块号,根据第一块号和未处理的下一个响应数据包组织第一类型数据块,并触发所述第一发送模块将所述第一类型数据块发送给所述主控芯片,关闭所述第一定时器,等待接收数据。34.如权利要求33所述的系统,其特征在于,所述操作模块还包括:第三判断单元,用于判断所述数据块中的数据长度是否大于所述安全芯片可接收的最大帧长度,是则触发所述第一发送模块向所述主控芯片报错,关闭所述第一定时器,等待接收数据,否则触发所述第一反转判断单元。35.如权利要求33所述的系统,其特征在于,所述操作模块还包括:第四判断单元,用于从接收到的数据块中获取校验和,并根据校验和判断接收到的数据块是否有效,是则触发所述第二判断单元,否则触发所述第一发送模块向所述主控芯片报错,关闭所述第一定时器,等待接收数据。36.如权利要求34或35所述的系统,其特征在于,所述触发所述第一发送模块向所述主控芯片报错,具体为:触发所述第一发送模块给所述主控芯片发送包含错误信息和所述第一块号的第二类型数据块。37.如权利要求33所述的系统,其特征在于,所述第一处理模块包括:第一获取单元,用于从所述接收到的数据块中获取命令头、数据域;第五判断单元,用于根据所述命令头判断数据块的类型,如为第一类型数据块则触发第六判断单元,如为第二类型数据块则触发第八判断单元;如为第三类型数据块则触发所述第二重置模块;所述第六判断单元,用于根据所述命令头得到链接指示位和收到块号,判断所述收到块号和第二块号是否相同,是则触发第一反转保存单元,否则触发所述第二发送模块向所述安全芯片报错,打开所述第二定时器开始计时,等待接收数据;所述第一反转保存单元,用于反转第二块号,根据所述链接指示位保存链传标识,保存所述数据域;第七判断单元,用于根据保存的链传标识判断是否需要向所述安全芯片发送第二类型数据块,是则触发所述第二发送模块向所述安全芯片发送包含成功信息和所述第二块号的第二类型数据块,打开所述第二定时器开始计时,等待接收数据;否则根据保存的所述数据域向应用层返回响应数据,结束;所述第八判断单元,用于判断数据长度是否为0,是则触发第九判断单元,否则向应用层返回错误信息,结束;所述第九判断单元,用于根据命令头得到收到块号,判断收到块号和第二块号是否相同,是则触发第一反转组织单元,否则触发所述第二发送模块向所述安全芯片重发上一次发送的第一类型数据块,打开所述第二定时器开始计时,等待接收数据;所述第一反转组织单元,用于反转第二块号,根据下一个待发送数据块和所述第二块号组织得到第一类型数据块,触发所述第二发送模块将所述第一类型数据块发送给所述安全芯片,打开所述第二定时器开始计时,等待接收数据。38.如权利要求37所述的系统,其特征在于,所述第一处理模块还包括:第十判断单元,用于判断接收到的数据块中的数据长度是否大于所述主机可接收最大帧长度,是则触发所述第二发送模块向所述安全芯片报错,打开所述第二定时器开始计时,等待接收数据,否则触发所述第六判断单元。39.如权利要求37所述的系统,其特征在于,所述第一处理模块还包括:第十一判断单元,用于根据所述安全芯片使用的校验和算法判断接收到的数据块中的校验值是否正确,是则触发所述第五判断单元,否则触发所述第二发送模块向所述安全芯片报错,打开所述第二定时器开始计时,等待接收数据。40.如权利要求38或39所述的系统,其特征在于,所述触发所述第二发送模块向所述安全芯片报错,具体为:触发所述第二发送模块给所述安全芯片发送包含错误信息和所述第二块号的第二类型数据块。41.如权利要求29所述的系统,其特征在于,所述第一初始化模块还用于将安全芯片的状态设置为未激活状态、初始化第一块号;所述第二初始化模块还用于初始化第二块号;所述主控芯片还包括第二组织生成模块、第三获取模块;所述安全芯片还包括第二解析生成模块;所述第二组织生成模块,用于根据主机通信参数组织生成复位请求,并触发等待第二发送模块将包含复位请求和第二块号的第二数据块发送给所述安全芯片;所述主机通信参数包括主机可接收最大帧长度;所述第一接收模块还用于接收所述第二发送模块发送的包含复位请求和第二块号的第二数据块;所述第二解析生成模块,用于解析接收到的第一类型数据块中的复位请求得到主机通信参数,根据安全芯片通信参数组织生成复位应答,将所述安全芯片的状态设置为激活状态;所述第一发送模块还用于将包含所述第二解析生成模块生成的复位应答和第一块号的第一类型数据块发送给所述主控芯片;所述第二接收模块还用于接收所述安全芯片返回的包含所述复位应答和第一块号的第一类型数据块;所述第三获取模块,用于从所述第一类型数据块的复位应答中获取安全芯片通信参数,根据安全芯片通信参数得到安全芯片可接收最大帧长度、第一预设时间和安全芯片使用的校验和算法。42.如权利要求41所述的系统,其特征在于,所述第二发送模块包括:第十二判断单元,用于判断是否进行数据块链传,是则触发第二置位分包单元,否则触发第三生成单元;所述第二置位分包单元,用于置位链传标识,根据安全芯片可接收最大帧长度对待发送数据进行分包,根据链传标识、第二块号和第一个未处理的数据包组织生成第一类型数据块;所述第三生成单元,用于根据待发送数据和第二块号组织生成第一类型数据块;第二发送单元,用于将所述第二置位分包单元和所述第三生成单元生成的第一类型数据块发送给所述安全芯片,打开所述第二定时器开始计时,等待接收所述安全芯片返回的数据块。43.如权利要求42所述的系统,其特征在于,所述操作模块包括:第十三判断单元,用于根据所述数据块中的命令头判断数据块的类型,如为第一类型数据块则触发第十四判断单元;所述第十四判断单元,用于判断第一类型数据块是否包含复位请求,是则触发第十五判断单元;否则触发第四获取单元;所述第十五判断单元,用于判断安全芯片的状态是否为未激活状态,是则触发第一解析生成单元;否则触发所述第一发送模块向所述主控芯片报错,关闭所述第一定时器,等待接收数据;所述第一解析生成单元,用于对复位请求进行解析得到主机通信参数,根据所述安全芯片通信参数生成复位应答,并触发所述第一发送模块将包含复位应答与所述第一块号的第一类型数据块和包含所述第一块号的第四类型数据块返回给所述主控芯片,关闭所述第一定时器,将安全芯片的状态设置为激活状态,等待接收数据;所述第四获取单元,用于从接收到的第一类型数据块中获取数据域,根据所述第一类型数据块中的命令头获取链接指示位和收到块号,根据链接指示位保存链传标识;第十六判断单元,用于根据所述收到块号和保存的链接标识判断是否需要向所述主控芯片发送包含成功信息的第二类型数据块,是则反转第一块号,触发所述第一发送模块向所述主控芯片发送包含成功信息与所述第一块号的第二类型数据块和包含第一块号的第四类型数据块,关闭所述第一定时器,等待接收数据;否则触发第二操作生成单元;所述第二操作生成单元,用于根据数据域的数据执行相应操作并生成响应数据;第十七判断单元,用于判断是否进行数据块链传,是则触发第二分包组织单元,否则触发第四生成单元;所述第二分包组织单元,用于根据主机可接收最大帧长度对所述响应数据进行分包得到多个响应数据包,反转第一块号,根据未处理的第一个响应数据包和所述第一块号组织得到第一类型数据块;所述第四生成单元,用于反转第一块号,根据响应数据和所述第一块号组织得到第一类型数据块;所述第一发送模块,还用于将所述第二分包组织单元或第四生成单元生成的第一类型数据块和包含第一块号的第四类型数据块发送给所述主控模块。44.如权利要求43所述的系统,其特征在于,所述操作模块还包括:第十八判断单元,用于当所述第十三判断单元判断数据块的类型为第二类型数据块时,判断所述安全芯片的状态是否为激活状态,是则触发第十九判断单元,否则触发所述第一发送模块向所述主控芯片报错,关闭所述第一定时器,等待接收数据;所述第十九判断单元,用于判断接收到的第二类型数据块是否包含成功信息,是则触发第三反转组织单元,否则触发所述第一发送模块重新向所述主控芯片发送上一次发送的第四类型数据块和第一类型数据块,关闭所述第一定时器,等待接收数据;所述第三反转组织单元,用于将所述第一块号反转,根据下一个未处理的响应数据包和所述第一块号组织得到第一类型数据块,触发所述第一发送模块给所述主控芯片返回包含第一块号的第四类型数据块和所述第一类型数据块,关闭所述第一定时器,等待接收数据。45.如权利要求44所述的系统,其特征在于,所述操作模块还包括:第二十判断单元,用于当所述第十三判断单元判断数据块的类型为第三类型数据块时,判断安全芯片的状态是否为激活状态,是则触发所述第一发送模块向所述主控芯片报错,关闭所述第一定时器,等待接收数据,否则触发第二十一判断单元;所述第二十一判断单元,用于判断接收到的第三类型数据块是否包含热复位请求,是则触发所述第一发送模块给所述主控芯片返回包含所述第一块号的第四类型数据块和包含热复位应答与所述第一块号的第一类型数据块,关闭所述第一定时器,将安全芯片的状态设置为未激活状态,等待接收数据;否则触发所述第一发送模块向所述主控芯片报错,关闭所述第一定时器,等待接收数据。46.如权利要求43所述的系统,其特征在于,所述操作模块还包括:第二十二判断单元,用于判断第一类型数据块中的数据长度是否大于安全芯片可接收的最大帧长度,是则触发所述第一发送模块向所述主控芯片报错,关闭所述第一定时器,等待接收数据,否则触发所述第十六判断单元。47.如权利要求43-45任意一项所述的系统,其特征在于,所述操作模块还包括:第二十三判断单元,用于从接收到的数据块中获取校验和,并根据校验和判断接收到的数据块是否有效,是则触发所述第十三判断单元,否则触发所述第一发送模块向所述主控芯片报错,关闭所述第一定时器,等待接收数据。48.如权利要求43-47任意一项所述的系统,其特征在于,所述触发所述第一发送模块向所述主控芯片报错,具体为:触发所述第一发送模块给主控芯片返回包含所述第一块号的第四类型数据块和包含错误信息与所述第一块号的第二类型数据块。49.如权利要求45所述的系统,其特征在于,所述第一处理模块包括:第二十四判断单元,用于判断接收到数据块是否包含第四类型数据块,是则触发第二十五判断单元,否则触发所述第二发送模块向所述安全芯片报错,打开所述第二定时器开始计时,等待接收数据;所述第二十五判断单元,用于判断第四类型数据块中的块号是否与第二块号一致,是则触发第五获取单元,否则所触发所述第二发送模块向所述安全芯片报错,打开所述第二定时器开始计时,等待接收数据;所述第五获取单元,从所述接收到的数据块中获取命令头、数据域;第二十六判断单元,用于根据所述命令头判断数据块的类型,如为第一类型数据块则触发第二十七判断单元;第二十七判断单元,用于判断第一类型数据块是否包含复位应答,是则从第一类型数据块的复位应答中获取安全芯片通信参数,根据安全芯片通信参数得到安全芯片可接收最大帧长度、第一预设时间和安全芯片使用的校验和算法,否则触发第二得到单元;所述第二得到单元,用于根据命令头得到链接指示位和收到块号;第二十八判断单元,用于判断收到块号和第二块号是否相同,是则触发第二反转保存单元,否则触发所述第二发送模块向所述安全芯片报错,打开第二定时器开始计时,等待接收数据;所述第二反转保存单元,用于将第二块号反转,根据链接指示位保存链传标识,保存数据域;第二十九判断单元,用于根据保存的链传标识判断是否需要向所述安全芯片发送包含成功信息的第二类型数据块,是则触发等待第二发送模块向所述安全芯片发送包含成功信息和第二块号的第二类型数据块,打开第二定时器开始计时,等待接收数据,否则根据保存的数据域向应用层返回响应数据,结束。50.如权利要求49所述的系统,其特征在于,所述第一处理模块还包括:第三十判断单元,用于当所述第二十六判断单元判断数据块的类型为第二类型数据块时,判断第二类型数据块中的数据长度是否为0,是则触发第三得到单元,否则向应用层返回错误信息,结束;所述第三得到单元,用于根据命令头得到收到块号;第三十一判断单元,用于判断接收到的第二类型数据块是否包含成功信息,是则触发第三十二判断单元,否则触发所述第二发送模块向所述安全芯片重发上一次发送的第一类型数据块,打开第二定时器开始计时,等待接收数据;所述第三十二判断单元,用于判断收到块号和第二块号是否相同,是则触发第四反转组织单元,否则触发所述第二发送模块向所述安全芯片重发上一次发送的第一类型数据块,打开第二定时器开始计时,等待接收数据;所述第四反转组织单元,用于反转第二块号,根据下一个未处理的待发送数据块和第二块号组织得到第一类型数据块,并触发所述第二发送模块将所述第一类型数据块发送给所述安全芯片,打开第二定时器开始计时,等待接收数据。51.如权利要求50所述的系统,其特征在于,所述第一处理模块还包括:第三十三判断单元,用于当所述第二十六判断单元判断数据块的类型为第三类型数据块时,判断第三类型数据块是否为延时请求,是则触发所述第二重置模块,否则触发三十四判断单元;所述三十四判断单元,用于判断第三类型数据块是否为热复位应答,是则触发热复位操作单元,否则触发所述第二发送模块向所述安全芯片发送包含成功信息和第二块号的第二类型数据块,打开第二定时器开始计时,等待接收数据;所述热复位操作单元,用哦与对所述安全芯片执行热复位操作,触发等待第二发送模块给所述安全芯片发送包含复位请求和第二块号的第一数据块,打开第二定时器开始计时,等待接收数据。52.如权利要求49所述的系统,其特征在于,所述第一处理模块还包括:第三十五判断单元,用于判断所述接收到的数据块中的数据长度是否大于所述主机可接收最大帧长度,是则触发所述第二发送模块向所述安全芯片报错,打开所述第二定时器开始计时,等待接收数据,否则触发第二十七判断单元。53.如权利要求49所述的系统,其特征在于,所述第一处理模块还包括:第三十六判断单元,用于根据所述安全芯片使用的校验和算法判断接收到的数据块中的校验值是否正确,是则触发第二十六判断单元,否则触发所述第二发送模块向所述安全芯片报错,打开所述第二定时器开始计时,等待接收数据。54.如权利要求49-53任意一项所述的系统,其特征在于,所述触发所述第二发送模块向所述安全芯片报错具体为:触发所述第二发送模块给安全芯片发送包含所述第二块号和错误信息的第二类型数据块。55.如权利要求32或42所述的系统,其特征在于,所述第一判断单元和所述第十二判断模块中的判断是否进行数据块链传,包括:判断待发送数据的长度是否大于安全芯片可接收最大帧长度,是则需要链传,否则不需要链传。56.如权利要求33或43所述的系统,其特征在于,所述第三判断单元和所述第十七判断单元中的判断是否进行数据块链传,包括:判断响应数据的长度是否大于主机可接收最大帧长度,是则需要链传,否则不需要链传。

百度查询: 飞天诚信科技股份有限公司 一种主控芯片与安全芯片之间稳定通信的实现方法及系统