BLE广播与扫描
BLE广播可以分为:定向/非定向广播,可连接/不可连接广播,可扫描广播,高/低占空比广播,以及有限/普通可发现广播。
扫描可以分为:主动 / 被动扫描,高 / 低占空比扫描以及多种发现模式
1. 定向/非定向广播,可连接/不可连接广播和可扫描广播
上图是定义了定向/非定向广播,可连接/不可连接广播和可扫描广播这3个类型的相应组合。图中上下两组一一对应,广播事件对应广播报告事件,如:GAP_ADRPT_ADV_DIRECT_IND 对应 GAP_ADTYPE_ADV_HDC_DIRECT_IND 事件类型。
这里第三个可扫描非定向指的是,向所有设备发出广播而非指定某一设备,且可以接收来自主机的扫描请求,进而发出扫描回复包给主机。
此外高占空比广播和低占空比广播分别指的是快速广播和慢速广播,高占空比广播目的是为了更快被主机发现进而与其建立连接通讯。相应的,如果主机想要快速扫到设备,也需要将扫描方式改为高占空比扫描。
2. 有限/普通可发现广播
上图第一组前两个参数TGAP_GEN_DISC_ADV_MIN 和 TGAP_LIM_ADV_TIMEOUT是设置通用/有限广播的广播保持时间。第二组则是设置有限和通用广播的广播间隔。
当TGAP_GEN_DISC_ADV_MIN为0时,则关闭普通广播超时,从机则按照设置的广播间隔持续发出普通广播;
当TGAP_LIM_ADV_TIMEOUT为设置有限广播的保持时间,之所以叫有限广播就是不能一直广播,只广播有限的时间。
1. 主动 / 被动扫描
主动扫描:主机收到广播后可主动向从机发送扫描请求以获取更多广播数据(从机发的扫描回包);
被动扫描:指被动监听广播数据无法发起扫描请求。
2. 高 / 低占空比扫描
这里之前已经在广播部分说明,因此省略。。。
3. 扫描模式 (发现模式)
发现模式主要是用来指定主机可发现哪些从机设备,主要分为以下几种:
如上图,指定可发现普通广播设备、有限广播设备以及所有可发现设备。
白名单广播和定向广播区别
白名单广播:从设备向所有设备进行广播,但只接收来自白名单中主机的扫描或连接请求。
定向广播:从设备向指定主机设备地址进行广播,只有该主机设备能接收到其发出的广播。
广播过滤规则:
白名单过滤是在HCI层以下,也就是 Link Layer 层进行过滤的。
而广播过滤一般是在应用层进行过滤的。