[资料]蓝牙开发

简介: [资料]蓝牙开发

相关文章

蓝牙Profile的概念和常见种类(转)

蓝牙HID协议笔记

蓝牙报告描述

BLE工程——蓝牙键盘规范的报告描述符分析

GATT Profile 简介

BLE HID控制手机相机或音乐

BLE HID简介

USB与BT HID reports描述符实践与抓包分析

HID 设备(鼠标) report descriptor解析

如何成为一个HID设备(模拟键盘)

蓝牙HID规范的报告描述符【另外一篇文章】

BLE HID简介

introduction-to-bluetooth-low-energy

蓝牙:GATT,属性,特性,服务

HID 设备(鼠标) report descriptor解析

USB HID报告及报告描述符简介

关于USBHID协议以及鼠标键盘描述符的解释

usbhid协议

USB-HID多点触摸的报告描述符和报告描述符中Feature报告的处理方法

多点触摸 终于有了初步成果

触摸屏单点USB HID设置(老外写的 我看着基本没什么问题)

USB多点触控上报协议详解

【驱动】TP电容屏驱动—3.TP报点协议A/B 之 1.USB多点触控上报协议详解(示例)

微软 使用触控数字化器设备 (Windows 7) 的示例报告描述符

usb hid 报告描述符详解 附输入输出

有没有朋友搞过鼠标的绝对坐标控制

HID 描述符 报告描述符 字段详细介绍

BLE工程——外设+观察者的实现 以及原理

usb hid

Teensy开发

相关工具

hidrd

蓝牙hid协议

HID设备,即人机交互设备,常见的有鼠标,键盘,游戏手柄,等等。一般有线方式都是通过USB连线连接到机器设备,作为用户输入设备。在蓝牙技术中,HID设备的接入就是无线的了。但 BLE HID 规范是以 USB HID 规范为基础的 ,不然设备驱动,兼容等问题都会有很多麻烦了。蓝牙中有HID, HOGP profile,但是只是在蓝牙数据通信上做的规范,HID具体含义相关,还是需要看USB相关的HID文档。

下面说的 host 和 device, 是 USB 中的角色概念。

HOST 就相当于 PC 主机, 而 device就相当于鼠标,键盘这些 USB 外设。

ble hid 中,可以看做蓝牙设备就是 device,而手机就是 host。

为什么蓝牙设备发送数据却称为输入报告,

这是因为在 USB 规范中,Input output 都是相对与 host 来说的,输入到 host 的数据称为 input,host 输出的数据称为 output。

一、HID Reports :

Bluetooth HID devices支持三种Report:Input, Output, Feature。

Input Reports,输入报告

Ble 中,表示 Bluetooth HID device 发送数据给 Bluetooth HID Host.

USB 中输入报告通常通过 中断输入端点来传输。当然也可以通过 控制端点由 HOST 使用 GET REPORT 控制传输请求来获取数据,即host 先发送 get report 命令,device 随后回复 input report,之后 host 会回复一个状态(0 字节数据表示成功)。

Output Reports,输出报告

Ble 中表示 Bluetooth HID Host.发送数据给 Bluetooth HID device.

USB 中输出报告通常通过 中断输出端点来传输。当然也可以通过 控制端点由 HOST 使用 SET REPORT 控制传输请求来发出数据,即HOST 先发送 set report 命令,随后 HOST 发送待发送的数据,最后 DEVICE 回复一个状态(0 字节表示成功)。

Feature Reports,特征报告

Ble 中双向数据通道

USB 中只能通过控制端点来传输双向数据, HOST 使用 GET REPORT 来从 DEVICE 获取数据,或者 HOST 使用 SET REPORT 发送数据给 DEVICE。

二、HID channel

Control Channel和Interrupt Channel两个通道。

report可以在这两条channel上传输,

在Control channel上传输的report称为synchronous reports ;

在Interrupt channel上传输的report称为asynchronous reports。

Feature reports are always transferred synchronously using GET_REPORT or SET_REPORT requests。

特征报告 通常同步传输发送GET_REPORT和SET_REPORT请求

三、HID Report Modes

对于接受和发送的report有两种协议,

一种为boot protocol

另一种为report protocol。

注意 不要将这两种协议和 Bluetooth HID Protocol 相混淆。

Bluetooth HID Protocol

是描述 report 如何在 BT hid host 和 BT hid device 之间传输的协议。而 boot protocol 和 report protocol 描述的是发送 report 时如何组织,接收 report 时如何解析的协议。

Boot protocol 和 report protocol 的区别:

不明白的可以简单把 boot protocol 看做 report protocol 的子集。

BT hid 协议是基于 USB HID 协议的。

USB HID 协议中存在 两种特殊设备 鼠标和键盘。

如果你的 HID 设备是鼠标或者键盘,那么可以设置支持 boot protocol 协议,这样在PC BIOS 运行过程中就可以 识别 你的鼠标和键盘,而不必等到系统完全启动后,因为 boot protocol 不解析 report descriptor(报告描述符) ,他的数据格式是固定的,按照它的格式发送数据就可以被解析鼠标的移动或者键盘的按键。

当系统完全启动后,PC 会复位 USB 设备,并且设置为 report protocol。因为完全启动后 USB 的枚举会解析你的 报告描述符,所以这个时候你就可以按照你定义的方式来 传输 鼠标键盘数据,而不是 boot protocol 固定的数据格式。

如果你的是非键盘/鼠标 的 HID 设备,比如就是用来传输自定义数据的,那么就不要设置 boot protocol 协议,那么只有系统完全启动后才能识别你的 HID 设备,并根据枚举阶段的报告描述符 理解你发送的数据。

所以综上 boot / report protocol 的区别在于 boot 是数据格式和长度是固定的,数据表示什么意思也是固定的,所以不需要 报告描述符,而 report 需要根据 报告描述符才能 ,因为他需要根据报告描述符才能理解之后接收的报告数据的具体含义。

另外对于键盘 report protocol 相对于 boot protocol 支持更多的按键值。比如一些特殊的按键 F13-F22 等。

四、Bluetooth HID Protocol Messages

这些message不能超过L2CAP的MTU,大小超过MTU的message将被忽略。

五、BLE HID 服务 : 手册 HIDS-V1.0.0-(HID-Service).pdf

HID 服务 UUID 为标准规范,为 0x1812

数据的发送都是放在”报告中”,USB 中通过各个”端点”来收发数据。

ble 中即通过 HID 服务下面的各个 characteristic 来传输和接收 HID 的报告数据。

GATT

外围设备

中心设备

相关调试工具

Bluetooth LE Explorer

相关文章
|
6月前
|
传感器 移动开发 物联网
【Bluetooth开发】蓝牙开发入门
【Bluetooth开发】蓝牙开发入门
71 0
|
Java 开发工具 Android开发
Android 蓝牙开发,蓝牙连打印机。(2)
Android 蓝牙开发,蓝牙连打印机。(2)
594 0
|
物联网 Android开发 iOS开发
iOS开发 - 蓝牙学习的总结
iOS开发 - 蓝牙学习的总结
129 0
|
物联网 Linux 芯片
蓝牙开发介绍|学习笔记
快速学习蓝牙开发介绍
219 0
蓝牙开发介绍|学习笔记
|
Java Android开发 开发者
21天打卡Andoid学到的一些小知识-第五六天
今天我们打卡的目标是 Android 10.0 Launcher3 app列表页桌面图标按安装时间排序app图标
49 0
|
Linux Apache Android开发
21天打卡Andoid学到的一些小知识-第一二天
活动地址:CSDN21天学习挑战赛
56 0
|
Android开发
21天打卡Andoid学到的一些小知识-第三四天
今天我想要为大家介绍的是Android 10.0 SystemUI默认去掉底部导航栏这个知识,希望通过我的介绍可以让你了解一部分知识,好吧,废话少说 直接进入正题。
59 0
|
传感器 Java Android开发
21天打卡Andoid学到的一些小知识-第七八天
今天我们打卡学习的内容是Android 10.0 修改导航栏横屏固定在底部显示,首先声明此次打卡学习的链接文章链接将会放置文章最后处,有需要的小伙伴可以自行去查阅观看。
109 0
|
传感器 编解码 小程序
小程序蓝牙开发
小程序蓝牙开发
小程序蓝牙开发
|
Java Android开发 开发工具
Android 蓝牙开发,蓝牙连打印机。
Android 蓝牙开发,蓝牙连打印机。
234 0
Android 蓝牙开发,蓝牙连打印机。