电子商务网站建设市场分析,猎头公司收费收费标准和方式,如何制作app软件要多少钱,宝安住房和建设局网站官网一、简介 广播类型有如下#xff1a; 非定向可连接广播#xff08;ADV_IND#xff09;。可连接的非定向广播#xff0c;表示当前设备可以接受任何设备的连接请求。 定向可连接广播#xff08;ADV_DIRECT_IND#xff09;。可连接的定向广播#xff0c;设备不能被主动扫描…一、简介 广播类型有如下 非定向可连接广播ADV_IND。可连接的非定向广播表示当前设备可以接受任何设备的连接请求。 定向可连接广播ADV_DIRECT_IND。可连接的定向广播设备不能被主动扫描。 非定向不可连接广播ADV_NONCONN_IND。不可连接的非定向广播仅发送广播数据而不被连接。设备不能被主动扫描。 非定向可发现不可连接广播ADV_DISCOVER_IND/ADV_SCAN_IND。可扫描的非定向广播设备可以被发现。即可以发送广播数据也可以响应扫描发送回应数据但不能建立链接。 如果忘记了可以回顾一下之前的文章蓝牙学习四广播_蓝牙广播-CSDN博客 本章主要介绍ADV_DIRECT_IND定向可连接广播。
二、定向广播PDU 当使用定向可连接广播时链路层将发送定向广播数据包。也就是说链路层将不会发送之前设置的广播内容比如名字外貌等等。而是发送特定内容类型的广播帧。 定向广播指示数据包中包含如下内容 Access Address访问地址 Packet HeaderPDU包头 Advertising Address广播地址 Target Address目标地址 访问地址还是熟悉的0x8e89bed6通用访问地址。 PDU包头中包含了广播类型和发送/接受地址类型。广播类型为ADV_DIRECT_IND定向可连接广播。 广播地址为设备自身的MAC地址。 目标地址为定向要连接的目标设备的地址。 可连接定向广播类型允许主机响应广播事件从而使得广播者和主机均进入连接状态。 可连接定向广播采用ADV_DIRECT_IND或者ADV_EXT_IND两种数据包类型前者在主广播信道上发送后者在主广播信道上发送并指向在副广播信道上发送的辅助广播AUX_ADV_IND数据包。
三、ADV_DIRECT_IND ADV_DIRECT_IND广播类型使得发起者主机能在主广播物理信道上响应链接请求从而建立ACL异步无连接一主多从之间的多点连接连接。ADV_DIRECT_IND的PDU中包含发起者设备地址和广播者设备地址。仅寻址的发起者可通过向广播者发送CONNECT_IND数据包发起ACL连接。 发起者在一个广播信道发送ADV_DIRECT_IND的数据包后应在相同的广播信道上监听CONNECT_IND数据包并忽略可能接收到的任何SCAN_REQ数据包。 当广播者接收到包含其设备地址的CONNECT_IND数据包且此PDU的设备地址与之前发送的ADV_DIRECT_IND数据包中包含的目标设备地址相同时应退出广播状态并切换到连接状态。 当广播者在该信道上没有接收到目标地址的CONNECT_IND时应转移到下一个主广播物理信道上再次发送ADV_DIRECT_IND数据包或者关闭广播事件。 ADV_DIRECT_IND中包含“high duty cycle高占空比”和“low duty cycle低占空比”两种模式。 高占空比可连接定向广播用于快速ACL连接/重连。该模式为高能耗以及高带宽占用广播模式仅在需要快速建立连接时使用。 低占空比可连接定向广播用于慢速ACK连接/重连或在不知道目标设备是否在通讯范围内使用。
3.1、low duty cycle 在低占空比模式中在两个ADV_DIRECT_IND数据包发送间隔应小于或等于10毫秒。广播事件应在广播间隔内关闭。 全部主广播信道发送且未收到CONNECT_IND数据包的低占空比模式广播示意图如下图 下图为在第二个广播信道收到CONNECT_IND数据包的示意图 使用wireshark抓取数据包如下图 可以看到依次在37、38、39信道进行广播。且相邻信道到的广播周期在1毫秒左右。 且地占空比定向广播会一直广播广播周期在几十毫秒到几百毫秒。
3.2、high duty cycle 在高占空比模式中在相同广播信道上发送两个ADV_DIRECT_IND数据包的时间间隔应小于或等于3.75毫秒。链路层在进入广播状态后1.28秒内退出广播状态。 使用wireshark抓数据包 可以看到在两个37信道发送数据包的间隔为3.751毫秒。 从数据包中也可以看到广播的频率非常快。 整个广播事件只持续了1.28秒后就停止了。
四、ADV_EXT_IND 采用ADV_EXT_IND发起者主机可以在副广播物理信道上响应连接请求从而建立ACL连接。在此事件中广播者每发送一个AUX_ADV_IND数据包后均应在相同的付广播物理信道上监听是否有AUX_CONNECT_REQ数据包并应忽略可能存在的任何AUX_SCAN_REQ数据包。 当隐私未激活时广播者接收到包含其设备地址的AUX_CONNECT_REQ数据包且发起者的设备地址包含在之前AUX_ADV_IND数据包中广播者应在相同的副广播信道上响应包含此设备地址的AUX_CONNECT_RSP数据包。完成AUX_CONNECT_RSP数据包发送后广播设备的链路层应退出广播模式并进入连接状态。任何在副广播物理信道上接收到的AUX_SCAN_REQ数据包均应被忽略。 广播事件中的两个ADV_EXT_IND数据包时间间隔应小于或等于10毫秒。广播事件应在广播间隔内关闭。 副广播信道索引SAdv_idx在ADV_EXT_IND数据包中的AuxPtr字段中指明。 下图为ADV_EXT_IND但未接收到AUX_CONNECT_REQ的情况 下图为ADV_EXT_IND并在副广播信道索引上接收到AUX_CONNECT_REQ数据包 因为目前还没有使用过 ADV_EXT_IND所以这里不做实例分析。 参考
低功耗蓝牙广播事件类型之可连接定向广播 - 知乎