一种实现多个从设备与SPI主设备快速通讯方法
技术领域
本发明涉及电子技术领域,尤其涉及一种实现多个从设备与SPI主设备快速通讯方法。
背景技术
随着物联网技术的快速发展,越来越多的物联网设备正在快速进入人们的生活。SPI作为物联网中微控制器芯片(MCU)、传感器芯片和射频芯片之间标准通信接口之一,越来越受到人们的关注。MCU通常为物联网中的主控芯片,在应用当中,往往需要通过SPI接口连接多个传感器芯片以及射频芯片。如何能通过一个SPI主模块,快速的与不同配置的多个从设备进行通信,已经成为当前MCU芯片设计中的核心技术点之一。
现有SPI主设备设计的技术中,如图1所示,SSNx是SPI从设备选择信号,每一个SSNx信号可以与一个从设备连接,控制主设备是否与该从设备通信。对每一个从设备,MOSI信号和CLK信号复用。MISOx信号为从设备输出给主设备的数据信号,每一个从设备对应一根,与SSNx信号相对应。图1中CPHA、CPOL是SPI标准协议中的控制字,Endian是SPI数据传输过程中使用的大小端设置,BaudRate是通信的波特率设置。
现有技术中CPHA/CPOL/Endian/BandRate这些设置寄存器仅仅有一组,在主设备在与多个支持不同配置的从设备进行通信前,需要软件更改这些寄存器的配置,增加了通信的时间。
发明内容
本发明实施例的目的是提供一种实现多个从设备与SPI主设备快速通讯方法,能够减少主设备与从设备直接通信的设置时间,加快主从设备的通信响应速度。
为实现上述目的,本发明实施例提供了一种实现多个从设备与SPI主设备快速通讯方法,包括以下步骤:
获取所述第一从设备的第一设备信息,将所述第一设备信息发送至预设的寄存器组配置模块,以控制所述预设的寄存器组配置模块根据所述第一设备信息生成多个配置信息,并将所述多个配置信息发送至选择器模块;
获取所述第一从设备的第一信号,并将所述第一信号发送至所述选择器模块,以控制所述选择器模块根据所述多个配置信息,选择对应的第一配置寄存器组;
通过所述第一配置寄存器组将对应的参数信息发送至SPI主控逻辑模块,以使所述SPI主控逻辑模块将所述参数信息作为当前通信的参数配置。
进一步的,所述预设的寄存器组配置模块包括多个配置寄存器组,每个配置寄存器组均包括采样边沿设置寄存器CPHA、时钟极性配置寄存器CPOL、大小端设置寄存器Endian,以及波特率配置寄存器BandRate。
进一步的,一个配置寄存器组对应一个从设备。
进一步的,SPI主设备在与不同的从设备通信时,可通过总线件对每个配置寄存器组中的寄存器进行参数设置。
进一步的,所述选择器模块包括4个选择器。
进一步的,所述4个选择器分别为CPHA选择器、CPOL选择器、Endian选择器,以及BandRate选择器。
实施本发明实施例,具有如下有益效果:
本发明提供一种实现多个从设备与SPI主设备快速通讯方法,包括获取第一从设备的第一设备信息,将第一设备信息发送至预设的寄存器组配置模块,以控制预设的寄存器组配置模块根据第一设备信息生成多个配置信息,并将多个配置信息发送至选择器模块;获取第一从设备的第一信号,并将第一信号发送至选择器模块,以控制选择器模块根据多个配置信息,选择对应的第一配置寄存器组;通过第一配置寄存器组将对应的参数信息发送至SPI主控逻辑模块,以使SPI主控逻辑模块将参数信息作为当前通信的参数配置,能够减少主设备与从设备直接通信的设置时间,加快主从设备的通信响应速度。
附图说明
图1是现有技术中的支持多从设备的SPI主设备的电路结构示意图;
图2是本发明提供的实现多个从设备与SPI主设备快速通讯方法的一种实施例的流程示意图;
图3是本发明提供的实现多个从设备与SPI主设备快速通讯方法的一种实施例的电路结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图2,图2是本发明提供的实现多个从设备与SPI主设备快速通讯方法的一种实施例的流程示意图。如图2所示,该认证方法包括步骤S1至步骤S3,各步骤具体如下:
S1,获取第一从设备的第一设备信息,将所述第一设备信息发送至预设的寄存器组配置模块,以控制所述预设的寄存器组配置模块根据所述第一设备信息生成多个配置信息,并将所述多个配置信息发送至选择器模块。
在本实施例中,所述预设的寄存器组配置模块包括多个配置寄存器组,每个配置寄存器组均包括采样边沿设置寄存器CPHA、时钟极性配置寄存器CPOL、大小端设置寄存器Endian,以及波特率配置寄存器BandRate。
其中,一个配置寄存器组对应一个从设备,每个寄存器组分别对每个支持的从设备的传输进行设置。
需要说明的是,SPI主设备在与不同的从设备通信时,可通过总线件对每个配置寄存器组中的寄存器进行参数设置。
S2,获取所述第一从设备的第一信号,并将所述第一信号发送至所述选择器模块,以控制所述选择器模块根据所述多个配置信息,选择对应的第一配置寄存器组。
在本实施例中,所述选择器模块包括4个选择器,所述4个选择器分别为CPHA选择器、CPOL选择器、Endian选择器,以及BandRate选择器。
具体的,选择器1的每个输入与每个寄存器组中的CPHA相连接,选择器2的输入与每个寄存器组中的CPOL相连接,选择器3的输入与每个寄存器组中的Endian相连接,选择器4的输入与每个寄存器组中的BandRate相连接。
每个选择器的输出均由SSNx信号(从选择信号)控制,根据选择当前需要与不同的从通信,即SSNx信号的不同,来选择每个选择器的输出,每个选择器的输出信号,作为SPI主控逻辑当前的参数配置。
需要说明的是,SSNx信号在大多数设计方案中来自寄存器,软件可以通过系统总线对其编程控制。CPHA/CPOL/Endian/BandRate这些均为SPI主设备控制寄存器,可以由软件进行配置,其值在不同从设备中可能支持的方式也有差别。主设备在和不同的从设备通信时,需要根据从设备支持的方式不同,由软件通过总线件对其进行设置。
S3,通过所述第一配置寄存器组将对应的参数信息发送至SPI主控逻辑模块,以使所述SPI主控逻辑模块将所述参数信息作为当前通信的参数配置。
请参见图3,图3是本发明提供的实现多个从设备与SPI主设备快速通讯方法的一种实施例的电路结构示意图,具体诠释了本发明方法的工作原理:
CPHAx/CPOLx/Endianx/BandRatex寄存器组是对现有技术方案拓展的寄存器组,它的标号与从设备选择信号SSNx相对应。每一组CPHAx/CPOLx/Endianx/BandRatex寄存器与选择器(MUX)的一个输入相连接,MUX的输出由SSNx信号控制。当主设备选择与标号为a的从设备进行通信时,MUX根据SSNa信号,选择CPHAa/CPOLa/Endiana/BandRatea寄存器组作为输出,发送给SPI Master Control Logic模块作为当前使用的配置。
主设备在与从设备通信前,需要设置所有需要与主设备通信的CPHAx/CPOLx/Endianx/BandRatex寄存器组的值。在主设备和从设备在通信的过程中,主设备不再需要对CPHAx/CPOLx/Endianx/BandRatex寄存器组进行设置,仅需要按需求选择当前与之通信的从设备即可,MUX选择器会根据SSNx信号自动选择当前哪个CPHAx/CPOLx/Endianx/BandRatex寄存器组的值作为当前使用的寄存器组。
由上可见,本发明实施例提供的一种实现多个从设备与SPI主设备快速通讯方法,包括获取第一从设备的第一设备信息,将第一设备信息发送至预设的寄存器组配置模块,以控制预设的寄存器组配置模块根据第一设备信息生成多个配置信息,并将多个配置信息发送至选择器模块;获取第一从设备的第一信号,并将第一信号发送至选择器模块,以控制选择器模块根据多个配置信息,选择对应的第一配置寄存器组;通过第一配置寄存器组将对应的参数信息发送至SPI主控逻辑模块,以使SPI主控逻辑模块将参数信息作为当前通信的参数配置,采用本发明提供的实施例,具有如下有益效果:
通过对每一个从设备,增加一组CPHAx/CPOLx/Endianx/BandRatex寄存器,使得主设备在与不同的从设备通信前,不需要软件修改CPHA/CPOL/Endian/BandRate寄存器进行设置,减少了通信设置时间,加快了主从设备的通信响应速度。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。