iOS ble 连接间隔参数规定 ble连接过程_iOS ble 连接间隔参数规定

BLE技术是BluetoothSIG规定的一套通信协议,在协议变成具体的代码之前,都只存在文档中,TI、Nordic、CSR等厂商,根据SIG发布的BLE技术协议,配合自身的芯片开发了一整套源码,并且这套源码经过了SIG的测试,服务BLE协议。这套源码就叫做协议栈,协议栈是协议的实现。不同的芯片厂商都有各自的协议栈,而这不同的协议栈,BluetoothSIG是不允许厂商开源的,所以,无论是TI的或者NORDIC的BLE芯片资料中协议栈都是做成库的形式提供,只开放部分的API层,但实际对我们开发终端产品来说足以。

BLE协议栈的构成

控制器部分(Controller):

物理层(PHY):RF特性,运行在2.4GHz ISM band,40频道2MHz的通道间隙,3个广播通道,37个自适应自动调频通道;

 

链路层(LL):RF控制层,控制芯片工作在

Standby            准备
         Advertising     广播
         Scanning           监听
         Initiating           发起连接
         Connected      已连接

         这五个状态中的一种;

 

控制接口层(HCI):通信层,在Host和Controller之间提供一个标准化的接口,该层可以由软件api实现或者使用硬件接口uart,spi,usb来控制;

 

主机部分(Host):

逻辑链路控制及自适应协议层(L2CAP):相当于快递,将数据打包;

安全管理层(SM层):安全服务层,提供配对和秘钥的分发,实现安全连接和数据交换;

属性协议层(ATT):允许设备向另外一个设备展示一块特定的数据,称之为“属性”,展示“属性”的设备称为服务器,与之配对的设备成为客户端;链路层状态(主机从机)与设备的ATT角色是相互独立的;

通用访问配置文件层(GAP):

通用属性配置文件层(GATT):定义了使用ATT的服务框架,规定了配置文件profile的结构;

iOS ble 连接间隔参数规定 ble连接过程_简介_02

BLE广播事件:

         在一个广播事件中,广播包会分别在三个广播通道中被发送一次(37,38,39);

 

BLE广播间隔:

         是指两次广播事件之间的最小时间间隔,一般取值范围在20ms-10.24S之间,链路层会在每次广播时间期间产生一个随机广播延时时间(0ms-10ms)

        

BLE扫描事件:

         每次扫描设备打开Radio接收器去监听广播设备,这样称为一个扫描事件,

扫描频宽比,Duty-Cycle,参数:

                  扫描时间:扫描设备的扫描频度;

                  扫描窗口:每次扫描事件持续的时间;

 

BLE发起连接:

         发送一个连接请求,连接请求包括一套为从设备准备的连接参数,安排连接期间发生的通道和时间。如果广播设备接收了连接,两个设备会进入连接状态,发起方会称为Master(主机),而广播方会称为Slave(从机)。

 

BLE连接参数:

         通道映射,指示连接使用的频道。

调频增量,一个5~16之间的随机,参与通道选择的算法。

连接间隔,1.25ms的倍数,在7.5ms~4s之间。

监督超时,10ms的倍数,100ms~32s之间,必须大于(1+slaveLatency)*ConnInterval

从机潜伏,允许设备跳过的最大连接次数,0~499之间,有效的连接间隔必须小于32s,不能超过(SupervisionTimeout/connInterval)-1

 

BLE连接事件:

所有的通信都发生在两个设备的连接事件期间;

连接事件周期的发生,按照连接参数指定的间隔联系     (连接间隔)

每个事件发生在某个数据通道(0~36)                                 (通道映射)                  

调频增量参数决定了下次连接时间发生的通道                   (调频增量)

在每个连接时间期间,Master先发送,Slave会在150us之后做出回应,即使一个连接事件发生(或两者),双方都没有数据发送(例外情况是从设备潜伏使能),这允许两个设备都承认对方仍然存在并保持活跃的连接;

 

从机的潜伏:

潜伏,Slave如果没有数据发送,允许跳过连接事件。

 

连接参数的设定:

☆短间隔的连接事件:

-两设备都会以高能耗运行

-高数据吞吐量

-发送等待时间短

☆长间隔的连接事件:

-两设备都会以低能耗运行

-低数据吞吐量

-发送等待时间长

☆低或者0潜伏值:

-从设备以高能耗运行

-从设备可以快速的收到来自中心设备的数据

☆高潜伏值:

-外围设备在没有数据发送的情况下可以低能耗运行

-外围设备无法及时收到来自中心设备的数据

-中心设备能及时收到来自外围设备的数据

 

终止连接:

监视超时参数都指定了两个数据包之间的最大时间跨度。监视超时时间必须大于有效连接间隔而小于32s。Slave和master双方都维持着自己的监视超时计时器,在每次收到数据包时清零。如果连接超时,设备会认为连接丢失,并且退出连接状态,返回广播、扫描或者待机模式。