CN111832047B - 一种spi数据传输方法及系统 - Google Patents

一种spi数据传输方法及系统 Download PDF

Info

Publication number
CN111832047B
CN111832047B CN202010656289.8A CN202010656289A CN111832047B CN 111832047 B CN111832047 B CN 111832047B CN 202010656289 A CN202010656289 A CN 202010656289A CN 111832047 B CN111832047 B CN 111832047B
Authority
CN
China
Prior art keywords
data packets
security chip
host
data
group
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010656289.8A
Other languages
English (en)
Other versions
CN111832047A (zh
Inventor
王阳阳
雷宗华
彭金辉
刘武忠
廖正赟
李鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengzhou Xinda Jiean Information Technology Co Ltd
Original Assignee
Zhengzhou Xinda Jiean Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhengzhou Xinda Jiean Information Technology Co Ltd filed Critical Zhengzhou Xinda Jiean Information Technology Co Ltd
Priority to CN202010656289.8A priority Critical patent/CN111832047B/zh
Publication of CN111832047A publication Critical patent/CN111832047A/zh
Application granted granted Critical
Publication of CN111832047B publication Critical patent/CN111832047B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits

Abstract

本发明提出一种SPI数据传输方法及系统,包括:安全芯片设置的引脚INT1和引脚INT4分别与主机提供的输出端口和输入端口进行连接;安全芯片上电或复位后,主机设置引脚INT1为高电平,等待引脚INT4为高电平;主机检测引脚INT4为高电平时,通过改变引脚INT1的电平变化状态,向安全芯片依次写入第一组数据包和第二组数据包;当主机检测引脚INT4输出低电平时,通过改变引脚INT1的电平变化状态,从安全芯片依次读取对第一组数据包和第二组数据包运算处理后的数据;重复向安全芯片写入数据包和从安全芯片中读取运算处理后的数据包的过程,直至所有数据包均处理完成;安全芯片在主机写第二组数据包和读第一组数据包运算处理后的数据时均处于对数据包的运算状态。

Description

一种SPI数据传输方法及系统
技术领域
本发明涉及通信技术领域,具体涉及一种SPI数据传输方法及系统。
背景技术
串行外设接口(Serial Peripheral Interface, SPI)协议是一种高速的、全双工、同步的通信总线协议,其传输速度通常能够达到甚至超过10兆比特每秒,适用于高速数据传输。主设备与从设备之间通过主设备输出从设备输入数据线MISO和从设备输出主设备输入数据线MOSI相连接,并进行SPI数据传递。
现有技术中,数据的密码运算处理通常由专门的安全芯片完成,主机需要通过SPI总线传输数据至安全芯片,再由安全芯片进行密码运算处理,处理完成后再将数据传回至主机。安全芯片需要等待主机发送数据完成后再进行密码运算处理,并通过SPI传回数据,导致当需要传输多个数据包时,会造成总体传输效率较低、主机与安全芯片的交互次数较多、SPI接口性能不高,因此如何提高数据传输效率,减少主机与安全芯片的交互次数,提高SPI接口性能是目前急需解决的问题。
发明内容
本发明针对上述问题,有必要提供一种SPI数据传输方法及装置,其能够采用多缓冲的模式,主机利用安全芯片的密码运算时间写入后续数据包和读取运算处理后的数据包,节省后续数据包的通讯时间,以及采用一次发送的数据包数至少为两个数据包,减少与安全芯片的交互次数,从而提高数据传输效率,提高SPI接口性能。
本发明第一方面提出一种SPI数据传输方法,所述数据传输方法具体包括:引脚配置过程、初始化过程和数据传输过程;
所述引脚配置过程:
将安全芯片和主机通过SPI接口线进行连接;
所述安全芯片设置有引脚INT1和INT4、所述主机分别提供两个通用输入/输出引脚,一个配置为输入端口,另一个配置为输出端口;
将所述安全芯片的引脚INT1与所述主机的输出端口进行连接,所述安全芯片的引脚INT4与所述主机的输入端口进行连接;
其中,所述引脚INT1表明所述主机的状态,所述引脚INT4表明所述安全芯片中是否有处理好的数据;
所述初始化过程:
所述安全芯片上电或复位后,所述主机设置所述引脚INT1为高电平,等待所述引脚INT4为高电平;
所述数据传输过程:
当所述主机检测所述引脚INT4为高电平时,通过改变所述引脚INT1的电平变化状态,向所述安全芯片依次写入第一组数据包和第二组数据包;在所述主机向所述安全芯片写入第二组数据包的同时,所述安全芯片对所述第一组数据包进行运算处理;
在写入所述第二组数据包后,当所述主机检测所述引脚INT4变为低电平时,通过改变所述引脚INT1的电平变化状态,从所述安全芯片依次读取对第一组数据包和第二组数据包运算处理后的数据;在所述主机从所述安全芯片中读取第一组数据包运算处理后的数据的同时,所述安全芯片对所述第二组数据包进行运算处理;
其中,当所述安全芯片对任一组数据包运算处理完成时,通过所述引脚INT4输出低电平,并在所述主机开始读取所述数据包处理后的数据时,通过所述引脚INT4输出高电平;
重复上述向所述安全芯片写入数据包和从所述安全芯片读取数据包的过程,直至所有数据包均处理完成。
进一步的,每组数据包中均包括至少两个数据包。
进一步的,在所述数据传输过程中,当所述主机检测所述引脚INT4为高电平时,通过改变所述引脚INT1的电平变化状态,向所述安全芯片依次写入第一组数据包和第二组数据包,具体为:
当所述主机检测所述引脚INT4为高电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第一组数据包,并在写入操作完成后,将所述引脚INT1的电平拉高;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4输出高电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第二组数据包,并在写入操作完成后,将所述引脚INT1的电平拉高。
进一步的,在所述数据传输过程中,在写入所述第二组数据包后,当所述主机检测所述引脚INT4变为低电平时,通过改变所述引脚INT1的电平变化状态,从所述安全芯片依次读取对第一组数据包和第二组数据包运算处理后的数据,具体为:
当所述主机检测所述引脚INT4变为低电平时,拉低所述引脚INT1的电平,读取第一组数据包运算处理后的数据,并在读取操作完成后,将所述引脚INT1拉高;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4变为低电平时,拉低所述引脚INT1的电平,读取第二组数据包运算处理后的数据,并在读取操作完成后,将所述引脚INT1拉高。
进一步的,在所述数据传输过程中,重复上述向所述安全芯片写入数据包和从所述安全芯片读取数据包的过程,直至所有数据包均处理完成,具体包括:
当所述主机中后续要写入安全芯片进行运算处理的数据包为偶数组时,则循环重复上述向所述安全芯片写入两组数据包和从所述安全芯片读取两组数据包的过程,直至所有数据包均处理完成;
当所述主机中后续要写入安全芯片进行运算处理的数据包为奇数组时,则首先循环重复上述向所述安全芯片写入两组数据包和从所述安全芯片读取两组数据包的过程,再单独进行最后一组数据包的写入和读取操作。
进一步的,所述主机向所述安全芯片写入或读取数据包时,设置有系统调度、数据组包、拆包、拷贝的耗时;所述主机为主设备、所述安全芯片为从设备;所述安全芯片用于对所述主机写入的数据包进行密码运算处理。
本发明第二方面还提出一种SPI数据传输系统,包括:安全芯片和主机;所述安全芯片和所述主机通过SPI接口线进行连接;
所述主机,还分别提供两个通用输入/输出引脚,一个配置为输入端口,另一个配置为输出端口;所述安全芯片,还设置有引脚INT1和INT4,所述引脚INT1与所述主机的输出端口进行连接,所述引脚INT4与所述主机的输入端口进行连接;其中,所述引脚INT1表明所述主机的状态,所述引脚INT4表明所述安全芯片中是否有处理好的数据;
所述主机,用于在所述安全芯片上电或复位后,设置所述引脚INT1为高电平,等待所述引脚INT4为高电平;用于在检测所述引脚INT4输出高电平时,通过改变所述引脚INT1的电平变化状态,向所述安全芯片依次写入第一组数据包和第二组数据包;还用于在写入所述第二组数据包后,当检测所述引脚INT4的输出电平变为低电平时,通过改变所述引脚INT1的电平变化状态,从所述安全芯片依次读取对第一组数据包和第二组数据包运算处理后的数据;以及用于重复向所述安全芯片写入数据包和从所述安全芯片读取数据包的过程,直至所有数据包均处理完成;
所述安全芯片,用于在所述主机向所述安全芯片写入第二组数据包的同时,对所述第一组数据包进行运算处理;用于在所述主机从所述安全芯片中读取第一组数据包运算处理后的数据的同时,对所述第二组数据包进行运算处理;其中,当所述安全芯片对任一组数据包运算处理完成时,通过所述引脚INT4输出低电平,并在所述主机开始读取所述数据包处理后的数据时,通过所述引脚INT4输出高电平。
进一步的,每组数据包中均包括至少两个数据包。
进一步的,所述主机用于在检测所述引脚INT4输出高电平时,通过改变所述引脚INT1的电平变化状态,向所述安全芯片依次写入第一组数据包和第二组数据包,具体包括:
当所述主机检测所述引脚INT4为高电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第一组数据包,并在写入操作完成后,将所述引脚INT1的电平拉高;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4输出高电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第二组数据包,并在写入操作完成后,将所述引脚INT1的电平拉高。
进一步的,所述主机用于在写入所述第二组数据包后,当检测所述引脚INT4的输出电平变为低电平时,通过改变所述引脚INT1的电平变化状态,从所述安全芯片依次读取对第一组数据包和第二组数据包运算处理后的数据,具体包括:
当所述主机检测所述引脚INT4变为低电平时,拉低所述引脚INT1的电平,读取第一组数据包运算处理后的数据,并在读取操作完成后,将所述引脚INT1拉高;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4变为低电平时,拉低所述引脚INT1的电平,读取第二组数据包运算处理后的数据,并在读取操作完成后,将所述引脚INT1拉高。
进一步的,所述主机用于重复向所述安全芯片写入数据包和从所述安全芯片读取数据包的过程,直至所有数据包均处理完成,具体包括:
当所述主机中后续要写入安全芯片进行运算处理的数据包为偶数组时,则循环重复上述向所述安全芯片写入两组数据包和从所述安全芯片读取两组数据包的过程,直至所有数据包均处理完成;
当所述主机中后续要写入安全芯片进行运算处理的数据包为奇数组时,则首先循环重复上述向所述安全芯片写入两组数据包和从所述安全芯片读取两组数据包的过程,再单独进行最后一组数据包的写入和读取操作。
进一步的,所述主机,用于向所述安全芯片写入或读取数据包时,设置有系统调度、数据组包、拆包、拷贝的耗时;所述主机为主设备、所述安全芯片为从设备;所述安全芯片用于对所述主机写入的数据包进行密码运算处理。
本发明具有突出的实质性特点和显著的进步,具体的说:
(1)通过安全芯片设置引脚INT1和INT4、主机分别提供两个通用输入/输出引脚,一个配置为输入端口和另一个配置为输出端口,以及安全芯片的引脚INT1与主机的输出端口进行连接,安全芯片的引脚INT4与主机的输入端口进行连接;从而实现主机和安全芯片可通过引脚INT1、INT4的电平状态判断数据的写入或读取,当主机写入或读取数据时,将引脚INT1的电平拉低,直至数据写入或读取完成后,将引脚INT1的电平拉高;其中,所述引脚INT4为低电平表示安全芯片中有处理完成的数据;
主机检测所述引脚INT4为高电平时,通过改变所述引脚INT1的电平变化状态,向所述安全芯片依次写入第一组数据包和第二组数据包;在写入所述第二组数据包后,当所述主机检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平变化状态,从所述安全芯片依次读取对第一组数据包和第二组数据包运算处理后的数据;重复向安全芯片写入数据包和从安全芯片中读取运算处理后的数据包的过程,直至所有数据包均处理完成;本发明采用多缓冲的模式,主机利用安全芯片的密码运算时间向安全芯片写入后续数据包和从安全芯片中读取运算处理后的数据包,节省后续数据包的通讯时间;
(2)本发明中主机发送的每组数据包中至少包括两个数据包,通过减少与安全芯片的交互次数,从而提高数据传输效率,提高SPI接口性能。
本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出本发明一种SPI数据传输方法流程图;
图2示出本发明主机与安全芯片之间的引脚连接示意图;
图3示出本发明一种SPI数据传输过程时序图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中组件。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
SPI(Serial Peripheral Interface,串行外设接口)是由Motorola提出的一种全双工同步串行通信接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息,通信波特率可以高达5Mbps。一个SPI总线可以连接多个主设备和从设备,在同一时刻只允许一个主设备操作总线,并且同时只能和一个从设备通信。
SPI接口一般使用4条线:MOSI:主设备数据输出,从设备数据输入;MISO:主设备数据输入,从设备数据输出;SCK:时钟信号,由主设备产生;CS:从设备使能信号,由主设备控制;
如图1所示,本发明第一方面提出一种SPI数据传输方法,所述数据传输方法具体包括:引脚配置过程、初始化过程和数据传输过程;
所述引脚配置过程:
将安全芯片和主机通过SPI接口线进行连接;
所述安全芯片设置有引脚INT1和INT4、所述主机分别提供两个通用输入/输出引脚,一个配置为输入端口,另一个配置为输出端口;
将所述安全芯片的引脚INT1与所述主机的输出端口进行连接,所述安全芯片的引脚INT4与所述主机的输入端口进行连接;
其中,所述引脚INT1表明所述主机的状态,所述引脚INT4表明所述安全芯片中是否有处理好的数据;
所述初始化过程:
所述安全芯片上电或复位后,所述主机设置所述引脚INT1为高电平,等待所述引脚INT4为高电平;
所述数据传输过程:
当所述主机检测所述引脚INT4为高电平时,通过改变所述引脚INT1的电平变化状态,向所述安全芯片依次写入第一组数据包和第二组数据包;在所述主机向所述安全芯片写入第二组数据包的同时,所述安全芯片对所述第一组数据包进行运算处理;
在写入所述第二组数据包后,当所述主机检测所述引脚INT4变为低电平时,通过改变所述引脚INT1的电平变化状态,从所述安全芯片依次读取对第一组数据包和第二组数据包运算处理后的数据;在所述主机从所述安全芯片中读取第一组数据包运算处理后的数据的同时,所述安全芯片对所述第二组数据包进行运算处理;
其中,当所述安全芯片对任一组数据包运算处理完成时,通过所述引脚INT4输出低电平,并在所述主机开始读取所述数据包处理后的数据时,通过所述引脚INT4输出高电平;
重复上述向所述安全芯片写入数据包和从所述安全芯片读取数据包的过程,直至所有数据包均处理完成。
具体的,每组数据包中均包括至少两个数据包。本发明中主机发送的每组数据包中至少包括两个数据包,通过减少与安全芯片的交互次数,从而提高数据传输效率,提高SPI接口性能。
具体的,在所述数据传输过程中,当所述主机检测所述引脚INT4为高电平时,通过改变所述引脚INT1的电平变化状态,向所述安全芯片依次写入第一组数据包和第二组数据包,具体为:
当所述主机检测所述引脚INT4为高电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第一组数据包,并在写入操作完成后,将所述引脚INT1的电平拉高;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4输出高电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第二组数据包,并在写入操作完成后,将所述引脚INT1的电平拉高。
具体的,在所述数据传输过程中,在写入所述第二组数据包后,当所述主机检测所述引脚INT4变为低电平时,通过改变所述引脚INT1的电平变化状态,从所述安全芯片依次读取对第一组数据包和第二组数据包运算处理后的数据,具体为:
当所述主机检测所述引脚INT4变为低电平时,拉低所述引脚INT1的电平,读取第一组数据包运算处理后的数据,并在读取操作完成后,将所述引脚INT1拉高;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4变为低电平时,拉低所述引脚INT1的电平,读取第二组数据包运算处理后的数据,并在读取操作完成后,将所述引脚INT1拉高。
具体的,在所述数据传输过程中,重复上述向所述安全芯片写入数据包和从所述安全芯片读取数据包的过程,直至所有数据包均处理完成,具体包括:
当所述主机中后续要写入安全芯片进行运算处理的数据包为偶数组时,则循环重复上述向所述安全芯片写入两组数据包和从所述安全芯片读取两组数据包的过程,直至所有数据包均处理完成;
当所述主机中后续要写入安全芯片进行运算处理的数据包为奇数组时,则首先循环重复上述向所述安全芯片写入两组数据包和从所述安全芯片读取两组数据包的过程,再单独进行最后一组数据包的写入和读取操作。
在具体的实施例中,最后一组数据包的单独写入和读取操作具体为:所述主机检测所述引脚INT4为高电平时,拉低所述引脚INT1的电平,并向所述安全芯片写入第一组数据包,在写入操作完成后,将所述引脚INT1的电平拉高;所述安全芯片对所述第一组数据包进行运算处理,并在运算处理完成时,通过所述引脚INT4输出低电平;所述主机检测所述引脚INT4变为低电平时,将所述引脚INT1的电平拉低,读取所述安全芯片对所述第一组数据包运算处理的数据,并在读取操作完成后,将所述引脚INT1拉高;所述安全芯片在所述主机开始读取第一组数据包运算处理后的数据的同时,通过所述引脚INT4输出高电平。
需要说明的是,主机每次向安全芯片写入一组数据包之前,均需要检测引脚INT4的电平是否为高电平,当检测引脚INT4为高电平时,说明安全芯片中无需要返回的数据包,则拉低引脚INT1的电平,向安全芯片写入一组数据包,并在写入操作完成后,将引脚INT1的电平拉高;主机每次从安全芯片读取运算处理的一组数据包之前,均需要检测引脚INT4的电平是否输出低电平,当检测引脚INT4输出低电平时,说明安全芯片中有运算处理完成的一组数据包需要返回,则将引脚INT1的电平拉低,从安全芯片中读取读取一组数据包运算处理的数据,并在读取操作完成后,将引脚INT1拉高。
具体的,所述主机向所述安全芯片写入或读取数据包时,设置有系统调度、数据组包、拆包、拷贝的耗时;所述主机为主设备、所述安全芯片为从设备;所述安全芯片用于对所述主机写入的数据包进行密码运算处理。
如图2所示,本发明第二方面还提出一种SPI数据传输系统,包括:安全芯片和主机;所述安全芯片和所述主机通过SPI接口线进行连接;
所述主机,还分别提供两个通用输入/输出引脚,一个配置为输入端口,另一个配置为输出端口;所述安全芯片,还设置有引脚INT1和INT4,所述引脚INT1与所述主机的输出端口进行连接,所述引脚INT4与所述主机的输入端口进行连接;其中,所述引脚INT1表明所述主机的状态,所述引脚INT4表明所述安全芯片中是否有处理好的数据;
所述主机,用于在所述安全芯片上电或复位后,设置所述引脚INT1为高电平,等待所述引脚INT4为高电平;用于在检测所述引脚INT4输出高电平时,通过改变所述引脚INT1的电平变化状态,向所述安全芯片依次写入第一组数据包和第二组数据包;还用于在写入所述第二组数据包后,当检测所述引脚INT4的输出电平变为低电平时,通过改变所述引脚INT1的电平变化状态,从所述安全芯片依次读取对第一组数据包和第二组数据包运算处理后的数据;以及用于重复向所述安全芯片写入数据包和从所述安全芯片读取数据包的过程,直至所有数据包均处理完成;
所述安全芯片,用于在所述主机向所述安全芯片写入第二组数据包的同时,对所述第一组数据包进行运算处理;用于在所述主机从所述安全芯片中读取第一组数据包运算处理后的数据的同时,对所述第二组数据包进行运算处理;其中,当所述安全芯片对任一组数据包运算处理完成时,通过所述引脚INT4输出低电平,并在所述主机开始读取所述数据包处理后的数据时,通过所述引脚INT4输出高电平。
具体的,每组数据包中均包括至少两个数据包。
具体的,所述主机用于在检测所述引脚INT4输出高电平时,通过改变所述引脚INT1的电平变化状态,向所述安全芯片依次写入第一组数据包和第二组数据包,具体包括:
当所述主机检测所述引脚INT4为高电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第一组数据包,并在写入操作完成后,将所述引脚INT1的电平拉高;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4输出高电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第二组数据包,并在写入操作完成后,将所述引脚INT1的电平拉高。
具体的,所述主机用于在写入所述第二组数据包后,检测所述引脚INT4的输出电平变为低电平时,通过改变所述引脚INT1的电平变化状态,从所述安全芯片依次读取对第一组数据包和第二组数据包运算处理后的数据,具体包括:
当所述主机检测所述引脚INT4变为低电平时,拉低所述引脚INT1的电平,读取第一组数据包运算处理后的数据,并在读取操作完成后,将所述引脚INT1拉高;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4变为低电平时,拉低所述引脚INT1的电平,读取第二组数据包运算处理后的数据,并在读取操作完成后,将所述引脚INT1拉高。
具体的,所述主机用于重复向所述安全芯片写入数据包和从所述安全芯片读取数据包的过程,直至所有数据包均处理完成,具体包括:
当所述主机中后续要写入安全芯片进行运算处理的数据包为偶数组时,则循环重复上述向所述安全芯片写入两组数据包和从所述安全芯片读取两组数据包的过程,直至所有数据包均处理完成;
当所述主机中后续要写入安全芯片进行运算处理的数据包为奇数组时,则首先循环重复上述向所述安全芯片写入两组数据包和从所述安全芯片读取两组数据包的过程,再单独进行最后一组数据包的写入和读取操作。
具体的,所述主机,用于向所述安全芯片写入或读取数据包时,设置有系统调度、数据组包、拆包、拷贝的耗时;所述主机为主设备、所述安全芯片为从设备;所述安全芯片用于对所述主机写入的数据包进行密码运算处理。
如图3所示,在具体的实际应用中,数据传输过程为:
所述主机检测所述引脚INT4为高电平,拉低所述引脚INT1的电平,向所述安全芯片写入第一组数据包,并在写入操作完成后,将所述引脚INT1的电平拉高;优选的,所述第一组数据包中包括有两个数据包;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4输出高电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第二组数据包,并在写入操作完成后,将所述引脚INT1的电平拉高;在所述主机向所述安全芯片写入第二组数据包的同时,所述安全芯片对所述第一组数据包进行运算处理;当所述安全芯片对第一组数据包运算处理完成时,通过所述引脚INT4输出低电平;优选的,所述第二组数据包中包括有两个数据包;
当所述主机拉高所述引脚INT1的电平,且检测所述引脚INT4变为低电平时,将所述引脚INT1的电平拉低,读取所述安全芯片对所述第一组数据包运算处理的数据,并在读取操作完成后,将所述引脚INT1拉高;在读取第一组数据包的同时,所述安全芯片对第二组数据包进行运算处理,同时通过所述引脚INT4输出高电平;当所述安全芯片对第二组数据包运算处理完成时,通过所述引脚INT4输出低电平;
当所述主机拉高所述引脚INT1的电平,且检测所述引脚INT4变为低电平时,将所述引脚INT1的电平拉低,读取所述安全芯片对所述第二组数据包运算处理的数据,并在读取操作完成后,将所述引脚INT1拉高;
重复向安全芯片写入数据包和从安全芯片读取数据包的过程,直至所有数据包均处理完成。
其中,当所述主机向安全芯片写入数据或从安全芯片读取数据时,将所述引脚INT1的电平拉低,直至数据写入或读取完成后,将所述引脚INT1的电平拉高;所述引脚INT4为低电平时表示所述安全芯片中有处理完成的数据。
可知,安全芯片在主机每次写第一组数据包和读最后一组数据包运算处理后的数据时处于空闲状态,其余时间均处于对数据包的运算状态;同时,主机在安全芯片进行数据包运算的同时,进行后续数据包的写入和之前数据包运算的读取,节省后续数据包的通讯时间;采用一次发送的数据包数中至少包括两个数据包,减少主机与安全芯片的交互次数,从而提高数据传输效率,提升SPI接口性能;适用于数据包处理时间较长且数据包较多的场景;图3中的和‚表示耗时时间,可以理解为安全芯片准备数据缓存区的耗时,‚可以理解为安全芯片处理数据包的耗时。
本发明通过安全芯片设置引脚INT1和INT4、主机分别提供两个通用输入/输出引脚,一个配置为输入端口和另一个配置为输出端口,以及安全芯片的引脚INT1与主机的输出端口进行连接,安全芯片的引脚INT4与主机的输入端口进行连接;从而实现主机和安全芯片可通过引脚INT1、INT4的电平状态判断数据的写入或读取,当主机写入或读取数据时,将引脚INT1的电平拉低,直至数据写入或读取完成后,将引脚INT1的电平拉高;其中,所述引脚INT4为低电平表示安全芯片中有处理完成的数据;
主机检测所述引脚INT4为高电平时,通过改变所述引脚INT1的电平变化状态,向所述安全芯片依次写入第一组数据包和第二组数据包;在写入所述第二组数据包后,当所述主机检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平变化状态,从所述安全芯片依次读取对第一组数据包和第二组数据包运算处理后的数据;重复向安全芯片写入数据包和从安全芯片中读取运算处理后的数据包的过程,直至所有数据包均处理完成;本发明采用多缓冲的模式,主机利用安全芯片的密码运算时间向安全芯片写入后续数据包和从安全芯片中读取运算处理后的数据包,节省后续数据包的通讯时间;
本发明中主机发送的每组数据包中至少包括两个数据包,通过减少与安全芯片的交互次数,从而提高数据传输效率,提高SPI接口性能。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种SPI数据传输方法,其特征在于,包括:引脚配置过程、初始化过程和数据传输过程;
所述引脚配置过程:
将安全芯片和主机通过SPI接口线进行连接;
所述安全芯片设置有引脚INT1和INT4,所述主机分别提供两个通用输入/输出引脚,一个配置为输入端口,另一个配置为输出端口;
将所述安全芯片的引脚INT1与所述主机的输出端口进行连接,将所述安全芯片的引脚INT4与所述主机的输入端口进行连接;
其中,所述引脚INT1表明所述主机的状态,所述引脚INT4表明所述安全芯片中是否有处理好的数据;
所述初始化过程:
所述安全芯片上电或复位后,所述主机设置所述引脚INT1为高电平,等待所述引脚INT4为高电平;
所述数据传输过程:
当所述主机检测所述引脚INT4为高电平时,通过改变所述引脚INT1的电平变化状态,向所述安全芯片依次写入第一组数据包和第二组数据包;在所述主机向所述安全芯片写入第二组数据包的同时,所述安全芯片对所述第一组数据包进行运算处理;
在写入所述第二组数据包后,当所述主机检测所述引脚INT4变为低电平时,通过改变所述引脚INT1的电平变化状态,从所述安全芯片依次读取对第一组数据包和第二组数据包运算处理后的数据;在所述主机从所述安全芯片中读取第一组数据包运算处理后的数据的同时,所述安全芯片对所述第二组数据包进行运算处理;
其中,当所述安全芯片对任一组数据包运算处理完成时,通过所述引脚INT4输出低电平,并在所述主机开始读取所述数据包处理后的数据时,通过所述引脚INT4输出高电平;
重复上述向所述安全芯片写入数据包和从所述安全芯片读取数据包的过程,直至所有数据包均处理完成。
2.根据权利要求1所述的SPI数据传输方法,其特征在于,每组数据包中均包括至少两个数据包。
3.根据权利要求1或2所述的SPI数据传输方法,其特征在于,在所述数据传输过程中,当所述主机检测所述引脚INT4为高电平时,通过改变所述引脚INT1的电平变化状态,向所述安全芯片依次写入第一组数据包和第二组数据包,具体为:
当所述主机检测所述引脚INT4为高电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第一组数据包,并在写入操作完成后,将所述引脚INT1的电平拉高;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4输出高电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第二组数据包,并在写入操作完成后,将所述引脚INT1的电平拉高。
4.根据权利要求1或2所述的SPI数据传输方法,其特征在于,在所述数据传输过程中,在写入所述第二组数据包后,当所述主机检测所述引脚INT4变为低电平时,通过改变所述引脚INT1的电平变化状态,从所述安全芯片依次读取对第一组数据包和第二组数据包运算处理后的数据,具体为:
当所述主机检测所述引脚INT4变为低电平时,拉低所述引脚INT1的电平,读取第一组数据包运算处理后的数据,并在读取操作完成后,将所述引脚INT1拉高;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4变为低电平时,拉低所述引脚INT1的电平,读取第二组数据包运算处理后的数据,并在读取操作完成后,将所述引脚INT1拉高。
5.根据权利要求1或2所述的SPI数据传输方法,其特征在于,在所述数据传输过程中,重复上述向所述安全芯片写入数据包和从所述安全芯片读取数据包的过程,直至所有数据包均处理完成,具体包括:
当所述主机中后续要写入安全芯片进行运算处理的数据包为偶数组时,则循环重复上述向所述安全芯片写入两组数据包和从所述安全芯片读取两组数据包的过程,直至所有数据包均处理完成;
当所述主机中后续要写入安全芯片进行运算处理的数据包为奇数组时,则首先循环重复上述向所述安全芯片写入两组数据包和从所述安全芯片读取两组数据包的过程,再单独进行最后一组数据包的写入和读取操作。
6.一种SPI数据传输系统,其特征在于,包括:安全芯片和主机;所述安全芯片和所述主机通过SPI接口线进行连接;
所述主机,还分别提供两个通用输入/输出引脚,一个配置为输入端口,另一个配置为输出端口;所述安全芯片,还设置有引脚INT1和INT4,所述引脚INT1与所述主机的输出端口进行连接,所述引脚INT4与所述主机的输入端口进行连接;其中,所述引脚INT1表明所述主机的状态,所述引脚INT4表明所述安全芯片中是否有处理好的数据;
所述主机,用于在所述安全芯片上电或复位后,设置所述引脚INT1为高电平,等待所述引脚INT4为高电平;用于在检测所述引脚INT4输出高电平时,通过改变所述引脚INT1的电平变化状态,向所述安全芯片依次写入第一组数据包和第二组数据包;还用于在写入所述第二组数据包后,当检测所述引脚INT4的输出电平变为低电平时,通过改变所述引脚INT1的电平变化状态,从所述安全芯片依次读取对第一组数据包和第二组数据包运算处理后的数据;以及用于重复向所述安全芯片写入数据包和从所述安全芯片读取数据包的过程,直至所有数据包均处理完成;
所述安全芯片,用于在所述主机向所述安全芯片写入第二组数据包的同时,对所述第一组数据包进行运算处理;用于在所述主机从所述安全芯片中读取第一组数据包运算处理后的数据的同时,对所述第二组数据包进行运算处理;其中,当所述安全芯片对任一组数据包运算处理完成时,通过所述引脚INT4输出低电平,并在所述主机开始读取所述数据包处理后的数据时,通过所述引脚INT4输出高电平。
7.根据权利要求6所述的SPI数据传输系统,其特征在于,每组数据包中均包括至少两个数据包。
8.根据权利要求6或7所述的SPI数据传输系统,其特征在于,所述主机用于在检测所述引脚INT4输出高电平时,通过改变所述引脚INT1的电平变化状态,向所述安全芯片依次写入第一组数据包和第二组数据包,具体包括:
当所述主机检测所述引脚INT4为高电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第一组数据包,并在写入操作完成后,将所述引脚INT1的电平拉高;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4输出高电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第二组数据包,并在写入操作完成后,将所述引脚INT1的电平拉高。
9.根据权利要求6或7所述的SPI数据传输系统,其特征在于,所述主机用于在写入所述第二组数据包后,当检测所述引脚INT4的输出电平变为低电平时,通过改变所述引脚INT1的电平变化状态,从所述安全芯片依次读取对第一组数据包和第二组数据包运算处理后的数据,具体包括:
当所述主机检测所述引脚INT4变为低电平时,拉低所述引脚INT1的电平,读取第一组数据包运算处理后的数据,并在读取操作完成后,将所述引脚INT1拉高;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4变为低电平时,拉低所述引脚INT1的电平,读取第二组数据包运算处理后的数据,并在读取操作完成后,将所述引脚INT1拉高。
10.根据权利要求6或7所述的SPI数据传输系统,其特征在于,所述主机用于重复向所述安全芯片写入数据包和从所述安全芯片读取数据包的过程,直至所有数据包均处理完成,具体包括:
当所述主机中后续要写入安全芯片进行运算处理的数据包为偶数组时,则循环重复上述向所述安全芯片写入两组数据包和从所述安全芯片读取两组数据包的过程,直至所有数据包均处理完成;
当所述主机中后续要写入安全芯片进行运算处理的数据包为奇数组时,则首先循环重复上述向所述安全芯片写入两组数据包和从所述安全芯片读取两组数据包的过程,再单独进行最后一组数据包的写入和读取操作。
CN202010656289.8A 2020-07-09 2020-07-09 一种spi数据传输方法及系统 Active CN111832047B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010656289.8A CN111832047B (zh) 2020-07-09 2020-07-09 一种spi数据传输方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010656289.8A CN111832047B (zh) 2020-07-09 2020-07-09 一种spi数据传输方法及系统

Publications (2)

Publication Number Publication Date
CN111832047A CN111832047A (zh) 2020-10-27
CN111832047B true CN111832047B (zh) 2022-03-15

Family

ID=72901356

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010656289.8A Active CN111832047B (zh) 2020-07-09 2020-07-09 一种spi数据传输方法及系统

Country Status (1)

Country Link
CN (1) CN111832047B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101820460A (zh) * 2010-03-29 2010-09-01 上海华勤通讯技术有限公司 实现spi接口的模块
CN103412810A (zh) * 2013-07-24 2013-11-27 中国航天科工集团第三研究院第八三五七研究所 一种可测试内部信号的系统封装芯片及测试方法
CN104834620A (zh) * 2015-04-29 2015-08-12 小鸟科技有限公司 串行外设接口spi总线电路、实现方法以及电子设备
CN107967227A (zh) * 2017-12-22 2018-04-27 苏州国芯科技有限公司 一种基于spi的通信方法及spi主机、spi从机
CN109857382A (zh) * 2019-03-11 2019-06-07 中国电子科技集团公司第五十四研究所 一种SoC芯片软件定义无线电解耦设计方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108123793A (zh) * 2017-12-19 2018-06-05 杭州中天微系统有限公司 基于apb总线的spi通信装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101820460A (zh) * 2010-03-29 2010-09-01 上海华勤通讯技术有限公司 实现spi接口的模块
CN103412810A (zh) * 2013-07-24 2013-11-27 中国航天科工集团第三研究院第八三五七研究所 一种可测试内部信号的系统封装芯片及测试方法
CN104834620A (zh) * 2015-04-29 2015-08-12 小鸟科技有限公司 串行外设接口spi总线电路、实现方法以及电子设备
CN107967227A (zh) * 2017-12-22 2018-04-27 苏州国芯科技有限公司 一种基于spi的通信方法及spi主机、spi从机
CN109857382A (zh) * 2019-03-11 2019-06-07 中国电子科技集团公司第五十四研究所 一种SoC芯片软件定义无线电解耦设计方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
SPI总线用于双处理器通信的数据链路层设计及其实现;孙斌 等;《上海大学学报(自然科学版)》;20130315;第18卷(第5期);全文 *
Virtual Platform for Architecture Exploration of Serial Communication in MPSoC Devices;Vincentius Kurniawan 等;《2019 5th International Conference on New Media Studies (CONMEDIA)》;20200206;全文 *
高速DSP扩展低速接口的实现方法;钱同惠 等;《现代电子技术》;20040826;第27卷(第14期);全文 *

Also Published As

Publication number Publication date
CN111832047A (zh) 2020-10-27

Similar Documents

Publication Publication Date Title
TWI343007B (en) Point-to-point link negotiation method and apparatus
EP2221731B1 (en) Low power and low pin count bi-directional dual data rate device interconnect interface
JPH05211540A (ja) モデム制御信号のためのマルチプレクス機構
JPS60500195A (ja) デイジタル通信リンクに円滑に割込む方法と装置
JPH02227765A (ja) デジタル・コンピユータのデータ転送装置
CN103914424A (zh) 基于gpio接口的lpc外设扩展方法及装置
KR101679333B1 (ko) 트랜잭션 계층 패킷의 싱글 엔드형 통신을 위한 방법, 장치 및 시스템
CN112564882B (zh) 一种基于ahb总线的单线数字通讯接口
US20050091564A1 (en) Data transfer control device, electronic instrument, and data transfer control method
CN108280041A (zh) 一种内部集成电路主机的通信方法和装置
CN103164314A (zh) 基于异步物理层接口的PCIe接口芯片硬件验证方法
CN101304362A (zh) 重传缓冲装置及传输数据的方法
CN111832047B (zh) 一种spi数据传输方法及系统
CN111832049B (zh) 一种基于spi的数据传输方法及系统
CN107370651A (zh) 一种spi从机之间的通信方法
CN115904844A (zh) 一种用于打印boot信息的uart仿真模型及其工作方法
JP4737049B2 (ja) 通信システム及び電子制御装置
CN116566761A (zh) Spi双主机共享仲裁系统及方法
CN100462952C (zh) 接口可配置的通用串行总线控制器
JP2002318783A (ja) マルチプロトコル型シリアル通信装置及びマイクロコンピュータ
CN106776402A (zh) 一种基于单片机的串行通信控制系统及方法
JPH07200432A (ja) データ通信方法及びシステム連結装置
CN212208283U (zh) 一种单片机间的双向握手通讯电路
CN115202257B (zh) 一种lpc总线协议转换及设备并行控制装置及方法
CN217467655U (zh) 一种单片机单io口双向通信结构

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant