嗨,对话框中,
我们已经做了一个prodtest测试:prodtest.exe -p 71 pkt_tx 2402 37 0 10000
发送10000个包大约花费6.294秒,速度约为1589个包/秒。
看起来不够高,应该在2340包/秒以上。
(
包字节长度=1(序言)+4(同步字)+2(头)+37(有效载荷)+3(CRC)=47字节,
包位长度= 47*8=376位,
在Ble_1Mbit模式下,发送一个包需要376 us,如果将两个包之间的间隔设置为51 us,
速度应为1000000 / (376 + 51)= 2342
)
我们对其他厂商的类似soc在相同条件下做了相同的测试,TX/RX速度约为2320包/秒。
DA14585 ble栈有什么限制吗?
事实上,我们确实想要提高扫描(RX)速度尽可能快,以避免soc处理数据包时丢包。
DA14xxx在功耗上有很大的优势,我们希望在我们的新项目中使用。
BR /彼得
$ pwd / F / DA14531dev / sDK / 6.0.12.1020.2 /双星/主机/ windows / prod_test_cmds peter@DESKTOP-CSQCF3D MINGW32 / F / DA14531dev / sDK / 6.0.12.1020.2 /双星/主机/ windows / prod_test_cmds时间。美元/ prodtest.exe 37 - p 71 pkt_tx 2402 0 10000状态= 0 0 0 m0.000s sys 0 m0.015s m6.294s用户
设备:
嗨,彼得•罗
根据蓝牙LE核心规范,直接测试模式下每个过渡的LE测试包长度是正确的。在包长度为37字节的情况下,LE测试包是47字节(376位),正如前面已经提到的。但是,计算到LE测试包之间的间隔是错误的。根据规范,这个间隔是不可配置的,它是249 usec。参见图4.7:蓝牙核心规范5.0版和第6节F部分直接测试模式下LE直接测试模式下的LE测试包间隔。报文间隔为:
I(L) = cell [(376 + 249) / 625] = cell [(376 + 249) / 625] = cell [(376 + 249) / 625
因此,速度将是:1000000 /(376 + 625)= 1000000 / 625 = 1600包/秒
在蓝牙堆栈中没有任何限制。
谢谢,PM_DIalog
嗨,对话框中,
非常感谢您的快速回复。
由于DA14685抗议发送方的限制,我们使用其他测试仪(可以设置其包间隔)作为发送方,我们可以得到的最高DA14585抗议RX速度约为1620个包/秒。
我们猜测我们不能获得超过1620包/秒的高速的原因是DA14585射频接收机在收到包后需要休息(睡眠)。
稍后我们将尝试其他方法来提高速度。
谢谢你,彼得
嗨,彼得•罗
你能告诉我你是如何设置不同的间隔的吗?
谢谢,PM_Dialog
嗨,对话框中,
事实上,可以设定包间隔的测试仪是一个DIY设备,它的射频无线电提供了InterFrame Spacing参数来改变包间隔。
我们对DA14695做了同样的测试,最好的速度大约是1652包/秒。DA14xxx系列中似乎存在一个可配置的寄存器或计时器。
我们正在通过文档和sdk寻找。
DA14xxx系列具有功耗大、体积小的优点,可以构建RF集群,同时接收来自所有通道的数据包。
通常情况下,对于广告包扫描,SDK只提供了一种标准的方式来依次扫描广告通道,不能只扫描一个特定的通道。
我们正试图修改产品到一个共同的发送者和接收者发送或接收任何类型的包,如测试,广告,用户定义等。
现在我们可以使用修改后的prodtest或plw_fw来发送和接收一些数据包,如测试、广告等。
谢谢你,彼得