This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Packet Sniffer软件显示CRC的格式



我这段时间学习4.0协议里的BLE,遇到了一个关于CRC的bit ordering的问题,希望社区里的大牛能帮忙解答一下,谢谢!

我在4.0协议的vol. 6 part B 1.2中看到了关于BLE包的CRC的规定,其中要求CRC按照大端在前(MSB first)的格式传输。然后我用Packet Sniffer采集的BLE数据包如下:

根据协议声明,PDU里的各个域应该是按照从小端(LSB)到大端(MSB)的顺序排列的,显示的时候每个字节都按正常的大端到小端顺序显示,这些都没有问题。

因此由图可知,PDU Header应该是:00 13,AdvA应该是:E4 1F 99 E5 C5 78,AdvData是02 01 05 03 19 C1 03 05 02 12 18 0F 18。

然后我按照BLE协议中定义的CRC生成方法计算了整个PDU的CRC,得到的结果是1111 0011 0100 1100 1110 0101,根据协议规定,CRC是从大端到小端传输的,因此CRC的值应该是0xF34CE5,但是如果将其认为是小端到大端表示的话则CRC就是0xA732CF,即与图中显示的相同。

我对此感到很困惑,不知道是我弄错了协议的内容还是packet sniffer本身的显示有问题,哪位大神能帮我解答一下是哪里出了问题?谢谢!