【问题标题】:Bluetooth not write scanning using HCI蓝牙不使用 HCI 进行写入扫描
【发布时间】:2013-01-28 23:22:45
【问题描述】:

我正在尝试在现有的嵌入式设备上实现蓝牙。我使用的控制器是 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模块上线了。

【问题讨论】:

  • 你的命令是合理的。有任何证据表明 RF 有效吗?天线连接了吗?
  • 这是 TiWi-uB2 EM 板,所以天线是电路的一部分,看起来还不错(我刚刚检查了跳线并确定了)。我还用示波器测试了慢时钟(事实证明,在任何情况下,如果没有慢时钟,HCI 就无法工作)。有一次,作为查询的结果,我确实收到了我的笔记本电脑蓝牙的地址(但无法再次复制)。

标签: bluetooth embedded stack


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2016-05-01
    • 1970-01-01
    • 2015-03-03
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    • 2020-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多