RW_BLE_CORE 记录 传输信道 BLE 的传输信道在2.4G 频段有40 个channel。包括2 种物理信道:广播信道和数据信道。数据帧中设置Access Address 用于标识该信道,防止信道碰撞。Channel MAP 如下: 数据帧通信 蓝牙帧结构如下: Preamble:根据Access Address 而定,假如AA 的LSB(最右bit)bit 为1,则前导便是10101010b,反之则为01010101b。 Access Address:广播帧的AA 为:0x8E89BED6。其他情况可以是一个32bit 的随机数。AA 需满足以下条件 ·不超过连续 6 个1 或者 0。 ·与广播帧的AA 不同 bit 超过 1 个。 ·不能 4byte 相同。 ·0 1 跳变不能超过 24 次 ·MSB 6bit 0 1 跳变超过 2 次。 以下逐个介绍 PDU。 一、Adv ertising Channel PDU 蓝牙广播帧帧结构 其中Header 的帧格式如下: 其中, a、广播帧类型(PDU Type)分为以下几类: • ADV_IND: connectable undirected advertising event • ADV_DIRECT_IND: connectable directed advertising event • ADV_NONCONN_IND: non-connectable undirected advertising event • ADV_SCAN_IND: scannable undirected advertising event b、Length:3~37bytes 广播帧分为很 多 种 ,其区 别 就 是 payload 所 代 表 的意 义 不 同 ,以下分别 对 几种 广播帧作分别 阐 释 : 1、ADV_IND ADV_IND 的payload 格式如下: 在 广播帧帧头 中的TxAdd 位 是 广播地 址 的标 示 位 : TxAdd==0:AdvA 地 址 为公 用 地 址 ; TxAdd==1:AdvA 地 址 为随 机 地 址 。 AdvData 则 是 广播HOST 的广播数 据 。 2、ADV_DIRECT_IND 这 种 帧用 于 直 接 接 入 的广播事 件 。 ADV_DIRECT_IND 的payload 帧格式如下: 其中AdvA 的意义与ADV_IND 相同。 InitA 为广播发起者地址: RxAdd==0:发起者地址是公用地址; RxAdd==1:发起者地址是随机地址。 注意:该帧不包含任何HOST 数据。 3、ADV_NONCONN_IND 用于不可接入不直达(non-connectable undirected)的网络。其payload 意义与ADV_IND类似。 4、ADV_SCAN_IND 用于可扫描不直达网络。Payload 意义与ADV_IND 类似。 二、Scaning PDUs 1) SCAN_REQ: 这是扫描请求帧,处于广播状态的接收设备接收这种帧。 此处, ScanA 为扫描者的地址,其地址由 TxAdd ...