CN111832049A - 一种基于spi的数据传输方法及系统 - Google Patents

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

Info

Publication number
CN111832049A
CN111832049A CN202010656731.7A CN202010656731A CN111832049A CN 111832049 A CN111832049 A CN 111832049A CN 202010656731 A CN202010656731 A CN 202010656731A CN 111832049 A CN111832049 A CN 111832049A
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.)
Granted
Application number
CN202010656731.7A
Other languages
English (en)
Other versions
CN111832049B (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 CN202010656731.7A priority Critical patent/CN111832049B/zh
Publication of CN111832049A publication Critical patent/CN111832049A/zh
Application granted granted Critical
Publication of CN111832049B publication Critical patent/CN111832049B/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/602Providing cryptographic facilities or services
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提出一种基于SPI的数据传输方法,安全芯片设置的引脚INT1和引脚INT4分别与主机提供的输出端口和输入端口进行连接;安全芯片上电或复位后,主机设置引脚INT1为高电平,等待引脚INT4为高电平;主机检测引脚INT4为高电平时,通过改变引脚INT1的电平变化状态向安全芯片依次写入第一数据包和第二数据包;主机检测引脚INT4为低电平时,通过改变引脚INT1的电平状态,在写入所述第i‑1数据包后,所述主机检测所述引脚INT4输出低电平时,通过改变所述引脚INT1的电平状态,向所述安全芯片写入第i数据包;当主机将所有数据包写入完成后,主机检测引脚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的电平状态,向所述安全芯片依次写入第一数据包和第二数据包;在所述主机向所述安全芯片写入第二数据包的同时,所述安全芯片对所述第一数据包进行运算处理;
在写入所述第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任一项所述的数据传输系统,其特征在于,所述主机,用于向所述安全芯片写入或读取数据包时,设置有系统调度、数据组包、拆包、拷贝的耗时;所述主机为主设备、所述安全芯片为从设备;所述安全芯片用于对所述主机写入的数据包进行密码运算处理。
CN202010656731.7A 2020-07-09 2020-07-09 一种基于spi的数据传输方法及系统 Active CN111832049B (zh)

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 true CN111832049A (zh) 2020-10-27
CN111832049B 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 (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101114269A (zh) * 2006-07-28 2008-01-30 深圳迈瑞生物医疗电子股份有限公司 多外设自主数据传输与存储方法
US20080109582A1 (en) * 2006-11-06 2008-05-08 Elite Semiconductor Memory Technology Inc. Transmission method for serial periphery interface serial flash
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模块

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101114269A (zh) * 2006-07-28 2008-01-30 深圳迈瑞生物医疗电子股份有限公司 多外设自主数据传输与存储方法
US20080109582A1 (en) * 2006-11-06 2008-05-08 Elite Semiconductor Memory Technology Inc. Transmission method for serial periphery interface serial flash
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)

* Cited by examiner, † Cited by third party
Title
WU DENGFENG 等: "Research and design of wireless transmission system based on nRF905", 《2010 INTERNATIONAL CONFERENCE ON COMPUTER, MECHATRONICS, CONTROL AND ELECTRONIC ENGINEERING》 *
卢珞先 等: "基于SPI的USB控制器接口设计", 《单片机与嵌入式系统应用》 *

Also Published As

Publication number Publication date
CN111832049B (zh) 2022-03-15

Similar Documents

Publication Publication Date Title
EP2221731B1 (en) Low power and low pin count bi-directional dual data rate device interconnect interface
CN105573951B (zh) 一种针对数据流传输的ahb总线接口系统
JPH02227766A (ja) デジタル・コンピユータのデータ転送装置
US11513584B2 (en) Method and apparatus to save power in USB repeaters/re-timers
CN112564882B (zh) 一种基于ahb总线的单线数字通讯接口
TW200917048A (en) Rate adaptation for support of full-speed USB transactions over a high-speed USB interface
CN104731746A (zh) 设备控制器装置
CN101599004A (zh) 基于fpga的sata控制器
US20050091564A1 (en) Data transfer control device, electronic instrument, and data transfer control method
US20200192853A1 (en) Alternative protocol over physical layer
CN101304362B (zh) 重传缓冲装置及传输数据的方法
US6463494B1 (en) Method and system for implementing control signals on a low pin count bus
CN111832049B (zh) 一种基于spi的数据传输方法及系统
CN102693203A (zh) 嵌入式usb主机
CN111832047B (zh) 一种spi数据传输方法及系统
CN111026691A (zh) 基于apb总线的owi通讯设备
CN115904844A (zh) 一种用于打印boot信息的uart仿真模型及其工作方法
CN100462952C (zh) 接口可配置的通用串行总线控制器
CN113886297A (zh) 一种基于dma的spi并发通讯se装置及方法
CN114338837A (zh) 一种基于zynq的hdlc通讯转换控制器
CN106776402A (zh) 一种基于单片机的串行通信控制系统及方法
CN212208283U (zh) 一种单片机间的双向握手通讯电路
CN217467655U (zh) 一种单片机单io口双向通信结构
CN115202257B (zh) 一种lpc总线协议转换及设备并行控制装置及方法
CN213715913U (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