CN117056263A - Spi控制器、控制方法、系统级芯片以及蓝牙设备 - Google Patents

Spi控制器、控制方法、系统级芯片以及蓝牙设备 Download PDF

Info

Publication number
CN117056263A
CN117056263A CN202210482360.4A CN202210482360A CN117056263A CN 117056263 A CN117056263 A CN 117056263A CN 202210482360 A CN202210482360 A CN 202210482360A CN 117056263 A CN117056263 A CN 117056263A
Authority
CN
China
Prior art keywords
control unit
command
access
data
configuration information
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
CN202210482360.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.)
Actions Technology Co Ltd
Original Assignee
Actions 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 Actions Technology Co Ltd filed Critical Actions Technology Co Ltd
Priority to CN202210482360.4A priority Critical patent/CN117056263A/zh
Publication of CN117056263A publication Critical patent/CN117056263A/zh
Pending legal-status Critical Current

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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

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控制器的配置信息,所述配置信息对应不同类型的目标设备;所述控制单元,用于根据所述可变长命令和所述配置信息,生成访问命令来访问目标设备。

Description

SPI控制器、控制方法、系统级芯片以及蓝牙设备
技术领域
本公开涉及通信技术领域,具体地,涉及一种SPI控制器、控制方法、系统级芯片以及蓝牙设备。
背景技术
SPI(Serial Peripheral Interface,串行外设接口)是一种高速的,全双工、同步的通信总线,普通的SPI总线在芯片上只占用了四根线,分别为SCK时钟线、MOSI主机输出从机输入线、MISO主机输入从机输出线、SS从机选择线,如此,一方面线的数量较少使得布设以及数据传输较为简单,另一方面还可以节约芯片的管脚资源。由于这种简单的特性,越来越多的芯片上集成SPI通信协议,但是,随着芯片对外部存储设备读写速度的要求,基于普通的SPI协议,出现了多种双倍速率可读写的静态随机存储器(DDR PSRAM),这类器件的出现替代了双倍速率同步动态随机存储器(DDR SDRAM)。然而,相关技术中,需要通过DMA(Direct Memory Access,直接存储器访问)或者CPU(Central Processing Unit,中央处理器)才能实现对DDR PSRAM进行访问,如此,会导致带宽利用率较低、访问效率较低的弊端。
发明内容
本公开的目的是提供一SPI控制器、控制方法、系统级芯片以及蓝牙设备,以解决相关技术中存在的问题。
为了实现上述目的,本公开第一方面提供一种SPI控制器,包括:缓存接口模块、寄存器和控制单元,其中,所述控制单元分别与所述缓存接口模块和所述寄存器相连;
所述缓存接口模块,用于向所述控制单元发送可变长命令;
所述寄存器,用于存储SPI控制器的配置信息,所述配置信息对应不同类型的目标设备;
所述控制单元,用于根据所述可变长命令和所述配置信息,生成访问命令来访问目标设备。
可选地,所述控制单元,用于在接收到所述可变长命令时,确定对应的访问类型,并根据所述访问类型生成访问命令发送给所述目标设备进行访问,所述访问命令包括写入命令或读取命令。
可选地,所述SPI控制器还包括:分别连接控制单元的输入数据存储单元和/或输出数据存储单元;
在所述控制单元确定访问命令为写入命令时,所述控制单元用于根据所述寄存器配置信息向对应类型的目标设备发送所述写入命令和输出时钟信号直至输出预设长度的目标数据给所述目标设备时结束,所述输出数据存储单元用于输出目标数据给所述目标设备;或
在所述控制单元确定访问命令为读取命令时,所述控制单元用于根据所述寄存器配置信息向对应类型的目标设备发送所述读取命令和输出时钟信号,以及,接收所述目标设备发送的采集时钟信号,并根据所述采集时钟信号采集所述目标设备返回的数据直至采集到所述预设长度的目标数据时结束,所述输入数据存储单元用于存储所述预设长度的目标数据。
可选地,所述SPI控制器还包括:分别连接控制单元的输出延时单元和/或输入延时单元;
所述输出延时单元,用于根据所述配置信息确定输出延时配置,并根据所述输出延时配置对所述输出时钟信号进行延时后将延时后的所述输出时钟信号发送至所述控制单元;和/或
所述输入延时单元,用于根据所述配置信息确定输入延时配置,并根据所述输入延时配置对所述采集时钟信号进行延时后将延时后的所述采集时钟信号发送至所述控制单元,以由所述控制单元根据延时后的所述采集时钟信号采集所述目标设备返回的数据直至采集到所述预设长度的目标数据时结束。
可选地,所述配置信息包括所述目标设备的边界访问地址;
所述控制单元,还用于根据所述可变长命令和所述边界访问地址,确定是否存在跨所述边界访问地址进行访问的风险,若存在则对所述可变长命令进行拆分,以得到多个子命令,并根据所述多个子命令来访问目标设备。
可选地,所述SPI控制器还包括:连接所述控制单元的门控时钟单元;
在所述控制单元在预设时长内未收到所述缓存接口模块的可变长命令时,所述门控时钟单元用于关闭所述SPI控制器的时钟源头。
可选地,所述缓存接口模块为DATA缓存接口模块。
本公开第二方面提供一种SPI控制器的控制方法,SPI控制器为本公开第一方面所述的SPI控制器,所述控制方法包括:
所述寄存器存储SPI控制器的配置信息,所述配置信息对应不同类型的目标设备;
所述缓存接口模块向所述述控制单元发送可变长命令;
所述控制单元根据所述可变长命令和所述配置信息,生成访问命令来访问目标设备。
可选地,所述SPI控制器还包括:分别连接控制单元的输入数据存储单元和/或输出数据存储单元;
所述控制单元根据所述可变长命令和所述配置信息,生成访问命令来访问目标设备,包括:
所述控制单元在接收到所述可变长命令时,确定对应的访问类型,所述访问命令包括写入命令或读取命令;
在确定访问命令为所述写入命令时,所述控制单元根据所述寄存器配置信息向对应类型的目标设备发送所述写入命令和输出时钟信号直至输出预设长度的目标数据给所述目标设备时结束,所述输出数据存储单元用于输出目标数据给所述目标设备;或
在确定访问命令为所述读取命令时,所述控制单元根据所述寄存器配置信息向对应类型的目标设备发送所述读取命令和输出时钟信号,以及,接收所述目标设备发送的采集时钟信号,并根据所述采集时钟信号采集所述目标设备返回的数据直至采集到所述预设长度的目标数据时结束,所述输入数据存储单元用于存储所述预设长度的目标数据。
可选地,所述SPI控制器还包括:分别连接控制单元的输出延时单元和/或输入延时单元;所述方法还包括:
所述输出延时单元根据所述配置信息确定输出延时配置,并根据所述输出延时配置对所述输出时钟信号进行延时后将延时后的所述输出时钟信号发送至所述控制单元;和/或
所述输入延时单元根据所述配置信息确定输入延时配置,并根据所述输入延时配置对所述采集时钟信号进行延时后将延时后的所述采集时钟信号发送至所述控制单元,以由所述控制单元根据延时后的所述采集时钟信号采集所述目标设备返回的数据直至采集到所述预设长度的目标数据时结束。
可选地,所述配置信息包括所述目标设备的边界访问地址;所述控制单元根据所述可变长命令和所述配置信息,生成访问命令来访问目标设备,包括:
所述控制单元根据所述可变长命令和所述边界访问地址,确定是否存在跨所述边界访问地址进行访问的风险,若存在则对所述可变长命令进行拆分,以得到多个子命令,并根据所述子命令来访问目标设备。
可选地,所述SPI控制器还包括:连接所述控制单元的门控时钟单元;所述方法还包括:
在所述控制单元在预设时长内未收到所述缓存接口模块的可变长命令时,所述门控时钟单元用于关闭所述SPI控制器的时钟源头。
本公开第三方面提供一种系统级芯片,包括:数据缓存模块、中央处理器和本公开第方面中任一项所述的SPI控制器,其中,所述数据缓存模块用于存储可变长命令和待访问的目标数据;
所述数据缓存模块与所述SPI控制器中的所述缓存接口模块相连,用于向所述缓存接口模块发送所述可变长命令和所述目标数据;
所述中央处理器经过所述缓存接口模块将SPI工作配置信息写入所述芯片的SPI控制器中的寄存器。
本公开第四方面提供一种蓝牙设备,所述蓝牙设备包括:本公开第三方面所述的系统级芯片。
采用上述技术方案,SPI控制器包括缓存接口模块、寄存器和控制单元,其中,缓存接口模块向控制单元发送可变长命令,寄存器存储SPI控制器的配置信息,以及,控制单元根据可变长命令和所述配置信息,生成访问命令来访问目标设备。如此,由于缓存接口模块可以直接向控制单元发送可变长命令使控制单元访问目标设备,因此,在访问过程中缓存接口模块每次发送命令时,均不会产生任何中断信息,即,在利用CPU在寄存器中完成基本的配置信息之后,不需要CPU的再次参与即可实现继续对目标设备进行数据访问的目的,提高了带宽利用率和访问效率。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性实施例示出的一种SPI控制器的框图。
图2是根据一示例性实施例示出的一种SPI控制器的示意图。
图3是根据一示例性实施例示出的一种SPI控制器的控制方法的流程图。
图4是根据一示例性实施例示出的一种系统级芯片的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
需要说明的是,本公开中所有获取信号、信息或数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
如背景技术所言,在相关技术中,由于需要CPU分别对SPI控制器和DMA进行配置,等到数据传输完成之后中断,再次传输数据时CPU会再次进行干预,如此,导致带宽利用率较低、访问效率较低的弊端。
有鉴于此,本公开提供一种SPI控制器、控制方法、系统级芯片以及蓝牙设备,以提高带宽利用率和访问效率。
图1是根据一示例性实施例示出的一种SPI控制器的示意图。如图1所示,该SPI控制器可以包括缓存接口模块、寄存器和控制单元,其中,控制单元分别与缓存接口模块和寄存器相连。
缓存接口模块用于向控制单元发送可变长命令。在本公开中,可变长命令是指一次进行读或写的数据长度是可变的。在实际应用中,可以根据不同的应用场景来选择所发送命令的长度(即,一次进行读或写的数据长度)。应当理解的是,SPI通信协议中一次传输包括命令、地址、等待时间和数据时间。同样长度的数据传输,每次发送的数据长度越长,发送的命令数就越少,相对应的非数据时间就会减小,效率就会越高,带宽利用率更高。此外,由于各类设备的特性,控制单元在向目标设备发送访问命令之后都会有数个周期的等待时钟,为了提高数据访问效率,本公开中,缓存接口模块可以向控制单元发送可变长命令,如此,提高了数据访问的效率,可适用于显示设备的刷屏和回写等带宽需求大的应用场景。
因此,通过利用缓存接口模块向所述控制单元发送可变长命令,可以有效提高带宽利用率和访问效率。
寄存器用于存储SPI控制器的配置信息,配置信息对应不同类型的目标设备。目标设备可以为双倍速率可读写的静态随机存储器DDR PSRAM、温度传感器、压力传感器、模拟转换器实时时钟、任何支持串行模型的SD卡(Secure Digital Memory Card,安全数码卡),本公开对目标设备不作具体限定。
示例地,配置信息可以为目标设备的相关信息,目标设备的相关信息可以例如为目标设备的名称、属性等信息。在本公开中,配置信息是中央处理器CPU经过可以通过缓存接口模块发送至寄存器中的。值的说明的是,在本公开中,CPU在向寄存器发送完基本的配置信息之后,不需要CPU的再次参与。
控制单元用于根据可变长命令和配置信息生成访问命令来访问目标设备。
应当理解的是,在本公开中,对目标设备进行访问可以是将数据写入目标设备,也可以是从目标设备读取数据,其中,对目标设备进行访问的具体方式将在下文进行详细说明。
采用上述技术方案,SPI控制器包括缓存接口模块、寄存器和控制单元,其中,缓存接口模块向控制单元发送可变长命令,寄存器存储SPI控制器的配置信息,以及,控制单元根据可变长命令和所述配置信息,生成访问命令来访问目标设备。如此,由于缓存接口模块可以直接向控制单元发送可变长命令使控制单元访问目标设备,因此,在访问过程中缓存接口模块每次发送命令时,均不会产生任何中断信息,即,在利用CPU在寄存器中完成基本的配置信息之后,不需要CPU的再次参与即可实现继续对目标设备进行数据访问的目的,提高了带宽利用率和访问效率。
在本公开中,该SPI控制器支持4线SPI接口,也扩展支持4xIO的SPI接口和8xIO的SPI接口。其中,4线是指两根数据传输线,一根时钟信号传输线和片选信号传输线,4xIO表征同时有4根数据传输线,8xIO表征8根数据传输线。
为了便于本领域技术人员更好的理解本公开所提供的SPI控制器,下面一个完整的实施例对本公开所提供的SPI控制器进行介绍。
控制单元用于在接收到可变长命令时,确定对应的访问类型,并根据访问类型生成访问命令发送给目标设备进行访问,其中,访问命令包括写入命令或读取命令。
示例地,缓存接口模块发送的可变长命令中可以包括预先约定好的用于表征是写入访问还是读取访问的标识,进而控制单元在接收到该可变长命令时根据其包括的标识确定对应的访问类型。例如,若可变长命令中包括用于表征写入访问的第一标识,则确定对应的访问类型为写入类型,进而控制单元生成写入命令。若可变长命令中包括用于表征读取访问的第二标识,则确定对应的访问类型为读取类型,进而控制单元生成读取命令。
应当理解的是,不同的目标设备的访问命令格式不同,因此,控制单元根据寄存器中的配置信息确定待访问的目标设备,进而在确定出可变长命令对应的访问类型时,根据该访问类型和目标设备的访问命令格式生成访问命令,并发送给目标设备进行访问。
目标设备中包括多个存储数据的地址,而数据访问可能仅是对部分地址上的数据进行访问,因此,在一种可能的方式中,可变长命令中还可以包括访问地址。示例地,访问地址可以为访问起始地址,这样,控制单元在生成访问命令之后,根据访问命令从目标设备的访问起始地址处开始对数据进行访问。例如,可以从目标设备的访问起初地址处开始写入目标数据,也可以从目标设备的访问起始地址处开始读取目标数据。
在一种可能的方式中,缓存接口模块可以为AHB(Advanced High PerformanceBus,高级高性能总线)接口模块DMA(Direct Memory Access,直接存储器访问)接口模块和DATA缓存接口模块。在本公开中,为了解决显示设备对数据量需求大和实时性的问题,缓存接口模块为DATA缓存接口模块,即,可以通过DATA缓存接口模块向控制单元发送可变长命令。
此外,缓存接口模块除了向控制单元发送可变长命令之外,还可以接收控制单元的反馈信息。即,缓存接口模块可以包括向控制单元发送可变长命令的信号输入接口和接收控制单元发送的反馈信号的信号输出接口。此外,缓存接口模块还可以用来传输待访问的目标数据。例如,在对目标设备进行写入访问时,缓存接口模块可以从SPI控制器的前一级设备中将目标数据发送至控制单元,进而控制单元可以将目标数据写入目标设备。又例如,在对目标设备进行读取访问时,缓存接口模块可以将控制器从目标设备中读取的目标数据发送至SPI控制器的后一级设备中。因此,缓存接口模块还可以包括数据输出接口和数据输入接口。
示例地,图2是根据一示例性实施例示出的另一种SPI控制器的示意图。如图2所示,缓存接口模块可以包括信号输入接口、信号输出接口、数据输出接口和数据输入接口。
可选地,如图2所示,SPI控制器还可以包括:分别连接控制单元的输入数据存储单元和/或输出数据存储单元。
在访问命令为写入命令时,控制单元用于根据寄存器配置信息向对应类型的目标设备发送写入命令和输出时钟信号直至输出预设长度的目标数据给所述目标设备时结束,输出数据存储单元用于输出目标数据给目标设备。
在控制单元确定访问命令为读取命令时,控制单元用于根据所述寄存器配置信息向对应类型的目标设备发送所述读取命令和输出时钟信号,以及,接收所述目标设备发送的采集时钟信号,并根据所述采集时钟信号采集所述目标设备返回的数据直至采集到所述预设长度的目标数据时结束,所述输入数据存储单元用于存储所述预设长度的目标数据。
在数据传输过程中,在普通的4线协议的情况下,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被输出,完成一位数据写入。读取数据也是使用同样的原理。数据都是一位一位写入或读取的,这样,在至少8次时钟信号的改变(上升沿和下降沿为一次改变)就可以完成8位数据的传输。在没有时钟改变时,数据不传输,即不写入数据也不读取出数据。
若目标设备为双倍速率数据静态随机存储器接口,数据在时钟上升沿和下降沿均会发生改变的。并且,在4XI0协议下一个周期就可以完成8bit数据传输,在8XIO协议下一个周期可以完成16bit数据传输。如此,在SPI控制器支持支持4xIO和8xIO的SPI接口的情况下,可以有效提升数据传输的效率。
因此,访问命令无论是写入命令还是读取命令,控制单元在将访问命令发送至目标设备时,还会向目标设备持续发送输出时钟信号,以在输出时钟信号的上升沿或下降沿对目标设备进行访问,并且,在数据访问结束时停止发送输出时钟信号。
值的说明的是,在访问命令为写入命令时,SPI控制器的上一级设备通过数据输入接口将目标设备发送至输出数据存储单元,接着,控制单元从输出数据存储单元中读取出数据并写入到目标设备中。
此外,在访问命令为读取命令时,控制单元向对应类型的目标设备发送读取命令和输出时钟信号的同时还会接收目标设备发送的采集时钟信号,并根据该采集时钟信号采集目标设备返回的数据直至采集到所述预设长度的目标数据时结束。控制单元将采集到的目标数据存储在输入数据存储单元,存储在输入数据存储单元的数据可以传输至芯片的数据缓存单元,再由数据缓存单元输出。
考虑到不同的应用场景,输出时钟信号与数据的相位不同,会存在延时。例如,在数据为显示模块需要的刷屏数据的场景下,数据访问的频率较高,对时钟信号的延时会比较敏感,需要延时单元进行更多调整,才能保证数据的准确访问。此外,目标设备为DDRPSRAM,当DDR PSRAM外挂还是内封,走线长短的不一样,也会影响输出时钟信号的延时大小。因此,SPI控制器还需要对输出时钟信号进行延时,以满足需求。
示例地,如图2所示,该SPI控制还包括输出延时单元,且输出延时单元与控制单元相连。输出延时单元用于根据配置信息确定输出延时配置,并根据所述输出延时配置对所述输出时钟信号进行延时后将延时后的所述输出时钟信号发送至所述控制单元。
例如,配置信息可以包括输出延时配置,该输出延时配置用于表征输出时钟信号延迟的第一预设相位。输出延时单元从配置信息中确定出输出延时配置之后,对输出时钟信号延时第一预设相位,并将延时后的输出时钟信号发送至控制单元,如此,控制单元在向目标设备发送访问命令时还可以向目标设备持续发送延时后的输出时钟信号。
此外,当访问命令为读取命令时,为了确保SPI控制器能够从目标设备返回的数据中准确采集到目标数据,在本公开中,还可以对目标设备发送的采集时钟信号进行延时。示例地,如图2所示,该SPI控制还包括输入延时单元,且输入延时单元与控制单元相连。输入延时单元用于根据配置信息确定输入延时配置,并根据输入延时配置对采集时钟信号进行延时后将延时后的采集时钟信号发送至所述控制单元,以由控制单元根据延时后的采集时钟信号采集所述目标设备返回的数据直至采集到预设长度的目标数据时结束。
例如,配置信息可以包括输入延时配置,输入延时配置用于表征采集时钟信号延迟的第二预设相位。输入延时单元从配置信息中确定出输入延时配置之后,对采集时钟信号延时第二预设相位,并将延时后的采集时钟信号发送至控制单元,以由控制单元根据延时后的采集时钟信号采集目标设备返回的数据直至采集到所述预设长度的目标数据时结束。
采用上述技术方案,当数据写入或读取的频率发生变化时,可以通过输出延时单元或输入延时单元,将输出时钟信号或采集时钟信号进行延时进行,以确保能够准确地写入或读取数据。
值的说明的是,以上仅描述了SPI控制主动访问目标设备的情况,在实际应用中,SPI控制还可以被动访问目标设备。示例地,SPI控制器被动发送读写命令,通过从输出数据存储中读取数据来发送命令,此时控制器是发送端还是接收端由软件控制。其中SPI控制器被动访问目标设备属于相关技术中较为成熟的技术,本公开对此不作具体限定。
采用本公开的SPI控制,既可以主动访问目标设备,还可以被动访问目标设备,如此,增加访问目标设备的灵活性。
在实际应用中,目标设备的存储空间会划分多个区域,在同一次访问过程中,不能跨区域访问,即,目标设备具有边界访问地址,该边界访问地址为相邻区域的边界地址。其中,不同的目标设备的边界访问地址不同,如果在一次访问过程中,待访问的数据位于不同的区域,即,认为存在跨边界访问地址的风险。因此,在本公开中,配置信息包括目标设备的边界访问地址。
相应地,控制单元还用于可变长命令和边界访问地址,确定是否存在跨边界访问地址进行访问的风险,若存在则对可变长命令进行拆分,以得到多个子命令,并根据多个子命令来访问目标设备。
示例地,控制单元根据访问起始地址和目标数据的长度确定访问终止地址。例如,可以将访问起始地址加上目标数据的长度,即可得到访问终止地址。在访问终止地址大于边界访问地址时,确定存在跨边界访问地址进行访问的风险。
示例地,假设目标设备的边界访问地址为128,则表征该目标设备不能同时读取位于地址128之前地址的数据和之后地址的数据,以及,也不能同时写入地址128之前地址的数据和之后地址的数据。若访问起始地址和目标数据的长度之和大于128,则认为存在跨边界访问地址进行访问的风险。目标设备在读取或写入地址128的数据之后,会重新跳回到访问起始位置访问数据,导致SPI控制器访问数据出错。因此,在本公开中,为了避免数据出错,可以对可变长命令进行拆分,以得到多个子命令,并根据所述多个子命令来访问目标设备。
采用上述技术方案,在存在跨边界访问地址进行访问的风险时,可以对可变长命令进行拆分,以避免跨边界访问地址进行访问的风险,如此,可以确定SPI控制器能够对不同的目标设备进行准确的数据访问,提高了目标设备的兼容性。
考虑到SPI控制器可以应用到蓝牙穿戴产品中,而蓝牙穿戴产品对功耗要求比较高,因此,如图2所示,SPI控制器可以包括门控时钟单元。控制单元与门控时钟单元相连,在控制单元在预设时长内未收到缓存接口模块的可变长命令时,门控时钟单元用于关闭SPI控制器的时钟源头,以实现降低SPI控制器功耗的目的。
基于同一发明构思,本公开还提供一种SPI控制器的控制方法。图3是根据一示例性实施例示出的一种SPI控制器的控制方法的流程图,SPI控制器为本公开所提供SPI控制器,所述控制方法可以包括以下步骤。
在步骤S301中,所述寄存器存储SPI控制器的配置信息,所述配置信息对应不同类型的目标设备。
在步骤S302中,所述缓存接口模块向所述控制单元发送可变长命令。
在步骤S303中,所述控制单元根据所述可变长命令和所述配置信息,生成访问命令来访问目标设备。
采用上述技术方案,缓存接口模块向控制单元发送可变长命令,寄存器存储SPI控制器的配置信息,以及,控制单元根据可变长命令和所述配置信息,生成访问命令来访问目标设备。如此,由于缓存接口模块可以直接向控制单元发送可变长命令使控制单元访问目标设备,因此,在访问过程中缓存接口模块每次发送命令时,均不会产生任何中断信息,即,在利用CPU在寄存器中完成基本的配置信息之后,不需要CPU的再次参与即可实现继续对目标设备进行数据访问的目的,提高了带宽利用率和访问效率。
可选地,所述SPI控制器还包括:分别连接控制单元的输入数据存储单元和/或输出数据存储单元;
所述控制单元根据所述可变长命令和所述配置信息,生成访问命令来访问目标设备,包括:
所述控制单元在接收到所述可变长命令时,确定对应的访问类型,所述访问命令包括写入命令或读取命令;
在确定访问命令为所述写入命令时,所述控制单元根据所述寄存器配置信息向对应类型的目标设备发送所述写入命令和输出时钟信号直至输出预设长度的目标数据给所述目标设备时结束,所述输出数据存储单元用于输出目标数据给所述目标设备;或
在确定访问命令为所述读取命令时,所述控制单元根据所述寄存器配置信息向对应类型的目标设备发送所述读取命令和输出时钟信号,以及,接收所述目标设备发送的采集时钟信号,并根据所述采集时钟信号采集所述目标设备返回的数据直至采集到所述预设长度的目标数据时结束,所述输入数据存储单元用于存储所述预设长度的目标数据。
可选地,所述SPI控制器还包括:分别连接控制单元的输出延时单元和/或输入延时单元;所述方法还包括:
所述输出延时单元根据所述配置信息确定输出延时配置,并根据所述输出延时配置对所述输出时钟信号进行延时后将延时后的所述输出时钟信号发送至所述控制单元;和/或
所述输入延时单元根据所述配置信息确定输入延时配置,并根据所述输入延时配置对所述采集时钟信号进行延时后将延时后的所述采集时钟信号发送至所述控制单元,以由所述控制单元根据延时后的所述采集时钟信号采集所述目标设备返回的数据直至采集到所述预设长度的目标数据时结束。
可选地,所述配置信息包括所述目标设备的边界访问地址;所述控制单元根据所述可变长命令和所述配置信息,生成访问命令来访问目标设备,包括:
所述控制单元根据所述可变长命令和所述边界访问地址,确定是否存在跨所述边界访问地址进行访问的风险,若存在则对所述可变长命令进行拆分,以得到多个子命令,并根据所述子命令来访问目标设备。
可选地,所述SPI控制器还包括:连接所述控制单元的门控时钟单元;所述方法还包括:
在所述控制单元在预设时长内未收到所述缓存接口模块的可变长命令时,所述门控时钟单元用于关闭所述SPI控制器的时钟源头。
关于上述实施例中的方法,其中各个步骤的具体方式已经在有关该SPI控制器的实施例中进行了详细描述,此处将不做详细阐述说明。
基于同一发明构思,本公开还提供一种系统级芯片。图4是根据一示例性实施例示出的一种系统级芯片的框图。如图4所示,该系统级芯片可以包括:数据缓存模块、中央处理器和SPI控制器。其中,SPI控制器为本公开所提供的SPI控制器。
其中,所述数据缓存模块用于存储可变长命令和待访问的目标数据;所述数据缓存模块与所述SPI控制器中的所述缓存接口模块相连,用于向所述缓存接口模块发送所述可变长命令和所述目标数据;所述中央处理器经过所述缓存接口模块将SPI工作配置信息写入所述芯片的SPI控制器中的寄存器。
基于同一发明构思,本公开还提供一种蓝牙设备,所述蓝牙设备包括:本公开所提供的系统级芯片。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

Claims (14)

1.一种SPI控制器,其特征在于,包括:缓存接口模块、寄存器和控制单元,其中,所述控制单元分别与所述缓存接口模块和所述寄存器相连;
所述缓存接口模块,用于向所述控制单元发送可变长命令;
所述寄存器,用于存储SPI控制器的配置信息,所述配置信息对应不同类型的目标设备;
所述控制单元,用于根据所述可变长命令和所述配置信息,生成访问命令来访问目标设备。
2.根据权利要求1所述的SPI控制器,其特征在于,
所述控制单元,用于在接收到所述可变长命令时,确定对应的访问类型,并根据所述访问类型生成访问命令发送给所述目标设备进行访问,所述访问命令包括写入命令或读取命令。
3.根据权利要求2所述的SPI控制器,其特征在于,所述SPI控制器还包括:分别连接控制单元的输入数据存储单元和/或输出数据存储单元;
在所述控制单元确定访问命令为写入命令时,所述控制单元用于根据所述寄存器配置信息向对应类型的目标设备发送所述写入命令和输出时钟信号直至输出预设长度的目标数据给所述目标设备时结束,所述输出数据存储单元用于输出目标数据给所述目标设备;或
在所述控制单元确定访问命令为读取命令时,所述控制单元用于根据所述寄存器配置信息向对应类型的目标设备发送所述读取命令和输出时钟信号,以及,接收所述目标设备发送的采集时钟信号,并根据所述采集时钟信号采集所述目标设备返回的数据直至采集到所述预设长度的目标数据时结束,所述输入数据存储单元用于存储所述预设长度的目标数据。
4.根据权利要求3所述的SPI控制器,其特征在于,所述SPI控制器还包括:分别连接控制单元的输出延时单元和/或输入延时单元;
所述输出延时单元,用于根据所述配置信息确定输出延时配置,并根据所述输出延时配置对所述输出时钟信号进行延时后将延时后的所述输出时钟信号发送至所述控制单元;和/或
所述输入延时单元,用于根据所述配置信息确定输入延时配置,并根据所述输入延时配置对所述采集时钟信号进行延时后将延时后的所述采集时钟信号发送至所述控制单元,以由所述控制单元根据延时后的所述采集时钟信号采集所述目标设备返回的数据直至采集到所述预设长度的目标数据时结束。
5.根据权利要求1所述的SPI控制器,其特征在于,所述配置信息包括所述目标设备的边界访问地址;
所述控制单元,还用于根据所述可变长命令和所述边界访问地址,确定是否存在跨所述边界访问地址进行访问的风险,若存在则对所述可变长命令进行拆分,以得到多个子命令,并根据所述多个子命令来访问目标设备。
6.根据权利要求1所述的SPI控制器,其特征在于,所述SPI控制器还包括:连接所述控制单元的门控时钟单元;
在所述控制单元在预设时长内未收到所述缓存接口模块的可变长命令时,所述门控时钟单元用于关闭所述SPI控制器的时钟源头。
7.根据权利要求1-6任一项所述的SPI控制器,其特征在于,所述缓存接口模块为DATA缓存接口模块。
8.一种SPI控制器的控制方法,其特征在于,SPI控制器为权利要求1-10中任一项所述的SPI控制器,所述控制方法包括:
所述寄存器存储SPI控制器的配置信息,所述配置信息对应不同类型的目标设备;
所述缓存接口模块向所述述控制单元发送可变长命令;
所述控制单元根据所述可变长命令和所述配置信息,生成访问命令来访问目标设备。
9.根据权利要求8所述的控制方法,其特征在于,所述SPI控制器还包括:分别连接控制单元的输入数据存储单元和/或输出数据存储单元;
所述控制单元根据所述可变长命令和所述配置信息,生成访问命令来访问目标设备,包括:
所述控制单元在接收到所述可变长命令时,确定对应的访问类型,所述访问命令包括写入命令或读取命令;
在确定访问命令为所述写入命令时,所述控制单元根据所述寄存器配置信息向对应类型的目标设备发送所述写入命令和输出时钟信号直至输出预设长度的目标数据给所述目标设备时结束,所述输出数据存储单元用于输出目标数据给所述目标设备;或
在确定访问命令为所述读取命令时,所述控制单元根据所述寄存器配置信息向对应类型的目标设备发送所述读取命令和输出时钟信号,以及,接收所述目标设备发送的采集时钟信号,并根据所述采集时钟信号采集所述目标设备返回的数据直至采集到所述预设长度的目标数据时结束,所述输入数据存储单元用于存储所述预设长度的目标数据。
10.根据权利要求9所述的控制方法,其特征在于,所述SPI控制器还包括:分别连接控制单元的输出延时单元和/或输入延时单元;所述方法还包括:
所述输出延时单元根据所述配置信息确定输出延时配置,并根据所述输出延时配置对所述输出时钟信号进行延时后将延时后的所述输出时钟信号发送至所述控制单元;和/或
所述输入延时单元根据所述配置信息确定输入延时配置,并根据所述输入延时配置对所述采集时钟信号进行延时后将延时后的所述采集时钟信号发送至所述控制单元,以由所述控制单元根据延时后的所述采集时钟信号采集所述目标设备返回的数据直至采集到所述预设长度的目标数据时结束。
11.根据权利要求8所述的方法,其特征在于,所述配置信息包括所述目标设备的边界访问地址;所述控制单元根据所述可变长命令和所述配置信息,生成访问命令来访问目标设备,包括:
所述控制单元根据所述可变长命令和所述边界访问地址,确定是否存在跨所述边界访问地址进行访问的风险,若存在则对所述可变长命令进行拆分,以得到多个子命令,并根据所述子命令来访问目标设备。
12.根据权利要求8所述的方法,其特征在于,所述SPI控制器还包括:连接所述控制单元的门控时钟单元;所述方法还包括:
在所述控制单元在预设时长内未收到所述缓存接口模块的可变长命令时,所述门控时钟单元用于关闭所述SPI控制器的时钟源头。
13.一种系统级芯片,其特征在于,包括:数据缓存模块、中央处理器和如权利要求1-7中任一项所述的SPI控制器,其中,所述数据缓存模块用于存储可变长命令和待访问的目标数据;
所述数据缓存模块与所述SPI控制器中的所述缓存接口模块相连,用于向所述缓存接口模块发送所述可变长命令和所述目标数据;
所述中央处理器经过所述缓存接口模块将SPI工作配置信息写入所述芯片的SPI控制器中的寄存器。
14.一种蓝牙设备,其特征在于,所述蓝牙设备包括:如权利要求13所述的系统级芯片。
CN202210482360.4A 2022-05-05 2022-05-05 Spi控制器、控制方法、系统级芯片以及蓝牙设备 Pending CN117056263A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210482360.4A CN117056263A (zh) 2022-05-05 2022-05-05 Spi控制器、控制方法、系统级芯片以及蓝牙设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210482360.4A CN117056263A (zh) 2022-05-05 2022-05-05 Spi控制器、控制方法、系统级芯片以及蓝牙设备

Publications (1)

Publication Number Publication Date
CN117056263A true CN117056263A (zh) 2023-11-14

Family

ID=88655939

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210482360.4A Pending CN117056263A (zh) 2022-05-05 2022-05-05 Spi控制器、控制方法、系统级芯片以及蓝牙设备

Country Status (1)

Country Link
CN (1) CN117056263A (zh)

Similar Documents

Publication Publication Date Title
CN113254368B (zh) 从axi总线到opb总线的数据写入方法及读取方法
US7299323B2 (en) Memory controller having a read-modify-write function
CN113553277A (zh) 一种ddr5 sdram的高吞吐率、低延迟phy接口电路装置
EP3060993A1 (en) Final level cache system and corresponding method
CN108268414B (zh) 基于spi模式的sd卡驱动器及其控制方法
CN103077123A (zh) 一种数据写入和读取方法及装置
CN114816263A (zh) 存储访问方法及智能处理装置
WO2016169032A1 (zh) 数据格式转换装置、缓冲芯片及方法
CN104615386A (zh) 一种核外高速缓存装置
JP2011081553A (ja) 情報処理装置及びその制御方法
CN102789424B (zh) 基于fpga的外扩ddr2的读写方法及基于fpga的外扩ddr2颗粒存储器
CN204390227U (zh) 计算设备扩展装置、以及可扩展的计算系统
JP4902640B2 (ja) 集積回路、及び集積回路システム
WO2022095439A1 (zh) 一种用于数据处理的硬件加速系统及芯片
CN104598404A (zh) 计算设备扩展方法和装置、以及可扩展的计算系统
CN110765060B (zh) Mdio总线到并行总线转换方法及装置、设备、介质
JP2001282704A (ja) データ処理装置及びデータ処理方法とデータ処理システム
US6671752B1 (en) Method and apparatus for bus optimization in a PLB system
CN117056263A (zh) Spi控制器、控制方法、系统级芯片以及蓝牙设备
CN113590520B (zh) Spi系统自动写入数据的控制方法及spi系统
CN115312094A (zh) Sram控制系统、方法、fpga芯片及电子设备
US11308010B2 (en) Memory system having memories of different capacities
CN110750476B (zh) 一种spi总线与并行总线的桥接方法、设备、系统及介质
CN109726149B (zh) 一种axi总线访问nand flash的方法及装置
CN102522113B (zh) 一种sdram桥接电路

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