BLE相关基础知识

重要的参数

BLE mac地址

BLE mac address 包括了Public Device Address、Random Device Address,其中,Random Device Address又包括了Static Device Address、Private Device Address。

Public Device Address是需要购买的公开的mac;

Random Device Address是BLE模块自己生成的,根据是否定期更新分为static和private,static是掉电之后根据策略更新或者不更新;private是定期更新。

BLE广播参数

广播间隔:设备每次广播时,会在3个广播信道上发送相同的报文。这些报文被称为一个广播事件。除了定向报文以外,其他广播事件均可以选择“20ms ~ 10.28s”不等的间隔。通常,一个广播中的设备会每一秒广播一次。两个相邻广播事件之间的时间称为广播间隔

实际设置过程中没有广播间隔参数,而是设置Advertising_Interval_Min(最小广播间隔)和Advertising_Interval_Max(最大广播间隔)这两个参数来调整广播间隔,它们都是以“0.625ms”为单位,如果要固定广播间隔为某一个值,只需要将这两个参数设置为同一个有效数值即可。

最小广播间隔:

最大广播间隔:

广播类型:分为四种,可连接的非定向广播、可连接的定向广播、不可连接的非定向广播、不可扫描的非定向广播。

 (core_v5.0 P1252)

地址类型:

 (core_v5.0 P1210)

广播信道选择(Advertising_Channel_Map):在一个广播事件中,一个广播包会在每个信道上进行传输。(37-39是协议栈指定的广播信道)

(core_v5.0 P1253)

BLE扫描参数

扫描类型:1: 主动扫描-蓝牙设备主动扫描来获取更多对端设备的信息上报Host,为后续建立链路做准备, 0: 被动扫-蓝牙设备被动扫描周围环境中对等设备发送出来的广播包并直接上报到Host; 

扫描间隔:

扫描时间窗:

超时:

BLE连接参数

最小连接间隔

最大连接间隔

从设备延迟:当BLE设备(特别是外围设备)处于非活动状态时,需要睡眠才能保持电池。 这意味着它不想处理信息或响应连接事件。 但是,客户端(通常是可充电电话或平板电脑)通常较少受限制,可能会想频繁地与外设同步以保持最新状态。 因此,它将不断地启动连接事件(connection events),唤醒外设。 当外设回答客户端时,尽管没有新的信息,它也浪费了大量的精力

减轻这种情况的一种方法是使用SLAVE_LATENCY参数此参数由中央设备设置,但外设可以根据自己的操作指导提出建议

 超时:

BLE协议栈

整体

ATT (attribute protocol),数据交互协议

包括4类:读,写,notify(通知)和indicate(指示)。

它在使用上比notify多一个应答的步骤。

notify:

indicate:译为“指示”,它是服务器给客户端发送数据的方式。它在使用上比notify多一个应答的步骤。

GAP(Generic Access Profile),通用访问规范

Ble 协议栈中的 GAP 层负责处理设备访问模式,包括设备发现、建立连接、终止连接、初始

化安全管理,和设备配置

GAP 层总是作为下面四种角色之一

Broadcaster 广播者——不可以连接的一直在广播的设备;

Observer 观测者——可以扫描广播设备,但不能发起建立连接的设备;

Peripheral 从机——可以被连接的广播设备,可以在单个链路层连接中作为从机

Central 中央设备——可以扫描广播设备并发起连接,在单个链路层或多链路层中作为主机
 

GATT(Generic Attribute Profile),通用属性配置文件

功能概述

GATT 层是传输真正数据所在的层。 包括了一个数据传输和存储框架以及其基本操作。

GTTA 定义了两类角色:服务器(server) 和客户端(client),GATT 角色无需和 GAP 角色绑定, 但是可能由更高层的规范进行指定。

除了 GAP 定义了角色之外, BLE 还定义了另外 2 种角色: GATT 服务器和 GATT 客户端, 它们完全独立于 GAP 的角色。 提供数据的设备称为 GATT 服务器(比如耳机)访问 GATT 服务器而获得数据的设备称为 GATT 客户端(比如手机)。在应用中, 外围设备作为服务器, 集中器作为客户端。

注意: 一个设备可以同时作为服务器和客户端

两个设备应用数据的通信是通过协议栈的 GATT 层实现,从 GATT 角度来看,当两个设

备建立连接后,他们处于下面两种角色之一;

GATT 服务器——他是为 GATT 客户端提供数据服务的设备。

GATT 客户端——他是从 GATT 服务器读写应用数据的设备。

GATT 角色中的客户端和服务器的概念与链接中的主机和从机完全独立,主机可以是 GATT 客户端也可以是 GATT 服务器。

一个 GATT 服务器中可包含一个或者多个 GATT 服务, GATT 服务是完成特定功能的一些列数据的集合,Characteristic 特征值是服务用到的值,以及其内容和配置信息, GATT 定义了在 BLE 连接中发现、读取和写入属性的子过程。 GATT 服务器上的特征值机器内容和配置信息(称为描述符)存储于属性表中,属性表是一个数据库,包含了称为属性的小块数据。
ATT主要是规定了"属性"的定义,GATT则是将这些"属性"包装成我们上面所讲的服务、特征值等。

整体框架

GATT DataBase主要分为三个部分,service,include,characteristic,首先围绕这三个分别作介绍。

Server类型

类型: 服务有两种类型,primary service 和secondary service,

primary service可以被其他service 所包含,可以通过discover 流程发现

secondary service只能被primary service 或者其他secondary service 所包含,不能独立存在。

一个服务的类型,会在申明中注明。

组成:gatt 数据框架都是有一个或者多个service 并列组成的。

用户通过定义不同的service,实现不同的功能。

一系列ATT数据组成一个group,表示一个service。

所有的service都必须满足相同的数据要求,具体分为三个部分

1. 服务申明(必须)service

2. 包含其他服务(可选)

3. 必须的特征和可选择的特征

include

include 是解释服务之间的关系,secondary service只能被primary service 或者其他secondary service 所包含,不能独立存在。

include 是service 中可选择的部分,不强制要求必须有这一部分

同服务一个样,include 也是从declaration 开始。

一条ATT仅包含一个include 信息。

characteristic 定义

特征必须要有申明和值申明,可能含有特征描述申明。

同服务一样,相邻的所有特征都是通过申明ATT 间隔开的。一个特征的结束handle 一定是下一个特征的申明handle


 

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值