高速spi通信装置

文档序号:68097 发布日期:2021-10-01 浏览:24次 >En<

阅读说明:本技术 高速spi通信装置 (High-speed SPI communication device ) 是由 陈晓明 王秀艳 于 2020-03-31 设计创作,主要内容包括:本发明公开了一种高速SPI通信装置,包括:SRAM存储模块,其通过AHB总线接口模块与主机连接,用于装载通信数据;SPI模块,SPI模块与SRAM存储模块连接,并通过SPI总线接口与从机连接,用于在主机向从机发送数据时,利用乒乓数据传输操作分时从SRAM存储模块中获取需要发送的数据,并将需要发送的数据连续发送给从机。该高速SPI高速装置,可实现连续发送数据和大量数据处理,且占用面积小,功耗小,利用率高。(The invention discloses a high-speed SPI communication device, comprising: the SRAM storage module is connected with the host through the AHB bus interface module and is used for loading communication data; and the SPI module is connected with the SRAM storage module, is connected with the slave through an SPI bus interface, and is used for acquiring data to be transmitted from the SRAM storage module in a time-sharing mode by utilizing ping-pong data transmission operation when the host transmits the data to the slave and continuously transmitting the data to be transmitted to the slave. The high-speed SPI high-speed device can realize continuous data sending and large-amount data processing, and is small in occupied area, low in power consumption and high in utilization rate.)

高速SPI通信装置

技术领域

本发明涉及通信

技术领域

,尤其涉及一种高速SPI通信装置。

背景技术

传统的低速SPI(Serial Peripheral Interface,串行外设接口)接收、发送数据,通过总线对SPI的读、写缓存器进行读、写操作实现。传统的高速SPI则在低速SPI基础上添加异步rx_fifo(recieve_first input first output,接收-先进先出)和tx_fifo(transport_first input first output,发送-先进先出),实现对数据连续读、写操作。

传统的高速SPI通信工作原理是:异步FIFO在SCLK时域下发送、接收数据,经过同步信号处理后,在系统时钟时域下,与SPI完成交互工作(如通知SPI接收完成、发送完成),并通过系统总线可读可写FIFO数据。通常电路结构添加异步rx_fifo和tx_fifo,但为了节省芯片面积,fifo的大小一般限制在256byte(字节)以内,不能实现大数据的通信(使用RTL(Register Transfer Level,寄存器转换级电路)编写的异步FIFO DC综合后的电路面积比SRAM(Static Random-Access Memory,静态随机存储寄存器)同等单元大一倍)。同时,从tx_fifo装载数据到发送移位寄存器需要一定时间,导致从机SPI通信频率相对较低,不能满足目前各种电子设备的高频数据通信(此时,很多芯片会使用四线SPI工作,以提高通信速度,但会多占用3个IO口,增加芯片面积)。

发明内容

本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的一个目的在于提出一种高速SPI通信装置,可实现连续发送数据和大量数据处理,且占用面积小,功耗小,利用率高。

为达到上述目的,本发明提出了一种高速SPI通信装置,其包括:SRAM存储模块,所述SRAM存储模块通过AHB总线接口模块与主机连接,用于装载通信数据;SPI模块,所述SPI模块与所述SRAM存储模块连接,并通过SPI总线接口与从机连接,用于在所述主机向所述从机发送数据时,利用乒乓数据传输操作分时从所述SRAM存储模块中获取需要发送的数据,并将所述需要发送的数据连续发送给所述从机。

根据本发明实施例的高速SPI高速装置,通过SRAM存储模块和SPI模块之间的配合工作,可实现大量数据处理,且占用面积小,功耗小,利用率高;通过乒乓数据传输操作分时从SRAM存储模块获取需要发送的数据,可以实现SCLK时域下不间断,连续发送数据,且可使得主机和从机的最高通信频率达到系统时钟的2分频。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

图1是本发明实施例的高速SPI通信装置的结构框图;

图2是本发明一个具体实施例的高速SPI通信装置的结构框图;

图3是本发明一个实施例的控制单元的结构框图;

图4是本发明一个实施例的时钟转换电路的结构示意图;

图5是本发明一个实施例的控制器的结构示意图;

图6是本发明一个示例的SPI模块发送数据的时序图;

图7(a)是本发明一个示例的SPI模块传输数据的时序图;

图7(b)是本发明一个示例SPI模块与SRAM存储模块交互数据的示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

下面参考附图描述本发明实施例的高速SPI通信装置。

图1是本发明实施例的高速SPI通信装置的结构框图。

如图1所示,高速SPI通信装置包括:SRAM存储模块30、SPI模块40。

其中,SRAM存储模块30通过AHB总线接口模块10与主机连接,用于装载通信数据;SPI模块40与SRAM存储模块30连接,并通过SPI总线接口模块20与从机连接,用于在主机向从机发送数据,即MOSI(Master Output Slave Input,主出从入)时,利用乒乓数据传输操作从SRAM存储模块30中获取需要发送的数据,并将需要发送的数据连续发送给从机。

可选地,参见图1,SPI模块40可通过AHB总线接口模块10与主机连接。SPI模块40还可用于在从机向主机发送数据,即MISO(Master Input Slave Output,主入从出)时,接收从机发送的数据,并将接收到的数据装载至SRAM存储模块30。

在该实施例中,SRAM存储模块可以是4Kbyte SRAM,其可通过简单的地址译码复用于别的模块,可提高利用率,且4Kbyte的SRAM电路面积比同等容量的FIFO面积要小一半。

该高速SPI高速装置,通过SRAM存储模块和SPI模块之间的配合工作,可实现大量数据处理,且占用面积小,功耗小,利用率高;通过乒乓数据传输操作分时从SRAM存储模块获取需要发送的数据,可以实现SCLK时域下不间断,连续发送数据,且可使得主机和从机的最高通信频率达到系统时钟的2分频,当然,该优势在高频芯片(如多功能MCU芯片)运用中能够更充分得以体现(如从机通信频率为24M,主机为98M系统时钟的高频芯片,主机最高通信频率可达到48M,主机SPI、从机SPI的发送接收时序均可满足对方的通信要求)。

作为一个示例,SPI模块40还用于:在主机向从机发送数据时,向SRAM存储模块30发送第一请求信息,并根据请求信息获取SRAM存储模块30对应的发送地址,利用乒乓数据传输操作从发送地址对应的存储空间中获取需要发送的数据;和/或,在从机向主机发送数据时,向SRAM存储模块30发送第二请求信息,并根据第二请求信息获取SRAM存储模块30对应的接收地址,将接收到的数据装载至接收地址对应的存储空间中。

具体地,参见图1,SPI模块40可通过向SRAM存储模块30发送相应请求信息,以从SRAM存储模块对应的地址获取需要发送的数据,可利用2个写缓存器“乒乓”分时装载SRAM存储模块30中需要发送的数据,可实现SCLK时域下连续不间断的往外发送数据。当SPI模块40完成一笔数据接收,会立刻通过向SRAM存储模块30发送相应的请求信息,以把读缓存器里的数据写到SRAM存储模块30对应的地址。以上每一笔数据的交互工作,从SPI模块40发送请求信息,到SRAM存储模块30处理完数据,只需花费1个系统时钟时间,实现了高效率、大批量通信工作。

作为一个示例,如图2所示,SPI模块40包括:发送移位寄存器41和控制单元43。

参见图2,发送移位寄存器41与SPI总线接口模块20连接;控制单元43与发送移位寄存器41连接,用于在主机向从机发送数据时,利用乒乓数据传输操作从SRAM存储模块30中获取需要发送的数据,并将需要发送的数据装载至发送移位寄存器41。

可选的,SPI模块40还可包括接收移位寄存器42,接收移位寄存器42与SPI总线接口模块20连接;控制单元43与接收移位寄存器42连接,用于在从机向主机发送数据时,若SRAM存储模块30在判断没有系统总线访问,则只需花费1个系统时钟时间,将从接收移位寄存器42接收从机发送的数据装载至SRAM存储模块30。

由此,该控制单元43在主机向从机发送数据时,利用乒乓数据传输操作从SRAM存储模块30中获取需要发送的数据,可实现将需要发送的数据装载到发送移位寄存器时,不需要等待时间,可使得通信频率达到系统时钟的2分频。控制单元43在从机向主机发送数据时,若SRAM存储模块30在判断没有系统总线访问,则可只需花费1个系统时钟时间将接收到的SPI数据保存到对应地址的SRAM空间里,实现了高效率、大批量通信工作。

作为一个示例,如图3所示,控制单元43包括:时钟转换电路431、第一缓存器432、第二缓存器433、update_en信号生成器434和控制器435。

参见图3,时钟转换电路431用于将SPI固有时钟信号SCLK转换成SPI工作时钟信号SCLK_COMB;第一缓存器432用于缓存数据;第二缓存器433用于缓存数据;update_en信号生成器434与时钟转换电路431连接,update_en信号生成器434用于生成update_en信号,其中,每隔预设数值个SPI工作时钟信号SCLK中的上升沿,update_en信号翻转一次,预设数值由SRAM存储模块30的读写位宽决定,例如,SRAM存储模块30如果可按照8位、16位、32位读写,则预设数值可对应为8、16、32。控制器435分别与SRAM存储模块30、update_en信号生成器434、第一缓存器432和第二缓存器433连接,控制器435用于:在update_en=1时,将第一缓存器432中的当前缓存数据装载至发送移位寄存器41,以及从SRAM存储模块30中获取当前需要发送的数据,并将当前需要发送的数据缓存至第二缓存器433;在update_en=0时,将第二缓存器433中的当前缓存数据装载至发送移位寄存器41,以及从SRAM存储模块30中获取当前需要发送的数据,并将当前需要发送的数据缓存至第一缓存器432。

以预设数值的取值是8为例,该高速SPI通信装置,每8个SCLK可完成一笔数据接收,接着1个系统时钟后即可把数据装载进SRAM存储模块30。具体地,在发送数据时,SPI模块40采用乒乓数据传输操作,分时从SRAM存储模块30获取需要发送的数据,以实现SCLK不间断,连续发送数据给从机;在接收数据时,SPI模块40向SRAM存储模块30发送REQ请求,SRAM存储模块30在判断没有系统总线访问时,仅需1个系统时钟即可将接收到的SPI数据保存到对应地址的SRAM空间里。

作为一个示例,如图4所示,时钟转换电路431包括:第一非门4311、第一数据选择器4312。

参见图4,第一非门4311的输入端用以输入SPI固有时钟信号SCLK;第一数据选择器4312的控制端用以输入SPI时钟极性CPOL(Clock Polarity)和时钟相位CPHA(ClockPhase),第一数据选择器4312的第一输入端与第一非门4311的输出端连接,第一数据选择器4312的第二输入端用以输入SPI固有时钟信号SCLK,第一数据选择器4312的输出端用以输出SPI工作时钟信号SCLK_COMB。

具体地,为了简化SPI的通信时序,减小SPI模块40的面积,SPI模块40可基于转换后的SPI工作时钟信号SCLK_COMB进行工作。参见图4,可根据CPHA和CPOL的不同,SPI固有时钟信号SCLK经过时钟转换电路431得到SPI工作时钟信号SCLK_COMB,内部可统一使用SCLK_COMB的上升沿接收数据,下降沿发送数据。

作为一个示例,如图5所示,控制器435包括:第二非门4351、或门4352、第一模拟开关4353、第三非门4354、与门4355、第二模拟开关4356和第二数据选择器4357。

参见图5,第二非门4351的输入端与update_en信号生成器434连接;或门4352的第一输入端与SPI模块40的IDLE端口连接,或门4352的第二输入端与第二非门4351的输出端连接;第一模拟开关4353的第一控制端与或门4352的输出端连接,第一模拟开关4353的输入端与SRAM存储模块30连接,第一模拟开关4353的输出端与第一缓存器432连接;第三非门4354的输入端与第二非门4351的输出端连接;与门4355的第一输入端与SPI模块40的端口连接,与门4355的第二输入端与第三非门4354的输出端连接,与门4355的输出端与第一模拟开关4353的第二控制端连接;第二模拟开关4356的第一控制端与第三非门4354的输出端连接,第二模拟开关4356的第二控制端与第二非门4351的输出端连接,第二模拟开关4356的输入端与SRAM存储模块30连接,第二模拟开关4356的输出端与第二缓存器433连接;第二数据选择器4357的第一输入端与第一缓存器432的输出端连接,第二数据选择器4357的第二输入端与第二缓存器433连接,第二数据选择器4357的控制端与update_en信号生成器434连接,第二数据选择器4357的输出端与发送移位寄存器41连接。

具体地,如图6所示,在SCLK_COMB的第8个时钟上升沿update_en信号翻转一次,该信号用于乒乓数据传输操作装载需要发送的数据到发送移位寄存器41。参见图5、图6,当SPI模块40处于空闲状态(即IDLE=0)时,一旦启动高速SPI通信,SRAM存储模块30把第一笔需要发送的数据写入第一缓存器432;当SPI模块40开始发送数据后,第一缓存器432、第二缓存器433分时从SRAM存储模块30获取需要发送的数据Sram_data_in,并保证在update_en信号翻转时这2个缓存器的数据稳定。

参见如5、图6,update_en信号翻转时,SPI模块40的发送移位寄存器41更新数据:当update_en=1时把第一缓存器432数据更新到发送移位寄存器41;update_en=0时把第二缓存器433数据更新到发送移位寄存器41。第一缓存器432数据在update_en=0时从SRAM存储模块30获取新一笔数据;第二缓存器433数据在update_en=1时从SRAM存储模块30获取新一笔数据。以上操作,实现SPI模块40更新发送数据不需要等待时间,在每一个SCLK_COMB下降沿发送数据时,数据都是有效和稳定的。在update_en切换时,第一缓存器432、第二缓存器433的数据都是稳定的,以保证发送移位寄存器41里数据的有效性,在SCLK_COMB的下降沿发送下一笔数据时,新的数据有效并且没有毛刺。

为便于理解,下面结合图2、图4、图5、图7(a)和图7(b)描述本发明实施例的高速SPI通信装置的通信原理:

参见图7(b),当需要发送数据或者接收数据时,SPI模块40会向SRAM存储模块30发送REQ请求(即需要发送数据时,发送Tx_req信号;需要接收数据时,发送Rx_req信号);SRAM存储模块30在判断当前没有系统总线访问,会在1个系统时钟内发出ACK应答(Tx_req信号对应的应答为Tx_ack,Rx_req信号对应的应答为Rx_ack)并完成发送数据tx_data\接收数据rx_data的处理。

具体地,参见图2、图7(a),片选信号CS_N为低电平时,SPI模块40开始工作。当SPI模块40完成一笔数据接收后,发送REQ请求给SRAM存储模块30,SRAM存储模块30在系统总线没有访问时,会及时应答SPI请求(1个系统时钟),把SPI模块40接收缓存器数据rx_data保存至SRAM存储模块30相应位置。

参见图2、图7(a),SPI模块40处于空闲状态时,IDLE=0,开始生成SPI工作时钟信号SCLK_COMB,每当SCLK_COMB中的上升沿达到8个时,update_en信号反转,“乒乓”装载发送数据tx_data到发送移位寄存器41。

综上所述,本发明实施例的高速SPI通信模块,通过SPI模块可采用乒乓数据传输操作,分时从SRAM存储模块获取需要发送的数据,实现高速、大批量地发送数据;SPI模块在完成一笔数据接收时,可将接收到的数据装载至SRAM存储模块,进而可实现高速、大批量地接收数据。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:工业级通用串行总线USB芯片、其唤醒方法及电子设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!