蓝牙人机接口设备协议(HID)概念以及封包格式介绍

更新时间:2023-07-11 04:52:55 阅读: 评论:0

高掌远跖>高血压防治知识
蓝⽛⼈机接⼝设备协议(HID)概念以及封包格式介绍
零. 概述
主要介绍下蓝⽛协议栈(bluetooth stack)传统蓝⽛⾳频协议之蓝⽛⼈机接⼝设备协议(HID)概念介绍
HID协议有很多应⽤,⽐如蓝⽛⿏标,键盘,⼿柄,⾃拍杆等都会⽤到HID协议!
⼀. 声明
本专栏⽂章我们会以连载的⽅式持续更新,本专栏计划更新内容如下:创模
第⼀篇:蓝⽛综合介绍 ,主要介绍蓝⽛的⼀些概念,产⽣背景,发展轨迹,市⾯蓝⽛介绍,以及蓝⽛开发板介绍。
第⼆篇:Transport层介绍,主要介绍蓝⽛协议栈跟蓝⽛芯⽚之前的硬件传输协议,⽐如基于UART的H4,H5,BCSP,基于USB的H2等
第三篇:传统蓝⽛controller介绍,主要介绍传统蓝⽛芯⽚的介绍,包括射频层(RF),基带层(baband),链路管理层(LMP)等
第四篇:传统蓝⽛host介绍,主要介绍传统蓝⽛的协议栈,⽐如
HCI,L2CAP,SDP,RFCOMM,HFP,SPP,HID,AVDTP,AVCTP,A2DP,AVRCP,OBEX,PBAP,MAP等等⼀系列的协议吧。
第五篇:低功耗蓝⽛controller介绍,主要介绍低功耗蓝⽛芯⽚,包括物理层(PHY),链路层(LL)
第六篇:低功耗蓝⽛host介绍,低功耗蓝⽛协议栈的介绍,包括HCI,L2CAP,ATT,GATT,SM等
第七篇:蓝⽛芯⽚介绍,主要介绍⼀些蓝⽛芯⽚的初始化流程,基于HCI vendor command的扩展
第⼋篇:附录,主要介绍以上常⽤名词的介绍以及⼀些特殊流程的介绍等。
另外,开发板如下所⽰,对于想学习蓝⽛协议栈的最好⼈⼿⼀套。以便更好的学习蓝⽛协议栈,相信我,学完这⼀套视频你将拥有修改任何协议栈的能⼒(⽐如Linux下的bluez,Android下的bluedroid)。
-------------------------------------------------------------------------------------------------------------------------
蓝⽛交流扣扣群:970324688
--------------------------------------------------------------------------------------------------------------------------
⼆. HID概念
淡菜的做法
The Human Interface Device (HID)定义了蓝⽛在⼈机接⼝设备中的协议、特征和使⽤规程。该协议改编⾃USB HID Protocol。
1. HID⾓⾊
A Bluetooth HID device is a device providing the rvice of human or other data input and output to and from a Bluetooth HID Host. Examples of Bluetooth HID devices are keyboards, mice, joysticks, gamepads, remote controls, and also voltmeters and temperature nsors.
A Bluetooth HID Host is a device using or requesting the rvices of a Bluetooth HID device. Examples would be a personal computer, handheld computer, gaming console, industrial machine, or data-recording device.
简单解释下⾓⾊,bluetooth HID分为host/device两个觉得,拿⼀个⿏标跟电脑(或者插在电脑的dongle)举例,蓝⽛⿏标就是hid device⾓⾊,电脑(或者插在电脑的dongle)就是hid host觉得,同样的游戏主机跟游戏⼿柄,那么游戏⼿柄是hid device⾓⾊,游戏主机是hid host⾓⾊。
重庆自然博物馆
2. HID report
蓝⽛HID report分为三种:
1) Input report:从hid device发送给hid host的封包
2) Output report:从hid host发送给hid device的封包
可以看出以上两种封包的input/output的⽅向都是就hid host⽽⾔的,⽽且要求低时延
3) Feature report:特性封包,是双向的
3. HID逻辑链路
注定二婚的女人手相HID有两条逻辑链路:
1) HID Control:这个通道主要⽤于传输控制封包,在这个通道传输的封包称为同步封包(synchronous reports),L2CAP的psm为
0x0011
2) HID Interrupt:在这个通道传输的封包不需要确认,所以称为异步封包(asynchronous reports),L2CAP的psm为0x0013
三. HID封包格式命令介绍
HID的封包格式header field只有⼀个byte,4bit的message type,4bit的parameter格式如下:
其中message type如下:
其中灰⾊部分为舍弃掉了,以后不再使⽤,所以我们代码中定义如下:
1. HANDSHAKE封包
这个消息是只能从hid device的control channel发出,⽤于回复以下封包
1)SET_REPORT, SET_IDLE and SET_PROTOCOL requests
张信哲
2)GET_REPORT, GET_PROTOCOL and GET_IDLE requests if an error is detected in the parameters of the initial request
3)a request with an unsupported message type
具体的header参数如下:
2. HID_CONTROL封包
这个是HID control封包,格式如下:
其中NOP/HARD RESET/SOFT RESET被舍弃了,不再使⽤,我们来介绍下SUSPEND/EXIT SUSPEND/VITUAL_CABLE_UNPLUG
1) SUSPEND/EXIT SUSPEND
这个是hid host发送给hid device进⼊省电模式/退出省电模式的命令,⽐如hid host发送给hid mou发送SUSPEND的时候,mou关闭LED等进⼊省电模式
或者hid host发送给hid keyboard SUSPEND的时候,keyboard降低扫描按键的频率
2)VITUAL_CABLE_UNPLUG
这个命令是双向命令,hid host可以发送给hid device,同样hid device也可以发送给hid host,收到后断开连线
校车租赁3 .GET_REPORT封包
这个封包是hid host发送给hid device的消息。hid device接受到这个封包后,需要在control通道上回复包含requet信息的DATA type 封包
4. SET_REPORT封包
这个封包是hid host发送给hid device的消息。
5. GET_PROTOCOL封包
⽤来获取Bluetooth HID device的Protocol Mode,然后Bluetooth HID device respon⼀个DATA payload说明当前的Protocol Mode。
6. SET_PROTOCOL封包
7. DATA封包

本文发布于:2023-07-11 04:52:55,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1090242.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:介绍   封包   协议
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图