0

我的小项目是将 HCI 命令写入蓝牙 USB 加密狗并获得 HCI 命令的响应。

我可以如下打印我的 USB 蓝牙加密狗的所有端点地址(使用 libusb)。根据蓝牙系统主机控制接口[传输层]的规范,(2.1节)端点地址0x00用于编写HCI命令。0x00但我在我的蓝牙加密狗中找不到端点地址。

config[0]->interface[0]->altsetting[0]->endpoint[0]->bEndpointAddress=0x81 packetsize=16
config[0]->interface[0]->altsetting[0]->endpoint[1]->bEndpointAddress=0x02 packetsize=64
config[0]->interface[0]->altsetting[0]->endpoint[2]->bEndpointAddress=0x82 packetsize=64
config[0]->interface[1]->altsetting[0]->endpoint[0]->bEndpointAddress=0x03 packetsize=0
config[0]->interface[1]->altsetting[0]->endpoint[1]->bEndpointAddress=0x83 packetsize=0
config[0]->interface[1]->altsetting[1]->endpoint[0]->bEndpointAddress=0x03 packetsize=9
config[0]->interface[1]->altsetting[1]->endpoint[1]->bEndpointAddress=0x83 packetsize=9
config[0]->interface[1]->altsetting[2]->endpoint[0]->bEndpointAddress=0x03 packetsize=17
config[0]->interface[1]->altsetting[2]->endpoint[1]->bEndpointAddress=0x83 packetsize=17
config[0]->interface[1]->altsetting[3]->endpoint[0]->bEndpointAddress=0x03 packetsize=25
config[0]->interface[1]->altsetting[3]->endpoint[1]->bEndpointAddress=0x83 packetsize=25
config[0]->interface[1]->altsetting[4]->endpoint[0]->bEndpointAddress=0x03 packetsize=33
config[0]->interface[1]->altsetting[4]->endpoint[1]->bEndpointAddress=0x83 packetsize=33
config[0]->interface[1]->altsetting[5]->endpoint[0]->bEndpointAddress=0x03 packetsize=49
config[0]->interface[1]->altsetting[5]->endpoint[1]->bEndpointAddress=0x83 packetsize=49
  1. 这是否意味着,我的蓝牙加密狗不支持发送 HCI 命令
  2. 如果是,是否有其他方法可以将 HCI 命令发送到我的蓝牙加密狗
4

1 回答 1

2

端点 0x00 被“保留”用于主机和设备之间的控制传输,事实上,每个设备都必须有这个端点,它没有端点描述符。通过您的主机使用此端点来枚举和配置您的设备,您仍然可以使用它进行通信。您所要做的就是在端点 0x00 上启动控制传输。您不必配置设备或声明接口来执行此操作,但我建议您无论如何都这样做(可能在速度等方面具有某些优势)。

于 2016-06-24T08:29:41.393 回答