蓝牙HID协议笔记

1.概述
    The Human Interface Device (HID)定义了蓝牙在人机接口设备中的协议、特征和使用规程。典型的应用包括蓝牙鼠标、蓝牙键盘、蓝牙游戏手柄等。该协议改编自USB HID Protocol。
    
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的格式如下:
蓝牙HID协议笔记
蓝牙HID协议笔记
蓝牙HID协议笔记
(1)HANDSHAKE
该Message用来acknowledgeSET_REPORT, SET_IDLE and SET_PROTOCOL等request。只在Control Channel上传输,只由Bluetooth HID device。
Parameter部分定义如下:
蓝牙HID协议笔记

(2)HID_CONTROL
控制Bluetooth HID device改变状态。
Parameter部分定义如下:
蓝牙HID协议笔记

(3)GET_REPORT
Bluetooth HID Host用来请求Bluetooth HID device的传输。
定义如下:
蓝牙HID协议笔记

(4)SET_REPORT
Bluetooth HID Host用来向Bluetooth HID device发起传输。
格式如下:
蓝牙HID协议笔记

(5)GET_PROTOCOL
用来获取Bluetooth HID device的Protocol Mode,然后Bluetooth HID device response一个DATA payload说明当前的Protocol Mode。
格式如下:
蓝牙HID协议笔记
GET_PROTOCOL Data Definition格式如下:
蓝牙HID协议笔记

(6)SET_PROTOCOL
用来设置Bluetooth HID device的Bluetooth HID device。格式如下:
蓝牙HID协议笔记

(7)DATA
代表一个a HID payload。格式如下:
蓝牙HID协议笔记

4.Transfers
以HID Protocol messages的形式传输。
(1)Control Channel Transfers
分为Acknowledged和Unacknowledged两种,格式如下:
蓝牙HID协议笔记
(2)Interrupt Channel Transfers
Interrupt IN和Interrupt OUT两种,可以在任意时刻发送。【中断嘛】

5.其余各层对于HID的要求
HID与L2CAP的交互如下:
蓝牙HID协议笔记
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值