BLE协议栈如何直接控制RF
大神们,问一下如何直接控制RF对无线电数据包的收发。通过HCI命令控制LL层吗?谢了
为什么要直接控制RF呢?
从协议栈调用其实是简化了协议层的东西,如果要直接调用RF,实际上操作的东西就复杂了,而且对操作的时效性要求很高啊
你好,
可以这样做,但是不推荐。
SDK里面有一个例程host_test,其上位机接口即为HCI接口,相应SDK里面有一个文档介绍HCI_Vendor的文档,推荐你去看一下。
另外,TI的小工具,例如,Btool以及HCI_TEST都是基于HCI commend直接控制的。
Hi , Mr kqian0327
十分感谢您的解答帮助。我们主要是希望通过基于cc2541完成TOF上的测距,在TI官方提供的
CC253x System-on-Chip Solution for 2.4-GHz IEEE 802.15.4 and ZigBee® Applications
CC2540/41 System-on-Chip Solution for 2.4-GHz Bluetooth® low energy Applications User's Guide 中,我们通过对chapter 22中timer2 和chapter 25 中 CC2541 Proprietary Mode Radio 的阅读和学习了解,发现进入到Link Layer Engine 中可以完成对TX和RX 以及ACK的时间捕获,进而如技术手册上说的完成时间测定。但是现在我们的问题是,如何直接控制RF完成收发,我们能够直接对LL层直接操作,和如何操作?当然,还有我们对自身这个想法产生了怀疑。但是,这一点又驱使我们继续深入尝试。
通过与IEEE上大神们发表的关于用CC2530实现TOF测距的论文方案对比,发现有很大的差别,毕竟相比zigbee与ble在数据包上就存在差异。希望您能够给予进一步的指导,辛苦您了。
Hi WBJ
十分感谢您给予的解答和建议。但是我们希望能够实现基于CC2541的tof测距,在阅读过TI官方的技术文档后,发现需要经过LL层直接进行操作,而我们现阶段主要问题是,如何在协议栈中直接控制LL层,进而实现对RF的控制。所以,问题是我们该如何在OSAL和协议栈中,找到进行LL层控制的入口? 希望您能给予进一步的指导.谢谢了。
CC2541支持跑TI的蓝牙协议栈 和 自定义的 通讯协议 如果是TI的蓝牙协议栈,调用的接口在GAP层,LL层的接口可以从ll.h文件看到 但是直接调用能否使用或者对程序有什么影响我没有尝试过
如果是自定义的通讯协议则是走的不是蓝牙协议了,可以直接控制底层的接口。