这个母板的 UART 通道使用的传统串行驱动程序可以从 BlueZ UART 传输驱动程序上收发数据。如果使用 BSCP 协议将 CSR 芯片设计为封装 HCI 数据分组,您必须使用 hciattach (hciattach ttySx bcsp) 通知 BlueZ 链接驱动程序,在这里 x 是连接到 CSR 芯片组的 UART 通道号。现在 hci_uart 与 CSR 芯片交互并且传送 Bluetooth 数据往返于 BlueZ 栈。
Sony HBH-30 Bluetooth 耳机
前面的 Bluetooth 设备示例展示了网络数据流。现在,通过查看 Sony Ericsson Bluetooth 耳机来考虑 Bluetooth 音频 (SCO) 数据的传输。在耳机可以开始与 Linux 设备通信以前,它必须被 Linux 设备上的 Bluetooth 链路层检测出来。因此,您必须将耳机置于发现模式(通过按下耳机上的一个按钮)。另外,您需要通过 Linux 设备上的 BlueZ 配置耳机的 PIN。Linux Bluetooth 设备上使用 BlueZ SCO API 的应用程序现在可以发送音频数据到耳机上。音频数据应当是耳机 可以理解的格式(例如,Sony 耳机的 A-law PCM [Pulse Code Modulation] 格式)。有些公共主域实用程序可以将音频(甚至文本文件)转换为各种 PCM 格式。
Bluetooth 芯片组除拥有 HCI 传输接口以外还有 PCM 接口 PIN。例如,如果设备同时支持 GSM 和 Bluetooth,GSM 芯片组的 PCM 线路可以直接与 Bluetooth 芯片的 PCM 音频线路连接。然后,您可能不得不在 Linux 设备上配置 Bluetooth 芯片组,以通过 HCI 传输接口而不是 PCM 接口收发 SCO 音频数据分组。