开源蓝牙5.0协议栈NimBLE介绍

开源蓝牙5.0协议栈NimBLE介绍


描述

NimBLE 是 Apache 基金会下一个开源的蓝牙5.0协议栈,具备完整的Host及Controller层。资源占用少,支持蓝牙5.0特性,也支持Mesh等功能。 目前已经在RT-Thread上移植该协议栈,并在nrf52832上添加了一系列的profile及应用实例,下面是相关的资源链接介绍:

nimble 软件包介绍: 52832 工程: Apache NimBLE 蓝牙 5.0 协议栈介绍:

后续会以nrf52832会平台,持续更新一些相关的Profile及应用示例的文章,Mesh等玩法,感兴趣的也可以一起加入进来。

下面还是介绍一下NimBLE协议栈的功能特性。

特性

    扩展广播(LE Advertising Extensions) 2Mbit/s比特率的物理层 长距离编码(Coded PHY for LE Long Range) 高速不可连接广播(High Duty Cycle Non-Connectable Advertising) 高速不可连接广播(High Duty Cycle Non-Connectable Advertising) 新的跳频算法(Channel Selection Algorithm #2) 隐私1.2(LE Privacy 1.2) 安全管理(SM),支持传统配对(LE Legacy Pairing),安全连接(LE Secure Connections),特定秘钥分发(Transport Specific Key Distribution) 链路层PDU数据长度扩展(LE Data Length Extension) 多角色并发(主机(central)/从机(peripheral), server/client) 同时广播和扫描 低速定向广播(Low Duty Cycle Directed Advertising) 连接参数请求(Connection parameters request procedure) LE Ping 完整的GATT客户端,服务端,以及子功能 抽象的HCI接口层

Profile和Service支持

    警报通知服务(ANS) 即时报警服务(IAS) 链路丢失服务(LLS) 电池服务(BAS) 设备信息服务(DIS) 心率服务(HRS) 自行车速度及步调(CSC) 射频功率(TPS)

Mesh特性

    广播和GATT承载(Advertising and GATT bearers) PB-GATT 和 PB-ADV provisioning 模型层(Foundation Models (server role)) 支持中继(Relay support) 支持GATT(GATT Proxy)

资源占用

开启外设、中心设备角色以及传统配对等功能,最小仅占用4.5KB RAM,69KB Flash。

角色配置

NimBLE提供极大的灵活性,以满足不同设备和应用场景的需求。

    作为中心设备(Central)时,最多支持32个并发连接 作为外围设备(Peripheral)时,最多支持32个并发连接 中心和外围设备任意组合时,支持最多32个并发连接,且能同时运行Observer和Broadcaster角色 外围设备能够连接到多个中心设备 中心和外围设备任意组合时,支持最多32个并发连接,且能同时运行Observer和Broadcaster角色 灵活配置调度程序,以便在连接到大量外围设备时允许更大的数据突发

系统配置

NimBLE允许应用程序开发人员配置系统以提取最合适的性能。 无论是追求最大数量的并发连接还是获得高吞吐量,或确保数据传输的低延迟,NimBLE提供了大量选项。 当然,对默认配置的任何更改都会对代码大小,运行时RAM使用率等产生影响

经验分享 程序员 微信小程序 职场和发展