赞
踩
根据应用场景的不同,处于不同状态的BLE设备,可以发送不同类型的PDU(Packet Data Unit)
PDU Type(4 bits) | RFU(2 bits) | TxAdd(1 bit) | RxAdd(1 bit) | Length(6 bits) | RFU(2 bits) |
指示PDU的类型 | 保留将来使用 | 由具体的PDU Type决定其意义 | 由具体的PDU Type决定其意义 | PDU的长度,6 bits,有效范围是6~37 octets | 保留将来使用 |
PDU类型
状态 | PDU类型 | PDU格式 | 说明 |
Advertising | ADV_IND | AdvA(6 octets) AdvData(0~31 octets) | connectable undirected advertising event,用于常规的广播,可携带不超过31bytes的广播数据,可被连接,可被扫描: AdvA,6bytes的广播者地址,并由PDU Header的TxAdd bit决定地址的类型(0 public,1 random); AdvData,广播数据。 |
ADV_DIRECT_IND | AdvA(6 octets) InitA(6 octets) | connectable directed advertising event,专门用于点对点连接,且已经知道双方的蓝牙地址,不可携带广播数据,可被指定的设备连接,不可被扫描: AdvA,6bytes的广播者地址,并由PDU Header的TxAdd bit决定地址的类型(0 public,1 random); InitA,6bytes的接收者(也是连接发起者)地址,并由PDU Header的RxAdd bit决定地址的类型(0 public,1 random)。 | |
ADV_NONCONN_IND | AdvA(6 octets) AdvData(0~31 octets) | 和ADV_IND类似,但不可以被连接,不可以被扫描。 | |
ADV_SCAN_IND | AdvA(6 octets) AdvData(0~31 octets) | 和ADV_IND类似,但不可以被连接,可以被扫描。 | |
Scanning | SCAN_REQ | ScanA(6 octets) AdvA(6 octets) | 当接收到ADV_IND或者ADV_SCAN_IND类型的广播数据的时候,可以通过该PDU,请求广播者广播更多的信息: ScanA,6bytes的本机地址,并由PDU Header的TxAdd bit决定地址的类型(0 public,1 random); AdvA,6bytes的广播者地址,并由PDU Header的RxAdd bit决定地址的类型(0 public,1 random)。 |
SCAN_RSP | AdvA(6 octets) ScanRspData(0~31 octets) | 广播者收到SCAN_REQ请求后,通过该PDU响应,把更多的数据传送给接受者。 AdvA,6bytes的广播者地址,并由PDU Header的TxAdd bit决定地址的类型(0 public,1 random); ScanRspData,scan的应答数据。 | |
Initiating | CONNECT_REQ | InitA (6 octets) AdvA (6 octets) LLData (22 octets) | 当接收到ADV_IND或者ADV_DIRECT_IND类型的广播数据的时候,可以通过该PDU,请求和对方建立连接: InitA,6bytes的本机地址,并由PDU Header的TxAdd bit决定地址的类型(0 public,1 random); AdvA,6bytes的广播者地址,并由PDU Header的RxAdd bit决定地址的类型(0 public,1 random); LLData,BLE连接有关的参数信息,具体请参考后续文章的介绍。 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。