BLE广播前导码
上一文章已经介绍了BLE包在空中发送的比特流,那么前导码是怎么决定的呢?
一.回顾
广播包的接入地址,在空中的比特流如下,先发6,再发d,先发LSB,再发MSB,从左往右。
二.前导码回顾
前导码就要么是0xAA(1010 1010b),要么是0x55(0101 0101b),他们是根据与其相连的bit决定的,为了保证空中包做到01或者10交替的连贯性,从而选择0xAA或者0x55。
这样做是为了,用于接收机执行频率同步、符号定时判断和自动增益控制等。具体话我不是搞通讯的,我也不懂。
三.广播前导码
与前导码相连的是接入地址。对于广播包,接入地址是固定的,所以与前导码相连的是0x6,而0x6中与前导码相连的是LSB位。
xxxx xxxx 0110 1011 …
为了保证01交替的连贯性,所以
0101 0101 0110 1011 …
所以前导码在空中的包是 0101 0101
四.结论
空中包是 0101 0101
那么转换回来就是 1010 1010
对于的十六进制是 0xAA
总而言之:
当接入地址的最低位为 0 时, 那么前导码为0xAA,即 10101010b, 如果是 1 时,前导码为 01010101b,目的是保证报文的前 9 个 bit 都是交替位。