CN114880270A - Spi设备及其数据传输方法 - Google Patents
Spi设备及其数据传输方法 Download PDFInfo
- Publication number
- CN114880270A CN114880270A CN202210623511.3A CN202210623511A CN114880270A CN 114880270 A CN114880270 A CN 114880270A CN 202210623511 A CN202210623511 A CN 202210623511A CN 114880270 A CN114880270 A CN 114880270A
- Authority
- CN
- China
- Prior art keywords
- data
- spi
- shift register
- mode
- output
- 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
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 82
- 238000000034 method Methods 0.000 title claims abstract description 31
- 239000000872 buffer Substances 0.000 claims description 49
- 238000004891 communication Methods 0.000 claims description 13
- 230000003139 buffering effect Effects 0.000 claims description 4
- 230000002093 peripheral effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 21
- 230000007704 transition Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
Abstract
一种SPI设备及其数据传输方法,所述SPI设备包括:数据输出端和数据输入端,所述方法包括:当处于SPI普通模式时,通过所述数据输出端输出数据,并通过所述数据输入端接收数据;当处于SPI高速模式时,一并通过所述数据输出端和数据输入端输出数据,或者一并通过所述数据输出端和数据输入端接收数据。采用上述方案,可以提高SPI设备的数据传输速率。
Description
技术领域
本发明涉及数据传输技术领域,尤其涉及一种SPI设备及其数据传输方法。
背景技术
串行外设接口(Serial Peripheral Interface,SPI)是一种同步串行接口技术,也是一种高速的、全双工以及同步的通信总线。因其使用方便、易于连接和引脚较少等特点,SPI技术广泛应用于嵌入式系统中。在实际使用中,由于SPI是一种串行接口技术,SPI的数据传输速率受限于时钟频率,因此现有的SPI设备的数据传输速率仍然有待提高。
发明内容
本发明解决的技术问题是如何提高SPI设备的数据传输速率。
为解决上述技术问题,本发明实施例提供一种SPI设备的数据传输方法,所述SPI设备包括:数据输出端和数据输入端,所述方法包括:当处于SPI普通模式时,通过所述数据输出端输出数据,并通过所述数据输入端接收数据;当处于SPI高速模式时,一并通过所述数据输出端和数据输入端输出数据,或者一并通过所述数据输出端和数据输入端接收数据。
可选的,所述SPI设备还包括:第一移位寄存器,所述第一移位寄存器与所述数据输出端连接,用于所述数据输出端的数据收发;第二移位寄存器,所述第二移位寄存器与所述数据输入端连接,用于所述数据输入端的数据收发。
可选的,所述SPI设备还包括:缓存器,一并通过所述数据输出端和数据输入端输出数据之前,所述方法还包括:从所述缓存器读取M个待输出数据,其中,M为移位寄存器的数量,M≥2且M为正整数,所述移位寄存器包括:所述第一移位寄存器和所述第二移位寄存器;将所述M个待输出数据写入所述移位寄存器中,其中,每个移位寄存器中存放单个待输出数据。
可选的,所述SPI设备还包括:缓存器,一并通过所述数据输出端和数据输入端接收数据之后,所述方法还包括:从移位寄存器中读取M个已接收数据,其中,每个移位寄存器中存放单个已接收数据,M为所述移位寄存器的数量,M≥2且M为正整数,所述移位寄存器包括:所述第一移位寄存器和所述第二移位寄存器;将所述M个已接收数据写入所述缓存器中。
可选的,所述SPI设备为从设备,所述方法还包括:从主设备接收模式切换指令,所述模式切换指令用于指示从当前模式切换至目标模式;当再次检测到片选信号被使能时,切换至所述目标模式。
可选的,所述SPI设备为主设备,所述方法还包括:向从设备发送模式切换指令,所述模式切换指令用于指示从当前模式切换至目标模式;当再次使能所述从设备的片选信号时,切换至所述目标模式。
可选的,所述模式切换指令为预设控制字,所述预设控制字是通过所述数据输出端或所述数据输入端传输的。
可选的,所述主设备和从设备之间配置有不同于SPI的通信协议,所述模式切换指令为通过所述通信协议传输的数据包。
本发明实施例还提供一种SPI设备,所述SPI设备包括:数据输出端;数据输入端;控制器,在SPI普通模式下,控制所述数据输出端输出数据,并控制所述数据输入端接收数据,在SPI高速模式下,控制所述数据输出端和数据输入端一并输出数据,或者控制所述数据输出端和数据输入端一并输入数据。
可选的,还包括:第一移位寄存器,所述第一移位寄存器与所述数据输出端连接,用于所述数据输出端的数据收发;第二移位寄存器,所述第二移位寄存器与所述数据输入端连接,用于所述数据输入端的数据收发。
可选的,还包括:缓存器,所述缓存器与移位寄存器连接,所述移位寄存器包括:所述第一移位寄存器和所述第二移位寄存器;所述缓存器用于缓存M个待输出数据或M个已接收数据,其中,M为所述移位寄存器的数量,M≥2且M为正整数。
本发明实施例还提供一种芯片,所述芯片可以包括上述的SPI设备。
本发明实施例还提供一种芯片模组,所述芯片模组可以包括上述的SPI设备。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
在本发明实施例的方案中,SPI设备可以具有SPI普通模式(下文简称普通模式)和SPI高速模式(下文简称高速模式)。当处于普通模式时,SPI设备通过数据输出端输出数据并通过数据输入端接收数据。当处于高速模式时,SPI设备一并通过数据输出端和数据输入端输出数据,或者一并通过数据输出端和数据输入端接收数据。由于在高速模式下同时通过数据输出端和数据输入端同方向地传输数据,因此能够提高SPI设备单向传输数据的速率,从而可以明显提升启动下载等单向数据传输场景中SPI的通信效率。
附图说明
图1是现有技术中一种SPI设备进行数据传输时的示意图;
图2是本发明实施例中一种SPI设备在普通模式下数据流向的示意图;
图3是本发明实施例中一种SPI设备在普通模式下数据传输的时序示意图;
图4是本发明实施例中一种SPI设备在高速发送模式下数据流向的示意图;
图5是本发明实施例中一种SPI设备在高速发送模式下数据传输的时序示意图;
图6是本发明实施例中一种SPI设备在高速接收模式下数据流向的示意图;
图7是本发明实施例中一种模式切换的时序示意图;
图8是本发明实施例中另一种模式切换的时序示意图;
图9是本发明实施例中又一种模式切换的时序示意图。
具体实施方式
如背景技术所述,现有的SPI设备的数据传输速率仍然有待提高。
SPI结构以主从方式工作,通常包括一个主设备(Master)和至少一个从设备(Slave)。参照图1,图1是现有技术中一种SPI设备进行数据传输时的示意图。下面结合图1对现有的SPI设备及其数据传输方法进行描述。
如图1所示,主设备和从设备之间具有4线串行总线,分别为:串行时钟(SerialClock,SCK)信号线、片选(Slave Selection,CS)信号线、数据输出线和数据输入线。
其中,串行时钟信号线可以用于传输时钟信号,时钟信号由主设备产生并提供给从设备,以实现时钟同步,从设备自身并不产生时钟信号。
进一步地,片选信号线可以用于传输片选信号,片选信号也由主设备产生,片选信号和从设备一一对应,主设备可通过使能片选信号来选通从设备。
进一步地,数据输出线可以连接主设备的主输出从输入(master output/slaveinput,MOSI)引脚和从设备的MOSI引脚,数据输入线可以连接主设备的主输入从输出(master input/slave output,MISO)引脚和从设备的MISO引脚。
现有技术中,数据输出线可以用于主设备向从设备发送数据,数据输入线可以用于主设备从从设备接收数据。
其中,数据输出线和数据输入线均为单向数据线。也即,数据输出线仅用于从主设备向从设备传输数据,数据输入线仅用于从从设备向主设备传输数据。在数据传输过程中,可以同时通过数据输出线从主设备向从设备传输数据以及通过数据输入线从从设备向主设备传输数据,由此实现全双工通信。
然而一些实际使用场景中,主从设备之间仅需单向地传输数据。例如,从设备从主设备下载固件等。由于数据输出线和数据输入线均为单向数据线,换言之,在单个传输方向上只能通过1个引脚来传输数据,数据传输速率最大只能达到SCK时钟频率。现有技术中通过提高时钟频率来提高SPI设备的传输速率。然而SPI的时钟信号的频率并不会无限制的提高,一方面会带来功耗的增加,另一方面也会影响传输的稳定性。因此,如何在不改变时钟频率的前提下,提高SPI设备的数据传输速率是本发明实施例所要解决的问题。
为了解决上述技术问题,本发明实施例提供一种SPI设备的数据传输方法,在本发明实施例的方案中,SPI设备可以具有普通模式和高速模式。当处于普通模式时,SPI设备通过数据输出端输出数据并通过数据输入端接收数据。当处于高速模式时,SPI设备一并通过数据输出端和数据输入端输出数据,或者一并通过数据输出端和数据输入端接收数据。由于在高速模式下同时通过数据输出端和数据输入端同方向地传输数据,因此能够提高SPI设备单向传输数据的速率,从而可以明显提升启动下载等单向数据传输场景中SPI的通信效率。
其中,上述的SPI设备可以是指主设备,也可以是指从设备。主设备可以是控制设备,例如可以是微控制器,从设备可以是传感器、显示器或存储器等,并并不限于此。
进一步地,数据输出端和数据输入端可以是SPI设备用于进行数据传输的引脚,且数据输出端不同于数据输入端。换言之,数据输出端和数据输入端为两个不同的引脚。
若SPI设备为主设备,则数据输出端可以是指MOSI引脚,数据输入端可以是指MISO引脚。若SPI设备为从设备,数据输出端可以是指MISO引脚,数据输入端可以是指MOSI引脚。
在本发明实施例的方案中,SPI设备可以包括:控制器、缓存器和移位寄存器。
其中,控制器可以用于在普通模式下控制数据输出端输出数据,并控制数据输入端接收数据;还可以用于在高速模式下控制数据输出端和数据输入端一并输出数据,或者控制数据输出端和数据输入端一并输入数据。
进一步地,缓存器可以用于缓存待输出数据和/或已接收数据。当SPI设备为接收端,缓存器可以用于缓存已接收数据,当SPI设备为发送端,缓存器可以用于缓存待输出数据。
进一步,移位寄存器可以用于寄存待输出数据和/或已接收数据,并在时钟信号的作用下使其中的数据依次逐位左移或右移。
在本发明实施例的方案中,移位寄存器的数量可以为M个,M≥2且M为正整数。具体而言,SPI设备的移位寄存器可以包括第一移位寄存器和第二移位寄存器。其中,第一移位寄存器和数据输出端连接,第二移位寄存器和数据输入端连接。下文将以M=2为例进行非限制性的描述。
为便于描述,下文将主设备的控制器、缓存器和移位寄存器分别记为主控制器、主缓存器和主移位寄存器,以及将从设备的控制器、缓存器和移位寄存器分别记为从控制器、从缓存器和从移位寄存器。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
参照图2,图2是本发明实施例中一种SPI设备在普通模式下的数据流向示意图。参照图3,图3是本发明实施例中一种SPI设备在普通模式下数据传输的时序示意图。
如图2所示,主控制器和从控制器之间连接有时钟信号线和片选信号线。
一方面,主控制器可以产生时钟信号,并通过时钟信号线将时钟信号传输至从控制器,以实现时钟同步。
另一方面,主控制器可以控制片选信号,其中,片选信号的状态可以包括:有效状态和非有效状态。例如,当片选信号为低电平时,片选信号处于有效状态,接收到处于有效状态的片选信号的从设备被选通;当片选信号为高电平时,片选信号处于非有效状态,接收到处于非有效状态的片选信号的从设备则未被选通。
在具体实施中,主控制器可以使能片选信号,以选通从设备。使能片选信号可以是指将片选信号从非有效状态变为有效状态。
需要说明的是,在其他实施例中,当片选信号为高电平时,片选信号处于有效状态,当片选信号为低电平时,片选信号处于非有效状态,本实施例对此并不进行限制。
进一步地,主设备和从设备之间还具有数据输出线和数据输入线,其中,数据输出线和数据输入线均为双向数据线。所述双向数据线是指可以双向通信的数据线。数据输出线还可以称为MOSI线,数据输入线还可以称为MISO线。
相应的,SPI设备可以包括:数据输出端和数据输入端。具体而言,主设备的数据输出端可以为主设备的MOSI引脚,主设备的数据输入端可以为主设备的MISO引脚。从设备的数据输出端为从设备的MISO引脚,从设备的数据输入端为从设备的MOSI引脚。
也即,MOSI线连接主设备的MOSI引脚和从设备的MOSI引脚,MISO线连接设备的MISO引脚和从设备的MISO引脚。
进一步地,主设备可以包括第一主移位寄存器和第二主移位寄存器,其中,第一主移位寄存器和主设备的MOSI引脚连接,第二主移位寄存器和主设备的MISO引脚连接。
相应的,从设备可以包括:第一从移位寄存器和第二从移位寄存器,其中,第一从移位寄存器和从设备的MISO引脚连接,第二从移位寄存器和从设备的MOSI引脚连接。
进一步地,缓存器和移位寄存器连接,缓存器可以用于缓存待输出数据和/或已接收数据。在具体实施中,缓存器可以包括第一缓存单元和第二缓存单元,其中,第一缓存单元可以用于缓存待输出数据,第二缓存单元可以用于缓存已接收数据。
具体而言,主缓存器可以分别和第一主移位寄存器、第二主移位寄存器连接,从缓存器可以分别和第一从移位寄存器、第二从高移位寄存器连接。
在普通模式下,当从设备的片选信号处于有效状态时,在同一个跳变沿下,主设备的MOSI引脚输出1比特(bit)的数据,以及主设备的MISO引脚接收1比特的数据。其中,跳变沿为时钟信号的上升沿或者下降沿。相应的,从设备的MOSI引脚接收1比特的数据以及从设备的MISO引脚输出1比特的数据。
更具体地,主控制器控制第一主移位寄存器在时钟信号的作用下将其中寄存的待输出数据按比特逐位地移动至主设备的MOSI引脚。相应的,从控制器可以控制将从设备的MOSI引脚接收到的数据逐位地移入第二从移位寄存器。同时,从控制器控制将第一从移位寄存器中待输出数据逐位地移动至从设备的MISO引脚。相应的,主控制器还可以控制将主设备的MISO引脚接收到的数据逐位地移入第二主移位寄存器。
当第一主移位寄存器中的数据发送完成时,主控制器可以从主缓存器中读取下一个待输出数据,并将该待输出数据写入第一主移位寄存器中。当第二主移位寄存器数据接收完成时,可以从第二主移位寄存器中读取已接收数据,并将该已接收数据保存至主缓存器中。
相应的,当第一从移位寄存器中的数据发送完成时,从控制器可以从从缓存器中读取下一个待输出数据,并将该待输出数据写入第一从移位寄存中。当第二从移位寄存器数据接收完成时,可以从第二从移位寄存器中读取已接收数据,并将该已接收数据保存至从缓存器中。
如图3所示,当片选信号处于有效状态时,主设备通过MOSI引脚向从设备发送N个字节(BYTE)的数据,同时从设备也通过MISO引脚向主设备发送N个字节的数据。其中,N为正整数。
需要说明的是,图3仅以单个传输周期传输1个字节(也即,8个比特)的数据为例。其中,单个传输周期是指:单次对自缓存器中读取的数据进行传输的周期。换言之,单个传输周期传输的数据的位数即为单次自缓存器中读取的数据的位数。以图3为例,在第一个传输周期内,主设备向从设备发送BYTE0,从设备向主设备发送BYTE0。当主设备需要向从设备发送N个字节的数据时,需要N个传输周期。在实际使用中可以根据实际情况对单个传输周期传输的数据的位数进行设置,本实施例对此并不进行限制。
由此,在普通模式下,主设备的MOSI引脚发送数据给从设备的MOSI引脚,主设备的MISO引脚接收从设备的MISO引脚发过来的数据。
进一步地,SPI设备还具有高速模式。在本发明实施例的方案中,高速模式可以包括高速发送模式和高速接收模式。
参照图4,图4是本发明实施例中一种SPI设备在高速发送模式下数据流向的示意图。下面就高速发送模式和普通模式的不同之处进行非限制性的说明。
在高速发送模式下,当片选信号处于有效状态时,在同一个跳变沿下,主控制器控制SPI主设备的MOSI引脚输出1比特的数据,以及主设备的MISO引脚输出1比特的数据。也即,主控制器控制MOSI引脚和MISO引脚一并输出数据。
相应的,在高速发送模式下,当片选信号处于有效状态时,在同一个跳变沿下,从控制器控制从设备的MOSI引脚接收1比特的数据,以及控制从设备的MISO引脚接收1比特的数据。也即,从控制器控制从设备的MOSI引脚和MISO引脚一并接收数据。
具体而言,主控制器可以控制将第一主移位寄存器中待输出数据按比特逐位地移动至主设备的MOSI引脚,以及控制将第二主移位寄存器中待输出数据按比特逐位地移动至主设备的MISO引脚。
相应的,从控制器可以控制将从设备的MOSI引脚接收到的数据按比特逐位地移入第二从移位寄存器中,以及将从设备的MISO引脚接收到的数据按比特逐位地移入第一从移位寄存器中。
其中,每个主移位寄存器中寄存单个待输出数据,每个从移位寄存器寄存单个已接收数据。
一方面,当第一主移位寄存器和第二主移位寄存器中待输出数据发送完成时,主控制器可以从主缓存器中读取第一待输出数据和第二待输出数据,并将第一待输出数据写入第一主移位寄存器,将第二待输出数据写入第二主移位寄存器中。然后继续一并通过MOSI引脚和MISO引脚输出移位寄存器中的数据。在具体实施中,可以按照预先定义的顺序从缓存器中读取第一待输出数据和第二待输出数据。例如,可以先读取第一待输出数据,再读取第二待输出数据。
另一方面,当第一从移位寄存器和第二从移位寄存器数据接收完成时,从控制器可以从第二从移位寄存器读取第一已接收数据,以及从第一从移位寄存器中读取第二已接收数据,并将第一已接收数据和第二已接收数据保存至从缓存器中。在具体实施中,可以将第一已接收数据和第二已接收数据按照预先定义的顺序进行保存。例如,可以先将第一已接收数据写入缓存器,再在第一已接收数据之后继续写入第二已接收数据。
参照图5,图5是本发明实施例中一种SPI设备在高速模式下数据传输的时序示意图。图5可以是高速发送模式下数据传输的时序示意图,也可以是高速接收模式下数据传输的时序示意图。
如图5所示,当片选信号处于有效状态时,SPI设备通过MOSI引脚和MISO引脚并发地、同步地以及同向地传输N个字节的数据。下面以高速发送模式为例,对图5进行非限制性的描述。
在高速发送模式下,在单个传输周期内主设备发送两个字节的数据。例如,在第1个传输周期内发送了BYTE0和BYTE1,在第二个传输周期内发送了BYTE2和BYTE3……以及在第N/2个传输周期内发送了BYTE N-2和BYTE N-1。由此,在高速模式下,可以将数据传输的速率提高至现有技术的2倍。
更具体地,在数据传输前,对于在同一传输周期内传输的数据(例如,BYTE0和BYTE1),可以按照预先定义的顺序从主缓存器中读取出来并分别写入主移位寄存器中,发送完成后,从控制器可以按照预先定义的顺序从从移位寄存器中读取出来并保存至从缓存器中。
需要说明的是,图5示出的时序图以单个传输周期内每个引脚传输1字节的数据为例,在实际使用中可以根据实际情况对单个传输周期内每个引脚传输的数据的位数进行设置,本实施例对此并不进行限制。
参照图6,图6是本发明实施例中一种SPI设备在高速接收模式下的数据流向的示意图。下面就高速接收模式和高速发送模式的不同之处进行说明。
在高速接收模式下,当片选信号处于有效状态时,在同一个跳变沿下,从控制器控制从设备的MISO引脚发送1比特的数据,以及控制从设备的MOSI引脚发送1比特的数据。也即,从控制器控制从设备的MISO引脚和MOSI引脚一并发送数据。
相应的,在高速接收模式下,当片选信号处于有效状态时,在同一个跳变沿下,主控制器控制主设备的MOSI引脚接收1比特的数据,以及控制主设备的MISO引脚接收1比特的数据。也即,主控制器控制通过主设备的MOSI引脚和MISO引脚一并接收数据。
具体而言,从控制器可以控制将第一从移位寄存器中待输出数据按比特逐位地移动至从设备的MISO引脚,以及控制将第二从移位寄存器中待输出数据逐位地移动至从设备的MOSI引脚。
相应的,主控制器可以控制将主设备的MOSI引脚接收到的数据逐位地移入第一主移位寄存器中,以及将主设备的MISO引脚接收到的数据逐位地移入第二主移位寄存器中。
其中,每个从移位寄存器中寄存单个待输出数据,每个主移位寄存器寄存单个已接收数据。
一方面,当第一从移位寄存器和第二从移位寄存器中待输出数据发送完成时,从控制器可以从从缓存器中读取第一待输出数据和第二待输出数据,并将第一待输出数据写入第二从移位寄存器,将第二待输出数据写入第一从移位寄存器中。
另一方面,当第一主移位寄存器和第二主移位寄存器数据接收完成时,主控制器可以从第一主移位寄存器读取第一已接收数据以及从第二主移位寄存器中读取第二已接收数据,并将第一已接收数据和第二已接收数据保存至主缓存器中。
关于高速接收模式的更多内容可以参照上文关于高速发送模式的相关描述,在此不再赘述。
由上,在M=2的情况下,本发明实施例在现有的SPI设备的基础上仅需增加1个移位寄存器,可以在保证引脚数量不变以及时钟频率不变的情况下,提高SPI设备单向传输数据的效率,满足实际应用场景的需求。
需要说明的是,在本发明的其他实施例中,第一移位寄存器和第二移位寄存器可以是不同的移位寄存器,也可以是同一移位寄存器的不同存储单元。
还需要说明的是,在本发明的其他实施例中,SPI设备还可以包括一个或多个扩展引脚。具体而言,在高速模式下,扩展引脚可以用于和MOSI引脚、MISO引脚同向地传输数据。在普通模式下,扩展引脚可以不参与数据的传输。换言之,当处于SPI普通模式下,通过数据输出端输出数据并通过数据输入端接收数据;当处于SPI高速模式下,一并通过数据输出端、数据输入端和扩展引脚输出数据,或者一并通过所述数据输出端、数据输入端和扩展引脚接收数据。
相应的,SPI设备还可以包括:扩展移位寄存器,所述扩展移位寄存器和扩展引脚一一对应,每个扩展移位寄存器可以用于寄存对应的扩展引脚的待输出的数据或已接收的数据。采用上述方案,能够进一步提高高速模式下的数据传输速率。
进一步地,本发明实施例的方案中,SPI设备的控制器还可以用于切换SPI设备的模式。
在具体实施中,在片选信号处于有效状态时,主设备可以向从设备发送模式切换指令,模式切换指令可以用于指示从当前模式切换至目标模式。当前模式和目标模式可以为以下任意一种模式:普通模式、高速发送模式和高速接收模式。模式切换指令可以包括模式信息,所述模式信息可以用于唯一标识目标模式。
进一步地,当主设备的控制器再次使能该从设备的片选信号时,主设备切换至目标模式。相应的,当从设备的控制器再次检测到片选信号被使能时,从设备切换至目标模式。
在本发明的一个实施例中,当SPI设备处于普通模式时,主设备向从设备发送模式切换指令,所述模式切换指令可以用于指示从普通模式切换为高速模式,所述高速模式可以为高速发送模式或高速接收模式。当从设备的片选信号再次被使能时,主设备和从设备切换至高速模式。当高速模式下的片选信号结束时,高速模式也一并结束。换言之,在该从设备的片选信号下一次被使能时,主设备和从设备均自动地切换至普通模式。采用这样的方案可以通过模式切换指令将普通模式切换为高速模式,但无需通过模式切换指令将高速模式切换为普通模式。
在本发明实施例的方案中,可以采用时序控制切换的方式进行切换,或者采用协议控制切换的方式进行切换。
其中,采用时序控制切换的方式可以是指:主设备可以通过MOSI引脚或MISO引脚发送预设控制字,其中,预设控制字的位数是预先设置的,预设控制字的数值与目标模式一一对应。
采用协议控制切换的方式可以是指:主设备和从设备之间可以配置有不同于SPI的通信协议,模式切换指令可以是通过所述通信协议的数据包。主设备可以向从设备发送数据包,从设备接收到数据包后可以向主设备发送响应信号。如果从设备正常响应,则在片选信号下一次被使能时切换至目标模式。更具体地,SPI设备的控制器包括:模式控制寄存器,由此可以支持中央处理器(Central Processing Unit,CPU)或微控制器(Microcontroller Unit,MCU)来主动控制当前模式。也即,该方式适用于在SPI通信基础上增加通信协议,通过协议定义可以控制模式切换的场景。
参照图7,图7是本发明实施例中一种模式切换的时序示意图。具体而言,图7示出了采用时序控制切换的方式从普通模式切换为高速发送模式,并由高速发送模式自动切换回普通模式。
如图7所示,在普通模式的SS片选信号的使能周期内,从控制器识别到仅有预设数量个时钟信号,以及接收到预设位数的第一控制字。此时,从控制器可以确定接收到了模式切换指令,且该模式切换指令指示切换至高速发送模式。其中,预设数量和预设位数是相等的。
进一步地,在片选信号再次被使能时,主设备和从设备均切换为高速发送模式。进一步地,当高速发送模式下的片选信号结束时(也即,从有效状态被设置为非有效状态),高速发送模式结束。在下一次片选信号再次被使能时,主设备和从设备均处于普通模式。
如图7所示,预设数量为4。也即,当检测到只有4个SCK时钟信号,且主设备通过MOSI引脚发送第一控制字0x1(4比特)给从设备,则在下一次片选信号使能时自动切换到高速发送模式。在其他实施例中,预设数量也可以是其他的数值,例如,可以是2至7之间的任意整数,本实施例对此并不进行限制。
参照图8,图8是本发明实施例中另一种模式切换的时序示意图。具体而言,图8示出了采用时序控制切换的方式从普通模式切换为高速接收模式,并由高速接收模式自动切换回普通模式。
如图8所示,在普通模式的SS片选信号的使能周期内,从控制器识别到仅有预设数量个时钟信号,以及接收到预设位数的第二控制字。此时,从控制器可以确定接收到了模式切换指令,且该模式切换指令指示切换至高速接收模式。其中,第二控制字不同于第一控制字。如图8所示,第二控制字可以是0x2。进一步地,在片选信号再次被使能时,主设备和从设备均切换为高速接收模式。进一步地,当高速接收模式下的片选信号结束时(也即,从有效状态被设置为非有效状态),高速接收模式结束。在下一次片选信号再次被使能时,主设备和从设备均处于普通模式。
参照图9,图9是本发明实施例中又一种模式切换的时序示意图。具体而言,图9示出了采用协议控制切换的方式从普通模式切换为高速模式,并由高速模式自动切换回普通模式。如图9所示,在普通模式的SS片选信号的使能周期内,主设备发送给满足通信协议的数据包给从设备,所述数据包可以包括指示信息,所述指示信息可以用于指示目标模式,从设备可以根据指示信息确定目标模式。
进一步地,从设备接收到数据包后可以向从设备发送应答信号,如果从设备正常应答,则当片选信号再次被使能时,控制器可以对模式控制寄存器进行设置,以切换到高速模式。当高速模式下的片选信号结束时,高速模式结束。在下一次片选信号再次被使能时,主设备和从设备均处于普通模式。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,表示前后关联对象是一种“或”的关系。
本发明实施例中出现的“多个”是指两个或两个以上。本发明实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本发明实施例中对设备个数的特别限定,不能构成对本发明实施例的任何限制。虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (13)
1.一种SPI设备的数据传输方法,其特征在于,所述SPI设备包括:数据输出端和数据输入端,所述方法包括:
当处于SPI普通模式时,通过所述数据输出端输出数据,并通过所述数据输入端接收数据;
当处于SPI高速模式时,一并通过所述数据输出端和数据输入端输出数据,或者一并通过所述数据输出端和数据输入端接收数据。
2.根据权利要求1所述的数据传输方法,其特征在于,所述SPI设备还包括:第一移位寄存器,所述第一移位寄存器与所述数据输出端连接,用于所述数据输出端的数据收发;
第二移位寄存器,所述第二移位寄存器与所述数据输入端连接,用于所述数据输入端的数据收发。
3.根据权利要求2所述的数据传输方法,其特征在于,所述SPI设备还包括:缓存器,一并通过所述数据输出端和数据输入端输出数据之前,所述方法还包括:
从所述缓存器读取M个待输出数据,其中,M为移位寄存器的数量,M≥2且M为正整数,所述移位寄存器包括:所述第一移位寄存器和所述第二移位寄存器;
将所述M个待输出数据写入所述移位寄存器中,其中,每个移位寄存器中存放单个待输出数据。
4.根据权利要求2所述的数据传输方法,其特征在于,所述SPI设备还包括:缓存器,一并通过所述数据输出端和数据输入端接收数据之后,所述方法还包括:
从移位寄存器中读取M个已接收数据,其中,每个移位寄存器中存放单个已接收数据,M为所述移位寄存器的数量,M≥2且M为正整数,所述移位寄存器包括:所述第一移位寄存器和所述第二移位寄存器;
将所述M个已接收数据写入所述缓存器中。
5.根据权利要求1所述的数据传输方法,其特征在于,所述SPI设备为从设备,所述方法还包括:
从主设备接收模式切换指令,所述模式切换指令用于指示从当前模式切换至目标模式;
当再次检测到片选信号被使能时,切换至所述目标模式。
6.根据权利要求1所述的数据传输方法,其特征在于,所述SPI设备为主设备,所述方法还包括:
向从设备发送模式切换指令,所述模式切换指令用于指示从当前模式切换至目标模式;
当再次使能所述从设备的片选信号时,切换至所述目标模式。
7.根据权利要求5或6所述的数据传输方法,其特征在于,所述模式切换指令为预设控制字,所述预设控制字是通过所述数据输出端或所述数据输入端传输的。
8.根据权利要求5或6所述的数据传输方法,其特征在于,所述主设备和从设备之间配置有不同于SPI的通信协议,所述模式切换指令为通过所述通信协议传输的数据包。
9.一种SPI设备,其特征在于,所述SPI设备包括:
数据输出端;
数据输入端;
控制器,在SPI普通模式下,控制所述数据输出端输出数据,并控制所述数据输入端接收数据,在SPI高速模式下,控制所述数据输出端和数据输入端一并输出数据,或者控制所述数据输出端和数据输入端一并输入数据。
10.根据权利要求9所述的SPI设备,其特征在于,还包括:
第一移位寄存器,所述第一移位寄存器与所述数据输出端连接,用于所述数据输出端的数据收发;
第二移位寄存器,所述第二移位寄存器与所述数据输入端连接,用于所述数据输入端的数据收发。
11.根据权利要求10所述的SPI设备,其特征在于,还包括:缓存器,所述缓存器与移位寄存器连接,所述移位寄存器包括:所述第一移位寄存器和所述第二移位寄存器;
所述缓存器用于缓存M个待输出数据或M个已接收数据,其中,M为所述移位寄存器的数量,M≥2且M为正整数。
12.一种芯片,其特征在于,所述芯片包括权利要求9至11任一项所述的SPI设备。
13.一种芯片模组,其特征在于,所述芯片模组包括权利要求9至11任一项所述的SPI设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210623511.3A CN114880270B (zh) | 2022-06-02 | 2022-06-02 | Spi设备及其数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210623511.3A CN114880270B (zh) | 2022-06-02 | 2022-06-02 | Spi设备及其数据传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114880270A true CN114880270A (zh) | 2022-08-09 |
CN114880270B CN114880270B (zh) | 2024-05-28 |
Family
ID=82678789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210623511.3A Active CN114880270B (zh) | 2022-06-02 | 2022-06-02 | Spi设备及其数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114880270B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147778A (zh) * | 2010-02-05 | 2011-08-10 | 杭州华三通信技术有限公司 | 基于半双工串行总线的数据传输系统及传输控制方法 |
US20110225339A1 (en) * | 2010-03-09 | 2011-09-15 | Chi-Ming Chen | Data transmission system and a programmable spi controller |
CN102567261A (zh) * | 2010-12-31 | 2012-07-11 | 联芯科技有限公司 | 增强型spi控制器、增强型spi的通讯系统及传送数据方法 |
CN112765079A (zh) * | 2021-01-20 | 2021-05-07 | 四川长虹电器股份有限公司 | 一种适应多种不同设备的spi总线控制方法 |
CN113312297A (zh) * | 2021-06-22 | 2021-08-27 | 张玉禄 | 一种spi从接口、安全芯片及spi闪存电子装置 |
CN113468092A (zh) * | 2020-03-31 | 2021-10-01 | 比亚迪半导体股份有限公司 | 高速spi通信装置 |
-
2022
- 2022-06-02 CN CN202210623511.3A patent/CN114880270B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147778A (zh) * | 2010-02-05 | 2011-08-10 | 杭州华三通信技术有限公司 | 基于半双工串行总线的数据传输系统及传输控制方法 |
US20110225339A1 (en) * | 2010-03-09 | 2011-09-15 | Chi-Ming Chen | Data transmission system and a programmable spi controller |
CN102567261A (zh) * | 2010-12-31 | 2012-07-11 | 联芯科技有限公司 | 增强型spi控制器、增强型spi的通讯系统及传送数据方法 |
CN113468092A (zh) * | 2020-03-31 | 2021-10-01 | 比亚迪半导体股份有限公司 | 高速spi通信装置 |
CN112765079A (zh) * | 2021-01-20 | 2021-05-07 | 四川长虹电器股份有限公司 | 一种适应多种不同设备的spi总线控制方法 |
CN113312297A (zh) * | 2021-06-22 | 2021-08-27 | 张玉禄 | 一种spi从接口、安全芯片及spi闪存电子装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114880270B (zh) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102023954B (zh) | 具有多路i2c总线的装置、处理器、系统主板及工控计算机 | |
US8867573B2 (en) | Transferring data between asynchronous clock domains | |
EP3323051B1 (en) | Spi interface with less-than-8-bit bytes and variable packet size | |
CN102253913B (zh) | 一种对多板卡端口进行状态获取和输出控制的装置 | |
KR20170110610A (ko) | 시리얼 버스를 위한 수신 클록 캘리브레이션 | |
CN104834620A (zh) | 串行外设接口spi总线电路、实现方法以及电子设备 | |
US11630796B2 (en) | Serial peripheral interface (SPI) automatic register address incrementation across data frames | |
KR20040076730A (ko) | 고속의 무선 통신에 적합한 하이브리드형 직렬 데이터전송 장치 및 그 방법 | |
US8510485B2 (en) | Low power digital interface | |
CN110008162B (zh) | 一种缓冲接口电路及基于该电路传输数据的方法和应用 | |
CN114880270B (zh) | Spi设备及其数据传输方法 | |
CN116860688A (zh) | 一种数据传输方法、相关装置、设备以及可读存储介质 | |
CN108228520B (zh) | 一种面向bmc的i2c控制器的快速传输方法 | |
CN102882261B (zh) | 充电系统、数字接口电路及其控制方法 | |
CN115563049A (zh) | Spi发送模式赋值结构的实现方法 | |
JP4906688B2 (ja) | 制御信号通信方法、光トランシーバ装置 | |
CN113836058A (zh) | 一种板卡间数据交换方法、装置、设备及存储介质 | |
US9621334B2 (en) | Data transmission method and system | |
KR100361511B1 (ko) | 다기능 직렬 통신 인터페이스 장치 | |
CN115080493B (zh) | 总线装置及数据读写电路 | |
CN117725003B (zh) | 适用于高速adc通信的定制spi接口和数据读写方法 | |
CN112352227B (zh) | 用于数据的缓冲传输的电路 | |
JP2000276435A (ja) | データ転送装置及びデータ転送方法 | |
KR100295683B1 (ko) | 인터아이씨의 제너럴콜 어크날리지장치및 방법 | |
KR100962306B1 (ko) | 임베디드 시스템의 양방향 데이터 통신장치 및 그 방법 |
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 |