低功耗蓝牙(BLE)学习记录 下载本文

关于蓝牙通信协议的理解

一、时钟要求

Active状态下小于±50ppm。 Sleep Mode下小于±500ppm。

二、设备过滤

除了仅支持不可连接的广播系统(non-connectable advertising),其他模式均需支持设备过滤。广播、扫描、连接发起均具有各自独立的过滤机制。如果芯片不支持这几种模式的话,那就可以不支持设备过滤。设备过滤是为了尽量减少不必要的数据通信。 设备过滤时需要具备一个白名单,白名单内容包括不过滤设备的地址和地址类型(公共或随机)。白名单内容由HOST设置。以下对各种过滤模式作一个介绍: 1、广播过滤

支持过滤方式如下,一次仅支持一种方式:

·广播设备仅处理来自白名单的设备的扫描、连接请求。 ·广播设备处理一切设备的扫描、连接请求。(复位值)

·广播设备处理所有设备的扫描请求,仅处理白名单的连接请求。 ·广播设备处理所有设备的连接请求,仅处理白名单的扫描请求。

2、扫描过滤

支持过滤方式如下:

·扫描设备仅处理来自白名单设备的广播帧。 ·扫描设备处理一切设备的广播帧。 假如广播方已经过滤该扫描设备的话,通信不能成功。

3、发起过滤

支持过滤方式如下:

·被发起设备处理来自白名单内所有设备的连接发起请求。

·被发起设备忽略白名单,仅处理host给出设备的连接发起请求。

三、非连接状态简述

1、standby

Standby是复位后的芯片初始状态,由它可以进入广播、扫描和连接状态。 2、advertising

进入广播状态后,便开始发送广播帧。在发送完一帧广播帧以后,advertising event将被关闭,来适应其他功能。广播事件有以下几种类型:

第一帧广播帧应该在channel index中的最低的广播信道发送。

广播事件是否有回复帧由广播帧类型决定,具体如下表:

当收到错误的返回帧时,广播端会在下一个广播信道发送广播帧,或直接停止广播事件。 广播事件间隔必须是625us的倍数,范围在20ms~10.24s,其设置方式如下:

T_advEvent = advInterval+ advDelay

scannable undirected和non-connectable undirected事件,advInterval长度必须大于100ms;connectable undirected事件,advInterval长度必须大于等于20ms 。advDelay

是0~10ms的伪随机数。连续广播帧发送示意图如下:

a)Connectable Undirected Event Type

如图4.5接收到CONNECT_REQ之后,广播方便退出广播状态,进入Slave状态。

b)Connectable Directed Event Type

c)Scannable Undirected Event Type