基于fpga的自定义可变位宽spi总线协议的实现系统的制作方法
【专利摘要】本实用新型涉及信号处理技术领域,提供一种基于FPGA的自定义可变位宽SPI总线协议的实现系统,该系统包括时钟分频模块、地址计数模块、模式选择模块、控制状态机、并串转换模块、片选分配模块、数据计数模块。本实用新型提出的技术方案通过FPGA实现自定义可变位宽的SPI总线协议,完全兼容于标准SPI协议时序,该系统同时提供了地址/控制位宽、数据位宽和片选数量的扩展,占用资源少、工作频率高。
【专利说明】
基于FPGA的自定义可变位宽SPI总线协议的实现系统
技术领域
[0001]本实用新型属于信号处理技术领域,特别涉及一种基于FPGA的自定义可变位宽S PI总线协议的实现系统。
【背景技术】
[0002]SPI(Serial Peripheral Interface,串行外围设备接口)是由Motorola公司最先提出的一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。
[0003]在频谱监控领域中,几乎所有的射频模块都采用SPI总线作为控制总线,而国内的射频模块厂商一般是在SPI总线的基础上进行自定义修改,对使用最多的16bit地址和8bit数据的位宽进行了增减,产生了一系列的自定义实例标准,比如地址位宽变为20位,数据位宽变为3位,图1为ADI公司的一种SPI协议的时序图,如图1所示,该SPI协议使用了3线传输模式,SD1信号表示数据输入/输出线,其中R/W、W1、W0以及A12?AO构成了 16bit的地址/控制位宽,D7-D0构成8bit的数据位宽。
[0004]传统的微控制器或处理器在对这些具备自定义位宽的SPI协议的射频模块进行控制时,会遇到位宽不匹配的问题,例如,假设一个M⑶的SPI单元的最大位宽为32bit,而射频模块需求为40bit,此时MCU的SPI单元就不能满足射频模块SPI协议的传输要求。MCU要解决自定义的SPI位宽匹配的问题,一个通用的办法就是用GP1(通用输入/输出)管脚来模拟自定义SPI总线的时序,这种方法能够较方便的解决位宽不匹配的问题,但模拟时序会存在总线频率较低、下发延迟大的问题。
【实用新型内容】
[0005]【要解决的技术问题】
[0006]本实用新型的目的是提供一种基于FPGA的自定义可变位宽SPI总线协议的实现系统,通过FPGA实现自定义可变位宽的SPI总线协议。
[0007]【技术方案】
[0008]本实用新型是通过以下技术方案实现的。
[0009]本实用新型涉及一种基于FPGA的自定义可变位宽SPI总线协议的实现系统,包括时钟分频模块、地址计数模块、模式选择模块、控制状态机、并串转换模块、片选分配模块、数据计数模块,所述时钟分频模块的输入端与本地时钟连接,所述时钟分频模块的一个输出端与地址计数模块连接,所述地址计数模块的输入端接收地址/控制信息的位宽配置参数,所述数据计数模块的输入端接收输入数据的位宽配置参数,所述模式选择模块的输入端接收模式配置参数,所述并串转换模块的输入端接收地址/控制信息和输入数据,所述并串转换模块的输出端与SPI数据线连接,所述地址计数模块的另一个输出端、模式选择模块的输出端、并串转换模块的控制端、数据计数模块的输出端、片选分配模块的输入端均与控制状态机连接。
[0010]作为一种优选的实施方式,所述模式选择模块被配置成:根据模式配置参数选择工作模式并将选择的工作模块传递给控制状态机。
[0011]作为另一种优选的实施方式,所述控制状态机被配置成:根据地址计数模块、数据计数模块、模式选择模块输出的参数来控制并串转换模块的工作时序,根据片选配置信息对片选分配模块的输出信号进行分配。
[0012]作为另一种优选的实施方式,所述并串转换模块被配置成:根据控制状态机的指示信号,将输入的地址/控制信息和输入数据进行合并,然后将合并后的数据按照时钟分频模块输出的时钟进行串并转换,转换的同时将串行数据输出到SPI数据线上。
[0013]【有益效果】
[0014]本实用新型提出的技术方案具有以下有益效果:
[0015](I)本实用新型提供的系统通过FPGA实现自定义可变位宽的SPI总线协议,完全兼容于标准SPI协议时序,该系统同时提供了地址/控制位宽、数据位宽和片选数量的扩展,占用资源少、工作频率高。
[0016](2)该系统对于国产的多种射频模块控制具有较好的通用性,可在各种FPGA芯片中方便的进行移植,具有很高的可复用性。
【附图说明】
[0017]图1为本实用新型的实施例一提供的基于FPGA的自定义可变位宽SPI总线协议的实现系统的原理框图。
【具体实施方式】
[0018]为使本实用新型的目的、技术方案和优点更加清楚,下面将对本实用新型的【具体实施方式】进行清楚、完整的描述。
[0019]图1为本实用新型实施例一提供的基于FPGA的自定义可变位宽SPI总线协议的实现系统的原理框图。如图1所示,该系统I包括时钟分频模块U、地址计数模块12、模式选择模块13、控制状态机14、并串转换模块15、片选分配模块16、数据计数模块17。时钟分频模块11的输入端与本地时钟连接,时钟分频模块11的一个输出端与地址计数模块12连接,地址计数模块12的输入端接收地址/控制信息的位宽配置参数,数据计数模块17的输入端接收输入数据的位宽配置参数,模式选择模块13的输入端接收模式配置参数,并串转换模块15的输入端接收地址/控制信息和输入数据,并串转换模块15的输出端与SPI数据线连接,地址计数模块12的另一个输出端、模式选择模块13的输出端、并串转换模块15的控制端、数据计数模块17的输出端、片选分配模块16的输入端均与控制状态机14连接。
[0020]本实施例中,时钟分频模块11通过对输入本地时钟进行分频并将分频后的频率作为SPI工作时钟频率,其中分频比为本地时钟和SPI工作时钟的比值,例如SPI工作时钟频率为50MHz,本地时钟为200MHz时,分频比为200MHz/50MHz = 4。
[0021 ]本实施例中,模式选择模块13根据模式配置参数选择工作模式并将选择的工作模块传递给控制状态机14,模式选择的结果传递给控制状态机14后,控制状态机14根据传递值对SPI输出管脚的状态进行设置。其中,模式配置参数包括:
[0022](l)MSB(Most Significant Bit,最高有效位)和LSB(Least Significant Bit,最低有效位)优选级,即先发送MSB还是LSB ;
[0023](2)数据采样时序,即数据采样是在时钟上升沿进行还是在时钟下降沿进行;
[0024](3)空闲状态的SCK电平值,即空闲状态时的SCK电平值为高电平还是低电平。
[0025]本实施例中,地址计数模块12接收地址/控制信息的位宽配置参数并进行计数,将计数结果发送至控制状态机14。因此地址/控制信息的位宽配置参数直接影响到地址计数器的值以及SPI串行数据中的地址/控制信息的长度。
[0026]本实施例中,数据计数模块17的输入端接收输入数据的位宽配置参数并进行计数,将计数结果发送至控制状态机14。因此输入数据的位宽配置参数直接影响到地址计数器的值以及SPI串行数据中的数据长度。
[0027]本实施例中,控制状态机14是整个系统的指挥核心,具体地,控制状态机14根据地址计数模块12、数据计数模块17、模式选择模块13输出的参数来控制并串转换模块15的工作时序,根据片选配置信息对片选分配模块16的输出信号进行分配。另外,控制状态机14还负责整个系统的开始/结束以及发送传输完成指示信号和回读数据。
[0028]本实施例中,并串转换模块15根据控制状态机14的指示信号,将输入的地址/控制信息和输入数据进行合并,然后将合并后的数据按照时钟分频模块11输出的时钟进行串并转换,转换的同时将串行数据输出到SPI数据线上。
[0029]本实施例中,片选分配模块16的输出端连接SPI设备,通过片选分配模块16输出的片选信号选择不同的SPI设备进行控制,实现了多个SPI设备的分时复用,节省了外设管脚数量,降低了布线复杂度。
[0030]本实施例提供的基于FPGA的自定义可变位宽SPI总线协议的实现系统具有以下特征:
[0031](I)自定义SPI总线的地址位宽可变,变动范围为O?128bit;
[0032](2)自定义SPI总线的数据位宽可变,变动范围为O?128bit;
[0033](3)可在一个SPI数据段传输周期内动态改变地址和数据位宽;
[0034](4)自定义SPI总线的工作频率可达到50MHz,突破了标准规定的25MHz;
[0035](5)能够实现SPI协议的所有时序模式;
[0036](6)具备更高的时序精度,可达ns级;
[0037](7)具备可变数量的片选信号,最大支持8个片选输出;
[0038](8)支持在3线模式和4线模式中切换。
[0039]从以上实施例可以看出,本实用新型实施例提供的系统通过FPGA实现自定义可变位宽的SPI总线协议,完全兼容于标准SPI协议时序,该系统同时提供了地址/控制位宽、数据位宽和片选数量的扩展,占用资源少、工作频率高。另外,该系统对于国产的多种射频模块控制具有较好的通用性,可在各种FPGA芯片中方便的进行移植,具有很高的可复用性。
[0040]需要说明,以上描述的实施例是本实用新型的一部分实施例,而不是全部实施例,也不是对本实用新型的限制。基于本实用新型的实施例,本领域普通技术人员在不付出创造性劳动前提下所获得的所有其他实施例,都属于本实用新型的保护范围。
【主权项】
1.一种基于FPGA的自定义可变位宽SPI总线协议的实现系统,其特征在于包括时钟分频模块、地址计数模块、模式选择模块、控制状态机、并串转换模块、片选分配模块、数据计数模块,所述时钟分频模块的输入端与本地时钟连接,所述时钟分频模块的一个输出端与地址计数模块连接,所述地址计数模块的输入端接收地址/控制信息的位宽配置参数,所述数据计数模块的输入端接收输入数据的位宽配置参数,所述模式选择模块的输入端接收模式配置参数,所述并串转换模块的输入端接收地址/控制信息和输入数据,所述并串转换模块的输出端与SPI数据线连接,所述地址计数模块的另一个输出端、模式选择模块的输出端、并串转换模块的控制端、数据计数模块的输出端、片选分配模块的输入端均与控制状态机连接。2.根据权利要求1所述的基于FPGA的自定义可变位宽SPI总线协议的实现系统,其特征在于所述模式选择模块被配置成:根据模式配置参数选择工作模式并将选择的工作模块传递给控制状态机。3.根据权利要求1所述的基于FPGA的自定义可变位宽SPI总线协议的实现系统,其特征在于所述控制状态机被配置成:根据地址计数模块、数据计数模块、模式选择模块输出的参数来控制并串转换模块的工作时序,根据片选配置信息对片选分配模块的输出信号进行分配。4.根据权利要求1所述的基于FPGA的自定义可变位宽SPI总线协议的实现系统,其特征在于所述并串转换模块被配置成:根据控制状态机的指示信号,将输入的地址/控制信息和输入数据进行合并,然后将合并后的数据按照时钟分频模块输出的时钟进行串并转换,转换的同时将串行数据输出到SPI数据线上。
【文档编号】G06F13/42GK205563555SQ201620285931
【公开日】2016年9月7日
【申请日】2016年4月7日
【发明人】刘小成, 莫舸舸, 张笑语
【申请人】成都华日通讯技术有限公司