支持蓝牙BLE协议的射频收发器及其控制方法与流程

文档序号:19413401发布日期:2019-12-14 00:40阅读:409来源:国知局
支持蓝牙BLE协议的射频收发器及其控制方法与流程

本发明属于无线数据接收和发送技术领域,涉及一种2.4ghz射频收发器,具体涉及为一种支持蓝牙ble协议的射频收发器及其控制方法。



背景技术:

现如今,在射频收发器领域中,目前所采用的ble芯片一般都为soc架构,为了支持ble协议的控制,射频收发器和mcu之间采用快速总线的方式连接。射频收发器只负责ble协议的物理层,其它所有层都是由mcu来负责控制。因此这种结构的ble芯片既要涉及mcu,又要涉及射频收发器,设计难度较大。



技术实现要素:

为了降低通用ble芯片的设计难度,本发明提供旨在一种支持蓝牙ble协议的2.4ghz无线收发器及其控制方法,通过在通用的2.4ghz射频收发器中内置部分需要快速数据控制的ble协议模块,让射频收发器实现部分协议链接层的工作,减小射频收发器和mcu之间的数据量,mcu可直接通过spi接口控制射频收发器以实现ble协议的控制,使得在设计ble芯片时不受mcu限制,只需考虑射频收发器的性能和功能的实现。

为实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现:

一种支持蓝牙ble协议的射频收发器,包括spi接口、register模块、fifointface模块、rx_fifo模块、rx_packet模块、crcgenerator模块、dewhitening模块、2.4ghzreceiver模块、tx_fifo模块、tx_packet模块、crcchecker模块、whitening模块、2.4ghztransmitter模块、fsm_ctrl模块、bitcount模块、addressmatch模块和ifscontrl模块;

所述spi接口的一端用于连接mcu,另一端与所述register模块连接,所述register模块分别与所述fifointface模块、所述fsm_ctrl模块和所述bitcount模块连接,所述fifointface模块连接分别与所述tx_fifo模块和所述rx_fifo模块连接,所述tx_fifo模块与所述tx_packet模块连接,所述tx_packet模块分别与所述fsm_ctrl模块、所述bitcount模块和所述crcgenerator模块连接,所述crcgenerator模块与所述whitening模块连接,所述whitening模块与所述2.4ghztransmitter模块连接,所述2.4ghzreceiver模块分别与所述ifscontrl模块和所述dewhitening模块连接,所述ifscontrl模块与所述2.4ghztransmitter模块连接,所述dewhitening模块与所述crcchecker模块连接,所述crcchecker模块分别与所述rx_packet模块、所述addressmatch模块和所述bitcount模块连接,所述addressmatch模块与所述rx_packet模块连接,所述rx_packet模块分别与fsm_ctrl模块和所述rx_fifo模块连接;

所述spi接口,作为射频收发器和mcu之间的通信接口,可读写数据,射频收发器的所有配置及控制均通过所述spi接口实现;

所述register模块,为一个寄存器组,用于存储所有的配置数据,以及负责所有映射到所述register模块的控制命令及fifo的操作的读写;

所述fifointface模块,负责对所述tx_fifo模块和所述rx_fifo模块进行时序和地址的控制,以及将所述tx_fifo模块和所述rx_fifo模块的接口映射到所述register模块,以便所述spi接口进行读写操作;

所述rx_fifo模块,负责接收数据的存储;

所述tx_fifo模块,负责发射数据的存储;

所述fsm_ctrl模块,为一个主机状态控制模块,负责对所述register模块解析出的所有命令进行处理,并根据命令的不同去控制各个模拟模块和数字模块的工作状态;

所述tx_packet模块,为一个发射数据包处理模块,负责将所述tx_fifo模块里的payload数据,根据ble的phy层协议进行打包处理,然后串行输出;

所述crcgenerator模块,为一个crc校验产生模块,负责在数据包的末尾加上crc校验数据;

所述whitening模块,为一个白化模块,负责对发射的数据进行白化处理;

所述2.4ghztransmitter模块,为一个发射器,负责将需要发射的数据转换成模拟模块需要的数据,然后再通过射频模块把转换后的发射数据进行调制后输出到天线端;

所述2.4ghzreceiver模块,为一个接收器,负责将天线端接收到的无线信号进行解调,再将解调产生的原始数据进行串行输出。

所述dewhitening模块,为一个反白化模块,负责将解调信号进行反白化处理;

所述crcchecker模块,为一个crc检查模块,负责对数据包进行crc校验结果检查;

所述rx_packet模块,为一个接收数据包处理模块,负责对接收到的数据包进行解包处理,将接收到的串行数据包里的payload数据按字节存储到所述rx_fifo模块;

所述bitcount模块,为一个数据位计数模块,负责在发射和接收数据时,从地址结束开始对payload数据位进行计数,然后实时对计数结果与一个可配置的寄存器进行比较,当计数器计数结果达到寄存器值时,该模块会产生一个脉冲信号直接输出到芯片管脚,mcu会将该脉冲信号作为中断事件去执行相应的操作;

所述addressmatch模块,为一个器件地址匹配模块,负责在接收ble协议数据包时,自动对接收到的数据包里器件地址进行匹配,然后给出匹配结果;

所述ifscontrl模块,为一个帧间隔控制计数器模块,由于ble协议规定两个连续的数据包之间必须满足一个时间的间隔要求,即上一帧数据包的最后一结束到将要发射的数据包的第一个位开始的时间,因此该模块可满足协议的帧间隔时间要求,精确控制要发射的数据包的开始发射时间。

进一步的,所述rx_fifo模块和所述tx_fifo模块可根据需要组成一个更长的fifo模块,该fifo模块同时具备存储接收数据和发射数据的功能。

进一步的,所述tx_packet模块具备自动加preamble和address的功能,即在将所述tx_fifo模块里的payload数据根据ble的phy层协议进行打包处理时,在数据中自动添加preamble和address,然后串行输出。

一种支持蓝牙ble协议的射频收发器的控制方法,分为接收控制方法和发射控制方法;

所述的接收控制方法包括以下操作步骤:

步骤1.1)spi接口接收mcu的配置命令,先使能ifscontrl模块,设置addressmatch模块中需要匹配的地址,设置bitcount模块的计数器,最后再启动接收使能命令;

步骤1.2)register模块将spi接口的接收使能命令进行解析,然后传送至fsm_ctrl模块;

步骤1.3)fsm_ctrl模块收到接收指令,启动状态机,打开模拟电路模块的电源,使能2.4ghzreceiver模块、dewhitening模块、crcchecker模块、rx_packet模块;

步骤1.4)2.4ghzreceiver模块将接收处理后的信号传送至dewhitening模块;

步骤1.5)dewhitening模块模块将反白化后的信号传送至crcchecker模块。

步骤1.6)crcchecker模块对信号进行crc检验计算,同时将信号送至下一级rx_packet模块、addressmatch模块和bitcount模块;

步骤1.7)addressmatch模块收到上一级信号对地址进行匹配,给出匹配结果送到rx_packet模块;

步骤1.8)bitcount模块在接收到第一个payload信号时开始计数,当计数到寄存器设定的值时产生中断信号给mcu;

步骤1.9)rx_packet模块将接收到的串行payload数据转成字节数据存储到rx_fifo模块;

步骤1.10)当接收完串行数据的最后一位时,ifscontrl模块启动计数,当控制器接收到需要发射数据包命令时,会根据ifscontrl模块计数结果来控制发射第一个数据的时刻,以满足ble协议对帧间隔时间的要求;

步骤1.11)fsm_ctrl模块收到rx_packet模块的接收完成信号后,使状态机进入idle状态,关闭模拟电路模块的电源,关闭使能2.4ghzreceiver模块、dewhitening模块、crcchecker模块和rx_packet模块,然后给出接收到数据包信号至mcu;

步骤1.12)rx_fifo模块通过fifointface模块映射到register模块,然后mcu通过spi接口读寄存器的方式读取rx_fifo模块中的数据;

所述的发射控制方法包括以下操作步骤:

步骤2.1)spi接口接收mcu的配置命令,先将要发射的数据通过fifointface模块的映射写到tx_fifo模块,然后启动发射使能命令;

步骤2.2)register模块将spi接口的发射使能命令进行解析,然后传送至fsm_ctrl模块;

步骤2.3)fsm_ctrl模块收到发射指令,启动状态机,打开模拟电路模块的电源,使能2.4ghztransmitter模块、whitening模块、crcgenerator模块、tx_packet模块;

步骤2.4)tx_packet模块读取tx_fifo中的payload数据,对要发射的数据打包处理并进行并串转换后送到crcgenerator模块;

步骤2.5)crcgenerator模块对payload数据进行crc计算,并将计算的crc值跟在最后一个payload数据后面,一起传送到whitening模块;

步骤2.6)whitening模块对要发射的数据进行白化处理后传送到2.4ghztransmitter模块;

步骤2.7)2.4ghztransmitter模块根据ifscontrl模块的计数结果,当达到ble协议的帧间隔时间要求时,开始发射第一个bit数据;

步骤2.8)当发射完所有数据时,tx_packet模块将发射完成信号传送至fsm_ctrl模块;

步骤2.9)fsm_ctrl模块收到发射完成信号后,使状态机进入idle状态,关闭模拟电路模块的电源,关闭2.4ghztransmitter模块、whitening模块、crcgenerator模块和tx_packet模块。

与现有技术相比,本发明的有益效果是:

本发明通过在通用的2.4ghz射频收发器中内置部分需要快速数据控制的ble协议模块(bitcount模块,addressmatch模块和ifscontrl模块),让射频收发器实现部分协议链接层的工作,减小射频收发器和mcu之间的数据量,mcu可直接通过spi接口控制射频收发器以实现ble协议的控制,使得在设计ble芯片时不受mcu限制,只需考虑射频收发器的性能和功能的实现。

相比于传统的soc解决方案,本发明对于蓝牙射频收发器的物理层和协议层做了清晰地分割,能够通过spi接口满足蓝牙协议中的关键收发时间窗口要求,且设计灵活,只需更改底层寄存器即可满足不同的协议参数要求,便于与外部mcu集成。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,下面以本发明的较佳实施例,并结合附图进行详细说明。本发明的具体实施方式由以下实施例及其附图详细给出。

附图说明

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

图1为本发明的支持蓝牙ble协议的射频收发器的结构示意图。

具体实施方式

下面将参考附图并结合实施例,来详细说明本发明。

参见图1所示,一种支持蓝牙ble协议的射频收发器,包括spi接口1、register模块2、fifointface模块3、rx_fifo模块4、rx_packet模块5、crcgenerator模块6、dewhitening模块7、2.4ghzreceiver模块8、tx_fifo模块9、tx_packet模块10、crcchecker模块11、whitening模块12、2.4ghztransmitter模块13、fsm_ctrl模块14、bitcount模块15、addressmatch模块16和ifscontrl模块17;

所述spi接口1的一端用于连接mcu,另一端与所述register模块2连接,所述register模块2分别与所述fifointface模块3、所述fsm_ctrl模块14和所述bitcount模块15连接,所述fifointface模块3连接分别与所述tx_fifo模块9和所述rx_fifo模块4连接,所述tx_fifo模块9与所述tx_packet模块10连接,所述tx_packet模块10分别与所述fsm_ctrl模块14、所述bitcount模块15和所述crcgenerator模块6连接,所述crcgenerator模块6与所述whitening模块12连接,所述whitening模块12与所述2.4ghztransmitter模块13连接,所述2.4ghzreceiver模块8分别与所述ifscontrl模块17和所述dewhitening模块7连接,所述ifscontrl模块17与所述2.4ghztransmitter模块13连接,所述dewhitening模块7与所述crcchecker模块11连接,所述crcchecker模块11分别与所述rx_packet模块5、所述addressmatch模块16和所述bitcount模块15连接,所述addressmatch模块16与所述rx_packet模块5连接,所述rx_packet模块5分别与fsm_ctrl模块14和所述rx_fifo模块4连接;

所述spi接口1,作为射频收发器和mcu之间的通信接口,可读写数据,射频收发器的所有配置及控制均通过所述spi接口1实现;

所述register模块2,为一个寄存器组,用于存储所有的配置数据,以及负责所有映射到所述register模块2的控制命令及fifo的操作的读写;

所述fifointface模块3,负责对所述tx_fifo模块9和所述rx_fifo模块4进行时序和地址的控制,以及将所述tx_fifo模块9和所述rx_fifo模块4的接口映射到所述register模块2,以便所述spi接口1进行读写操作;

所述rx_fifo模块4,负责接收数据的存储;

所述tx_fifo模块9,负责发射数据的存储;

所述fsm_ctrl模块14,为一个主机状态控制模块,负责对所述register模块2解析出的所有命令进行处理,并根据命令的不同去控制各个模拟模块和数字模块的工作状态;

所述tx_packet模块10,为一个发射数据包处理模块,负责将所述tx_fifo模块9里的payload数据,根据ble的phy层协议进行打包处理,然后串行输出;

所述crcgenerator模块6,为一个crc校验产生模块,负责在数据包的末尾加上crc校验数据;

所述whitening模块12,为一个白化模块,负责对发射的数据进行白化处理;

所述2.4ghztransmitter模块13,为一个发射器,负责将需要发射的数据转换成模拟模块需要的数据,然后再通过射频模块把转换后的发射数据进行调制后输出到天线端;

所述2.4ghzreceiver模块8,为一个接收器,负责将天线端接收到的无线信号进行解调,再将解调产生的原始数据进行串行输出。

所述dewhitening模块7,为一个反白化模块,负责将解调信号进行反白化处理;

所述crcchecker模块11,为一个crc检查模块,负责对数据包进行crc校验结果检查;

所述rx_packet模块5,为一个接收数据包处理模块,负责对接收到的数据包进行解包处理,将接收到的串行数据包里的payload数据按字节存储到所述rx_fifo模块4;

所述bitcount模块15,为一个数据位计数模块,负责在发射和接收数据时,从地址结束开始对payload数据位进行计数,然后实时对计数结果与一个可配置的寄存器进行比较,当计数器计数结果达到寄存器值时,该模块会产生一个脉冲信号直接输出到芯片管脚,mcu会将该脉冲信号作为中断事件去执行相应的操作;

所述addressmatch模块16,为一个器件地址匹配模块,负责在接收ble协议数据包时,自动对接收到的数据包里器件地址进行匹配,然后给出匹配结果;

所述ifscontrl模块17,为一个帧间隔控制计数器模块,由于ble协议规定两个连续的数据包之间必须满足一个时间的间隔要求,即上一帧数据包的最后一结束到将要发射的数据包的第一个位开始的时间,因此该模块可满足协议的帧间隔时间要求,精确控制要发射的数据包的开始发射时间。

进一步的,所述rx_fifo模块4和所述tx_fifo模块9可根据需要组成一个更长的fifo模块,该fifo模块同时具备存储接收数据和发射数据的功能。

进一步的,所述tx_packet模块10具备自动加preamble和address的功能,即在将所述tx_fifo模块9里的payload数据根据ble的phy层协议进行打包处理时,在数据中自动添加preamble和address,然后串行输出。

参见图1所示,一种支持蓝牙ble协议的射频收发器的控制方法,分为接收控制方法和发射控制方法;

所述的接收控制方法包括以下操作步骤:

步骤1.1)spi接口1接收mcu的配置命令,先使能ifscontrl模块17,设置addressmatch模块16中需要匹配的地址,设置bitcount模块15的计数器,最后再启动接收使能命令;

步骤1.2)register模块2将spi接口1的接收使能命令进行解析,然后传送至fsm_ctrl模块14;

步骤1.3)fsm_ctrl模块14收到接收指令,启动状态机,打开模拟电路模块的电源,使能2.4ghzreceiver模块8、dewhitening模块7、crcchecker模块11、rx_packet模块5;

步骤1.4)2.4ghzreceiver模块8将接收处理后的信号传送至dewhitening模块7;

步骤1.5)dewhitening模块7模块将反白化后的信号传送至crcchecker模块11。

步骤1.6)crcchecker模块11对信号进行crc检验计算,同时将信号送至下一级rx_packet模块5、addressmatch模块16和bitcount模块15;

步骤1.7)addressmatch模块16收到上一级信号对地址进行匹配,给出匹配结果送到rx_packet模块5;

步骤1.8)bitcount模块15在接收到第一个payload信号时开始计数,当计数到寄存器设定的值时产生中断信号给mcu;

步骤1.9)rx_packet模块5将接收到的串行payload数据转成字节数据存储到rx_fifo模块4;

步骤1.10)当接收完串行数据的最后一位时,ifscontrl模块17启动计数,当控制器接收到需要发射数据包命令时,会根据ifscontrl模块17计数结果来控制发射第一个数据的时刻,以满足ble协议对帧间隔时间的要求;

步骤1.11)fsm_ctrl模块14收到rx_packet模块5的接收完成信号后,使状态机进入idle状态,关闭模拟电路模块的电源,关闭使能2.4ghzreceiver模块8、dewhitening模块7、crcchecker模块11和rx_packet模块5,然后给出接收到数据包信号至mcu;

步骤1.12)rx_fifo模块4通过fifointface模块3映射到register模块2,然后mcu通过spi接口1读寄存器的方式读取rx_fifo模块4中的数据;

所述的发射控制方法包括以下操作步骤:

步骤2.1)spi接口1接收mcu的配置命令,先将要发射的数据通过fifointface模块3的映射写到tx_fifo模块9,然后启动发射使能命令;

步骤2.2)register模块2将spi接口1的发射使能命令进行解析,然后传送至fsm_ctrl模块14;

步骤2.3)fsm_ctrl模块14收到发射指令,启动状态机,打开模拟电路模块的电源,使能2.4ghztransmitter模块13、whitening模块12、crcgenerator模块6、tx_packet模块10;

步骤2.4)tx_packet模块10读取tx_fifo中的payload数据,对要发射的数据打包处理并进行并串转换后送到crcgenerator模块6;

步骤2.5)crcgenerator模块6对payload数据进行crc计算,并将计算的crc值跟在最后一个payload数据后面,一起传送到whitening模块12;

步骤2.6)whitening模块12对要发射的数据进行白化处理后传送到2.4ghztransmitter模块13;

步骤2.7)2.4ghztransmitter模块13根据ifscontrl模块17的计数结果,当达到ble协议的帧间隔时间要求时,开始发射第一个bit数据;

步骤2.8)当发射完所有数据时,tx_packet模块10将发射完成信号传送至fsm_ctrl模块14;

步骤2.9)fsm_ctrl模块14收到发射完成信号后,使状态机进入idle状态,关闭模拟电路模块的电源,关闭2.4ghztransmitter模块13、whitening模块12、crcgenerator模块6和tx_packet模块10。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1