CN116383116A - 一种基于spi总线的通信方法及装置 - Google Patents

一种基于spi总线的通信方法及装置 Download PDF

Info

Publication number
CN116383116A
CN116383116A CN202111602115.4A CN202111602115A CN116383116A CN 116383116 A CN116383116 A CN 116383116A CN 202111602115 A CN202111602115 A CN 202111602115A CN 116383116 A CN116383116 A CN 116383116A
Authority
CN
China
Prior art keywords
module
information
interface
slave
spi bus
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.)
Pending
Application number
CN202111602115.4A
Other languages
English (en)
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.)
Ziguang Tongxin Microelectronics Co Ltd
Original Assignee
Ziguang Tongxin Microelectronics 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 Ziguang Tongxin Microelectronics Co Ltd filed Critical Ziguang Tongxin Microelectronics Co Ltd
Priority to CN202111602115.4A priority Critical patent/CN116383116A/zh
Publication of CN116383116A publication Critical patent/CN116383116A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/06Clock generators producing several clock signals
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Small-Scale Networks (AREA)

Abstract

本申请公开了一种基于SPI总线的通信方法,第一模块和第二模块之间利用SPI总线进行通信。该SPI总线包括中断接口和响应接口。作为从模块的第一模块通过中断接口向第二模块传递第一信息,第一信息指示第一模块请求切换为主模块向第二模块发送数据。而后,第一模块通过响应接口,获取第二模块传递的第二信息,第二信息指示第二模块确定由第一模块切换为主模块向第二模块发送数据。第二模块获取第二信息之后,作为主模块向第二模块发送数据。由此可见,当作为从模块的第一模块有向作为主模块的第二模块发送数据的需求时,主动请求切换为主模块向第二模块发送数据,而不是等待第二模块轮询,从而提升了第二模块和第一模块之间的通信效率。

Description

一种基于SPI总线的通信方法及装置
技术领域
本申请涉及通信领域,特别是涉及一种基于SPI总线的通信方法及装置。
背景技术
目前,模块之间可以利用串行外设接口(Serial Peripheral Interface,SPI)总线进行通信。其中,模块,也可以称为单元(unit)或者要素(element)。例如,对于安全芯片而言,其主控模块和安全模块(Secure Element,SE)之间,可以利用SPI总线进行通信。
当利用SPI总线进行通信的两个模块之间需要频繁进行通信时,当前的SPI通信机制,通信效率较低。
发明内容
本申请所要解决的技术问题是:当利用SPI总线进行通信的两个模块之间需要频繁进行通信时,当前的SPI通信机制,通信效率较低,提供一种基于SPI总线的通信方法及装置。
第一方面,本申请实施例提供了一种基于串行外设接口SPI总线的通信方法,由第一模块执行,所述第一模块和第二模块之间利用SPI总线进行通信,所述SPI总线包括:中断接口和响应接口,所述方法包括:
所述第一模块通过所述中断接口向所述第二模块传递第一信息,所述第一信息用于指示所述第一模块请求切换为主模块;
所述第一模块通过所述响应接口,获取所述第二模块传递的第二信息,所述第二信息用于指示所述第一模块切换为主模块;
所述第一模块作为主模块向所述第二模块发送数据。
可选的,所述第一模块通过所述中断接口向所述第二模块传递第一信息,包括:
所述第一模块拉高所述中断接口对应的信号线。
可选的,所述第一模块通过所述响应接口,获取所述第二模块传递的第二信息,包括:
所述第一模块确定所述响应接口对应的信号线被拉高。
可选的,所述第一模块作为主模块向所述第二模块发送数据,包括:
所述第一模块生成时钟信号,并通过所述SPI总线的主出从入MOSI信号线和所述时钟信号,向所述第二模块发送数据。
可选的,在所述第一模块通过所述中断接口向所述第二模块传递第一信息之前,所述方法还包括:
所述第一模块作为从模块接收所述第二模块发送的明文,并对所述明文进行加密,得到密文;
所述第一模块作为主模块向所述第二模块发送数据,包括:
所述第一模块作为主模块向所述第二模块发送所述密文。
可选的,在所述第一模块作为主模块向所述第二模块发送数据之后,所述方法还包括:
所述第一模块通过所述中断接口向所述第二模块传递第三信息,所述第三信息用于指示所述第一模块请求切换为从模块;
所述第一模块通过所述响应接口获取第四信息,所述第四信息用于指示所述第一模块切换为从模块。
可选的,所述第一模块通过所述中断接口向所述第二模块传递第三信息,包括:
所述第一模块拉低所述中断接口对应的信号线。
可选的,所述第一模块为安全芯片的安全模块,所述第二模块为所述安全芯片的主控模块。
第二方面,本申请实施例提供了一种基于串行外设接口SPI总线的通信方法,由第二模块执行,所述第二模块和第一模块之间利用SPI总线进行通信,所述SPI总线包括:中断接口和响应接口,所述方法包括:
所述第二模块通过所述中断接口,获取所述第一模块传递的第一信息,所述第一信息用于指示所述第一模块请求切换为主模块;
所述第二模块通过所述响应接口,向所述第一模块传递第二信息,所述第二信息用于指示所述第一模块切换为主模块;
所述第二模块作为从模块接收所述第一模块发送的数据。
可选的,所述第二模块通过所述中断接口,获取所述第一模块传递的第一信息,包括:
所述第二模块确定所述中断接口对应的信号线被拉高。
可选的,所述第二模块通过所述响应接口,向所述第一模块传递第二信息,包括:
所述第二模块拉高所述响应接口对应的信号线。
可选的,所述第二模块拉高所述响应接口对应的信号线,包括:
所述第二模块在确定所述SPI总线空闲的情况下,拉高所述响应接口对应的信号线。
可选的,所述第二模块作为从模块接收所述第一模块发送的数据,包括:
所述第二模块通过所述SPI总线的主出从入MOSI信号线和所述第一模块生成的时钟信号,接收所述第一模块发送的数据。
可选的,所述第二模块通过所述中断接口,获取所述第一模块传递的第一信息之前,所述方法还包括:
所述第二模块作为主模块向所述第一模块发送明文;
所述第二模块作为从模块接收所述第一模块发送的数据,包括:
所述第二模块作为从模块,接收所述第一模块对所述明文进行加密而得到的密文。
可选的,所述第二模块作为从模块接收所述第一模块发送的数据之后,所述方法还包括:
所述第二模块通过所述中断接口,获取第三信息,所述第三信息用于指示所述第一模块请求切换为从模块;
所述第二模块通过所述响应接口向所述第一模块传递第四信息,所述第四信息用于指示所述第一模块切换为从模块。
可选的,所述第二模块通过所述响应接口,向所述第一模块传递第四信息,包括:
所述第二模块拉低所述响应接口对应的信号线。
可选的,所述第一模块为安全芯片的安全模块,所述第二模块为所述安全芯片的主控模块。
第三方面,本申请实施例提供了一种基于串行外设接口SPI总线的通信装置,应用于第一模块,所述第一模块和第二模块之间利用SPI总线进行通信,所述SPI总线包括:中断接口和响应接口,所述装置包括:
传递单元,用于通过所述中断接口向所述第二模块传递第一信息,所述第一信息用于指示所述第一模块请求切换为主模块;
获取单元,用于通过所述响应接口,获取所述第二模块传递的第二信息,所述第二信息用于指示所述第一模块切换为主模块;
发送单元,用于作为主模块向所述第二模块发送数据。
可选的,所述传递单元,用于:
拉高所述中断接口对应的信号线。
可选的,所述获取单元,用于:
确定所述响应接口对应的信号线被拉高。
可选的,所述发送单元,用于:
生成时钟信号,并通过所述SPI总线的主出从入MOSI信号线和所述时钟信号,向所述第二模块发送数据。
可选的,所述装置还包括:
接收单元,用于在通过所述中断接口向所述第二模块传递第一信息之前,作为从模块接收所述第二模块发送的明文,并对所述明文进行加密,得到密文;
所述发送单元,用于:
所述第一模块作为主模块向所述第二模块发送所述密文。
可选的,
所述传递单元,还用于在作为主模块向所述第二模块发送数据之后,通过所述中断接口向所述第二模块传递第三信息,所述第三信息用于指示所述第一模块请求切换为从模块;
所述获取单元,还用于通过所述响应接口获取第四信息,所述第四信息用于指示所述第一模块切换为从模块。
可选的,所述第一模块通过所述中断接口向所述第二模块传递第三信息,包括:
所述第一模块拉低所述中断接口对应的信号线。
可选的,所述第一模块为安全芯片的安全模块,所述第二模块为所述安全芯片的主控模块。
第四方面,本申请实施例提供了一种基于串行外设接口SPI总线的通信装置,应用于第二模块,所述第二模块和第一模块之间利用SPI总线进行通信,所述SPI总线包括:中断接口和响应接口,所述装置包括:
获取单元,用于通过所述中断接口,获取所述第一模块传递的第一信息,所述第一信息用于指示所述第一模块请求切换为主模块;
传递单元,用于通过所述响应接口,向所述第一模块传递第二信息,所述第二信息用于指示所述第一模块切换为主模块;
接收单元,用于作为从模块接收所述第一模块发送的数据。
可选的,所述获取单元,用于:
确定所述中断接口对应的信号线被拉高。
可选的,所述传递单元,用于:
拉高所述响应接口对应的信号线。
可选的,所述传递单元,用于:
在确定所述SPI总线空闲的情况下,拉高所述响应接口对应的信号线。
可选的,所述接收单元,用于:
通过所述SPI总线的主出从入MOSI信号线和所述第一模块生成的时钟信号,接收所述第一模块发送的数据。
可选的,所述装置还包括:
发送单元,用于在通过所述中断接口,获取所述第一模块传递的第一信息之前,作为主模块向所述第一模块发送明文;
所述接收单元,用于:
作为从模块,接收所述第一模块对所述明文进行加密而得到的密文。
可选的,
所述获取单元,还用于在作为从模块接收所述第一模块发送的数据之后,通过所述中断接口,获取第三信息,所述第三信息用于指示所述第一模块请求切换为从模块;
所述传递单元,还用于通过所述响应接口向所述第一模块传递第四信息,所述第四信息用于指示所述第一模块切换为从模块。
可选的,所述第二模块通过所述响应接口,向所述第一模块传递第四信息,包括:
所述第二模块拉低所述响应接口对应的信号线。
可选的,所述第一模块为安全芯片的安全模块,所述第二模块为所述安全芯片的主控模块。
第五方面,本申请实施例提供了一种设备,所述设备包括:处理器、存储器、***总线;所述处理器以及所述存储器通过所述***总线相连;所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行以上第一方面任一项所述的方法,或者,所述指令当被所述处理器执行时使所述处理器执行以上第二方面任一项所述的方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行以上第一方面任一项所述的方法,或者,当所述指令在终端设备上运行时,使得所述终端设备执行以上第二方面任一项所述的方法。
第七方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品在终端设备上运行时,使得所述终端设备执行以上第一方面任一项所述的方法,或者,所述计算机程序产品在终端设备上运行时,使得所述终端设备执行以上第二方面任一项所述的方法。
与现有技术相比,本申请实施例具有以下优点:
本申请实施例提供了一种基于SPI总线的通信方法,该方法可以由第一模块执行,第一模块和第二模块之间利用SPI总线进行通信。该SPI总线包括中断(interrupt,IRQ)接口和响应(ACK)接口。在一个示例中,作为从模块的第一模块,可以通过所述中断接口向所述第二模块传递第一信息,所述第一信息用于指示所述第一模块请求切换为主模块向所述第二模块发送数据。而后,所述第一模块可以通过所述响应接口,获取所述第二模块传递的第二信息,所述第二信息用于指示所述第二模块确定由所述第一模块切换为主模块向所述第二模块发送数据。所述第二模块获取第二信息之后,则说明所述第一模块请求切换为主模块的请求已经得到第二模块的认同。因此,所述第一模块即可作为主模块向所述第二模块发送数据。由此可见,利用本方案,当作为从模块的第一模块有向作为主模块的第二模块发送数据的需求时,可以主动请求切换为主模块向第二模块发送数据,而不是等待第二模块轮询,从而提升了第二模块和第一模块之间的通信效率。
本申请实施例提供了一种基于SPI总线的通信方法,该方法可以由第二模块执行,第一模块和第二模块之间利用SPI总线进行通信。该SPI总线包括中断接口和响应接口。在一个示例中,作为主模块的第二模块可以通过所述中断接口,获取所述第一模块传递的第一信息,所述第一信息用于指示所述第一模块请求切换为主模块向所述第二模块发送数据。而后,所述第二模块通过所述响应接口,向所述第一模块传递第二信息,所述第二信息用于指示所述第二模块确定由所述第一模块切换为主模块向所述第二模块发送数据;进一步地,所述第二模块作为从模块接收所述第一模块发送的数据。由此可见,利用本方案,当作为从模块的第一模块有向作为主模块的第二模块发送数据的需求时,可以主动请求切换为主模块向第二模块发送数据,而不是等待第二模块轮询,从而提升了第二模块和第一模块之间的通信效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一个示例性应用场景示意图;
图2a为本申请实施例提供的一个示例性应用场景示意图;
图2b为本申请实施例提供的又一个示例性应用场景示意图;
图3为本申请实施例提供的一种基于SPI总线的通信方法的信令交互图;
图4为本申请实施例提供的一种基于SPI总线的通信装置的结构示意图;
图5为本申请实施例提供的一种又基于SPI总线的通信装置的结构示意图
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为方便理解,首先对SPI总线进行介绍。
SPI为四线制总线,并且,SPI总线以主从模式工作。换言之,若两个模块通过SPI总线通信,则其中一个模块作为主模块,另外一个模块作为从模块。并且,一个主模块可以对应一个或者多个从模块。在主模块和从模块之间,有4根信号线,分别是:
片选(Chip Select,CS):从模块片选使能信号,当该信号有效时,从模块被选中,主模块同被选中的从模块进行通信;
串行时钟(Serial Clock,SCLK):SPI总线的时钟信号,只能由主模块产生;
主出从入(master out slave in,MOSI):主模块给从模块发送指令或者数据的通道;
从出主入(slave out master in,SOMI):主模块读取从模块状态或者数据的通道。
参见图1,该图为本申请实施例提供的一个示例性应用场景示意图。
如图1所示,模块110和模块120之间利用SPI总线进行通信。模块110作为主模块,模块120作为从模块。当模块110和模块120之间进行通信时,CS信号拉低,模块110生成SCLK,通过信号线MOSI向模块120传输数据。模块120通过信号线SOMI向模块110传输数据。
其中:利用SPI总线通信时,从模块(即模块120)无法主动向主模块(即模块110)发送数据,只能等待主模块定时轮询,当主模块轮询到从模块时,从模块才能将数据通过SOMI传递个主模块。
正是因为如此,当利用SPI总线进行通信的两个模块之间需要频繁进行通信时,由于从模块无法在有向主模块发送数据的需求时,立即主动向主模块发送数据,而只能等待主模块轮询,从而导致当前的SPI通信机制,通信效率较低。
在一个示例中,可以在主模块和从模块之间增加一条信号线(如ready或通用型输入输出(General-purpose input/output,GPIO)),当从模块有发送数据需求时,主动拉高该信号线(如ready或GPIO等),告知主模块从模块有向主模块发送数据的需求。主模块响应从模块的上述需求,拉低CS信号,发送SCLK,同时接收从模块通过SOMI信号线上传输的数据。采用这种方式,从模块在有向主模块发送数据的需求时,可以主动触发数据的发送,无需等待主模块轮询。但是:
由于SPI总线的SCLK只能由主模块产生,因此,在一个示例中,从模块需要将待发送给主模块的数据长度发送给主模块,以便于主模块基于该数据长度产生相应数量的SCLK发送给从模块,以配合从模块将数据发送给主模块。在又一个示例中,所述从模块可以向主模块发送传输结束信号,以使得所述主模块停止向从模块发送SCLK。但是,将前述数据长度发送给主模块,增加了数据传输量。而主模块和从模块之间可能存在跨时钟域,因此,从模块可以向主模块发送传输结束信号,可能很难及时的通知主模块停止发送SCLK。因此,采用上述方式,带来了传输时间的浪费(尤其是传输数据本身数据量较少时),影响通信性能。
为了解决上述问题,本申请实施例提供了一种基于SPI总线的通信方法。
下面结合附图,详细说明本申请的各种非限制性实施方式。
示例性方法
本申请实施例提供的基于SPI总线的通信方法,可以应用于下图所示的模块110和模块120,其中,模块110和模块120可以是某一芯片内部的两个模块。模块110和模块120还可以位于两个不同的芯片上。本申请实施例不做具体限定。
参见图2a,该图为本申请实施例提供的一个示例性应用场景示意图。在图2a所示的场景中,模块110和模块120位于两个不同的芯片上。模块110和模块120之间采用SPI总线进行通信。在本方案中,对SPI总线进行了改进,增加了中断接口和响应接口,其中,该中断接口的作用为:从模块请求切换为主模块。该响应接口的作用为:对从模块切换为主模块的确认响应。
参见图2b,该图为本申请实施例提供的又一个示例性应用场景示意图。在图2b所示的场景中,模块130和模块140位于同一芯片。模块130和模块140之间采用SPI总线进行通信。其中,模块130和模块140各自控制一套SPI总线,如图2b所示,模块130控制SPI总线200,模块140控制SPI总线300。其中,模块130控制SPI总线200,指的是该SPI总线200中除SOMI之外的各个接口传输的数据,由模块130产生;模块140控制SPI总线300,指的是该SPI总线300中除SOMI之外的各个接口传输的数据,由模块140产生。
在本方案中,对SPI总线进行了改进,为从模块(模块140)控制的SPI总线增加了中断接口,其中,该中断接口的作用为:从模块请求切换为主模块。为主模块(模块130)控制的SPI总线增加了响应接口,该响应接口的作用为:对从模块切换为主模块的确认响应。
接下来,结合图3,介绍本申请实施例提供的基于SPI总线的通信方法。
参见图3,该图为本申请实施例提供的一种基于SPI总线的通信方法的信令交互图。图1所示的方法,例如可以通过如下S101-S105实现。
S101:第一模块通过中断接口向第二模块传递第一信息,所述第一信息用于指示所述第一模块请求切换为主模块。
在执行图1所示的方法之前,第一模块作为从模块与作为主模块的第二模块利用SPI总线进行通信。在一个示例中,第一模块可以是图2a所示的模块120,第二模块可以是图2a所示的模块110。在又一个示例中,第一模块可以是图2b所示的模块140,第二模块可以是图2b所示的模块130。在一个示例中,所述第一模块可以是安全芯片中的安全模块,所述第二模块可以是安全芯片中的主控模块。
在本申请实施例中,第一模块可以在具备向第二模块发送数据的需求时,执行S101。在一个示例中,在执行S101之前,所述第一模块可以作为从模块,所述第二模块可以作为主模块,所述第一模块可以接收第二模块发送的明文,并对所述明文进行加密,得到密文。第一模块得到密文之后,则具备向第二模块发送所述密文的需求。其中,所述第一模块可以利用SPI总线的MOSI信号线和第一模块生成的时钟信号,接收第二模块发送的明文。
在一个示例中,所述第一模块和第二模块之间的中断接口,可以体现为一条中断信号线。在一个示例中,若所述中断信号线高电平有效,则“所述第一模块通过所述中断接口向所述第二模块传递第一信息”,在具体实现时,可以是:所述第一模块拉高所述中断接口对应的信号线。其中,中断接口对应的信号线,即为前述中断信号线。不难理解的是,若第一模块和第二模块位于两个不同的芯片上,则所述中断接口可以是图2a所示的中断接口。若第一模块和第二模块位于同一芯片上,则所述中断接口可以是图2b所示的中断接口。
S102:所述第二模块通过所述中断接口,获取所述第一信息。
在一个示例中,所述第二模块在前述中断信号线被拉高的情况下,则获取到了所述第一信息。即:第二模块确定中断信号线被拉高,则第二模块确定所述第一模块请求切换为主模块。
S103:所述第二模块通过所述响应接口,向所述第一模块传递第二信息,所述第二信息用于指示所述第一模块切换为主模块。
第二模块获得所述第一信息之后,可以对该第一信息进行响应。在本申请实施例中,第二模块可以通过所述响应接口,向所述第一模块传递第二信息,第二信息为第一信息的响应信息,第二信息可以用于指示所述第二模块确定所述第一模块切换为主模块。不难理解的是,若第一模块和第二模块位于两个不同的芯片上,则所述响应接口可以是图2a所示的中断接口。若第一模块和第二模块位于同一芯片上,则所述响应接口可以是图2b所示的中断接口。
不难理解的是,所述第二模块向第一模块传递第二信息之后,所述第二模块切换为从模块。
在一个示例中,所述第一模块和第二模块之间的响应接口,可以体现为一条响应信号线。在一个示例中,若所述响应信号线高电平有效,则“所述第二模块通过所述响应接口,向所述第一模块传递第二信息”,在具体实现时,可以是:所述第二模块拉高所述响应接口对应的信号线。其中,响应接口对应的信号线,即为前述响应信号线。
在一个示例中,考虑到第二模块可以对应多个从模块,第二模块获取到第一信息时,第二模块有可能作为主模块和其它从模块进行通信。为了避免多个从模块同时占用该SPI总线导致通信冲突,在一个示例中,所述第二模块可以在确定所述SPI总线空闲的情况下,拉高所述响应接口对应的信号线。
S104:所述第一模块通过所述响应接口,获取所述第二信息。
在一个示例中,所述第一模块在前述响应信号线被拉高的情况下,则获取到了所述第二信息。即:第一模块确定响应信号线被拉高,则第一模块确定自身请求切换为主模块的请求已经得到第二模块的认可。
S105:所述第一模块作为主模块向所述第二模块发送数据。
第一模块获取第二信息之后,可以切换为主模块。相应的,所述第一模块可以作为主模块向所述得人模块发送数据,此处提及的数据,可以是前文提及的对明文加密得到的密文。
S105在具体实现时,可以生成时钟信号,并通过所述SPI总线的MOSI信号线和所述时钟信号,向所述第二模块发送数据。其中,所述时钟信号通过SPI总线的SCLK信号线传输,所述数据通过所述SPI总线的MOSI信号线传输,所述时钟信号用于对所述数据进行采样。相应的,所述第二模块,可以通过所述SPI总线的MOSI信号线和所述第一模块生成的时钟信号,接收所述第一模块发送的数据。
在本申请实施例中,所述第一模块向第二模块发送数据时,可以首先发送SPI帧头信息,再发送所述数据。
通过以上描述可知,利用本方案,当作为从模块的第一模块有向作为主模块的第二模块发送数据的需求时,可以主动请求切换为主模块向第二模块发送数据,而不是等待第二模块轮询,从而提升了第二模块和第一模块之间的通信效率。
而且,采用本方案,第一模块无需向第二模块发送数据长度,第一模块也无需向第二模块发送传输结束信号,以使得所述第二模块停止向第一模块发送SCLK。从而无需增加数据传输量,也不会带来传输时间的浪费。
在一个示例中,在第一模块向第二模块发送数据的需求被满足之后,所述第一模块可以重新切换为从模块,相应的,所述的第二模块重新切换为主模块。从而在不影响原本作为主模块的第二模块和其它从模块的通信的前提下,满足第一模块主动向第二模块发送数据的需求。
对于这种情况,所述第一模块可以通过所述中断接口向所述第二模块传递第三信息,所述第三信息用于指示所述第一模块请求切换为从模块。其中,所述第一模块例如可以通过拉低所述中断信号线的方式,向所述第二模块传递第三信息。
相应的,所述第二模块在确定所述中断信号线被拉低,且自身当前以从模块工作时,通过所述响应接口,向所述第一模块传递第四信息,所述第四信息用于指示所述第一模块切换为从模块。其中,所述第二模块例如可以通过拉低所述响应信号线的方式,向所述第一模块传递第四信息。
通过以上描述可知:
若第一模块和第二模块位于不同的芯片上,若要应用本申请实施例的方法,第一模块和第二模块之间的SPI总线,包括:CS、SCLK、IRQ、ACK以及MOSI五根信号线(即:五线制SPI)即可。但是,考虑到对于原本作为主模块的第二模块而言,其可以和多个从模块通信。而对于其它从模块而言,其与第二模块可能采用传统的SPI总线通信方式进行通信。因此,在一个示例中,为了兼容已有的SPI通信方式,所述SPI总线还可以包括SOMI信号线。
若第一模块和第二模块位于同一芯片上,若要应用本申请实施例的方法,则第一模块控制的SPI总线,包括:CS、SCLK、IRQ、以及MOSI四根信号线即可,第二模块控制的SPI总线,包括:CS、SCLK、ACK、以及MOSI四根信号线即可。
在一个示例中:为了和现有的四线制SPI接口兼容,所述第一模块控制的SPI总线和第二模块控制的SPI总线,均还可以包括信号线SOMI。即:第一模块控制的SPI总线,包括:CS、SCLK、IRQ、MOSI以及SOMI五根信号线;第二模块控制的SPI总线,包括:CS、SCLK、ACK、MOSI以及SOMI五根信号线。
在又一个示例中,考虑到对于第二模块来讲,虽然在执行S101之前,其作为主模块,但是,在实际应用中,第二模块即可以被配置为主模块,又可以被配置为从模块,因此,为了使得第二模块在被配置为从模块时,也能执行以上由第一模块执行的步骤,因此,所述第一模块控制的SPI总线还可以包括ACK信号线,所述第二模块控制的SPI总线,还可以包括信号线IRQ信号线。对于这种情况,第一模块控制的SPI总线,包括:CS、SCLK、IRQ、ACK以及MOSI五根信号线,第二模块控制的SPI总线,包括:CS、SCLK、ACK、IRQ以及MOSI五根信号线。当然,第一模块和第二模块控制的SPI总线,也可以均包括CS、SCLK、IRQ、ACK、MOSI以及SOMI六根信号线。
示例性设备
基于以上实施例提供的方法,本申请实施例还提供了一种装置,以下结合附图介绍该装置。
参见图4,图4为本申请实施例提供的一种基于SPI总线的通信装置的结构示意图。图4所示的装置400,应用于第一模块,所述第一模块和第二模块之间利用SPI总线进行通信,所述SPI总线包括:中断接口和响应接口,所述装置400包括:
传递单元401,用于通过所述中断接口向所述第二模块传递第一信息,所述第一信息用于指示所述第一模块请求切换为主模块;
获取单元402,用于通过所述响应接口,获取所述第二模块传递的第二信息,所述第二信息用于指示所述第一模块切换为主模块;
发送单元403,用于作为主模块向所述第二模块发送数据。
可选的,所述传递单元401,用于:
拉高所述中断接口对应的信号线。
可选的,所述获取单元402,用于:
确定所述响应接口对应的信号线被拉高。
可选的,所述发送单元403,用于:
生成时钟信号,并通过所述SPI总线的主出从入MOSI信号线和所述时钟信号,向所述第二模块发送数据。
可选的,所述装置还包括:
接收单元,用于在通过所述中断接口向所述第二模块传递第一信息之前,作为从模块接收所述第二模块发送的明文,并对所述明文进行加密,得到密文;
所述发送单元403,用于:
所述第一模块作为主模块向所述第二模块发送所述密文。
可选的,
所述传递单元401,还用于在作为主模块向所述第二模块发送数据之后,通过所述中断接口向所述第二模块传递第三信息,所述第三信息用于指示所述第一模块请求切换为从模块;
所述获取单元402,还用于通过所述响应接口获取第四信息,所述第四信息用于指示所述第一模块切换为从模块。
可选的,所述第一模块通过所述中断接口向所述第二模块传递第三信息,包括:
所述第一模块拉低所述中断接口对应的信号线。
可选的,所述第一模块为安全芯片的安全模块,所述第二模块为所述安全芯片的主控模块。
参见图5,图5为本申请实施例提供的一种又基于SPI总线的通信装置的结构示意图。图5所示的装置500应用于第二模块,所述第二模块和第一模块之间利用SPI总线进行通信,所述SPI总线包括:中断接口和响应接口,所述装置500包括:
获取单元501,用于通过所述中断接口,获取所述第一模块传递的第一信息,所述第一信息用于指示所述第一模块请求切换为主模块;
传递单元502,用于通过所述响应接口,向所述第一模块传递第二信息,所述第二信息用于指示所述第一模块切换为主模块;
接收单元503,用于作为从模块接收所述第一模块发送的数据。
可选的,所述获取单元501,用于:
确定所述中断接口对应的信号线被拉高。
可选的,所述传递单元502,用于:
拉高所述响应接口对应的信号线。
可选的,所述传递单元502,用于:
在确定所述SPI总线空闲的情况下,拉高所述响应接口对应的信号线。
可选的,所述接收单元503,用于:
通过所述SPI总线的主出从入MOSI信号线和所述第一模块生成的时钟信号,接收所述第一模块发送的数据。
可选的,所述装置还包括:
发送单元,用于在通过所述中断接口,获取所述第一模块传递的第一信息之前,作为主模块向所述第一模块发送明文;
所述接收单元503,用于:
作为从模块,接收所述第一模块对所述明文进行加密而得到的密文。
可选的,
所述获取单元501,还用于在作为从模块接收所述第一模块发送的数据之后,通过所述中断接口,获取第三信息,所述第三信息用于指示所述第一模块请求切换为从模块;
所述传递单元502,还用于通过所述响应接口向所述第一模块传递第四信息,所述第四信息用于指示所述第一模块切换为从模块。
可选的,所述第二模块通过所述响应接口,向所述第一模块传递第四信息,包括:
所述第二模块拉低所述响应接口对应的信号线。
可选的,所述第一模块为安全芯片的安全模块,所述第二模块为所述安全芯片的主控模块。
由于所述装置400和500是与以上方法实施例提供的方法对应的装置,所述装置400和500的各个单元的具体实现,均与以上方法实施例为同一构思,因此,关于所述装置400和500的各个单元的具体实现,可以参考以上方法实施例的描述部分,此处不再赘述。
本申请实施例还提供了一种设备,所述设备包括:处理器、存储器、***总线;所述处理器以及所述存储器通过所述***总线相连;所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行以上方法实施例提供的由第一模块执行的方法。
本申请实施例还提供了一种设备,所述设备包括:处理器、存储器、***总线;所述处理器以及所述存储器通过所述***总线相连;所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行以上方法实施例提供的由第二模块执行的方法。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行以上方法实施例提供的由第一模块执行的方法。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行以上方法实施例提供的由第二模块执行的方法。
本申请实施例还提供了一种计算机程序产品,所述计算机程序产品在终端设备上运行时,使得所述终端设备执行以上方法实施例提供的由第一模块执行的方法。
本申请实施例还提供了一种计算机程序产品,所述计算机程序产品在终端设备上运行时,使得所述终端设备执行以上方法实施例提供的由第二模块执行的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (21)

1.一种基于串行外设接口SPI总线的通信方法,其特征在于,由第一模块执行,所述第一模块和第二模块之间利用SPI总线进行通信,所述SPI总线包括:中断接口和响应接口,所述方法包括:
所述第一模块通过所述中断接口向所述第二模块传递第一信息,所述第一信息用于指示所述第一模块请求切换为主模块;
所述第一模块通过所述响应接口,获取所述第二模块传递的第二信息,所述第二信息用于指示所述第一模块切换为主模块;
所述第一模块作为主模块向所述第二模块发送数据。
2.根据权利要求1所述的方法,其特征在于,所述第一模块通过所述中断接口向所述第二模块传递第一信息,包括:
所述第一模块拉高所述中断接口对应的信号线。
3.根据权利要求1所述的方法,其特征在于,所述第一模块通过所述响应接口,获取所述第二模块传递的第二信息,包括:
所述第一模块确定所述响应接口对应的信号线被拉高。
4.根据权利要求1所述的方法,其特征在于,所述第一模块作为主模块向所述第二模块发送数据,包括:
所述第一模块生成时钟信号,并通过所述SPI总线的主出从入MOSI信号线和所述时钟信号,向所述第二模块发送数据。
5.根据权利要求1所述的方法,其特征在于,在所述第一模块通过所述中断接口向所述第二模块传递第一信息之前,所述方法还包括:
所述第一模块作为从模块接收所述第二模块发送的明文,并对所述明文进行加密,得到密文;
所述第一模块作为主模块向所述第二模块发送数据,包括:
所述第一模块作为主模块向所述第二模块发送所述密文。
6.根据权利要求1所述的方法,其特征在于,在所述第一模块作为主模块向所述第二模块发送数据之后,所述方法还包括:
所述第一模块通过所述中断接口向所述第二模块传递第三信息,所述第三信息用于指示所述第一模块请求切换为从模块;
所述第一模块通过所述响应接口获取第四信息,所述第四信息用于指示所述第一模块切换为从模块。
7.根据权利要求6所述的方法,其特征在于,所述第一模块通过所述中断接口向所述第二模块传递第三信息,包括:
所述第一模块拉低所述中断接口对应的信号线。
8.根据权利要求1所述的方法,其特征在于,所述第一模块为安全芯片的安全模块,所述第二模块为所述安全芯片的主控模块。
9.一种基于串行外设接口SPI总线的通信方法,其特征在于,由第二模块执行,所述第二模块和第一模块之间利用SPI总线进行通信,所述SPI总线包括:中断接口和响应接口,所述方法包括:
所述第二模块通过所述中断接口,获取所述第一模块传递的第一信息,所述第一信息用于指示所述第一模块请求切换为主模块;
所述第二模块通过所述响应接口,向所述第一模块传递第二信息,所述第二信息用于指示所述第一模块切换为主模块;
所述第二模块作为从模块接收所述第一模块发送的数据。
10.根据权利要求9所述的方法,其特征在于,所述第二模块通过所述中断接口,获取所述第一模块传递的第一信息,包括:
所述第二模块确定所述中断接口对应的信号线被拉高。
11.根据权利要求9所述的方法,其特征在于,所述第二模块通过所述响应接口,向所述第一模块传递第二信息,包括:
所述第二模块拉高所述响应接口对应的信号线。
12.根据权利要求9所述的方法,其特征在于,所述第二模块拉高所述响应接口对应的信号线,包括:
所述第二模块在确定所述SPI总线空闲的情况下,拉高所述响应接口对应的信号线。
13.根据权利要求9所述的方法,其特征在于,所述第二模块作为从模块接收所述第一模块发送的数据,包括:
所述第二模块通过所述SPI总线的主出从入MOSI信号线和所述第一模块生成的时钟信号,接收所述第一模块发送的数据。
14.根据权利要求9所述的方法,其特征在于,所述第二模块通过所述中断接口,获取所述第一模块传递的第一信息之前,所述方法还包括:
所述第二模块作为主模块向所述第一模块发送明文;
所述第二模块作为从模块接收所述第一模块发送的数据,包括:
所述第二模块作为从模块,接收所述第一模块对所述明文进行加密而得到的密文。
15.根据权利要求9所述的方法,其特征在于,所述第二模块作为从模块接收所述第一模块发送的数据之后,所述方法还包括:
所述第二模块通过所述中断接口,获取第三信息,所述第三信息用于指示所述第一模块请求切换为从模块;
所述第二模块通过所述响应接口向所述第一模块传递第四信息,所述第四信息用于指示所述第一模块切换为从模块。
16.根据权利要求15所述的方法,其特征在于,所述第二模块通过所述响应接口,向所述第一模块传递第四信息,包括:
所述第二模块拉低所述响应接口对应的信号线。
17.根据权利要求9所述的方法,其特征在于,所述第一模块为安全芯片的安全模块,所述第二模块为所述安全芯片的主控模块。
18.一种基于串行外设接口SPI总线的通信装置,其特征在于,应用于第一模块,所述第一模块和第二模块之间利用SPI总线进行通信,所述SPI总线包括:中断接口和响应接口,所述装置包括:
传递单元,用于通过所述中断接口向所述第二模块传递第一信息,所述第一信息用于指示所述第一模块请求切换为主模块;
获取单元,用于通过所述响应接口,获取所述第二模块传递的第二信息,所述第二信息用于指示所述第一模块切换为主模块;
发送单元,用于作为主模块向所述第二模块发送数据。
19.一种基于串行外设接口SPI总线的通信装置,其特征在于,应用于第二模块,所述第二模块和第一模块之间利用SPI总线进行通信,所述SPI总线包括:中断接口和响应接口,所述装置包括:
获取单元,用于通过所述中断接口,获取所述第一模块传递的第一信息,所述第一信息用于指示所述第一模块请求切换为主模块;
传递单元,用于通过所述响应接口,向所述第一模块传递第二信息,所述第二信息用于指示所述第一模块切换为主模块;
接收单元,用于作为从模块接收所述第一模块发送的数据。
20.一种设备,其特征在于,所述设备包括:处理器、存储器、***总线;所述处理器以及所述存储器通过所述***总线相连;所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行权利要求1至17任一项所述的方法。
21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行权利要求1至17任一项所述的方法。
CN202111602115.4A 2021-12-24 2021-12-24 一种基于spi总线的通信方法及装置 Pending CN116383116A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111602115.4A CN116383116A (zh) 2021-12-24 2021-12-24 一种基于spi总线的通信方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111602115.4A CN116383116A (zh) 2021-12-24 2021-12-24 一种基于spi总线的通信方法及装置

Publications (1)

Publication Number Publication Date
CN116383116A true CN116383116A (zh) 2023-07-04

Family

ID=86971774

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111602115.4A Pending CN116383116A (zh) 2021-12-24 2021-12-24 一种基于spi总线的通信方法及装置

Country Status (1)

Country Link
CN (1) CN116383116A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117520252A (zh) * 2024-01-08 2024-02-06 芯瞳半导体技术(山东)有限公司 一种通信控制方法、***级芯片、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117520252A (zh) * 2024-01-08 2024-02-06 芯瞳半导体技术(山东)有限公司 一种通信控制方法、***级芯片、电子设备及存储介质
CN117520252B (zh) * 2024-01-08 2024-04-16 芯瞳半导体技术(山东)有限公司 一种通信控制方法、***级芯片、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN102819512B (zh) 一种基于spi的全双工通信装置及其方法
US9875206B2 (en) Methods and devices for extending USB 3.0-compliant communication
US10261930B2 (en) System, device and method for transmitting signals between different communication interfaces
CN111149097B (zh) 一种主芯片、从芯片及芯片间的dma传输***
CN113220610B (zh) 通信***和spi接口的通信方法及装置
CN112269749B (zh) I2c通信***
CN110955625A (zh) 一种基于spi的全双工实时通信的方法及装置
CN104461978B (zh) 单向数据传输的方法及装置
CN116383116A (zh) 一种基于spi总线的通信方法及装置
CN115357535A (zh) 一种虚拟串口设计方法及装置
US20090216925A1 (en) Pseudo-full duplex communication using a half duplex communication protocol
CN112565036B (zh) 数据传输方法、装置、存储介质及通信***
JP4210993B2 (ja) Usbハブ装置、usb周辺装置及びデータ送受信方法
CN116541329A (zh) 一种数据传输方法、装置、设备及介质
CN103885910A (zh) 多设备在主模式下进行iic通信的方法及***
US9619005B2 (en) Apparatus and method for saving power of USB device
CN111984576B (zh) 数据通信***以及方法
CN109992560B (zh) 一种通信方法及通信***
CN100464511C (zh) 一种以太网通信***及方法
CN105718400A (zh) 基于spi的通信方法
CN114124821B (zh) 一种芯片内模块间数据传输方法、装置、设备及存储介质
CN213276637U (zh) 超时计数电路、装置及通信总线***
CN116594951B (zh) 一种基于fpga的数据传输***及方法
JPH0583297A (ja) パケツト転送方式
CN112506842A (zh) 一种基于spi通讯接口的通信装置及其通信方法

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