成熟的蓝牙嵌入式系统堆栈?

3

我需要一个成熟的蓝牙栈来用于嵌入式系统,希望您能提供建议。

栈的体积应该尽可能地小,占用空间少。

最好是开源的,支持BLE并且可以在没有操作系统的情况下运行。但这不是必须的要求。

费用方面可以商量,我们将用于商业用途。

我使用的是STM32处理器(ARM),所以栈应该直接支持或者具有足够的通用性,便于移植。

谢谢!


很遗憾,目前没有免费的开源选项。有一些公司出售/许可此类嵌入式堆栈。 - TJD
我工作的公司有一个符合您要求的蓝牙堆栈(不免费)。http://www.stollmann.de/en/stacks/bluetooth-bluetooth-low-energy.html - Nils Pipenbrinck
4个回答

3

Apache现在拥有一个名为NimBLE的开源BLE堆栈,它运行在其MyNewt操作系统上。它可以在nRF5x芯片上运行,并且是唯一一个比较完整的开源BLE堆栈。我还没有尝试过它,但看起来相当不错。

编辑:我已经尝试过了。截至目前(2016年9月),它可以正常工作 - 您可以读/写/通知特征等。有一些缺少的功能,但它绝对可用。

请注意,代码编写得相当好(例如,他们甚至记录了哪些函数在中断上下文中运行!),但它是经典的C89版本,因此存在大量手动内存管理、指针魔术、信任数组长度等问题。在他们的newt构建系统中也没有支持C++。


1

你可以看看Smalltooth。它针对PIC24和PIC32,但可能适用于ARM。 SmallTooth Bluetooth Stack是一个从头开始编写的开源蓝牙堆栈,专为嵌入式设备设计。


唯一的缺点是它仅限于BT Classic,而且仅适用于少数配置文件。如果您使用资源非常有限的设备(它是为PIC设计的...),并且您在其覆盖范围内,则可以创建一个足够好的堆栈。但是没有LE和客户端。如果您想/需要设备成为关系中的中心,则此堆栈无法满足您的需求。 - Svartalf

1
你使用的是哪种蓝牙芯片或模块?
你可能会发现,芯片制造商可以为您提供嵌入式BT堆栈。
例如,CSR(剑桥硅谷)是一家出售精美蓝牙4.0芯片的公司,他们有一个名为Synergy的产品,这是一个用于嵌入式设备的BT堆栈。有Android和WinCE版本,但也有一个核心版本,可以移植到许多不同的操作系统和硬件平台上。

www.csrsupport.com

我认为Broadcom也制造蓝牙芯片。


Synergy支持BLE但不是开源的。 - Simon Peverett
我的制造商(STericsson)不幸地无法提供蓝牙堆栈。我正在使用CG2900,http://www.stericsson.com/products/cg2900-gps.jsp。 - ChewToy

0

提问者要求使用开源堆栈。你提供的是有源代码的,但在商业项目中使用需要支付版税。这个并不完全符合提问者的要求,是吧? - Svartalf
1
我理解他/她的重点是轻量级和低占用资源。开源和/或商业免费使用被列为“好有的”。 - mringwal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接