搜索
bottom↓
回复: 67

Apache开源蓝牙5.0协议栈-NimBLE

  [复制链接]

出0入0汤圆

发表于 2019-3-2 17:33:15 | 显示全部楼层 |阅读模式
本帖最后由 正十七 于 2019-3-2 17:32 编辑

描述

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

nimble 软件包介绍:https://github.com/RT-Thread-packages/nimble
52832 工程: https://github.com/EvalZero/nrf52832-nimble
Apache NimBLE 蓝牙 5.0 协议栈介绍:http://mynewt.apache.org/latest/network/docs/index.html

后续会以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使用率等产生影响

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2019-3-2 17:35:21 | 显示全部楼层
这个不错,支持

出0入0汤圆

发表于 2019-3-2 19:34:43 | 显示全部楼层
非常好,非常好,非常好

出0入42汤圆

发表于 2019-3-4 05:52:06 | 显示全部楼层
所谓的开源是所有源代码开放吗?没有任何封装库或者obj文件?

出0入0汤圆

发表于 2019-3-4 08:00:12 | 显示全部楼层
支持啊,不知道资源占用情况怎么样。

出0入0汤圆

发表于 2019-3-4 08:42:13 | 显示全部楼层
关注一下,谢谢分享

出0入0汤圆

发表于 2019-3-4 11:11:05 | 显示全部楼层
NimBLE make

出0入0汤圆

发表于 2019-3-4 15:09:06 | 显示全部楼层

NimBLE make

出0入0汤圆

 楼主| 发表于 2019-3-4 19:12:19 | 显示全部楼层
astankvai 发表于 2019-3-4 08:00
支持啊,不知道资源占用情况怎么样。

资源占用很小,官方宣传RAM4.5K,Fllash 69K,实际用下来感觉比这大一些。
不过很多功能和参数都是可配置裁剪的。

出0入0汤圆

发表于 2019-3-4 21:34:31 | 显示全部楼层
正十七 发表于 2019-3-4 19:12
资源占用很小,官方宣传RAM4.5K,Fllash 69K,实际用下来感觉比这大一些。
不过很多功能和参数都是可配置 ...


请教,蓝牙有没有可能做一个AP挂100个从机?最近有需求1000个点,用户要求不超过10个AP布置。。。

出0入198汤圆

发表于 2019-3-4 22:07:55 | 显示全部楼层
厉害~~
这个开源协议栈是啥许可的

出0入0汤圆

 楼主| 发表于 2019-3-5 09:36:08 | 显示全部楼层
kinsno 发表于 2019-3-4 21:34
请教,蓝牙有没有可能做一个AP挂100个从机?最近有需求1000个点,用户要求不超过10个AP布置。。。 ...

以前的经典蓝牙是1对1的方式,现在BLE支持一对多,一个中心设备(central)连接多个外围设备(peripheral),但也无法连接100个。
根据你的描述,感觉你需要的BLE Mesh功能吧,Mesh组网,实现多跳。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2019-3-5 09:41:26 | 显示全部楼层
sunnydragon 发表于 2019-3-4 22:07
厉害~~
这个开源协议栈是啥许可的

Apache 2.0 开源协议,可免费用于商用,仅需保留License即可。
另外,移植的OS平台--RT-Thread, 也是 Apache 2.0的协议,组件和功能强大,开发便捷。

出0入4汤圆

发表于 2019-3-5 10:51:18 | 显示全部楼层
不错,这个协议栈的背景是否可以介绍一下?使用的产品是否规模出货过?貌似apache网站上的about页面没有介绍这方面的内容。

出0入4汤圆

发表于 2019-3-5 10:52:42 | 显示全部楼层
kinsno 发表于 2019-3-4 21:34
请教,蓝牙有没有可能做一个AP挂100个从机?最近有需求1000个点,用户要求不超过10个AP布置。。。 ...

是否需要双向通讯? 如果只要单向通讯,只要把内容加载到广播报文里面即可。

出0入4汤圆

发表于 2019-3-5 10:53:46 | 显示全部楼层
正十七 发表于 2019-3-4 19:12
资源占用很小,官方宣传RAM4.5K,Fllash 69K,实际用下来感觉比这大一些。
不过很多功能和参数都是可配置 ...

这个资源使用量比 esp32里面使用的协议栈省多了:)

出0入4汤圆

发表于 2019-3-5 10:57:46 | 显示全部楼层
cnshibo 发表于 2019-3-5 10:53
这个资源使用量比 esp32里面使用的协议栈省多了:)

刚刚google了一下,发现esp32正在移植 NimBLE,据说很快就会放出来。

出0入0汤圆

发表于 2019-3-5 11:37:50 | 显示全部楼层
cnshibo 发表于 2019-3-5 10:52
是否需要双向通讯? 如果只要单向通讯,只要把内容加载到广播报文里面即可。 ...

是双向的,会有数据交互的。

出0入0汤圆

发表于 2019-3-5 11:42:56 | 显示全部楼层
NimBLE 厉害

出0入198汤圆

发表于 2019-3-5 12:03:48 | 显示全部楼层
赞,期待楼主持续更新,再跟大家分享分享如何使用。

出250入8汤圆

发表于 2019-3-5 14:21:46 | 显示全部楼层
收藏了!谢谢

出0入0汤圆

 楼主| 发表于 2019-3-5 19:12:15 | 显示全部楼层
liyang121316 发表于 2019-3-4 05:52
所谓的开源是所有源代码开放吗?没有任何封装库或者obj文件?

所有源代码开源,从应用到PHY、Radio,全部开源,没有库或者obj文件。

出0入0汤圆

发表于 2019-3-5 22:42:21 | 显示全部楼层

关注一下,谢谢分享

出0入42汤圆

发表于 2019-3-6 07:33:13 | 显示全部楼层
正十七 发表于 2019-3-5 19:12
所有源代码开源,从应用到PHY、Radio,全部开源,没有库或者obj文件。

牛逼!!!

出0入4汤圆

发表于 2019-3-6 09:25:48 | 显示全部楼层
kinsno 发表于 2019-3-5 11:37
是双向的,会有数据交互的。

说不定改改协议栈,能满足你的需要。NimBLE貌似最大支持32个外设。

出0入0汤圆

发表于 2019-3-6 09:53:31 | 显示全部楼层
不知道和Slicon Labs 的协议栈有多大区别,目前使用Slicon Labs官方的遇到点瓶颈了,有空再来看,记号一下!

出0入0汤圆

发表于 2019-3-6 10:21:14 | 显示全部楼层
非常好,非常好,非常好,支持

出0入0汤圆

发表于 2019-3-6 11:22:21 | 显示全部楼层
非常好,先收藏下!

出0入0汤圆

发表于 2019-3-6 13:09:14 | 显示全部楼层
非常好,非常好,非常好,支持下

出0入0汤圆

发表于 2019-3-6 13:12:52 | 显示全部楼层
NimBLE 蓝牙5.0 mark

出0入0汤圆

发表于 2019-3-6 13:36:45 | 显示全部楼层
好像只支持nRF芯片,能否移植到STM32芯片呢?或者cc芯片呢?

出0入0汤圆

 楼主| 发表于 2019-3-7 09:33:59 | 显示全部楼层
carryonli 发表于 2019-3-6 13:36
好像只支持nRF芯片,能否移植到STM32芯片呢?或者cc芯片呢?

可以移植,NimBLE有清晰的HCI抽象层,从HCI层移植,比较容易。
另外就是直接从Phy这层开始移植,这块就有些难度了,估计需要原厂的支持或者对BLE的链路层比较熟悉。

出0入0汤圆

发表于 2019-3-7 09:54:46 | 显示全部楼层


关注一下,谢谢分享

出0入0汤圆

发表于 2019-3-7 10:42:24 | 显示全部楼层
正十七 发表于 2019-3-7 09:33
可以移植,NimBLE有清晰的HCI抽象层,从HCI层移植,比较容易。
另外就是直接从Phy这层开始移植,这块就有 ...

哦,楼主理解很透彻啊,我还不很了解。

出0入0汤圆

发表于 2019-3-7 10:46:34 | 显示全部楼层
RTT现在支持这个低功耗处理?

出0入0汤圆

发表于 2019-3-7 12:18:03 来自手机 | 显示全部楼层
有原厂协议栈没必要用这个,除非为了折腾

出0入0汤圆

发表于 2019-3-7 12:18:25 来自手机 | 显示全部楼层
我不信这个协议栈会比原厂的好

出0入0汤圆

 楼主| 发表于 2019-3-8 09:18:26 | 显示全部楼层
gyd0317 发表于 2019-3-7 10:46
RTT现在支持这个低功耗处理?

一般的低功耗处理是在IDLE线程里睡眠CPU,有事件或者中断时唤醒,补偿Tick后继续执行,RT-Thread有PM电源管理组件,可以直接对接。
但是BLE的低功耗处理,我还不太了解,应当是需要开发者根据实际情况进行优化吧。

出0入0汤圆

 楼主| 发表于 2019-3-8 09:22:47 | 显示全部楼层
Vmao 发表于 2019-3-7 12:18
我不信这个协议栈会比原厂的好

各有优劣,看各自的需求。原厂的支持完善,专业的团对,功能稳定,但几乎都是以二进制提供,源码不开发,另外更新也会稍微慢一点。
开源的代码透明,更新快修复问题及时,但是稳定性这些就欠缺了。

出0入0汤圆

发表于 2019-3-8 10:08:04 | 显示全部楼层
Vmao 发表于 2019-3-7 12:18
我不信这个协议栈会比原厂的好

不一定。

出0入0汤圆

发表于 2019-3-8 13:54:52 | 显示全部楼层

你用过?开源的东西除非是玩的人很多会完善一点,否则还不是BUG多多,这个协议栈除了开源,感觉不会比原厂好

出0入0汤圆

 楼主| 发表于 2019-3-14 14:03:32 | 显示全部楼层
Vmao 发表于 2019-3-8 13:54
你用过?开源的东西除非是玩的人很多会完善一点,否则还不是BUG多多,这个协议栈除了开源,感觉不会比原厂好 ...

在用,Bluetooth Mesh部分比官方的要完善。
如果一开始就打上开源的不好,原厂好的标签,那就没法子展开了。
现在主流的开源BLE协议栈有家,Zephyr和NimBLE,团队背景中都有一大部分是Nodic原厂的人。
原厂的方案是以二进制文件提供的,存在诸多限制,所以开源的方案应运而生,原厂的人也在后面支持。
以前的蓝牙协议栈是不开源的,也是在近年物联网概念火爆之后,开始开源,一些新的特性和功能,不开放是没有办法推广的。

出0入0汤圆

发表于 2019-3-15 09:33:50 | 显示全部楼层
不错,支持一下

出0入0汤圆

发表于 2019-3-15 09:39:27 来自手机 | 显示全部楼层
感谢楼主分享

出0入0汤圆

发表于 2019-3-15 09:59:54 | 显示全部楼层
感谢楼主分享

出0入0汤圆

发表于 2019-3-15 10:24:55 | 显示全部楼层
这个利害了,抽空要玩一下。

出0入0汤圆

发表于 2019-3-15 10:52:44 来自手机 | 显示全部楼层
怎么不支持5.1

出0入0汤圆

发表于 2019-3-18 11:16:52 | 显示全部楼层
支持一下

出0入0汤圆

 楼主| 发表于 2019-3-20 13:45:12 | 显示全部楼层

5.1的规范SIG刚发布,定位方面能到厘米级。支持是大势所趋,时间问题

出0入0汤圆

发表于 2019-6-5 16:00:11 | 显示全部楼层
希望早日支持5.1,要跟上主流节奏啊。

出0入0汤圆

发表于 2019-6-5 22:51:03 | 显示全部楼层
顶楼主一个

出0入0汤圆

发表于 2019-6-5 23:47:51 | 显示全部楼层
看起来很NB,有人运行过了吗

出0入0汤圆

发表于 2019-6-7 15:29:16 | 显示全部楼层
这个用起来的门槛还是太高了,只能坐等高手研究了

出0入0汤圆

发表于 2019-6-7 16:22:32 | 显示全部楼层
关注一下,谢谢分享!

出20入0汤圆

发表于 2019-6-7 16:30:18 | 显示全部楼层
感谢分享! 了解一下.

出0入0汤圆

发表于 2019-6-19 13:55:40 | 显示全部楼层
厉害了,期待更多分享

出0入0汤圆

发表于 2019-6-19 14:50:45 | 显示全部楼层
NimBLE 蓝牙5.0 mark

出0入4汤圆

发表于 2019-6-19 15:40:00 | 显示全部楼层
cqsrmxxzyx 发表于 2019-6-5 23:47
看起来很NB,有人运行过了吗

esp32 官方已经移植了一个版本到他们的平台上。

出0入0汤圆

发表于 2019-6-19 15:58:56 | 显示全部楼层
ble的协议栈还是很难做的,这个要支持

出0入198汤圆

发表于 2019-6-19 16:21:03 | 显示全部楼层
cnshibo 发表于 2019-6-19 15:40
esp32 官方已经移植了一个版本到他们的平台上。

是的,我也注意到了,你用上了没有

出0入95汤圆

发表于 2019-6-19 18:51:52 | 显示全部楼层
了解一下,多谢分享

出0入0汤圆

 楼主| 发表于 2019-6-20 15:46:01 | 显示全部楼层
gamethink 发表于 2019-6-19 20:11
是否可以直接在普通的2.4G芯片跑藍牙?

不可以,虽然同样是 2.4G 协议,但是硬件不一样

出0入0汤圆

发表于 2019-6-20 17:03:15 | 显示全部楼层
只有开源才能更好的发展壮大

出0入0汤圆

发表于 2019-6-20 21:40:40 | 显示全部楼层
学习了 感谢分享

出0入0汤圆

发表于 2019-12-10 20:05:36 | 显示全部楼层
支持开源,学习一下,谢谢分享

出0入0汤圆

发表于 2020-10-27 09:21:40 | 显示全部楼层
学习  深入学习

出100入101汤圆

发表于 2020-10-27 12:36:23 来自手机 | 显示全部楼层
学习,开源ble
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-27 12:50

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表