nimble导视

Overview

NimBLE是开源蓝牙5.1协议栈( 包括主机和控制器 ),完全取代nordic芯片上的专有协议栈。它是Apache Mynewt项目的一部分。 特点

  • 支持251字节数据包长度

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

  • 支持32个连接并发工作

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

  • 支持扩展广播

  • 支持周期广播

  • 支持Code phy和2M phy

  • 支持蓝牙mesh

文件索引

下面是代码树的指引,

  • nimble/controller: 包含控制器的代码,包括链路层和HCI实现(控制器)

  • nimble/drivers: 包含支持的无线电收发器(Nordic nRF 51和nRF 52)的驱动程序(drivers)

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

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

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

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

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

应用示例

在apps文件夹下展示如何使用NimBLE堆栈的示例。 blecent:一个基本的中央设备,没有用户界面。此应用程序扫描支持警报通知服务(ANS)的外围设备。一旦发现这样的外设,blecent就会连接并执行特征读取、特征写入和通知订阅。 blehci:实现一个BLE专用的应用程序。一个单独的仅主机实现,如Linux的BlueZ,可以通过HCI over Ethernet与这个应用程序接口。 bleprph:最小BLE外设的实现。 btshell:一个类似shell的应用程序,允许从命令行配置和使用大部分NimBLE功能。 bleuart :实现一个简单的BLE外设,支持Nordic UART /串行端口仿真服务(https://developer.nordicsemi.com/nRF5_SDK/nRF51_SDK_v8.x.x/doc/8.0.0/s110/html/a00072.html)。

平台移植

NimBLE移植有两种情况,一种是移植至其他软件操作系统上;另一种是移植到其他芯片平台上。

 

posted @   wfagly  阅读(157)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示