蓝牙HID协议笔记
来源:互联网 发布:手机淘宝如何更换账号 编辑:程序博客网 时间:2024/04/30 04:45
1.概述 The Human Interface Device (HID)定义了蓝牙在人机接口设备中的协议、特征和使用规程。典型的应用包括蓝牙鼠标、蓝牙键盘、蓝牙游戏手柄等。该协议改编自USB HID Protocol。
(1)HANDSHAKE
GET_PROTOCOL Data Definition格式如下:
(2)Interrupt Channel Transfers
2.一些概念
(1)HID Reports:Bluetooth HID devices支持三种Report:Input, Output, and Feature。
(2)HID建立Control Channel和Interrupt Channel两个通道,report可以在这两条channel上传输,在Control channel上传输的report称为synchronous reports ;在Interrupt channel上传输的report称为asynchronous reports。
(3)Feature reports are always transferred synchronously using GET_REPORT or SET_REPORT requests。
(4)Report Protocol Mode和Boot Protocol Mode。Bluetooth HID Hosts至少支持一种,Bluetooth HID Device则需要支持Report Protocol Mode,并且Report Protocol Mode是Bluetooth HID Device的默认Mode。
3.Bluetooth HID Protocol Messages
这些message不能超过L2CAP的MTU,大小超过MTU的message将被忽略。
Message Header的格式如下:
(1)HANDSHAKE
该Message用来acknowledgeSET_REPORT, SET_IDLE and SET_PROTOCOL等request。只在Control Channel上传输,只由Bluetooth HID device。
Parameter部分定义如下:
(2)HID_CONTROL
控制Bluetooth HID device改变状态。
Parameter部分定义如下:
(3)GET_REPORT
Bluetooth HID Host用来请求Bluetooth HID device的传输。
定义如下:
(4)SET_REPORT
Bluetooth HID Host用来向Bluetooth HID device发起传输。
格式如下:
(5)GET_PROTOCOL
用来获取Bluetooth HID device的Protocol Mode,然后Bluetooth HID device response一个DATA payload说明当前的Protocol Mode。
格式如下:
GET_PROTOCOL Data Definition格式如下:
(6)SET_PROTOCOL
用来设置Bluetooth HID device的Bluetooth HID device。格式如下:
(7)DATA
代表一个a HID payload。格式如下:
4.Transfers
以HID Protocol messages的形式传输。
(1)Control Channel Transfers
分为Acknowledged和Unacknowledged两种,格式如下:
(2)Interrupt Channel Transfers
Interrupt IN和Interrupt OUT两种,可以在任意时刻发送。【中断嘛】
5.其余各层对于HID的要求
HID与L2CAP的交互如下:
- 蓝牙HID协议笔记
- 蓝牙HID协议笔记
- 蓝牙HID协议笔记
- 蓝牙HID协议笔记
- 蓝牙HID协议介绍
- 蓝牙hid协议源码解析
- 蓝牙的HFP协议笔记
- 蓝牙的AVDTP协议笔记
- 蓝牙的AVCTP协议笔记
- 圈圈USB学习笔记5--关于HID协议
- 蓝牙 HID 剖析(一)
- 蓝牙 HID class descriptor 分析
- BLE蓝牙hid键盘表
- Android蓝牙开发【三】蓝牙Hid开发
- usb hid 协议入门
- HID键盘底层协议
- FIDO U2F HID协议
- 蓝牙协议学习笔记(1)-2.0
- 蓝牙的HFP协议笔记
- http://www.coocox.org/CN/CoIDE/CoIDE_Updates.htm#
- android.widget.GridView
- MVC框架模式详解
- oracle基础
- 蓝牙HID协议笔记
- linux kernel内存映射实例分析
- 中断申请后在close(fd)之后,进行中断释放 free_irq,但是有一下报错
- [MySQL故障] ERROR 1045 (28000): Access denied for user 'mmm_agent'@'exxx-tx.com' (using password: YES)
- oracle恢复删除的数据
- Android 小常识
- 关于javascript URL 传递参数乱码的问题及解决方案。
- VirtualBox下linux 与win7之间数据空间的建立
- 蓝牙的AVDTP协议笔记