【WCH蓝牙系列芯片】-基于CH32V208开发板—RF_PHY-2.4G数据传输

-------------------------------------------------------------------------------------------------------------------------------------

    2.4GHz无线数据传输技术,是一种短距离无线传输技术,双向传播,抗干扰性强,传输距离远,耗电少的优点。在沁恒的官网EVT例程中,BLE中有RF_PHY非标准无线收发例程,是与蓝牙跑同一个协议栈,RF_PHY 是WCH提供的一个调用底层2.4g收发器的一个接口,这个底层接口是在BLE的收发数据的基础上,基于这个例程对2.4G数据收发进行一个讲解。

一、2.4G单向通信

  在初始化中,需要配置:
配通信地址:0x71764129
CRC校验值:0x555555
通信频道:39
通信频率:2480000
模式选择:LLE_MODE_BASIC | LLE_MODE_EX_CHANNEL;
状态变化:RF_2G4StatusCallBack回调函数
数据长度:最大长度251
然后调用RF_Config函数完成配置,通过返回值是否为0进行判断配置是否成功,0为成功,非0失败。
再配置是TX发送模式,还是RX接收模式
无论是在RF_TX还是RF_RX中接收包类型和发送包类型都要一致,这里写了0xFF、0xFF就是表示被所有匹配类型接收和接收所有匹配类型。

    在TX发送模式下,开一个TMOS任务事件,触发2.4G无线进行发送功能。每1S往接收端发送一包10个数据TX_DATA。这样TX发送模式就完成了。

    在RX接收端中,通过回调函数RF_2G4StatusCallBack中通过进入TX_MODE_RX_DATA中,

    先判断RX接收端的CRC校验是否通过,如果通过,就打印发送端和接收端的RSSI值,还有数据长度,和打印的每一个数据。

如果CRC校验未通过的,会根据具体的问题打印对应错误标识。

    由于在刚才配置过程中,2.4G模式配置中,模式选择:LLE_MODE_BASIC | LLE_MODE_EX_CHANNEL;  这个basic模式发送后无回包数据,

所以只是TX模式往RX模式的单向传输的一种方式。可以通过串口打印数据来观察现象。

 

二、2.4G双向通信

如果想要进行TX-RX模式之间进行双向传输,需要将2.4G模式配置中将basic模式进行修改,

LLE_MODE_BASIC 表示基本模式,在发送或接收完成后进入空闲状态。基本模式不会自动切换到接收或发送状态,而是保持在空闲状态。

LLE_MODE_AUTO 表示自动模式,在发送完毕后自动切换到接收状态,在接收完毕后自动切换到发送状态。
    在接收端处理完打印输出数据后,立刻执行了,RX模式的发送函数的事件,进行发送TX_DATA2的十个数据。

在回调函数中的TX_MODE_RX_DATA中,添加CRC校验函数,打印接收到的数据和信号强度RSSI的函数。

 

然后,我们通过串口打印来观察RX模式和TX模式的双方传输数据情况。可以看到TX模式和RX模式都是一来一回的进行传输数据。

在EVT中,也是有专门2.4G自动模式的例程,也可以参考--RF_PHY_Auto:非标准无线收发自动切换例程,进行分析和处理。

posted on 2024-01-04 17:21  凡仕  阅读(233)  评论(0编辑  收藏  举报