1

我正在尝试在现有的嵌入式设备上实现蓝牙。我使用的控制器是 LS Research TiWi-uB2,它使用 Ti CC2564 双模 IC。主机是 LPC2378 微控制器。该设备需要被其他设备(目前是 Android 设备和 PC)发现。该设备没有适合我需要的现成 BT 堆栈(成本、静态内存分配、内存大小),所以我正在编写自己的堆栈。

通过规范的第 2 卷 E 部分,我最终在 HCI 上获得了有意义的交流,但该设备似乎永远不会被其他任何东西“发现”。此时我只使用 BR/EDR 功能而不是 LE 功能。

这是 HCI 接口的调试转储(包括 UART 数据包类型):

BT_Reset
Tx: 0x01 0x03 0x0C 0x00
Rx: 0x04 0x0E 0x04 0x01 0x03 0x0C 0x00
Device info
Tx: 0x01 0x01 0x10 0x00
Rx: 0x04 0x0E 0x0C 0x01 0x01 0x10 0x00 0x06 0x00 0x00 0x06 0x0D 0x00 0x0F 0x1B
Local supported commands
Tx: 0x01 0x02 0x10 0x00
Rx: 0x04 0x0E 0x44 0x01 0x02 0x10 0x00 0xFF 0xFF 0xFF 0x03 0xCE 0xFF 0xFF 0xFF 0xFF
Local supported features
Tx: 0x01 0x03 0x10 0x00
Rx: 0x04 0x0E 0x0C 0x01 0x03 0x10 0x00 0xFF 0xFE 0x2D 0xFE 0xDB 0xFF 0x7B 0x87
Get device address
Tx: 0x01 0x09 0x10 0x00
Rx: 0x04 0x0E 0x0A 0x01 0x09 0x10 0x00 0x81 0xA6 0xD3 0x2F 0x18 0x00
Address: 00 18 2F D3 A6 81
Read buffer size
Tx: 0x01 0x05 0x10 0x00
Rx: 0x04 0x0E 0x0B 0x01 0x05 0x10 0x00 0xFD 0x03 0xB4 0x04 0x00 0x04 0x00
ACL len = 1021
Write buffer size
Tx: 0x01 0x33 0x0C 0x07 0xFC 0x00 0x00 0x00 0x00 0x00 0x00
Rx: 0x04 0x0E 0x04 0x01 0x33 0x0C 0x00
Write local name
Tx: 0x01 0x13 0x0C 0x08 0x42 0x54 0x5F 0x54 0x65 0x73 0x74 0x00
Rx: 0x04 0x0E 0x04 0x01 0x13 0x0C 0x00
Read class of device
Tx: 0x01 0x23 0x0C 0x00
Rx: 0x04 0x0E 0x07 0x01 0x23 0x0C 0x00 0x14 0x01 0x08
Write class of device
Tx: 0x01 0x24 0x0C 0x03 0x14 0x01 0x08
Rx: 0x04 0x0E 0x04 0x01 0x24 0x0C 0x00
Write scan enabled
Tx: 0x01 0x1A 0x0C 0x01 0x03
Rx: 0x04 0x0E 0x04 0x01 0x1A 0x0C 0x00
Finished

我也可以做链接查询:

Tx: 0x01 0x01 0x04 0x05 0x33 0x8B 0x9E 0x0A 0x0A
Rx: 0x04 0x0F 0x04 0x00 0x01 0x01 0x04
…
Rx: 0x04 0x01 0x01 0x00

但它没有找到任何设备。

我确定我遗漏了一些相当明显的东西,但看不出它可能是什么。我看不到 CC2564 需要特殊处理才能在 BR/EDR 模式下运行,并且所有默认值似乎都是合理的。

更新

该模块需要一个初始化脚本(又名“服务包”)。请参阅“初始化脚本”下的https://code.google.com/p/btstack/wiki/MSP430GettingStarted 。好消息是,现在可以通过脚本发现模块。坏消息是,根据 LS Research 的说法,我自己的堆栈不会被蓝牙 SIG 投诉——我必须使用 Bluetopia 堆栈。似乎一切都非常适合使用 Ti 处理器。
此时,我将不得不等到具有更高级别接口的 BR/EDR/BLE 模块上线。

4

1 回答 1

0

仅当您使用公共配置文件(例如 SPP),或者当您以可连接的方式公开您的设备以供其他设备(如耳机或键盘)使用时,才需要蓝牙合规性。不久,只有当您在全球市场上将您的设备作为“蓝牙”设备销售时才需要资格认证(这样您就可以使用徽标)......至少在我的理解中......

并且服务包不包含堆栈的任何部分,因此完全免费。

并且在根据本文档加载服务包之前不允许进行蓝牙特定操作(甚至发现): cc256x 指南

于 2013-04-03T13:27:50.200 回答