一种SPI控制器及基于SPI控制器的通信方法技术

技术编号:36079140 阅读:16 留言:0更新日期:2022-12-24 10:52
本申请属于集成电路控制技术领域,提出了一种SPI控制器及基于SPI控制器的通信方法。该方法解决了现有技术中的不同运行频率的设备间数据传输速度较慢的问题。该SPI控制器中的APB接口模块,用于根据控制核的配置指令配置第一控制模块、第二控制模块和SPI接口模块的工作状态;第二控制模块,用于根据第一控制模块、第二控制模块和SPI接口模块的工作状态,将第一设备通过AXI接口模块发送的数据写入存储模块,AXI接口模块和第一设备支持AXI通信协议;存储模块,用于存储数据;第二控制模块,还用于将存储模块中的数据通过SPI接口模块发送给第二设备,SPI接口模块和第二设备支持SPI通信协议。信协议。信协议。

【技术实现步骤摘要】
一种SPI控制器及基于SPI控制器的通信方法


[0001]本申请属于集成电路控制
,尤其涉及一种SPI控制器及基于SPI控制器的通信方法。

技术介绍

[0002]目前,在集成电路的片上系统中,高速域设备(如微控制核)通常连接在高速域总线(如AXI总线)上实现其与其他设备间的数据传输,基于SPI通信协议的低速域设备(如片上SPI FLASH)通常连接在低速域总线(如SPI总线)上,实现其与其他设备间的数据传输。而当高速域设备和低速域设备之间进行数据传输时,则在高速总线和低速总线之间需要使用至少一个片上低速总线(如APB总线)或者片上中低速总线(如AHB总线)进行数据传输的过渡。例如,参见图1或图2所示,在高速域设备和低速域设备之间通过AXI总线、AHB总线、APB总线和SPI总线传输数据。
[0003]但是,在上述数据传输的过程中,数据经过过渡总线(如AHB总线、APB总线)时需要进行协议的转换,以按照过渡总线对应的通信协议进行数据访问和传输,过程复杂,需要耗费大量的传输时间,直接影响了高速域设备与低速域设备之间的传输和访问速度。例如高速域设备在执行芯片启动(Boot)时,通常需要基于SPI FLASH通信协议从低速域设备(如SPI FLASH)中获取用作芯片初始化的程序代码,基于上述数据通信的方式,则需要耗费大量的传输时间,且传输速度较慢,而程序代码的获取速度决定着芯片的启动速度,从而影响芯片的使用性能。

技术实现思路

[0004]有鉴于此,本申请实施例提供了一种SPI控制器及基于SPI控制器的通信方法,以解决现有技术中的高速域设备与基于SPI通信协议的低速域设备间数据访问和传输的过程复杂,使得数据传输速度较慢的问题。
[0005]本申请实施例的第一方面提供了一种SPI控制器,包括APB接口模块、AXI接口模块、SPI接口模块、第一控制模块、第二控制模块和存储模块;APB接口模块,用于根据控制核的配置指令配置第一控制模块、第二控制模块和SPI接口模块的工作状态;第二控制模块,用于根据第一控制模块、第二控制模块和SPI接口模块的工作状态,将第一设备通过AXI接口模块发送的数据写入存储模块,AXI接口模块和第一设备支持AXI通信协议;存储模块,用于存储数据;第二控制模块,还用于将存储模块中的数据通过SPI接口模块发送给第二设备,SPI接口模块和第二设备支持SPI通信协议。
[0006]结合第一方面,在第一方面的第一种可能实现方式中,第一控制模块的工作状态包括电性参数、时钟参数、中断使能和中断清除;第一控制模块还用于保存配置后的工作状态和产生中断时的中断源信息。
[0007]结合第一方面,在第一方面的第二种可能实现方式中,第二控制模块的工作状态包括AXI读写使能、DMA操作、本地访问相关操作、存储模块的状态;第二控制模块还用于保
存工作状态。
[0008]结合第一方面,在第一方面的第三种可能实现方式中,第一控制模块包括以下寄存器:MODE_CFG寄存器、CLKDIV寄存器、INT_EN寄存器、INT_STATUS寄存器、INT_CLEAR寄存器以及STATUS寄存器;第二控制模块包括以下寄存器:BURST_CFG_EN寄存器、AXI_ACCESSEN寄存器、BURST_MODE_CFG寄存器、BURST_ADDR_MAX寄存器、READ_CMD寄存器、DUMMYBYTE_CNT寄存器、PROG_CMD寄存器、READ_TIME寄存器、DMA_CFG_1寄存器、DMA_CFG_2寄存器、RX_FIFO_CTRL寄存器、TX_FIFO_CTRL寄存器以及FIFO_STATUS寄存器;SPI接口模块包括以下寄存器:SPI_FLASH_STATUS寄存器、SPI_CMD寄存器、SPI_ADDR寄存器、SPI_TRANS_EN寄存器、SPI_TRANS_CTRL寄存器、SPI_WDATA寄存器以及SPI_RDATA寄存器。
[0009]结合第一方面,在第一方面的第四种可能实现方式中,APB接口模块,用于根据控制核的配置指令配置第一控制模块、第二控制模块和SPI接口模块的工作状态,包括:APB接口模块,用于根据控制核的配置指令分别向第一控制模块中的MODE_CFG寄存器、CLKDIV寄存器以及INT_EN寄存器执行写操作,从而执行SPI控制器的电性参数配置、时钟参数配置以及中断使能配置;APB接口模块,用于根据控制核的配置指令分别向第二控制模块中的BURST_CFG_EN寄存器、AXI_ACCESSEN寄存器、BURST_MODE_CFG寄存器、BURST_ADDR_MAX寄存器、READ_CMD寄存器/PROG_CMD寄存器、DUMMYBYTE_CNT寄存器、READ_TIME寄存器执行写操作,从而使能本地操作与AXI读写操作,并配置本地读/写操作所需的配置参数;APB接口模块,用于根据控制核的配置指令对SPI接口模块中的SPI_TRANS_EN及SPI_TRANS_CTRL寄存器执行写操作,从而执行SPI接口模块的通信参数配置并启动SPI传输。
[0010]结合第一方面,在第一方面的第五种可能实现方式中,APB接口模块,用于根据控制核的配置指令配置第一控制模块、第二控制模块和SPI接口模块的工作状态,包括:APB接口模块,用于根据控制核的配置指令分别向第一控制模块中的MODE_CFG寄存器、CLKDIV寄存器、INT_EN寄存器执行写操作,从而执行SPI控制器的电性参数配置、时钟参数配置以及中断使能配置;APB接口模块,用于根据控制核的配置指令分别向第二控制模块中的BURST_CFG_EN寄存器、AXI_ACCESSEN寄存器、TX_FIFO_CTRL寄存器/RX_FIFO_CTRL寄存器执行写操作,从而使能AXI读写操作并配置TX FIFO/RX FIFO的配置参数,配置参数包括:TX_FIFO_CTRL寄存器/RX_FIFO_CTRL寄存器存储状态的设定值;APB接口模块,用于根据控制核的配置指令分别向SPI接口模块的SPI_CMD寄存器、SPI_ADDR寄存器、SPI_TRANS_CTRL寄存器以及SPI_TRANS_EN寄存器执行写操作,从而执行SPI接口模块的通信参数配置,并启动SPI传输。
[0011]结合第一方面,在第一方面的第六种可能实现方式中,APB接口模块,用于根据控制核的配置指令配置第一控制模块、第二控制模块和SPI接口模块的工作状态,包括:APB接口模块,用于根据控制核的配置指令分别向第一控制模块中的MODE_CFG寄存器、CLKDIV寄存器、INT_EN寄存器执行写操作,从而执行SPI控制器的电性参数配置、时钟参数配置以及中断使能配置;APB接口模块,用于根据控制核的配置指令分别向第二控制模块中的BURST_CFG_EN寄存器、AXI_ACCESSEN寄存器、TX_FIFO_CTRL寄存器/RX_FIFO_CTRL寄存器、DMA_CFG_1寄存器、DMA_CFG_2寄存器执行写操作,从而使能AXI读写操作并配置TX FIFO/RX FIFO的配本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种SPI控制器,其特征在于,包括APB接口模块、AXI接口模块、SPI接口模块、第一控制模块、第二控制模块和存储模块;所述APB接口模块,用于根据控制核的配置指令配置所述第一控制模块、所述第二控制模块和所述SPI接口模块的工作状态;所述第二控制模块,用于根据所述第一控制模块、所述第二控制模块和所述SPI接口模块的工作状态,将第一设备通过所述AXI接口模块发送的数据写入所述存储模块,所述AXI接口模块和所述第一设备支持AXI通信协议;存储模块,用于存储所述数据;所述第二控制模块,还用于将所述存储模块中的数据通过所述SPI接口模块发送给第二设备,所述SPI接口模块和所述第二设备支持SPI通信协议。2.根据权利要求1所述的SPI控制器,其特征在于,所述第一控制模块的工作状态包括电性参数、时钟参数、中断使能和中断清除;所述第一控制模块还用于保存配置后的所述工作状态和产生中断时的中断源信息。3.根据权利要求1所述的SPI控制器,其特征在于,所述第二控制模块的工作状态包括AXI读写使能、DMA操作、本地访问相关操作、存储模块的状态;所述第二控制模块还用于保存所述工作状态。4.根据权利要求2或3所述的SPI控制器,其特征在于,所述第一控制模块包括以下寄存器:MODE_CFG寄存器、CLKDIV寄存器、INT_EN寄存器、INT_STATUS寄存器、INT_CLEAR寄存器以及STATUS寄存器;所述第二控制模块包括以下寄存器:BURST_CFG_EN寄存器、AXI_ACCESSEN寄存器、BURST_MODE_CFG寄存器、BURST_ADDR_MAX寄存器、READ_CMD寄存器、DUMMYBYTE_CNT寄存器、PROG_CMD寄存器、READ_TIME寄存器、DMA_CFG_1寄存器、DMA_CFG_2寄存器、RX_FIFO_CTRL寄存器、TX_FIFO_CTRL寄存器以及FIFO_STATUS寄存器;所述SPI接口模块包括以下寄存器:SPI_FLASH_STATUS寄存器、SPI_CMD寄存器、SPI_ADDR寄存器、SPI_TRANS_EN寄存器、SPI_TRANS_CTRL寄存器、SPI_WDATA寄存器以及SPI_RDATA寄存器。5.根据权利要求2~4任一项所述的SPI控制器,其特征在于,所述APB接口模块,用于根据控制核的配置指令配置所述第一控制模块、所述第二控制模块和所述SPI接口模块的工作状态,包括:所述APB接口模块,用于根据控制核的配置指令分别向所述第一控制模块中的所述MODE_CFG寄存器、所述CLKDIV寄存器以及所述INT_EN寄存器执行写操作,从而执行所述SPI控制器的电性参数配置、时钟参数配置以及中断使能配置;所述APB接口模块,用于根据控制核的配置指令分别向所述第二控制模块中的所述BURST_CFG_EN寄存器、所述AXI_ACCESSEN寄存器、所述BURST_MODE_CFG寄存器、所述BURST_ADDR_MAX寄存器、所述READ_CMD寄存器/所述PROG_CMD寄存器、所述DUMMYBYTE_CNT寄存器、所述READ_TIME寄存器执行写操作,从而使能本地操作与AXI读写操作,并配置本地读/写操作所需的配置参数;
所述APB接口模块,用于根据控制核的配置指令对所述SPI接口模块中的所述SPI_TRANS_EN及所述SPI_TRANS_CTRL寄存器执行写操作,从而执行所述SPI接口模块的通信参数配置并启动SPI传输。6.根据权利要求2~4任一项所述的SPI控制器,其特征在于,所述APB接口模块,用于根据控制核的配置指令配置所述第一控制模块、所述第二控制模块和所述SPI接口模块的工作状态,包括:...

【专利技术属性】
技术研发人员:李皇彭睿皇甫一凡王文青
申请(专利权)人:深圳市国微电子有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1