掌桥专利:专业的专利平台
掌桥专利
首页

通信接口的配置方法和通信接口

文献发布时间:2024-04-18 19:52:40



技术领域

本发明涉及芯片技术应用领域,尤其涉及一种通信接口的配置方法和通信接口。

背景技术

随着通信领域的不断发展,无线收发芯片在日常生活中的应用场景变得越来越广泛。工业界通常使用各种各样的接口协议来实现微控制单元(Microcontroller Unit;简称MCU)对无限收发芯片的控制。其中串行外设接口(Serial Peripheral Interface,简称SPI)由于其高速、全双工、同步的特点,成为许多MCU和无限收发芯片之间常用的接口协议。SPI能够使MCU实现对无线收发芯片的各种参数与功能的配置,从而实现通信场合的应用。

SPI接口一般使用四根线:MOSI(主设备数据输出,从设备数据输入,Master InputSlave Output),MISO(主设备数据输入,从设备数据输出,Master Output Slave Input),SCLK(时钟信号,由主设备产生,Serial Clock),片选信号CSB(从设备片选信号,由主设备发出,低位0表示有效,Chip Select)。

现有MCU对无线收发芯片进行寄存器配置或FIFO读写时,主机必须发送对应操作的指令,从机一侧需要对指令进行译码后才能进行数据的传输。译码功能的实现加大了无线收发芯片的复杂度,且译码和无线收发芯片内部状态的切换需要花费一定的时间,降低了数据传输的效率。同时,读写从机寄存器和FIFO之间的切换也只能通过主机一侧更改要发送的指令类型来实现,读写寄存器和FIFO的切换方式不够灵活。而且此种SPI对接方式并不支持对寄存器或FIFO的连续读写,如果想要读写32bit的寄存器,需要进行4次8bit的数据传输或2次16bit的数据传输,不够高效。

针对上述由于现有技术中MCU对无线收发芯片进行寄存器配置或FIFO读写时在译码和读写的过程中耗时过高,导致的数据传输效率低的问题,目前尚未提出有效的解决方案。

发明内容

为解决上述技术问题,本发明实施例期望提供一种通信接口的配置方法和通信接口,以至少解决由于现有技术中MCU对无线收发芯片进行寄存器配置或FIFO读写时在译码和读写的过程中耗时过高,导致的数据传输效率低的问题。

本发明的技术方案是这样实现的:

第一方面,本发明实施例提供一种通信接口,包括:通信接口通过MOSI引脚、MISO引脚、SCLK引脚和NSS引脚与无线收发芯片连接,其中,MISO引脚为主设备输入/从设备输出引脚,用于在从模式下发送数据,在主模式下接收数据;MOSI引脚为主设备输出/从设备输入引脚,用于在主模式下发送数据,在从模式下接收数据;SCLK引脚为串口时钟,用于主设备的输出,从设备的输入;NSS引脚为主设备或从设备选择引脚,用于通过设置NSS[0]作为CSB信号对无线收发芯片的寄存器进行片选,以及通过设置NSS[1]作为FCSB信号对无线收发芯片的FIFO进行片选;其中,产生时钟的一侧称为主设备,另一侧称为从设备;通信接口为单线双向模式,MOSI引脚和MISO引脚合并为安全数字输入输出端口。

可选的,通信接口还包括:发送缓冲器、移位寄存器、STS寄存器和第一CTRL寄存器,其中,发送缓冲器,用于在写操作中,数据写入发送缓冲器;当从设备接收到时钟信号,且在MOSI引脚出现第一数据位时,数据发送过程开始,数据帧格式中的剩余数位存至移位寄存器;当发送缓冲器中的数据传输到移位寄存器时,设置SPI_STS寄存器的TE标志;若设置第一CTRL寄存器的TEIE位,则产生中断。

进一步地,可选的,通信接口还包括:接收缓冲器,其中,接收缓冲器,用于当数据接收完成时,移位寄存器中的数据传送到接收缓冲器,设置STS寄存器中的RNE标志;若设置第一CTRL寄存器中的RNEIE位,则产生中断;在最后一个采样时钟边沿后,设置RNE位为1,移位寄存器中接收到的数据字节被传送到接收缓冲器;当读DT寄存器时,通信接口返回接收缓冲器的数值,并清除RNE位。

可选的,第一CTRL寄存器中增加RF_EN位和FIFO_MODE位,RF_EN位,用于MCU配置通信接口开启对无线收发芯片的读写寄存器模式;FIFO_MODE位,用于MCU配置通信接口开启对无线收发芯片的读写FIFO模式。

进一步地,可选的,通信接口还包括:主控制电路,其中,在第一CTRL寄存器增加NSS_SEL位,用于在主控制电路中使能NSS[0]和NSS[1];当NSS_SEL位设置为0时,NSS[0]有效,NSS[0]作为CSB信号对无线收发芯片中的寄存器片选;当NSS_SLE位设置为1时,NSS[1]有效,NSS[1]作为FCSB信号对无线收发芯片中的寄存器片选。

可选的,主控制电路包括:以总线时钟为参考时钟的定时器,其中,定时器,用于在读写寄存器模式下,定时器在拉低CSB信号时开始计数,当定时器到达计数阈值时,发送第一使能信号,启动数据传输。

进一步地,可选的,当主控制电路检测到数据传输到预设数据时,开启定时器,定时器定时到达计数阈值时,产生第二使能信号,拉高CSB信号。

可选的,通信接口还包括:延时计数器;其中,第一CTRL寄存器中还增加了TIM_CYCLE位,用于配置延迟时间;延时计数器,用于从最后一个SCLK的下降沿开始计数,当延时计数器计时到延迟时间时,拉高FCSB信号;当延时计数器计时到延迟时间的预设倍数时,若传输数据,则拉低FCSB信号;若不传输数据,则保持FCSB信号为高电平。

可选的,通信接口还包括:第二CTRL寄存器,其中,第二CTRL寄存器,用于当通信接口配置为读寄存器模式后,检测MCU发送的地址0,并在SCLK的下降沿前,将第二CTRL寄存器中的BDOE位的电平信号进行切换,以使得将IO口由输出切换为输入。

第二方面,本发明实施例提供一种通信接口的配置方法,应用于上述通信接口,包括:通过配置通信接口的CSB信号为低有效信号,以使得MCU进行读写寄存器;通过配置通信接口的FCSB信号为低有效信号,以使得MCU进行读写FIFO;通过配置通信接口的MOSI引脚和MISO引脚合并为安全数字输入输出端口,以使得MCU与无线收发芯片进行数据传输。

可选的,该方法还包括:配置通信接口为单线双向模式,并设置波特率与数据帧格式;其中,配置通信接口为单线双向模式,并设置波特率与数据帧格式包括:通过第二CTRL寄存器的MCLKP位确定串行时钟波特率;通过配置第二CTRL寄存器的CPOL和CPHA位为0,确定数据传输和串行时钟间的相位关系,其中,相位关系为:串行时钟的下降沿发送数据,串行时钟的上升沿采样数据;通过配置第二CTRL寄存器的DFF16位,确定数据帧格式为8位或16位;通过配置第二CTRL寄存器的LSBEN位为0,确定数据帧格式为先发送或接收最高有效位MSB;如果确定CSB引脚工作在输入模式,在硬件模式下,在数据帧传输期间,配置CSB引脚的电平信号为高电平信号;在软件模式下,配置第二CTRL寄存器的SWNSSEN位和ISS位;如果CSB引脚工作在输出模式,配置第一CTRL寄存器的NSSOE位;通过配置第二CTRL寄存器的BDMODE位,通信接口启用单线双向模式,其中,SCLK引脚作为时钟,主设备使用MOSI引脚,从设备使用MISO引脚进行数据通信;传输的方向由第二CTRL寄存器里的BDOE位控制,当BDOE位为1时,数据输出;当BDOE位为0时,数据输入;通过配置DT寄存器,写入读写的无线收发芯片的地址;通过设置第二CTRL寄存器的MSTEN位,配置通信接口为主设备。

可选的,该方法还包括:配置通信接口为读写无线收发寄存器模式;其中,配置通信接口为读写无线收发寄存器模式包括:通过配置第一CTRL寄存器中NSS_SEL位为0,选择使用CSB信号作为片选信号;通过配置第一CTRL寄存器中RF_EN位为1,开启读写无线收发寄存器模式;通过配置第二CTRL寄存器中EN位为1,使能通信接口。

可选的,通过配置通信接口的FCSB信号为低有效信号,以使得MCU进行读写FIFO包括:通过配置第一CTRL寄存器中NSS_SEL位为1,选择使用FCSB作为片选信号;通过配置第一CTRL寄存器中TIM_CYCLE位,确定FIFO模式下连续读写操作间的延迟时间;通过配置第一CTRL寄存器中FIFO_MODE位为1,开启FIFO模式;通过配置第二CTRL寄存器中SPI_EN位为1,使能通信接口。

本发明实施例提供了一种通信接口的配置方法和通信接口。通过配置通信接口的CSB信号为低有效信号,以使得MCU进行读写寄存器;通过配置通信接口的FCSB信号为低有效信号,以使得MCU进行读写FIFO;通过配置通信接口的MOSI引脚和MISO引脚合并为安全数字输入输出端口,以使得MCU与无线收发芯片进行数据传输,从而能够实现通过MCU对寄存器的配置来实现RF模式和FIFO模式的选择和切换,替代了发送命令式的通信模式,减少了无线收发芯片的译码工作和内部状态反应时间的技术效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明实施例一提供的一种通信接口的示意图;

图2为本发明实施例二提供的一种通信接口的配置方法的流程示意图;

图3为本发明实施例二提供的一种通信接口的配置方法中SPI读寄存器时序的示意图;

图4为本发明实施例二提供的一种通信接口的配置方法中SPI写寄存器时序的示意图;

图5为本发明实施例二提供的一种通信接口的配置方法中SPI读FIFO时序的示意图;

图6为本发明实施例二提供的一种通信接口的配置方法中SPI写FIFO时序的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于限定特定顺序。

还需要说明是,本发明下述各个实施例可以单独执行,各个实施例之间也可以相互结合执行,本发明实施例对此不作具体限制。

本申请实施例涉及的技术名词:

微控制单元:Microcontroller Unit;简称MCU;

串行外设接口:Serial Peripheral Interface,简称SPI;

MOSI:主设备数据输出,从设备数据输入,Master Input Slave Output;

MISO:主设备数据输入,从设备数据输出,Master Output Slave Input;

SCLK:时钟信号,由主设备产生,Serial Clock;

片选信号CSB:从设备片选信号,由主设备发出,低位(Below,低电平有效)0表示有效,Chip Select Below;

SDIO:Secure Digital Input and Output,安全数字输入输出;

MSB:最高有效位,Most Significant Bit;

RF:Radio Frequency,射频。

实施例一

第一方面,本发明实施例提供一种通信接口,图1为本发明实施例一提供的一种通信接口的示意图;如图1所示,本申请实施例提供的通信接口包括:

通信接口通过MOSI引脚、MISO引脚、SCLK引脚和NSS引脚与无线收发芯片连接,其中,MISO引脚为主设备输入/从设备输出引脚,用于在从模式下发送数据,在主模式下接收数据;MOSI引脚为主设备输出/从设备输入引脚,用于在主模式下发送数据,在从模式下接收数据;SCLK引脚为串口时钟,用于主设备的输出,从设备的输入;NSS引脚为主设备或从设备选择引脚,用于通过设置NSS[0]作为CSB信号对无线收发芯片的寄存器进行片选,以及通过设置NSS[1]作为FCSB信号对无线收发芯片的FIFO进行片选;其中,产生时钟的一侧称为主设备,另一侧称为从设备;通信接口为单线双向模式,MOSI引脚和MISO引脚合并为安全数字输入输出端口。

具体的,本申请实施例提供的通信接口在一种优选实现方案中可以为串行外设接口(记作SPI),为了实现MCU针对CMT2300A(即,本申请实施例中的无线收发芯片)的控制,可工作在以ARM Cortex-M系列为内核的芯片上。需要说明的是,本申请实施例提供的无线收发芯片以CMT2300A为例进行说明,以实现本申请实施例提供的一种通信接口为准,具体不做限定。

如图1所示,MISO引脚:主设备输入/从设备输出引脚。MISO引脚在从模式下发送数据,在主模式下接收数据。

MOSI引脚,用于主设备输出/从设备输入引脚。MOSI引脚在主模式下发送数据,在从模式下接收数据。

SCLK引脚,用于串口时钟,作为主设备的输出,从设备的输入。

NSS引脚,用于从设备选择。这是一个可选的引脚,用来选择主/从设备。它的功能是用来作为“片选引脚”,让主设备可以单独地与特定从设备通讯,避免数据线上的冲突。其中NSS[0]和NSS[1]分别作为CSB信号和FCSB信号对无线收发芯片的寄存器或FIFO进行片选。

由于MCU与无线收发芯片通信时,SPI配置为单线双向模式,MISO和MOSI此时既是输入又是输出,合并为同一端口SDIO(即,本申请实施例中的安全数字输入输出端口)。

基于上述,本申请实施例提供的通信接口配置为单线双向的通信方式,只使用了SDIO一根数据线进行传输,数据传输更加直观。

可选的,本申请实施例提供的通信接口还包括:发送缓冲器、移位寄存器、STS寄存器和第一CTRL寄存器,其中,发送缓冲器,用于在写操作中,数据写入发送缓冲器;当从设备接收到时钟信号,且在MOSI引脚出现第一数据位时,数据发送过程开始,数据帧格式中的剩余数位存至移位寄存器;当发送缓冲器中的数据传输到移位寄存器时,设置STS寄存器的TE标志;若设置第一CTRL寄存器的TEIE位,则产生中断。

具体的,如图1所示,数据发送过程中,在写操作中,数据被写入发送缓冲器。当从设备收到时钟信号,并且在MOSI引脚上出现第一个数据位时,发送过程开始(其中,此时第一个位被发送出去)。余下的位(对于8位数据帧格式,还有7位;对于16位数据帧格式,还有15位)被装进移位寄存器。当发送缓冲器中的数据传输到移位寄存器时,SPI_STS寄存器(即,本申请实施例中的STS寄存器)的TE标志被设置,如果设置SPI_CTRL2寄存器(即,本申请实施例中的第一CTRL寄存器)的TEIE位,将会产生中断。

进一步地,可选的,本申请实施例提供的通信接口还包括:接收缓冲器,其中,接收缓冲器,用于当数据接收完成时,移位寄存器中的数据传送到接收缓冲器,设置STS寄存器中的RNE标志;若设置第一CTRL寄存器中的RNEIE位,则产生中断;在最后一个采样时钟边沿后,设置RNE位为1,移位寄存器中接收到的数据字节被传送到接收缓冲器;当读DT寄存器时,通信接口返回接收缓冲器的数值,并清除RNE位。

具体的,如图1所示,数据接收过程中:当数据接收完成时:移位寄存器中的数据传送到接收缓冲器,SPI_STS寄存器中的RNE标志被设置。如果设置了SPI_CTRL2寄存器中的RNEIE位,则产生中断。在最后一个采样时钟边沿后,RNE位被置’1’,移位寄存器中接收到的数据字节被传送到接收缓冲器。当读SPI_DT寄存器(即,本申请实施例中的DT寄存器)时,SPI设备返回这个接收缓冲器的数值。读SPI_DT寄存器时,RNE位被清除。

可选的,第一CTRL寄存器中增加RF_EN位和FIFO_MODE位,RF_EN位,用于MCU配置通信接口开启对无线收发芯片的读写寄存器模式;FIFO_MODE位,用于MCU配置通信接口开启对无线收发芯片的读写FIFO模式。

具体的,如图1所示,在无线收发芯片为CMT2300A芯片的情况下,针对CMT2300A芯片,SPI做出的特殊改进:为了取代MCU发送命令切换SPI传输模式的技术,在CTRL2寄存器中增加了RF_EN和FIFO_MODE位,分别用于MCU配置SPI开启针对CMT2300A的读写寄存器模式(RF模式)和读写FIFO模式。

基于上述,本申请实施例提供的通信接口可以通过MCU对寄存器的配置来实现RF模式和FIFO模式的选择和切换,替代了发送命令式的通信模式,减少了无线收发芯片的译码工作和内部状态反应时间。

进一步地,可选的,本申请实施例提供的通信接口还包括:主控制电路,其中,在第一CTRL寄存器增加NSS_SEL位,用于在主控制电路中使能NSS[0]和NSS[1];当NSS_SEL位设置为0时,NSS[0]有效,NSS[0]作为CSB信号对无线收发芯片中的寄存器片选;当NSS_SLE位设置为1时,NSS[1]有效,NSS[1]作为FCSB信号对无线收发芯片中的寄存器片选。

具体的,如图1所示,在无线收发芯片为CMT2300A芯片的情况下,针对CMT2300A芯片,SPI做出的特殊改进:SPI_CTRL2寄存器增加了NSS_SEL位,用于在主控制电路中使能NSS[0]和NSS[1]。当NSS_SEL设置为0,NSS[0]有效,此时的NSS[0]作为CSB信号对CMT2300A中的寄存器片选。当NSS_SLE设置为1,NSS[1]有效,此时的NSS[1]作为FCSB信号对CMT2300A中的寄存器片选。

基于上述,本申请实施例提供的通信接口使用了CSB和FCSB来对寄存器读写和FIFO读写进行区分切换,十分灵活。

可选的,主控制电路包括:以总线时钟为参考时钟的定时器,其中,定时器,用于在读写寄存器模式下,定时器在拉低CSB信号时开始计数,当定时器到达计数阈值时,发送第一使能信号,启动数据传输。

进一步地,可选的,当主控制电路检测到数据传输到预设数据时,开启定时器,定时器定时到达计数阈值时,产生第二使能信号,拉高CSB信号。

具体的,如图1所示,在无线收发芯片为CMT2300A芯片的情况下,针对CMT2300A芯片,SPI做出的特殊改进:

为了满足CMT2300A芯片在数据传输开始和结束时的时序要求(读写寄存器要求0.5SCLK cycle,读写FIFO要求1SCLK cycle),在主控制电路内设计了以总线时钟为参考时钟的专用定时器(即,本申请实施例中的以总线时钟为参考时钟的定时器),在读写寄存器模式下,定时器会在拉低CSB时开始计数,计数阈值提前设置为大于波特率数值的一半(SCLK是总线时钟根据波特率进行分频后得到的时钟)。

当定时器到达计数阈值时发送使能信号(即,本申请实施例中的第一使能信号)以启动数据传输,即可实现MCU拉低CSB后,数据传输的等待时间大于0.5SCLK cycle的时序要求。同理,主控电路在检测到数据传输到数据7(8bit传输)/数据15(16bit传输)(即,本申请实施例中的预设数据)后,开启专用定时器,定时器定时到达计数阈值后产生使能信号(即,本申请实施例中的第二使能信号),CSB拉高。

可选的,本申请实施例提供的通信接口还包括:延时计数器;其中,第一CTRL寄存器中还增加了TIM_CYCLE位,用于配置延迟时间;延时计数器,用于从最后一个SCLK的下降沿开始计数,当延时计数器计时到延迟时间时,拉高FCSB信号;当延时计数器计时到延迟时间的预设倍数时,若传输数据,则拉低FCSB信号;若不传输数据,则保持FCSB信号为高电平。

具体的,如图1所示,在无线收发芯片为CMT2300A芯片的情况下,针对CMT2300A芯片,SPI做出的特殊改进:

由于FIFO模式下CMT2300A内部状态时间切换需要一定时间,MCU在送出最后一个SCLK的下降沿后,要过至少2us再将FCSB拉高。且两次连续的读写操作之间,FCSB必须拉高至少4us。为了实现该功能,在SPI_CTRL2寄存器中增加了TIM_CYCLE位,用于配置该延迟时间。SPI内部有专门的延迟计数器(即,本申请实施例中的延时计数器)。该延迟计数器从最后一个SCLK的下降沿开始计数,计数单位为SCLK的半个时钟周期。延迟计算公式如下:

该延时计数器计时到Delay定义的时间(即本申请实施例中的延迟时间)后,FCSB拉高。为了满足FCSB拉高时间大于4us,当该延时计数器计时到Delay*3(即,本申请实施例中的延迟时间的预设倍数)的时间后根据是否进行下一笔数据传输会进行一次判断,如果传输,则FCSB拉低,否则FCSB保持高电平。

基于上述,本申请实施例提供的通信接口可以实现数据的连续收发,规避了重复性单笔数据传输反复配置带来的繁琐性以及重复传输造成的大量延迟。

可选的,本申请实施例提供的通信接口还包括:第二CTRL寄存器,其中,第二CTRL寄存器,用于当通信接口配置为读寄存器模式后,检测MCU发送的地址0,并在SCLK的下降沿前,将第二CTRL寄存器中的BDOE位的电平信号进行切换,以使得将IO口由输出切换为输入。

具体的,如图1所示,在无线收发芯片为CMT2300A芯片的情况下,针对CMT2300A芯片,SPI做出的特殊改进:

在SPI的主控电路中设计了读寄存器模式下地址0位检测机制,当SPI配置为读寄存器模式后,会检测MCU发送的地址0,并在此SCLK的下降沿前,将CTRL1(即本申请实施例中的第二CTRL寄存器)中的BDOE位由1切换到0,以将IO口由输出切换为输入。

本发明实施例提供了一种通信接口。通过通信接口通过MOSI引脚、MISO引脚、SCLK引脚和NSS引脚与无线收发芯片连接,其中,MISO引脚为主设备输入/从设备输出引脚,用于在从模式下发送数据,在主模式下接收数据;MOSI引脚为主设备输出/从设备输入引脚,用于在主模式下发送数据,在从模式下接收数据;SCLK引脚为串口时钟,用于主设备的输出,从设备的输入;NSS引脚为主设备或从设备选择引脚,用于通过设置NSS[0]作为CSB信号对无线收发芯片的寄存器进行片选,以及通过设置NSS[1]作为FCSB信号对无线收发芯片的FIFO进行片选;其中,产生时钟的一侧称为主设备,另一侧称为从设备;通信接口为单线双向模式,MOSI引脚和MISO引脚合并为安全数字输入输出端口,从而能够实现通过MCU对寄存器的配置来实现RF模式和FIFO模式的选择和切换,替代了发送命令式的通信模式,减少了无线收发芯片的译码工作和内部状态反应时间的技术效果。

实施例二

第二方面,本发明实施例提供一种通信接口的配置方法,应用于上述实施例一中的通信接口,图2为本发明实施例二提供的一种通信接口的配置方法的流程示意图;如图2所示,本申请实施例提供的通信接口的配置方法包括:

步骤S202,通过配置通信接口的CSB信号为低有效信号,以使得MCU进行读写寄存器;

步骤S204,通过配置通信接口的FCSB信号为低有效信号,以使得MCU进行读写FIFO;

步骤S206,通过配置通信接口的MOSI引脚和MISO引脚合并为安全数字输入输出端口,以使得MCU与无线收发芯片进行数据传输。

具体的,本申请实施例提供的通信接口的配置方法可以应用于实施例一中的通信接口,通过使用两条从设备片选信号CSB和FCSB,分别选择对无限收发芯片的寄存器或FIFO进行读写,无需发送命令切换,十分灵活。并且可以通过主机对SPI的不同配置来改变传输模式,而无需从机一侧进行多余处理。主从收发通过一根数据线SDIO进行,减少了数据传输端口的数量,同时支持数据的连续读写,可以一次性传输多拍数据,提高了传输效率。

其中,低有效的CSB是用于访问寄存器的片选信号,低有效的FCSB是用于访问FIFO的片选信号,两者不能同时设为低。SCLK是串口时钟,最快速度可以到5MHz。无论对于MCU本身,还是外部的无线收发芯片,都是在SCLK的下降沿送出数据,在上升沿采集数据。SDIO是一个双向的脚,用于输入和输出数据。地址和数据部分都是从MSB开始传送。

综上,本申请实施例提供的通信接口的配置方法在读写寄存器和读写FIFO对SPI的配置如下:

一、读写寄存器对SPI的配置:

当访问寄存器的时候,CSB要拉低。然后首先发送一个R/W位,后面跟着7位的寄存器地址。MCU在拉低CSB之后,必须等待至少半个SCLK周期,才能开始发送R/W位。在MCU发送出最后一个SCLK的下降沿之后,必须等待至少半个SCLK周期,再把CSB拉高。

对于图3的读寄存器操作,图3为本发明实施例二提供的一种通信接口的配置方法中SPI读寄存器时序的示意图,MCU和CMT2300A(即,本申请实施例中的无线收发芯片)都会在地址0和数据7之间产生切换IO(SDIO)口的行为。此时CMT2300A会将IO口从输入切换到输出,MCU会将IO口从输出切换到输入。在中间虚线的位置,MCU会在送出SCLK的下降沿前,先将IO口切换为输入;CMT2300A在看到下降沿之后,才会将IO切换为输出。这就避免了两者同时将SDIO设为输出导致电气冲突的情况。图4为本发明实施例二提供的一种通信接口的配置方法中SPI写寄存器时序的示意图。

可选的,本申请实施例提供的通信接口的配置方法还包括:配置通信接口为单线双向模式,并设置波特率与数据帧格式;其中,配置通信接口为单线双向模式,并设置波特率与数据帧格式包括:通过第二CTRL寄存器的MCLKP位确定串行时钟波特率;通过配置第二CTRL寄存器的CPOL和CPHA位为0,确定数据传输和串行时钟间的相位关系,其中,相位关系为:串行时钟的下降沿发送数据,串行时钟的上升沿采样数据;通过配置第二CTRL寄存器的DFF16位,确定数据帧格式为8位或16位;通过配置第二CTRL寄存器的LSBEN位为0,确定数据帧格式为先发送或接收最高有效位MSB;如果确定CSB引脚工作在输入模式,在硬件模式下,在数据帧传输期间,配置CSB引脚的电平信号为高电平信号;在软件模式下,配置第二CTRL寄存器的SWNSSEN位和ISS位;如果CSB引脚工作在输出模式,配置第一CTRL寄存器的NSSOE位;通过配置第二CTRL寄存器的BDMODE位,通信接口启用单线双向模式,其中,SCLK引脚作为时钟,主设备使用MOSI引脚,从设备使用MISO引脚进行数据通信;传输的方向由第二CTRL寄存器里的BDOE位控制,当BDOE位为1时,数据输出;当BDOE位为0时,数据输入;通过配置DT寄存器,写入读写的无线收发芯片的地址;通过设置第二CTRL寄存器的MSTEN位,配置通信接口为主设备。

具体的,配置SPI为单线双向模式,并设置波特率与数据帧格式包括:

第一,通过SPI_CTRL1寄存器(即,本申请实施例中的第二CTRL寄存器)的MCLKP[3:0]位定义串行时钟波特率。

第二,配置SPI_CTRL1寄存器的CPOL和CPHA位为0,定义数据传输和串行时钟间的相位关系(下降沿发送数据,上升沿采样数据)。

第三,配置SPI_CTRL1寄存器的DFF16位来定义8位或16位数据帧格式。

第四,配置SPI_CTRL1寄存器的LSBEN位为0,定义帧格式为先发送/接收MSB。

第五,如果需要CSB引脚工作在输入模式,硬件模式下,在整个数据帧传输期间应把CSB脚连接到高电平;在软件模式下,需设置SPI_CTRL1寄存器的SWNSSEN位和ISS位。如果CSB引脚工作在输出模式,则只需设置NSSOE位。

第六,设置SPI_CTRL1寄存器的BDMODE位,启用单线双向模式,在这个模式下,SCLK引脚作为时钟,主设备使用MOSI引脚而从设备使用MISO引脚作为数据通信。传输的方向由SPI_CTRL1寄存器里的BDOE控制,当这个位是’1’的时候,数据线是输出,否则是输入。(通过BDOE来判断是读还是写)。

第七,设置SPI_DT寄存器,将要读写的无线收发芯片的地址写入。

第八,设置SPI_CTRL1寄存器的MSTEN,配置SPI为主设备。

可选的,本申请实施例提供的通信接口的配置方法还包括:配置通信接口为读写无线收发寄存器模式;其中,配置通信接口为读写无线收发寄存器模式包括:通过配置第一CTRL寄存器中NSS_SEL位为0,选择使用CSB信号作为片选信号;通过配置第一CTRL寄存器中RF_EN位为1,开启读写无线收发寄存器模式;通过配置第二CTRL寄存器中EN位为1,使能通信接口。

具体的,配置SPI为RF模式包括:

第一,配置SPI_CTRL2(即,本申请实施例中的第一CTRL寄存器)中NSS_SEL为0,选择使用CSB作为片选信号。

第二,配置SPI_CTRL2中RF_EN为1,开启RF模式(读写无线收发寄存器)。

第三,配置SPI_CTRL1(即,本申请实施例中的第二CTRL寄存器)中SPI_EN(即,本申请实施例中的EN位)为1,使能SPI设备。

二、读写FIFO对SPI的配置:

在MCU需要访问FIFO的时候,首先要先配置一些寄存器,来设置好FIFO的读/写模式,读写FIFO的时序图如图5和图6所示,图5为本发明实施例二提供的一种通信接口的配置方法中SPI读FIFO时序的示意图;图6为本发明实施例二提供的一种通信接口的配置方法中SPI写FIFO时序的示意图。需要注意的是FCSB的控制和访问寄存器时对CSB的控制略有差异。开始访问的时候,FCSB要先拉低1个时钟周期后,再送出SCLK的上升沿。在送出最后一个SCLK的下降沿后,要过至少2us再将FCSB拉高。两次连续的读写操作之间,FCSB必须拉高至少4us。在进行写FIFO时,第一个bit的数据必须在第一个SCLK的上升沿送出前0.5个时钟周期准备好。

其中,在读写FIFO的过程中,配置SPI为单线双向模式,并设置波特率与数据帧格式与读/写寄存器相同,不再赘述。

可选的,步骤S204中通过配置通信接口的FCSB信号为低有效信号,以使得MCU进行读写FIFO包括:通过配置第一CTRL寄存器中NSS_SEL位为1,选择使用FCSB作为片选信号;通过配置第一CTRL寄存器中TIM_CYCLE位,确定FIFO模式下连续读写操作间的延迟时间;通过配置第一CTRL寄存器中FIFO_MODE位为1,开启FIFO模式;通过配置第二CTRL寄存器中EN位为1,使能通信接口。

具体的,配置SPI为FIFO模式包括:

配置SPI_CTRL2中NSS_SEL为1,选择使用FCSB作为片选信号。

配置SPI_CTRL2中TIM_CYCLE为适当值,以满足FIFO模式下连续读写操作间的2us和4us的延迟时间。延迟时间从最后一笔SCLK的下降沿开始计数,计数单位为SCLK的半个时钟周期,延迟时间的计算公式如下:

配置SPI_CTRL2中FIFO_MODE为1,开启FIFO模式(读写FIFO)。

配置SPI_CTRL1中SPI_EN为1,使能SPI设备。

本发明实施例提供了一种通信接口的配置方法。通过配置通信接口的CSB信号为低有效信号,以使得MCU进行读写寄存器;通过配置通信接口的FCSB信号为低有效信号,以使得MCU进行读写FIFO;通过配置通信接口的MOSI引脚和MISO引脚合并为安全数字输入输出端口,以使得MCU与无线收发芯片进行数据传输,从而能够实现通过MCU对寄存器的配置来实现RF模式和FIFO模式的选择和切换,替代了发送命令式的通信模式,减少了无线收发芯片的译码工作和内部状态反应时间的技术效果。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

相关技术
  • 一种量子通信接口的通信方法及通信系统
  • 模拟通信接口的时序控制方法、装置与电子设备
  • 用于配备在移动终端上的SE的通信接口方法和使用该通信接口方法的SE
  • 用于配备在移动终端上的SE的通信接口方法和使用该通信接口方法的SE
技术分类

06120116329565