2025年蓝牙hid协议(蓝牙hid协议怎么看有没有)

蓝牙hid协议(蓝牙hid协议怎么看有没有)在这一段折腾 Bluez 的时间里 越来越发现 Bluez 相关的许多工具做得还是挺好用的 主要在 Bluez utils tools 目录下 只是有一点让我很遗憾 除了 man 以外很难找到更多的帮助文档 而 man 文档本身对一些功能的描述也不是很详细 其中有些选项 如果你不了解蓝牙协议栈 或者没有查阅过相关蓝牙芯片的一些文档 很难搞明白是什么意思 甚至有些选项的具体参数值的设定

大家好,我是讯享网,很高兴认识大家。



在这一段折腾Bluez的时间里,越来越发现Bluez相关的许多工具做得还是挺好用的,主要在Bluez-utils/tools 目录下。只是有一点让我很遗憾,除了man以外很难找到更多的帮助文档,而man文档本身对一些功能的描述也不是很详细。

其中有些选项,如果你不了解蓝牙协议栈,或者没有查阅过相关蓝牙芯片的一些文档,很难搞明白是什么意思,甚至有些选项的具体参数值的设定,如果不读源码你都无从得知有哪些备选值。。。。

 

能力有限,下面所写的只是我所用过的有限的几个工具的一些使用经验,希望能有所帮助。

Bccmd的调用格式为:bccmd [-t <transport>] [-d <device>] <command> [<args>]

 

Tansport类型包括 HCI USB BCSP H4等,常用的估计就是HCI和BCSP两种。需要注意一下他们的使用场合:

HCI是一个抽象的标准的蓝牙通讯接口,在基于HCI协议调用BCCMD时,需要在Bluez已经建立好hci接口的基础上使用。

BCSP(Bluecore Serial Protocol)是CSR自己制定的传输层协议,主要目的是用来加强在没有使用CTS、RTS进行流量控制的情况下进行可靠的数据传输的能力。其概念是 相对H3 , H4而言,( 具体分析,请参考下面杂项一章中相应的小节 )

 

BCCMD的主要用途就是用来读写pskey,这里以 psset 这个command来介绍一下格式:

Psset 格式如下: psset [-r] [-s <stores>] <key> <value>

其它都好理解,关键是-s参数之后跟的store具体的含义。这个参数可以是数值也可以是字符串

查询CSR的BCCMD相关的文档,可以找到具体的含义如下:

 


讯享网

 

CSR的蓝牙芯片中,PSKEY可能存储在 rom flash eeprom ram等介质里,这里的数值指明了psset/get命令操作PSKEY时所针对的存储介质及其优先顺序,通常我们会用 –s 0x0 或 –s “default” 来使用该命令,0x0的含义与0xf一样。

 

值得注意的是,哪个参数是有效的,还取决于哪一类的存储介质实际存在于蓝牙芯片中,此外,只读类的介质对写操作类的命令也是无效的。

 

基本上来说,所修改的都是位于psram中的pskey,此外,pskey修改以后要起作用,还要一并使用 –r参数,或直接用warmreset命令将蓝牙芯片进行warm reset。

 

 

 

 

其中最重要的参数就是 type和speed,type决定了要初始化的设备的型号,可以使用 hciattach –l 来列出所支持的设备型号。

并不是所有的参数对所有的设备都是适用的,有些设备会忽略一些参数设置,例如:查看hciattach的代码就可以看到,多数设备都忽略bdaddr参数。

 

Hciattach命令内部的工作步骤是:首先打开制定的tty设备,然后做一些通用的设置,如flow等,然后设置波特率为 initial_speed,然后根据type调用各自的初始化代码,最后将波特率重新设置为speed。所以调用hciattach时,要根据你的实际 情况,设置好initial_speed和speed。

 

对于type BCSP来说,它的初始化代码只做了一件事,就是完成BCSP协议的同步操作,它并不对蓝牙芯片做任何的pskey的设置。同步操作的具体流程和规范可以参考CSR的相关文档: BCSP Link Establishment Protocol

 

例如:Hcitool scan, hcitool inq

 

常用的应该就是查找远端设备的服务了

例如:

sdptool browse 00:02:72:B0:00:26 浏览地址为00:02:72:B0:00:26的设备所提供的服务

sdptool search 0x1112 00:02:72:B0:00:26 查找地址为00:02:72:B0:00:26的设备上的Headset Audio Gateway服务。

 

例如

hciconfig hci0 up 启动hci0接口

hciconfig hci0 iscan 使能位于hci0接口的蓝牙芯片的inquery scan模式(使得设备能被其它蓝牙设备发现)

小讯
上一篇 2025-05-14 07:03
下一篇 2025-04-21 14:36

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/193079.html