BLE学习笔记3:GAP初始化

GAP(Generic Access Profile),即通用访问规范。以下是搜索软件提供的解释:
GAP定义了蓝牙设备如何发现和建立与其他设备的安全(或不安全)连接。它处理一些一般模式的业务(如询问、命名和搜索)和一些安全性问题(如担保),同时还处理一些有关连接的业务(如链路建立、信道和连接建立)。GAP规定的是一些一般性的运行任务。因此,它具有强制性,并作为所有其它蓝牙应用规范的基础。
GAP是所有其他配置文件的基础,它定义了在蓝牙设备间建立基带链路的通用方法.除此之外,GAP还定义了下列内容:
①:必须在所有蓝牙设备中实施的功能
②:发现和链接设备的通用步骤
③:基本用户界面术语.
分析官方蓝牙样例程序,其中实现了3个功能:安全设置,设备名称设置,连接参数设置。

1. 安全设置

阅读蓝牙4.0官方手册可知有3种模式(0,1,2),4种水平(0,1,2,3)。具体内容可查看手册Volume3,PARTC,10.2。这里使用的是模式1水平1,无安全要求。

  BLE_GAP_CONN_SEC_MODE_SET_OPEN(&sec_mode);

使用宏定义函数的方式实现。

#define BLE_GAP_CONN_SEC_MODE_SET_OPEN(ptr)               do {(ptr)->sm = 1; (ptr)->lv = 1;} while(0)

2. 设备名称设置

这里不同于广播初始化时候的名称类型设置,那里主要是设置名称的显示类型(无,短,全名),而这里是设置设备的名称,调用协议栈函数将安全模式,名称设置作为参数传递进去。

err_code = sd_ble_gap_device_name_set(&sec_mode,
                                          (const uint8_t *)DEVICE_NAME,
                                          strlen(DEVICE_NAME));

3. 连接参数设置

首先要分清广播与连接事件的区别。
广播:外围设备向中心设备宣告自己的存在,引入了广播间隔,广播超时时间两个参数,在BLE学习笔记3:广播中已经谈过。
连接事件:主设备和从设备建立连接之后,所有的数据通信都是在连接事件(Connection Events)中进行的。引入了连接间隔,从机潜伏周期,监督超时三个参数。

  	gap_conn_params.min_conn_interval = MIN_CONN_INTERVAL;
    gap_conn_params.max_conn_interval = MAX_CONN_INTERVAL;
    gap_conn_params.slave_latency     = SLAVE_LATENCY;
    gap_conn_params.conn_sup_timeout  = CONN_SUP_TIMEOUT;

    err_code = sd_ble_gap_ppcp_set(&gap_conn_params);//Á¬½Ó²ÎÊýÉèÖÃ
    APP_ERROR_CHECK(err_code);

连接间隔:表示两个连接之间的时间。
从机潜伏周期:选择跳过一些连接事件,进入睡眠。
监督超时:两个成功的连接事件之间的最大事件间隔,超过这个值,设备会失去连接。
BLE的低功耗很大程度上是由这些连接参数实现的。要有更低的功耗,必须以更低的吞吐量和速率作为条件。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生活在别处u

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值