蓝牙----蓝牙GAP层

蓝牙协议栈----GAP

  • GAP的角色
  • 连接过程
  • 连接参数


GAP:通用访问配置协议层

  • gap的角色
  • 发现的模式与过程
  • 连接模式与过程
  • 安全模式与过程

CC2640R2F的GAP层抽象
蓝牙----蓝牙GAP层_第1张图片

GAP的角色

  • Broadcaster 广播电台 -不可连接的广播者。
  • Observer 观察者 -扫描广播者但无法启动连接。
  • Peripheral 外设 - 可连接的广播者,并在单个链路层连接中作为从属设备。
  • Central 主机 - 设备扫描广播者并启动连接,并在单个或多个链路层连接中作为主服务器运行。蓝牙低功耗协议栈支持多达三个并发连接。
   // 设置GAP GATT服务中的设备名称特征
  GGS_SetParameter(GGS_DEVICE_NAME_ATT, GAP_DEVICE_NAME_LEN, attDeviceName);
  // Configure GAP
  {
      //使能连接参数更新
    uint16_t paramUpdateDecision = DEFAULT_PARAM_UPDATE_REQ_DECISION;

    // Pass all parameter update requests to the app for it to decide
    GAP_SetParamValue(GAP_PARAM_LINK_UPDATE_DECISION, paramUpdateDecision);
  }
 

// 初始化GAP设备,做为Peripheral,地址采用Public方式
  GAP_DeviceInit(GAP_PROFILE_PERIPHERAL, selfEntity, addrMode, NULL);

连接过程

连接过程
蓝牙----蓝牙GAP层_第2张图片

广播报文:由广播者发送至扫描者
蓝牙----蓝牙GAP层_第3张图片

扫描请求报文:由扫描者发送至广播者
蓝牙----蓝牙GAP层_第4张图片

扫描响应报文:由广播者发送至扫描者
蓝牙----蓝牙GAP层_第5张图片

连接报文:由发起者发送至广播者
蓝牙----蓝牙GAP层_第6张图片

连接参数

Connection Interval 连接间隔:在BLE跳频数据传输时,在一个特定的时间之后,会跳到一个新的通道上,LL层负责接入地址的维护。这个发现设备并收到数据的事件,就被称为连接事件,连接事件间的间隔为连接间隔。
以 1.25 ms 为单位,从最小值 6(7.5 ms)到最大值 3200(4.0 s)。

Slave Latency 从机延迟:从机跳过多个连接事件的能力

Supervision Time-out 监控超时:两次成功连接事件之间的最长时间

当多连接时,最小的连接间隔是12.5 + 5*N(N为当前连接的数目)
连接参数的更新

主从机连接时,首先使用的是主机端默认的连接参数。
1)如果从机端禁止参数更新,则之后的通信都将使用主机端默认的连接参数。
2)如果从机端允许参数更新,则在主从机连接的DEFAULT_CONN_PAUSE_PERIPHERAL秒后,向主机端发送连接参数更新请求。
  ①如果从机的连接参数符合主机端的连接标准,则更新参数;
  ②如果从机的连接参数不符合主机端的连接标准,则不更新参数。如果此时使用的主机参数,不在从机申请的参数范围内,则会造成连接断开。

Master可以直接发起连接参数更新,Slaver要发起连接参数更新,要先在L2CAP层向主机发起协商,主机同意后,再由主机走LL层和GAP的来发起参数更新。

蓝牙----蓝牙GAP层_第7张图片

你可能感兴趣的:(蓝牙,蓝牙)