
BLE
Trstary
每天掉一根,知识涨一截。
展开
-
一.蓝牙广播包解析
蓝牙广播包解析注意:蓝牙发包都是低bit先发一.物理层前导码:10101010b(0xaa)或者01010101b(0x55),根据接入地址与其相连的bit来决定,为了保证0和1交替。接入地址:广播的接入地址是0x8e89bed6,这是固定的。PDU:数据包。CRC:对PDU进行24位的CRC校验。这是最原始的包,通过白化后便可发出去。二.PDU包头:里面保存着广播类型和广播...原创 2019-06-14 18:20:48 · 3314 阅读 · 0 评论 -
二.BLE广播包实例分析——Sniffer
BLE广播包实例分析对下文中一些名词和概念不懂得话,希望能够自行百度一.抓包这里使用nrf52810进行抓包,上位机是Sniffer。我们取地址红框这个包为例子进行分析。二.网络信息分析这部分是不属于蓝牙包的,我们也必须要懂。三.包结构1.广播结构如前面的一个博客介绍,蓝牙的广播包结构如下,抓包工具是不抓前导码的。2.广播的内容广播了Flags,0x02代表长度,0x0...原创 2019-06-25 15:46:20 · 1661 阅读 · 0 评论 -
三.非协议栈实现BLE蓝牙广播(2.4G实现BLE广播)
非协议栈实现BLE广播(2.4G实现BLE广播)现在的人啊,用协议栈用多了,BLE物理层是怎么广播都不知道了,且听我慢慢道来这里实现的BLE广播包是基于上一博客介绍的,我要通过2.4G来发出这个广播包一.BLE的大小端,获取比特流例如,广播的接入地址是0x8e89bed6,原始数据却是0xd6be898e,意味着先发0xd6而0xd6又是怎么发送的呢,当然下先发6再发d,6 = 01...原创 2019-06-25 17:07:58 · 4552 阅读 · 4 评论 -
四.BLE广播前导码
BLE广播前导码上一文章已经介绍了BLE包在空中发送的比特流,那么前导码是怎么决定的呢?一.回顾广播包的接入地址,在空中的比特流如下,先发6,再发d,先发LSB,再发MSB,从左往右。二.前导码回顾前导码就要么是0xAA(1010 1010b),要么是0x55(0101 0101b),他们是根据与其相连的bit决定的,为了保证空中包做到01或者10交替的连贯性,从而选择0xAA或者0x...原创 2019-06-26 10:09:26 · 1591 阅读 · 1 评论 -
五.BLE反白化
BLE反白化白化先前我们知道白化的过程是这样的uint8_t bleWhitenStart(uint8_t chan) { //use left shifted one //最高位一定要是1 return reverseBits(chan) | 2;}/*白化,LFSR的方式进行白化*/void bleWhiten(uint8_t* data, uint8_t len, uin...原创 2019-06-26 10:44:14 · 2490 阅读 · 2 评论