基于FPGA的自定义可变位宽SPI总线协议的实现系统技术方案

技术编号:13684816 阅读:97 留言:0更新日期:2016-09-08 20:55
本实用新型专利技术涉及信号处理技术领域,提供一种基于FPGA的自定义可变位宽SPI总线协议的实现系统,该系统包括时钟分频模块、地址计数模块、模式选择模块、控制状态机、并串转换模块、片选分配模块、数据计数模块。本实用新型专利技术提出的技术方案通过FPGA实现自定义可变位宽的SPI总线协议,完全兼容于标准SPI协议时序,该系统同时提供了地址/控制位宽、数据位宽和片选数量的扩展,占用资源少、工作频率高。

【技术实现步骤摘要】

本技术属于信号处理
,特别涉及一种基于FPGA的自定义可变位宽SPI总线协议的实现系统
技术介绍
SPI(Serial Peripheral Interface,串行外围设备接口)是由Motorola公司最先提出的一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。在频谱监控领域中,几乎所有的射频模块都采用SPI总线作为控制总线,而国内的射频模块厂商一般是在SPI总线的基础上进行自定义修改,对使用最多的16bit地址和8bit数据的位宽进行了增减,产生了一系列的自定义实例标准,比如地址位宽变为20位,数据位宽变为3位,图1为ADI公司的一种SPI协议的时序图,如图1所示,该SPI协议使用了3线传输模式,SDIO信号表示数据输入/输出线,其中R/W、W1、W0以及A12~A0构成了16bit的地址/控制位宽,D7-D0构成8bit的数据位宽。传统的微控制器或处理器在对这些具备自定义位宽的SPI协议的射频模块进行控制时,会遇到位宽不匹配的问题,例如,假设一个MCU的SPI单元的最大位宽为32bit,而射频模块需求为40bit,此时MCU的SPI单元就不能满足射频模块SPI协议的传输要求。MCU要解决自定义的SPI位宽匹配的问题,一个通用的办法就是用GPIO(通用输入/输出)管脚来模拟自定义SPI总线的时序,这种方法能够较方便的解决位宽不匹配的问题,但模拟时序会存在总线频率较
低、下发延迟大的问题。
技术实现思路
【要解决的技术问题】本技术的目的是提供一种基于FPGA的自定义可变位宽SPI总线协议的实现系统,通过FPGA实现自定义可变位宽的SPI总线协议。【技术方案】本技术是通过以下技术方案实现的。本技术涉及一种基于FPGA的自定义可变位宽SPI总线协议的实现系统,包括时钟分频模块、地址计数模块、模式选择模块、控制状态机、并串转换模块、片选分配模块、数据计数模块,所述时钟分频模块的输入端与本地时钟连接,所述时钟分频模块的一个输出端与地址计数模块连接,所述地址计数模块的输入端接收地址/控制信息的位宽配置参数,所述数据计数模块的输入端接收输入数据的位宽配置参数,所述模式选择模块的输入端接收模式配置参数,所述并串转换模块的输入端接收地址/控制信息和输入数据,所述并串转换模块的输出端与SPI数据线连接,所述地址计数模块的另一个输出端、模式选择模块的输出端、并串转换模块的控制端、数据计数模块的输出端、片选分配模块的输入端均与控制状态机连接。作为一种优选的实施方式,所述模式选择模块被配置成:根据模式配置参数选择工作模式并将选择的工作模块传递给控制状态机。作为另一种优选的实施方式,所述控制状态机被配置成:根据地址计数模块、数据计数模块、模式选择模块输出的参数来控制并串转换模块的工作时序,根据片选配置信息对片选分配模块的输出信号进行分配。作为另一种优选的实施方式,所述并串转换模块被配置成:根据控制状态
机的指示信号,将输入的地址/控制信息和输入数据进行合并,然后将合并后的数据按照时钟分频模块输出的时钟进行串并转换,转换的同时将串行数据输出到SPI数据线上。【有益效果】本技术提出的技术方案具有以下有益效果:(1)本技术提供的系统通过FPGA实现自定义可变位宽的SPI总线协议,完全兼容于标准SPI协议时序,该系统同时提供了地址/控制位宽、数据位宽和片选数量的扩展,占用资源少、工作频率高。(2)该系统对于国产的多种射频模块控制具有较好的通用性,可在各种FPGA芯片中方便的进行移植,具有很高的可复用性。附图说明图1为本技术的实施例一提供的基于FPGA的自定义可变位宽SPI总线协议的实现系统的原理框图。具体实施方式为使本技术的目的、技术方案和优点更加清楚,下面将对本技术的具体实施方式进行清楚、完整的描述。图1为本技术实施例一提供的基于FPGA的自定义可变位宽SPI总线协议的实现系统的原理框图。如图1所示,该系统1包括时钟分频模块11、地址计数模块12、模式选择模块13、控制状态机14、并串转换模块15、片选分配模块16、数据计数模块17。时钟分频模块11的输入端与本地时钟连接,时钟分频模块11的一个输出端与地址计数模块12连接,地址计数模块12的输入端接收地址/控制信息的位宽配置参数,数据计数模块17的输入端接收输入数据
的位宽配置参数,模式选择模块13的输入端接收模式配置参数,并串转换模块15的输入端接收地址/控制信息和输入数据,并串转换模块15的输出端与SPI数据线连接,地址计数模块12的另一个输出端、模式选择模块13的输出端、并串转换模块15的控制端、数据计数模块17的输出端、片选分配模块16的输入端均与控制状态机14连接。本实施例中,时钟分频模块11通过对输入本地时钟进行分频并将分频后的频率作为SPI工作时钟频率,其中分频比为本地时钟和SPI工作时钟的比值,例如SPI工作时钟频率为50MHz,本地时钟为200MHz时,分频比为200MHz/50MHz=4。本实施例中,模式选择模块13根据模式配置参数选择工作模式并将选择的工作模块传递给控制状态机14,模式选择的结果传递给控制状态机14后,控制状态机14根据传递值对SPI输出管脚的状态进行设置。其中,模式配置参数包括:(1)MSB(Most Significant Bit,最高有效位)和LSB(Least Significant Bit,最低有效位)优选级,即先发送MSB还是LSB;(2)数据采样时序,即数据采样是在时钟上升沿进行还是在时钟下降沿进行;(3)空闲状态的SCK电平值,即空闲状态时的SCK电平值为高电平还是低电平。本实施例中,地址计数模块12接收地址/控制信息的位宽配置参数并进行计数,将计数结果发送至控制状态机14。因此地址/控制信息的位宽配置参数直接影响到地址计数器的值以及SPI串行数据中的地址/控制信息的长度。本实施例中,数据计数模块17的输入端接收输入数据的位宽配置参数并进
行计数,将计数结果发送至控制状态机14。因此输入数据的位宽配置参数直接影响到地址计数器的值以及SPI串行数据中的数据长度。本实施例中,控制状态机14是整个系统的指挥核心,具体地,控制状态机14根据地址计数模块12、数据计数模块17、模式选择模块13输出的参数来控制并串转换模块15的工作时序,根据片选配置信息对片选分配模块16的输出信号进行分配。另外,控制状态机14还负责整个系统的开始/结束以及发送传输完成指示信号和回读数据。本实施例中,并串转换模块15根据控制状态机14的指示信号,将输入的地址/控制信息和输入数据进行合并,然后将合并后的数据按照时钟分频模块11输出的时钟进行串并转换,转换的同时将串行数据输出到SPI数据线上。本实施例中,片选分配模块16的输出端连接SPI设备,通过片选分配模块16输出的片选信号选择不同的SPI设备进行控制,实现了多个SPI设备的分时复用,节省了外设管脚数量,降低了布线复杂度。本实施例提供本文档来自技高网
...

【技术保护点】
一种基于FPGA的自定义可变位宽SPI总线协议的实现系统,其特征在于包括时钟分频模块、地址计数模块、模式选择模块、控制状态机、并串转换模块、片选分配模块、数据计数模块,所述时钟分频模块的输入端与本地时钟连接,所述时钟分频模块的一个输出端与地址计数模块连接,所述地址计数模块的输入端接收地址/控制信息的位宽配置参数,所述数据计数模块的输入端接收输入数据的位宽配置参数,所述模式选择模块的输入端接收模式配置参数,所述并串转换模块的输入端接收地址/控制信息和输入数据,所述并串转换模块的输出端与SPI数据线连接,所述地址计数模块的另一个输出端、模式选择模块的输出端、并串转换模块的控制端、数据计数模块的输出端、片选分配模块的输入端均与控制状态机连接。

【技术特征摘要】
1.一种基于FPGA的自定义可变位宽SPI总线协议的实现系统,其特征在于包括时钟分频模块、地址计数模块、模式选择模块、控制状态机、并串转换模块、片选分配模块、数据计数模块,所述时钟分频模块的输入端与本地时钟连接,所述时钟分频模块的一个输出端与地址计数模块连接,所述地址计数模块的输入端接收地址/控制信息的位宽配置参数,所述数据计数模块的输入端接收输入数据的位宽配置参数,所述模式选择模块的输入端接收模式配置参数,所述并串转换模块的输入端接收地址/控制信息和输入数据,所述并串转换模块的输出端与SPI数据线连接,所述地址计数模块的另一个输出端、模式选择模块的输出端、并串转换模块的控制端、数据计数模块的输出端、片选分配模块的输入端均与控制状态机连接。2.根据权利要求1所述的基于...

【专利技术属性】
技术研发人员:刘小成莫舸舸张笑语
申请(专利权)人:成都华日通讯技术有限公司
类型:新型
国别省市:四川;51

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

1