Nimble 简介¶
NDK版本基于Nimble V1.5.0版本
Overview¶
Apache NimBLE是一个开源的蓝牙5.1协议栈(包括主机和控制器),完全取代了Nordic芯片上的专有协议栈。它是Apache Mynewt项目的一部分。
特点:
支持251字节数据包长度。
支持4种角色并发工作:Broadcaster, Observer, Peripheral and Central。
支持32个连接并发工作。
支持Legacy 和 SC (secure connections) SMP 配对和绑定。
支持扩展广播。
支持周期广播。
支持Code phy和2M phy。
支持蓝牙mesh[NDK暂未测试对接]。
支持硬件¶
目前支持PAN107x系列芯片,同时OS使用freertos。
概览¶
如果您在浏览源代码树,并且想要查看一些主要的功能块,这里有一些指引:
nimble/controller: nrf的部分controller实现,Pan108x封装于相关lib中。
nimble/drivers: 射频相关收发 (Nordic nRF51 and nRF52) ,Pan108x封装于相关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接口指南 https://mynewt.apache.org/v1_10_0/network/ble_hs/ble_hs.html 去了解相关接口功能。
当然也可以通过磐启官方wiki了解相关使用指南 https://docs.panchip.com/pan1080dk-doc/latest/index.html。