蓝牙HID协议笔记【转】

蓝牙HID协议笔记

转自:http://blog.sina.com.cn/s/blog_69b5d2a50101emll.html

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的格式如下:



(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的交互如下:

时间: 2024-10-29 08:48:53

蓝牙HID协议笔记【转】的相关文章

Edison 蓝牙模块 学习笔记

Edison 蓝牙模块 学习笔记 固定链接:https://www.zybuluo.com/SiberiaBear/note/212527 本笔记基于Intel Edison Bluetooth Guide官方手册完成,如有错误敬请指出. 由于个人能力有限,到最后几节内容一直拖着没有翻译,以后会补上,自己也是边学习边翻译的,还请见谅. Edison 蓝牙模块 学习笔记 基本介绍 Linux集成蓝牙 1 The bluetoothd daemon 2 Configuration 3 Applica

MQTT协议笔记之头部信息

前言 记忆不太好的时候,只能翻看以前的文章/笔记重新温习一遍,但找不到MQTT协议有关订阅部分的描述,好不容易从Evernote中找到贴出来,这样整个MQTT协议笔记,就比较齐全了. SUBSCRIBE 一般来讲,客户端在成功建立TCP连接之后,发送CONNECT消息,在得到服务器端授权允许建立彼此连接的CONNACK消息之后,客户端会发送SUBSCRIBE消息,订阅感兴趣的Topic主题列表(至少一个主题),一个完整示范如下:   Description 7 6 5 4 3 2 1 0 Fix

MQTT协议笔记之订阅

前言 记忆不太好的时候,只能翻看以前的文章/笔记重新温习一遍,但找不到MQTT协议有关订阅部分的描述,好不容易从Evernote中找到贴出来,这样整个MQTT协议笔记,就比较齐全了. SUBSCRIBE 一般来讲,客户端在成功建立TCP连接之后,发送CONNECT消息,在得到服务器端授权允许建立彼此连接的CONNACK消息之后,客户端会发送SUBSCRIBE消息,订阅感兴趣的Topic主题列表(至少一个主题),一个完整示范如下:   Description 7 6 5 4 3 2 1 0 Fix

MQTT协议笔记之发布流程

MQTT协议笔记之发布流程 前言 这次要讲到客户端/服务器的发布消息行为,与PUBLISH相关的消息类型,会在这里看到. PUBLISH 客户端发布消息经由服务器分发到所有对应的订阅者那里.一个订阅者可以订阅若干个主题(Topic name),但一个PUBLISH消息只能拥有一个主题. 消息架构一览:   Description 7 6 5 4 3 2 1 0 Fixed header/固定头部 byte 1   Message Type(3) DUP flag QoS level RETAIN

[蓝牙] 2、蓝牙BLE协议及架构浅析&&基于广播超时待机说广播事件

第一章 BLE基本概念了解 一.蓝牙4.0和BLE区别 蓝牙4.0是一种应用非常广泛.基于2.4G射频的低功耗无线通讯技术.蓝牙低功耗(Bluetooth Low Energy ),人们又常称之为BlueTooth Smart,是由SIG( the Bluetooth Special Interest Group) 在2010年6月起草,在原有标准的蓝牙4.0核心协议上添加的一种低功耗技术. 蓝牙低功耗不等同于蓝牙4.0,只是蓝牙4.0的一个分支.蓝牙4.0是蓝牙3.0+ HS(高速蓝牙)规范的

Ti CC2540蓝牙模块学习笔记整理

接触CC2540几天,终于有了初步的理解,现将笔记整理如下,只是皮毛,如有错误,还请指正,还有好多没闹明白的地方,以后应该还会继续向里面更新~ 一.整体 1.TI的蓝牙平台支持2种协议栈/应用配置:单一设备配置.网络处理器配置 2.协议栈最顶层2个通用profile: GAP 通用访问配置文件层 Generic Access Profile GATT 通用属性配置文件层 Generic Attribute Profile 3. GAP:处理设备的接入方式及接入过程:①设备发现 ②链路建立 ③链路

tcp ip协议笔记(1)——简介

前言 本人记性不佳,看书健忘,以此笔记来记录看书后自己所知所想,已达到加深对tcp ip的理解,本笔记仅仅是我看完书后自己所写的总结,权当是书后复习. 一.为什么会有tcp ip协议 我们知道中国有56个民族,各个民族有各自的语言,语言就形成了各个民族的障碍,大家都说自己的语言,谁也听不懂对方在讲什么,语言是各个民族之间那道鸿沟,谁也跨不过,照成每个民族都是一个小团体,民族之间不能协同合作成为一个大团体.普通话就解决了这个问题,在民族之间那道鸿沟上建立了一道桥梁,让民族之间可以交流,避免了不

微信蓝牙外设协议 1

协议支持经典蓝牙和4.0 BLE 蓝牙,目前支持 ios 和 andriod 两个系统,后续会扩展到其他系统. PS:在 IOS 上比较稳定,在 Andriod 尚不稳定,因为 Andriod 手机的蓝牙芯片都不同,所以有些手机的蓝牙在执行某个命令的时候耗时太久,所以就连接不上,不稳定.而 IOS 手机使用的都是同一款蓝牙芯片,所以很稳定. 一. 整体架构 厂商服务器和外设,由厂商开发完成.微信会提供服务器的接口以对接厂商的服务器,会提供手机的接口(如本文规定的蓝牙协议)以对接厂商的外设. 二.

tcp ip协议笔记(1)——简单介绍

??前言 本人记性不佳,看书健忘,以此笔记来记录看书后自己所知所想,已达到加深对tcp ip的理解.本笔记不过我看完书后自己所写的总结,权当是书后复习. 一.为什么会有tcp ip协议 我们知道中国有56个民族.各个民族有各自的语言,语言就形成了各个民族的障碍.大家都说自己的语言,谁也听不懂对方在讲什么,语言是各个民族之间那道鸿沟,谁也跨只是,照成每一个民族都是一个小团体,民族之间不能协同合作成为一个大团体. 普通话就攻克了这个问题,在民族之间那道鸿沟上建立了一道桥梁,让民族之间能够交流,避免了