CN111832049B - 一种基于spi的数据传输方法及系统 - Google Patents
一种基于spi的数据传输方法及系统 Download PDFInfo
- Publication number
- CN111832049B CN111832049B CN202010656731.7A CN202010656731A CN111832049B CN 111832049 B CN111832049 B CN 111832049B CN 202010656731 A CN202010656731 A CN 202010656731A CN 111832049 B CN111832049 B CN 111832049B
- Authority
- CN
- China
- Prior art keywords
- data packet
- host
- security chip
- data
- int4
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/72—Protecting 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
本发明提出一种基于SPI的数据传输方法,安全芯片设置的引脚INT1和引脚INT4分别与主机提供的输出端口和输入端口进行连接;安全芯片上电或复位后,主机设置引脚INT1为高电平,等待引脚INT4为高电平;主机检测引脚INT4为高电平时,通过改变引脚INT1的电平变化状态向安全芯片依次写入第一数据包和第二数据包;主机检测引脚INT4为低电平时,通过改变引脚INT1的电平状态,在写入所述第i‑1数据包后,所述主机检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平状态,向所述安全芯片写入第i数据包;当主机将所有数据包写入完成后,主机检测引脚INT4的电平状态和改变引脚INT1的电平状态,从安全芯片依次读取最后两个数据包处理后的数据。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种基于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的电平状态,向所述安全芯片依次写入第一数据包和第二数据包;在所述主机向所述安全芯片写入第二数据包的同时,所述安全芯片对所述第一数据包进行运算处理;
在写入所述第i-1数据包后,当所述主机检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平状态,向所述安全芯片写入第i数据包,同时从所述安全芯片中读取所述第i-2数据包处理后的数据,其中i≧3,累加i,继续数据包的写入和读取,直至所述主机将所有数据包写入所述安全芯片;在所述主机向所述安全芯片中写入第i数据包的同时,所述安全芯片对第i-1数据包进行运算处理;
在写入最后一个数据包后,当所述主机检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平状态,从所述安全芯片依次读取最后两个数据包处理后的数据;在所述主机从所述安全芯片中读取倒数第二数据包运算处理后的数据的同时,所述安全芯片对最后一个数据包进行运算处理;
其中,当所述安全芯片对任一数据包运算处理完成时,通过所述引脚INT4输出低电平,并在所述主机开始读取所述数据包处理后的数据时,通过所述引脚INT4输出高电平。
进一步的,在所述数据传输过程中,当所述主机检测所述引脚INT4输出高电平时,通过改变所述引脚INT1的电平状态向所述安全芯片依次写入第一数据包和第二数据包,具体为:
当所述主机检测所述引脚INT4为高电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第一数据包,并在写入操作完成后,将所述引脚INT1的电平拉高;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4输出高电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第二数据包,并在写入操作完成后,将所述引脚INT1的电平拉高。
进一步的,在所述数据传输过程中,在写入所述第i-1数据包后,当所述主机检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平状态,向所述安全芯片写入第i数据包,同时从所述安全芯片中读取所述第i-2数据包处理后的数据,具体为:
当所述主机检测所述引脚INT4输出低电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第i数据包,同时读取所述安全芯片对所述第i-2数据包运算处理后的数据,并在写入第i数据包和读取第i-2数据包运算处理后的数据均完成后,将所述引脚INT1的电平拉高。
进一步的,在所述数据传输过程中,在写入最后一个数据包后,当所述主机检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平状态,从所述安全芯片依次读取最后两个数据包处理后的数据,具体为:
当所述主机检测所述引脚INT4输出低电平时,拉低所述引脚INT1的电平,向所述安全芯片写入空数据包,同时读取倒数第二数据包运算处理后的数据,并在读取操作完成后,将所述引脚INT1的电平拉高;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4输出低电平时,拉低所述引脚INT1的电平,向所述安全芯片写入空数据包,同时读取最后一个数据包运算处理后的数据,并在读取操作完成后,将所述引脚INT1的电平拉高。
进一步的,所述主机向所述安全芯片写入或读取数据包时,设置有系统调度、数据组包、拆包、拷贝的耗时;所述主机为主设备、所述安全芯片为从设备;所述安全芯片用于对所述主机写入的数据包进行密码运算处理。
本发明第二方面还提出一种基于SPI的数据传输系统,所述数据传输系统包括:安全芯片和主机;所述安全芯片和所述主机通过SPI接口线进行连接;
所述主机,还分别提供两个通用输入/输出引脚,一个配置为输入端口,另一个配置为输出端口;所述安全芯片,还设置有引脚INT1和INT4,所述引脚INT1与所述主机的输出端口进行连接,所述引脚INT4与所述主机的输入端口进行连接;其中,所述引脚INT1表明所述主机的状态,所述引脚INT4表明所述安全芯片中是否有处理好的数据;
所述主机,用于在所述安全芯片上电或复位后,设置所述引脚INT1为高电平,等待所述引脚INT4为高电平;用于在检测所述引脚INT4输出高电平时,通过改变所述引脚INT1的电平状态向所述安全芯片依次写入第一数据包和第二数据包;用于在写入所述第i-1数据包后,当检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平状态,向所述安全芯片写入第i数据包,同时从所述安全芯片中读取所述第i-2数据包处理后的数据,其中i≧3,累加i,继续数据包的写入和读取,直至所述主机将所有数据包写入所述安全芯片;以及用于在写入最后一个数据包后,当检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平状态,从所述安全芯片依次读取最后两个数据包处理后的数据;
所述安全芯片,用于在所述主机向所述安全芯片写入第二数据包的同时,对所述第一数据包进行运算处理;用于在所述主机向所述安全芯片中写入第i数据包的同时,所述安全芯片对第i-1数据包进行运算处理;以及用于在所述主机从所述安全芯片中读取倒数第二数据包运算处理后的数据的同时,所述安全芯片对最后一个数据包进行运算处理;其中,当所述安全芯片对任一数据包运算处理完成时,通过所述引脚INT4输出低电平,并在所述主机开始读取所述数据包处理后的数据时,通过所述引脚INT4输出高电平。
进一步的,所述主机用于在检测所述引脚INT4输出高电平时,通过改变所述引脚INT1的电平状态向所述安全芯片依次写入第一数据包和第二数据包,具体包括:
当所述主机检测所述引脚INT4为高电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第一数据包,并在写入操作完成后,将所述引脚INT1的电平拉高;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4输出高电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第二数据包,并在写入操作完成后,将所述引脚INT1的电平拉高。
进一步的,所述主机用于在写入所述第i-1数据包后,当检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平状态,向所述安全芯片写入第i数据包,同时从所述安全芯片中读取所述第i-2数据包处理后的数据,具体包括:
当所述主机检测所述引脚INT4输出低电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第i数据包,同时读取所述安全芯片对所述第i-2数据包运算处理后的数据,并在写入第i数据包和读取第i-2数据包运算处理后的数据均完成后,将所述引脚INT1的电平拉高。
进一步的,所述主机在写入最后一个数据包后,当检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平状态,从所述安全芯片依次读取最后两个数据包处理后的数据,,具体包括:
当所述主机检测所述引脚INT4输出低电平时,拉低所述引脚INT1的电平,向所述安全芯片写入空数据包,同时读取倒数第二数据包运算处理后的数据,并在读取操作完成后,将所述引脚INT1的电平拉高;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4输出低电平时,拉低所述引脚INT1的电平,向所述安全芯片写入空数据包,同时读取最后一个数据包运算处理后的数据,并在读取操作完成后,将所述引脚INT1的电平拉高。
进一步的,所述主机,用于向所述安全芯片写入或读取数据包时,设置有系统调度、数据组包、拆包、拷贝的耗时;所述主机为主设备、所述安全芯片为从设备;所述安全芯片用于对所述主机写入的数据包进行密码运算处理。
本发明具有突出的实质性特点和显著的进步,具体的说:
(1)通过安全芯片设置引脚INT1和INT4、主机分别提供两个通用输入/输出引脚,一个配置为输入端口和另一个配置为输出端口,以及安全芯片的引脚INT1与主机的输出端口进行连接,安全芯片的引脚INT4与主机的输入端口进行连接;从而实现主机和安全芯片可通过引脚INT1、INT4的电平状态判断数据的写入或读取,当主机写入或读取数据时,将引脚INT1的电平拉低,直至数据写入或读取完成后,将引脚INT1的电平拉高;其中,所述引脚INT1表明所述主机的状态,所述引脚INT4表明所述安全芯片中是否有处理好的数据;
主机检测所述引脚INT4为高电平时,通过引脚INT1的电平变化状态向安全芯片依次写入第一数据包和第二数据包;在写入所述第i-1数据包后,所述主机检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平状态,向所述安全芯片写入第i数据包,同时从所述安全芯片中读取所述第i-2数据包处理后的数据,其中i≧3,累加i,继续数据包的写入和读取,直至所述主机将所有数据包写入所述安全芯片;当主机将所有数据包写入完成后,主机检测所述引脚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的电平状态,向所述安全芯片依次写入第一数据包和第二数据包;在所述主机向所述安全芯片写入第二数据包的同时,所述安全芯片对所述第一数据包进行运算处理;
在写入所述第i-1数据包后,当所述主机检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平状态,向所述安全芯片写入第i数据包,同时从所述安全芯片中读取所述第i-2数据包处理后的数据,其中i≧3,累加i,继续数据包的写入和读取,直至所述主机将所有数据包写入所述安全芯片;在所述主机向所述安全芯片中写入第i数据包的同时,所述安全芯片对第i-1数据包进行运算处理;
在写入最后一个数据包后,当所述主机检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平状态,从所述安全芯片依次读取最后两个数据包处理后的数据;在所述主机从所述安全芯片中读取倒数第二数据包运算处理后的数据的同时,所述安全芯片对最后一个数据包进行运算处理;
其中,当所述安全芯片对任一数据包运算处理完成时,通过所述引脚INT4输出低电平,并在所述主机开始读取所述数据包处理后的数据时,通过所述引脚INT4输出高电平。
具体的,在所述数据传输过程中,当所述主机检测所述引脚INT4输出高电平时,通过改变所述引脚INT1的电平状态向所述安全芯片依次写入第一数据包和第二数据包,具体为:
当所述主机检测所述引脚INT4为高电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第一数据包,并在写入操作完成后,将所述引脚INT1的电平拉高;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4输出高电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第二数据包,并在写入操作完成后,将所述引脚INT1的电平拉高。
具体的,在所述数据传输过程中,在写入所述第i-1数据包后,当所述主机检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平状态,向所述安全芯片写入第i数据包,同时从所述安全芯片中读取所述第i-2数据包处理后的数据,具体为:
当所述主机检测所述引脚INT4输出低电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第i数据包,同时读取所述安全芯片对所述第i-2数据包运算处理后的数据,并在写入第i数据包和读取第i-2数据包运算处理后的数据均完成后,将所述引脚INT1的电平拉高。
具体的,在所述数据传输过程中,在写入最后一个数据包后,当所述主机检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平状态,从所述安全芯片依次读取最后两个数据包处理后的数据,具体为:
当所述主机检测所述引脚INT4输出低电平时,拉低所述引脚INT1的电平,向所述安全芯片写入空数据包,同时读取倒数第二数据包运算处理后的数据,并在读取操作完成后,将所述引脚INT1的电平拉高;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4输出低电平时,拉低所述引脚INT1的电平,向所述安全芯片写入空数据包,同时读取最后一个数据包运算处理后的数据,并在读取操作完成后,将所述引脚INT1的电平拉高。
具体的,所述主机向所述安全芯片写入或读取数据包时,设置有系统调度、数据组包、拆包、拷贝的耗时;所述主机为主设备、所述安全芯片为从设备;所述安全芯片用于对所述主机写入的数据包进行密码运算处理。
如图2所示,本发明第二方面还提出一种基于SPI的数据传输系统,包括:安全芯片和主机;所述安全芯片和所述主机通过SPI接口线进行连接;
所述主机,还分别提供两个通用输入/输出引脚,一个配置为输入端口,另一个配置为输出端口;所述安全芯片,还设置有引脚INT1和INT4,所述引脚INT1与所述主机的输出端口进行连接,所述引脚INT4与所述主机的输入端口进行连接;其中,所述引脚INT1表明所述主机的状态,所述引脚INT4表明所述安全芯片中是否有处理好的数据;
所述主机,用于在所述安全芯片上电或复位后,设置所述引脚INT1为高电平,等待所述引脚INT4为高电平;用于在检测所述引脚INT4输出高电平时,通过改变所述引脚INT1的电平状态向所述安全芯片依次写入第一数据包和第二数据包;用于在写入所述第i-1数据包后,当检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平状态,向所述安全芯片写入第i数据包,同时从所述安全芯片中读取所述第i-2数据包处理后的数据,其中i≧3,累加i,继续数据包的写入和读取,直至所述主机将所有数据包写入所述安全芯片;以及用于在写入最后一个数据包后,当检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平状态,从所述安全芯片依次读取最后两个数据包处理后的数据;
所述安全芯片,用于在所述主机向所述安全芯片写入第二数据包的同时,对所述第一数据包进行运算处理;用于在所述主机向所述安全芯片中写入第i数据包的同时,所述安全芯片对第i-1数据包进行运算处理;以及用于在所述主机从所述安全芯片中读取倒数第二数据包运算处理后的数据的同时,所述安全芯片对最后一个数据包进行运算处理;其中,当所述安全芯片对任一数据包运算处理完成时,通过所述引脚INT4输出低电平,并在所述主机开始读取所述数据包处理后的数据时,通过所述引脚INT4输出高电平。
具体的,所述主机用于在检测所述引脚INT4输出高电平时,通过改变所述引脚INT1的电平状态向所述安全芯片依次写入第一数据包和第二数据包,具体包括:
当所述主机检测所述引脚INT4为高电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第一数据包,并在写入操作完成后,将所述引脚INT1的电平拉高;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4输出高电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第二数据包,并在写入操作完成后,将所述引脚INT1的电平拉高。
具体的,所述主机用于在写入所述第i-1数据包后,当检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平状态,向所述安全芯片写入第i数据包,同时从所述安全芯片中读取所述第i-2数据包处理后的数据,具体包括:
当所述主机检测所述引脚INT4输出低电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第i数据包,同时读取所述安全芯片对所述第i-2数据包运算处理后的数据,并在写入第i数据包和读取第i-2数据包运算处理后的数据均完成后,将所述引脚INT1的电平拉高。
具体的,所述主机在写入最后一个数据包后,当检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平状态,从所述安全芯片依次读取最后两个数据包处理后的数据,,具体包括:
当所述主机检测所述引脚INT4输出低电平时,拉低所述引脚INT1的电平,向所述安全芯片写入空数据包,同时读取倒数第二数据包运算处理后的数据,并在读取操作完成后,将所述引脚INT1的电平拉高;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4输出低电平时,拉低所述引脚INT1的电平,向所述安全芯片写入空数据包,同时读取最后一个数据包运算处理后的数据,并在读取操作完成后,将所述引脚INT1的电平拉高。
具体的,所述主机,用于向所述安全芯片写入或读取数据包时,设置有系统调度、数据组包、拆包、拷贝的耗时;所述主机为主设备、所述安全芯片为从设备;所述安全芯片用于对所述主机写入的数据包进行密码运算处理。
如图3所示,以所述主机要向所述安全芯片写入三个数据包为例,详细说明基于SPI的数据传输过程:
所述主机检测所述引脚INT4为高电平,拉低所述引脚INT1的电平,向所述安全芯片写入第一数据包,并在写入操作完成后,将所述引脚INT1的电平拉高;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4输出高电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第二数据包,并在写入操作完成后,将所述引脚INT1的电平拉高;在所述主机向所述安全芯片写入第二数据包的同时,所述安全芯片对所述第一数据包进行运算处理;当所述安全芯片对第一数据包运算处理完成时,通过所述引脚INT4输出低电平;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4变为低电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第三数据包,同时从所述安全芯片中读取所述第一数据包处理后的数据,并在写入操作完成后,将所述引脚INT1的电平拉高;在所述主机向所述安全芯片中写入第三数据包的同时,所述安全芯片对第二数据包进行运算处理,同时通过所述引脚INT4输出高电平;当所述安全芯片对第二数据包运算处理完成时,通过所述引脚INT4输出低电平;
当所述主机将三个数据包写入所述安全芯片后,且检测所述引脚INT4变为低电平时,拉低所述引脚INT1的电平,向所述安全芯片写入空数据包,同时读取第二数据包运算处理后的数据,并在读取操作完成后,将所述引脚INT1的电平拉高;在所述主机从所述安全芯片中读取第二数据包运算处理后的数据的同时,所述安全芯片对第三数据包进行运算处理,同时通过所述引脚INT4输出高电平;当所述安全芯片对第三数据包运算处理完成时,通过所述引脚INT4输出低电平;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4输出低电平时,拉低所述引脚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的电平状态,向所述安全芯片依次写入第一数据包和第二数据包;在所述主机向所述安全芯片写入第二数据包的同时,所述安全芯片对所述第一数据包进行运算处理;
在写入所述第i-1数据包后,当所述主机检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平状态,向所述安全芯片写入第i数据包,同时从所述安全芯片中读取所述第i-2数据包处理后的数据,其中i≧3,累加i,继续数据包的写入和读取,直至所述主机将所有数据包写入所述安全芯片;在所述主机向所述安全芯片中写入第i数据包的同时,所述安全芯片对第i-1数据包进行运算处理;
在写入最后一个数据包后,当所述主机检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平状态,从所述安全芯片依次读取最后两个数据包处理后的数据;在所述主机从所述安全芯片中读取倒数第二数据包运算处理后的数据的同时,所述安全芯片对最后一个数据包进行运算处理;
其中,当所述安全芯片对任一数据包运算处理完成时,通过所述引脚INT4输出低电平,并在所述主机开始读取所述数据包处理后的数据时,通过所述引脚INT4输出高电平。
2.根据权利要求1所述的数据传输方法,其特征在于,在所述数据传输过程中,当所述主机检测所述引脚INT4输出高电平时,通过改变所述引脚INT1的电平状态向所述安全芯片依次写入第一数据包和第二数据包,具体为:
当所述主机检测所述引脚INT4为高电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第一数据包,并在写入操作完成后,将所述引脚INT1的电平拉高;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4输出高电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第二数据包,并在写入操作完成后,将所述引脚INT1的电平拉高。
3.根据权利要求1所述的数据传输方法,其特征在于,在所述数据传输过程中,在写入所述第i-1数据包后,当所述主机检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平状态,向所述安全芯片写入第i数据包,同时从所述安全芯片中读取所述第i-2数据包处理后的数据,具体为:
当所述主机检测所述引脚INT4输出低电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第i数据包,同时读取所述安全芯片对所述第i-2数据包运算处理后的数据,并在写入第i数据包和读取第i-2数据包运算处理后的数据均完成后,将所述引脚INT1的电平拉高。
4.根据权利要求1所述的数据传输方法,其特征在于,在所述数据传输过程中,在写入最后一个数据包后,当所述主机检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平状态,从所述安全芯片依次读取最后两个数据包处理后的数据,具体为:
当所述主机检测所述引脚INT4输出低电平时,拉低所述引脚INT1的电平,向所述安全芯片写入空数据包,同时读取倒数第二数据包运算处理后的数据,并在读取操作完成后,将所述引脚INT1的电平拉高;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4输出低电平时,拉低所述引脚INT1的电平,向所述安全芯片写入空数据包,同时读取最后一个数据包运算处理后的数据,并在读取操作完成后,将所述引脚INT1的电平拉高。
5.根据权利要求1-4任一项所述的数据传输方法,其特征在于,所述主机向所述安全芯片写入或读取数据包时,设置有系统调度、数据组包、拆包、拷贝的耗时;所述主机为主设备、所述安全芯片为从设备;所述安全芯片用于对所述主机写入的数据包进行密码运算处理。
6.一种基于SPI的数据传输系统,其特征在于,包括:安全芯片和主机;所述安全芯片和所述主机通过SPI接口线进行连接;
所述主机,还分别提供两个通用输入/输出引脚,一个配置为输入端口,另一个配置为输出端口;所述安全芯片,还设置有引脚INT1和INT4,所述引脚INT1与所述主机的输出端口进行连接,所述引脚INT4与所述主机的输入端口进行连接;其中,所述引脚INT1表明所述主机的状态,所述引脚INT4表明所述安全芯片中是否有处理好的数据;
所述主机,用于在所述安全芯片上电或复位后,设置所述引脚INT1为高电平,等待所述引脚INT4为高电平;用于在检测所述引脚INT4输出高电平时,通过改变所述引脚INT1的电平状态向所述安全芯片依次写入第一数据包和第二数据包;用于在写入所述第i-1数据包后,当检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平状态,向所述安全芯片写入第i数据包,同时从所述安全芯片中读取所述第i-2数据包处理后的数据,其中i≧3,累加i,继续数据包的写入和读取,直至所述主机将所有数据包写入所述安全芯片;以及用于在写入最后一个数据包后,当检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平状态,从所述安全芯片依次读取最后两个数据包处理后的数据;
所述安全芯片,用于在所述主机向所述安全芯片写入第二数据包的同时,对所述第一数据包进行运算处理;用于在所述主机向所述安全芯片中写入第i数据包的同时,所述安全芯片对第i-1数据包进行运算处理;以及用于在所述主机从所述安全芯片中读取倒数第二数据包运算处理后的数据的同时,所述安全芯片对最后一个数据包进行运算处理;其中,当所述安全芯片对任一数据包运算处理完成时,通过所述引脚INT4输出低电平,并在所述主机开始读取所述数据包处理后的数据时,通过所述引脚INT4输出高电平。
7.根据权利要求6所述的数据传输系统,其特征在于,所述主机用于在检测所述引脚INT4输出高电平时,通过改变所述引脚INT1的电平状态向所述安全芯片依次写入第一数据包和第二数据包,具体包括:
当所述主机检测所述引脚INT4为高电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第一数据包,并在写入操作完成后,将所述引脚INT1的电平拉高;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4输出高电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第二数据包,并在写入操作完成后,将所述引脚INT1的电平拉高。
8.根据权利要求6所述的数据传输系统,其特征在于,所述主机用于在写入所述第i-1数据包后,当检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平状态,向所述安全芯片写入第i数据包,同时从所述安全芯片中读取所述第i-2数据包处理后的数据,具体包括:
当所述主机检测所述引脚INT4输出低电平时,拉低所述引脚INT1的电平,向所述安全芯片写入第i数据包,同时读取所述安全芯片对所述第i-2数据包运算处理后的数据,并在写入第i数据包和读取第i-2数据包运算处理后的数据均完成后,将所述引脚INT1的电平拉高。
9.根据权利要求6所述的数据传输系统,其特征在于,所述主机用于在写入最后一个数据包后,当检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平状态,从所述安全芯片依次读取最后两个数据包处理后的数据,具体包括:
当所述主机检测所述引脚INT4输出低电平时,拉低所述引脚INT1的电平,向所述安全芯片写入空数据包,同时读取倒数第二数据包运算处理后的数据,并在读取操作完成后,将所述引脚INT1的电平拉高;
所述主机继续检测所述引脚INT4的电平状态,当检测所述引脚INT4输出低电平时,拉低所述引脚INT1的电平,向所述安全芯片写入空数据包,同时读取最后一个数据包运算处理后的数据,并在读取操作完成后,将所述引脚INT1的电平拉高。
10.根据权利要求6-9任一项所述的数据传输系统,其特征在于,所述主机,用于向所述安全芯片写入或读取数据包时,设置有系统调度、数据组包、拆包、拷贝的耗时;所述主机为主设备、所述安全芯片为从设备;所述安全芯片用于对所述主机写入的数据包进行密码运算处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010656731.7A CN111832049B (zh) | 2020-07-09 | 2020-07-09 | 一种基于spi的数据传输方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010656731.7A CN111832049B (zh) | 2020-07-09 | 2020-07-09 | 一种基于spi的数据传输方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111832049A CN111832049A (zh) | 2020-10-27 |
CN111832049B true CN111832049B (zh) | 2022-03-15 |
Family
ID=72900789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010656731.7A Active CN111832049B (zh) | 2020-07-09 | 2020-07-09 | 一种基于spi的数据传输方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111832049B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101114269A (zh) * | 2006-07-28 | 2008-01-30 | 深圳迈瑞生物医疗电子股份有限公司 | 多外设自主数据传输与存储方法 |
CN102521181A (zh) * | 2011-11-01 | 2012-06-27 | 四川川大智胜软件股份有限公司 | 多通道异型雷达数据实时解析集中收发卡及其通信方法 |
CN103427945A (zh) * | 2012-09-07 | 2013-12-04 | 万高(杭州)科技有限公司 | 同步串行通信接口的通信方法及该同步串行通信接口 |
CN107562647A (zh) * | 2017-08-31 | 2018-01-09 | 王洋 | 一种对数字信号程序处理器可靠性扩展的控制方法及装置 |
CN108153686A (zh) * | 2018-02-05 | 2018-06-12 | 中国铁道科学研究院 | 多接口cpu模块 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7606952B2 (en) * | 2006-11-06 | 2009-10-20 | Elite Semiconductor Memory Technology, Inc. | Method for operating serial flash memory |
-
2020
- 2020-07-09 CN CN202010656731.7A patent/CN111832049B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101114269A (zh) * | 2006-07-28 | 2008-01-30 | 深圳迈瑞生物医疗电子股份有限公司 | 多外设自主数据传输与存储方法 |
CN102521181A (zh) * | 2011-11-01 | 2012-06-27 | 四川川大智胜软件股份有限公司 | 多通道异型雷达数据实时解析集中收发卡及其通信方法 |
CN103427945A (zh) * | 2012-09-07 | 2013-12-04 | 万高(杭州)科技有限公司 | 同步串行通信接口的通信方法及该同步串行通信接口 |
CN107562647A (zh) * | 2017-08-31 | 2018-01-09 | 王洋 | 一种对数字信号程序处理器可靠性扩展的控制方法及装置 |
CN108153686A (zh) * | 2018-02-05 | 2018-06-12 | 中国铁道科学研究院 | 多接口cpu模块 |
Non-Patent Citations (2)
Title |
---|
Research and design of wireless transmission system based on nRF905;Wu Dengfeng 等;《2010 International Conference on Computer, Mechatronics, Control and Electronic Engineering》;20101025;全文 * |
基于SPI的USB控制器接口设计;卢珞先 等;《单片机与嵌入式系统应用》;20070108;第2006卷(第12期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111832049A (zh) | 2020-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2221731B1 (en) | Low power and low pin count bi-directional dual data rate device interconnect interface | |
CN102023954B (zh) | 具有多路i2c总线的装置、处理器、系统主板及工控计算机 | |
CN105573951B (zh) | 一种针对数据流传输的ahb总线接口系统 | |
US11513584B2 (en) | Method and apparatus to save power in USB repeaters/re-timers | |
CN101599004B (zh) | 基于fpga的sata控制器 | |
JPH02227766A (ja) | デジタル・コンピユータのデータ転送装置 | |
JP2010061670A (ja) | バス接続システム | |
CN112564882B (zh) | 一种基于ahb总线的单线数字通讯接口 | |
TW200917048A (en) | Rate adaptation for support of full-speed USB transactions over a high-speed USB interface | |
CN104731746A (zh) | 设备控制器装置 | |
US7337382B2 (en) | Data transfer control device, electronic instrument, and data transfer control method | |
US11693813B2 (en) | Alternative protocol over physical layer | |
CN101304362B (zh) | 重传缓冲装置及传输数据的方法 | |
CN110971621B (zh) | 基于sdio接口的嵌入式多cpu互联电路、互联方法及驱动方法 | |
US6463494B1 (en) | Method and system for implementing control signals on a low pin count bus | |
CN111832049B (zh) | 一种基于spi的数据传输方法及系统 | |
CN102693203A (zh) | 嵌入式usb主机 | |
CN202694039U (zh) | 一种适配器电路 | |
CN111832047B (zh) | 一种spi数据传输方法及系统 | |
CN111026691A (zh) | 基于apb总线的owi通讯设备 | |
CN115904844A (zh) | 一种用于打印boot信息的uart仿真模型及其工作方法 | |
CN112835834B (zh) | 数据传输系统 | |
CN106776402A (zh) | 一种基于单片机的串行通信控制系统及方法 | |
CN112883437A (zh) | 一种防止安全芯片卡死的串行数据通信方法和密码卡 | |
CN101071406A (zh) | 接口可配置的通用串行总线控制器 |
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 |