0

我是 BLE/蓝牙编程的新手。众所周知,BLE/蓝牙是一个完整的模块。最近我发现,NimBLE 提供了蓝牙的主机堆栈或控制器部分。https://github.com/apache/mynewt-core。在这里他们提到它支持任何主机堆栈与任何控制器的混合和匹配。

  1. 那么,是所有模块的 HCI 层(主机堆栈通过其交互)和控制器(较低的蓝牙层)实现相同还是特定于供应商?

  2. 如果我从 NimBLE 中选择主机堆栈,HCI 的实现是否允许我使用任何供应商的控制器进行操作,或者 HCI 层是否应该使用供应商规范实现并取决于控制器。

我假设蓝牙/BLE模块的控制器部分具有基本的RF和通信部分,所有模块的互操作性都是相同的。如果这个问题是微不足道的,我很抱歉。

4

1 回答 1

1

任何具有 hci 接口的主机堆栈都应该与任何 hci 控制器一起使用,只要它们都支持相同的传输方法(UART、USB 等)

有时,特别是对于 USB,您还需要一个特定的主机驱动程序来打开特定设备的传输接口。对于 UART,一些供应商需要一些供应商特定的设置数据包通过 UART 发送,这些数据包配置波特率等,然后才能启动 hci。

主机和控制器也应该有一个共同的功能集。例如,您不能对仅支持经典蓝牙的主机和仅支持 BLE 的控制器做太多事情。

一些 hci 控制器实现自定义供应商命令,以提供标准命令之外的额外功能,例如设置自定义公共蓝牙设备地址。主机还必须支持这些命令才能使用它们。

于 2018-02-01T22:58:02.590 回答