当前文档版本为 NDK-v0.6.0,您可以访问当前页面的 开发中 版本以获取最近可能的更新。

Nimble 简介

NimBLE 是一个开源的蓝牙5.1协议栈(包括主机和控制器),其也是 Apache Mynewt 项目的一部分。PAN107x NDK 中使用的 NimBLE 版本为 v1.5.0。

特点:

  • 支持251字节数据包长度。

  • 支持4种角色并发工作:Broadcaster, Observer, Peripheral and Central。

  • 支持32个连接并发工作。

  • 支持Legacy 和 SC (secure connections) SMP 配对和绑定。

  • 支持扩展广播。

  • 支持周期广播。

  • 支持Code phy和2M phy。

  • 支持蓝牙mesh[NDK暂未测试对接]。

支持硬件

目前支持 PAN107x PAN101x 等系列芯片,同时OS使用freertos。

概览

如果您在浏览源代码树,并且想要查看一些主要的功能块,这里有一些指引:

  • nimble/controller: nrf的部分controller实现,Pan10xx封装于相关lib中。

  • nimble/drivers: 射频相关收发 (Nordic nRF51 and nRF52) ,Pan10xx封装于相关lib中。

  • nimble/host: 包含主机子系统的代码。这包括L2CAP和ATT等协议,支持HCI命令和事件,通用访问配置文件(GAP),通用属性配置文件(GATT)和安全管理器(SM)。

  • nimble/host/mesh: 包含蓝牙Mesh子系统的代码。

  • nimble/transport: 包含支持主机和控制器之间的传输协议的代码。这包括UART、emSPI和RAM(在主机和控制器在同一CPU上运行时使用的组合构建)。

  • porting: 包含支持的操作系统的NimBLE移植层(NPL)的实现。

  • ext: 包含NimBLE使用的外部库。如果操作系统没有提供这些库,则会使用它们。

应用示例

还有一些示例应用程序,展示了如何使用Apache Mynewt NimBLE协议栈。如下:

  • ble_central: 蓝牙主机示例,主要用于演示主机连接从机ANS报警通知服务.该示例可以直接和bleprph_enc完成对测。

  • bleprph_hr: 蓝牙从机示例,主要演示从机心跳服务.

  • bleprph_enc: 蓝牙从机加密示例,主要演示从机特定特性读写时会进行加密配对服务.可以和ble_central完成连接对测。但是ble_central并没有访问加密特性,所以不会触发加密配对流程。

API接口

如果想在线了解API可以参考官方提供的API接口指南 NimBLE Host 去了解相关接口功能。