最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

Bluetooth HID规范

IT圈 admin 36浏览 0评论

2024年1月23日发(作者:宰父德华)

蓝牙HID规范

1.知识准备

拨号网络配置文件 - DUN

DUN 提供了通过 Bluetooth 无线技术接入 Internet 和其它拨号服务的标准。最常见的情况是在手机上拨号,从膝上型计算机以无线方式接入 Internet

文件传输配置文件 - FTP

FTP 定义了客户端设备如何浏览服务器设备上的文件夹和文件。一旦客户端找到了文件或位置,客户端即可从服务器拉取文件,或通过 GOEP 从客户端推送文件至服务器。

通用对象交换配置文件 - GAP

GAP 是所有其它配置文件的基础,它定义了在 Bluetooth 设备间建立基带链路的通用方法。此配置文件定义了一些通用的操作,这些操作可供引用 GAP 的配置文件以及实施多个配置文件的设备使用。GAP 确保了两个 Bluetooth 设备(不管制造商和应用程序)可以通过 Bluetooth 技术交换信息,以发现彼此支持的应用程序。不符合任何其它

Bluetooth 配置文件的 Bluetooth 设备必须与 GAP 符合以确保基本的互操作性和共存。

免提配置文件 - HFP

HFP 描述了网关设备如何用于供免提设备拨打和接听呼叫。典型配置如汽车使用手机作为网关设备。在车内,立体声系统用于电话音频,而车内安装的麦克风则用于通话时发送输出音频。HFP 还可用于个人计算机在家中或办公环境中作为手机扬声器的情况。

SIM 卡接入配置文件 (SAP)

SAP 允许带有内置 GSM 收发器的车载电话之类的设备连接到蓝牙电话中的 SIM

卡。因此车载电话本身并不需要单独的 SIM 卡。

服务发现应用配置文件 (SDAP)

SDAP 描述了应用程序如何使用 SDP 发现远程设备上的服务。由于 GAP 的要求,任何蓝牙设备都应当能够连接至其它蓝牙设备。基于此,SDAP 要求任何应用程序都应能

够发现它要连接的其它蓝牙设备上的可用服务。此配置文件可以承担搜索已知和特定服务以及搜索一般服务的任务。SDAP 涉及了称为“服务发现用户应用程序”的一个应用程序,这是蓝牙设备查找服务所必需的。此应用程序可以与向/从其它蓝牙设备发送/接收服务查询的

SDP 相接。SDAP 依赖于 GAP,并可以重新使用部分 GAP

串行端口配置文件 (SPP)

SPP 定义了如何设置虚拟串行端口及如何连接两个蓝牙设备。SPP 基于 ETSI

TS07.10 规格,使用 RFCOMM 协议提供串行端口仿真。SPP 提供了以无线方式替代现有的 RS-232 串行通信应用程序和控制信号的方法。SPP 为 DUN、FAX、HSP 和 LAN

配置文件提供了基础。此配置文件可以支持最高 128 kbit/sec 的数据率。SPP 依赖于

GAP

OPP规范是蓝牙手机通用的数据传输方式,叫对象交换协议,手机之间互传文件就采用这种规范

FTP规范其实就是FTP客户端和FTP服务器

2.蓝牙HID规范

2.1. 蓝牙HID规范的软件结构

蓝牙技术中的人性化接口设备(HID)应用模式可以使人们无连线烦恼地控制他们的计算机、游戏操作杆、远程监控设备等。本文参照SIG最新公布的0.95c版本HID规范,详细介绍了蓝牙HID规范及其应用场景,以及蓝牙HID终端设备端与HID主机端的解决方案。

蓝牙技术在成功地应用在耳机、免提设备和PC外设后,逐渐得到更广泛的应用,人们开始期望能够无连线烦恼地控制他们的计算机、游戏操作杆、遥控设备等。蓝牙SIG组织公布的HID规范正好迎合了这一需求。

与传统的只能和相互匹配的设备通信的无线键盘不同,蓝牙HID键盘能够作为一个标准键盘与任何蓝牙HID系统通信。蓝牙HID解决方案使得HID终端设备能够自动地探测和连接到需要的系统,如PDA、PC、机顶盒等。例如,一个蓝牙HID鼠标能够用来控制

PC机,也可用于控制PDA,而不是像传统的模式中某个外设只能控制与它匹配的某种特定的主机。因此,蓝牙HID规范使得不同平台HID主机的输入和控制外设实现真正的互用性。

蓝牙HID规范的软件结构框图如图1所示。HID规范运行在蓝牙的L2CAP协议上,并基于GAP规范。

2.2. HID规范的基本要求有:

1) 在一个微型网络中通常被推荐当作从设备(slave),但是也允许作为主设备(master)。

2) 键盘必须支持认证和加密:只有当被HID主机要求时才激活工作模式;在认证和加密的基础上,也可以被其它HID主机选用;通过单键创建联合键的方式可以实现使用加密技术的低成本HID方案;强烈推荐蓝牙HID键盘和辅助键盘支持联合键的应用。

3) 推荐使用有限的服务发现模式:对一台HID主机而言,HID终端设备通常都是一对一的关系;通过击键或者电源接通来激活HID终端设备。

4) 作为从设备必须始终保持可连接性,例如PC在启动时寻呼键盘,或者键盘在有数据传输时寻呼PC机。

5) HID主机必须支持QoS。

6) HID主机必须支持低功耗工作模式,一般的HID终端设备(如鼠标、键盘、游戏杆)的设计目标通常为:在3节标准AAA电池或者2节标准碱性AA电池下,至少工作三个月;

HID主机和HID终端设备都必须支持呼吸(sniff)工作模式和休眠(park)工作模式;保持工作模式对HID主机来说是必须的,而对HID终端设备来说是可选的。

7) HID终端设备只需要支持DM1格式的数据。

8) 除了查询模式和寻呼模式,交互的寻呼扫描模式和查询扫描模式也是必需的。

9) 对单功能设备而言并不需要支持SCO语音通道。

10) 支持绑定的设备必须有某种形式的固定内存来存放128位的认证码,使用联合键的HID设备比只使用单键的设备需要更多的内存来支持。

11) 为了使设备支持联合键认证,推荐最少为四个主机键(host key)留有适当的存储空间。

2.3 HID规范的导入模式

HID规范规定基本的键盘和指示功能使用固定格式的数据包,在HID主机端不需要HID剖析器(约占70kB)。允许用固定的PSM和辅助的设备类控制FHS数据包作为服务发现协议的定位,以及键盘与指示设备的连接。USB导入模式被保留用作最低层的终端应用。为了使得用户界面更加友好,要求系统遵从以下规定:

1) 能够自动探测HID终端设备;

2) 必须有硬件添加向导;

3) 键盘必须是加密的,且安全;

4) 在PC机导入时,HID终端设备暂时不能使用。

2.4 HID规范的虚电缆连线概念

像鼠标、键盘等HID终端设备都是个人区域设备,它们有以下特征:

1) 通常与HID主机都有一对一的关系;

2) 不支持同时与一个以上的HID主机同时连接;

3) 它们也许有一个以上的可能建立连接的HID主机。

当蓝牙HID终端设备与一个HID主机建立一对一的连接关系时,它就被称为虚拟电缆连接。这时HID终端设备与HID主机就建立了以下关系:

1) HID终端设备与HID主机捆绑。

2) 如果连接断开,将会自动重新建立连接。

3) 不会和另一HID主机相连,除非用户明确地去掉该虚拟电缆连接。

2.5 蓝牙HID终端设备的解决方案

如图2所示,作为HID终端设备端的BlueCode+可以有以下两种应用模型:

1) 与蓝牙核心协议栈一起集成在蓝牙芯片内,以蓝牙硬件模块形式提供。

2) 作为一个软件协议栈,BlueCode+也能够集成在客户指定的CPU中。

每个蓝牙HID终端设备(如键盘)都会有它自己的输入控制处理器,该控制器采集用户的输入信号,并转换成某种特定的代码传送给它的HID主机(如PC、PDA等)。由于输入处理器的资源比较少,因此通常情况下蓝牙软件都需要在某个特定的处理器上运行。在我们的方案中将BlueCode+移植到蓝牙芯片中运行,最大程度地实现了资源共享,也使得硬件集成更加简单,集成度更高。而蓝牙芯片与输入控制器的接口可以是更便于系统集成的TTL电平的串行接口。

例如键盘、鼠标和游戏操纵杆等嵌入式设备,可以通过PS/2、UART、GPIO等标准接口将客户已有的HID终端设备硬件与内置HID规范的蓝牙模块结合起来。由于BlueCode+HID软件已经集成进蓝牙芯片,因此,用户只需要将BlueRS+I或蓝牙芯片放进他们的硬件中。输入控制器应按照USB格式通过串行连接发送扫描代码,当然,针对用户的特殊格式要求也是可以的。

如果输入控制器有比较大的资源空间(MIPS、RAM和闪存),蓝牙上层协议栈可以移植到输入控制器中运行,蓝牙芯片与输入控制器也可以以TTL电平串行连接。如果包含HID规范的BlueCode+上层协议栈运行在HID终端设备的输入处理器上,那么对系统硬件结构来说,只有一个带HCI接口的蓝牙芯片需要集成进客户的硬件。

由于蓝牙鼠标的应用非常简单,这时提供HID的BlueCode+可以和鼠标本身的应用程序一起集成在含有蓝牙核心协议栈的蓝牙芯片内。

2.6 蓝牙HID主机端的解决方案

在HID主机侧,BlueCode+有三种提供方式:

1. 提供完全的蓝牙HID主机驱动程序,使之成为一个标准的OEM产品;

2. 以软件协议栈的形式帮助客户整合进他们的蓝牙PS/2接入点设备;

3. 提供独立于操作系统的API,客户可以将它们整合进自己的驱动程序中。

对标准操作系统(如Windows、Linux)来说,已经有包括HID规范的完整的驱动程序可以提供。这时,除了用户用于表示包括公司及产品的名字、标志、图形和其它类似的图形界面,HID主机端不需要对HID主机的标准驱动作任何改动。这里的HID主机可以用蓝牙USB dongle或PC卡实现,HID主机侧的软件将包括上层堆栈和用户端应用程序。与HID的应用类似,USB dongle也还可用在类似DUN、FAX、FTP、LAN等应用中。因此,这种应用方式的优点是可支持多个蓝牙规范,其缺点是它们的驱动程序依赖于操作系统。

由于BlueCode+能够方便地移植到不同的操作系统,因此客户也可以用HID API开发适合自己的独特应用。例如,可以做成蓝牙HID接入点设备,所有软件作为固件运行在HID接入点设备上。这时,蓝牙HID接入点设备可以是智能化的USB dongle,或者是用户定义的其它设备。在这种应用方式下,HID主机侧不再需要安装驱动程序。HID接入点设备可被HID主机的操作系统认作标准USB或PS/2设备看待。

这种方案的优点是HID接入点设备与操作系统无关, 可用于支持在PS/2或USB 上的标准 HID的任何平台,不需在HID主机上安装任何东西。该方案的缺点是不支持多个蓝牙规范,因为所有运行于HID接入点设备的软件,只是为HID应用设计的

2024年1月23日发(作者:宰父德华)

蓝牙HID规范

1.知识准备

拨号网络配置文件 - DUN

DUN 提供了通过 Bluetooth 无线技术接入 Internet 和其它拨号服务的标准。最常见的情况是在手机上拨号,从膝上型计算机以无线方式接入 Internet

文件传输配置文件 - FTP

FTP 定义了客户端设备如何浏览服务器设备上的文件夹和文件。一旦客户端找到了文件或位置,客户端即可从服务器拉取文件,或通过 GOEP 从客户端推送文件至服务器。

通用对象交换配置文件 - GAP

GAP 是所有其它配置文件的基础,它定义了在 Bluetooth 设备间建立基带链路的通用方法。此配置文件定义了一些通用的操作,这些操作可供引用 GAP 的配置文件以及实施多个配置文件的设备使用。GAP 确保了两个 Bluetooth 设备(不管制造商和应用程序)可以通过 Bluetooth 技术交换信息,以发现彼此支持的应用程序。不符合任何其它

Bluetooth 配置文件的 Bluetooth 设备必须与 GAP 符合以确保基本的互操作性和共存。

免提配置文件 - HFP

HFP 描述了网关设备如何用于供免提设备拨打和接听呼叫。典型配置如汽车使用手机作为网关设备。在车内,立体声系统用于电话音频,而车内安装的麦克风则用于通话时发送输出音频。HFP 还可用于个人计算机在家中或办公环境中作为手机扬声器的情况。

SIM 卡接入配置文件 (SAP)

SAP 允许带有内置 GSM 收发器的车载电话之类的设备连接到蓝牙电话中的 SIM

卡。因此车载电话本身并不需要单独的 SIM 卡。

服务发现应用配置文件 (SDAP)

SDAP 描述了应用程序如何使用 SDP 发现远程设备上的服务。由于 GAP 的要求,任何蓝牙设备都应当能够连接至其它蓝牙设备。基于此,SDAP 要求任何应用程序都应能

够发现它要连接的其它蓝牙设备上的可用服务。此配置文件可以承担搜索已知和特定服务以及搜索一般服务的任务。SDAP 涉及了称为“服务发现用户应用程序”的一个应用程序,这是蓝牙设备查找服务所必需的。此应用程序可以与向/从其它蓝牙设备发送/接收服务查询的

SDP 相接。SDAP 依赖于 GAP,并可以重新使用部分 GAP

串行端口配置文件 (SPP)

SPP 定义了如何设置虚拟串行端口及如何连接两个蓝牙设备。SPP 基于 ETSI

TS07.10 规格,使用 RFCOMM 协议提供串行端口仿真。SPP 提供了以无线方式替代现有的 RS-232 串行通信应用程序和控制信号的方法。SPP 为 DUN、FAX、HSP 和 LAN

配置文件提供了基础。此配置文件可以支持最高 128 kbit/sec 的数据率。SPP 依赖于

GAP

OPP规范是蓝牙手机通用的数据传输方式,叫对象交换协议,手机之间互传文件就采用这种规范

FTP规范其实就是FTP客户端和FTP服务器

2.蓝牙HID规范

2.1. 蓝牙HID规范的软件结构

蓝牙技术中的人性化接口设备(HID)应用模式可以使人们无连线烦恼地控制他们的计算机、游戏操作杆、远程监控设备等。本文参照SIG最新公布的0.95c版本HID规范,详细介绍了蓝牙HID规范及其应用场景,以及蓝牙HID终端设备端与HID主机端的解决方案。

蓝牙技术在成功地应用在耳机、免提设备和PC外设后,逐渐得到更广泛的应用,人们开始期望能够无连线烦恼地控制他们的计算机、游戏操作杆、遥控设备等。蓝牙SIG组织公布的HID规范正好迎合了这一需求。

与传统的只能和相互匹配的设备通信的无线键盘不同,蓝牙HID键盘能够作为一个标准键盘与任何蓝牙HID系统通信。蓝牙HID解决方案使得HID终端设备能够自动地探测和连接到需要的系统,如PDA、PC、机顶盒等。例如,一个蓝牙HID鼠标能够用来控制

PC机,也可用于控制PDA,而不是像传统的模式中某个外设只能控制与它匹配的某种特定的主机。因此,蓝牙HID规范使得不同平台HID主机的输入和控制外设实现真正的互用性。

蓝牙HID规范的软件结构框图如图1所示。HID规范运行在蓝牙的L2CAP协议上,并基于GAP规范。

2.2. HID规范的基本要求有:

1) 在一个微型网络中通常被推荐当作从设备(slave),但是也允许作为主设备(master)。

2) 键盘必须支持认证和加密:只有当被HID主机要求时才激活工作模式;在认证和加密的基础上,也可以被其它HID主机选用;通过单键创建联合键的方式可以实现使用加密技术的低成本HID方案;强烈推荐蓝牙HID键盘和辅助键盘支持联合键的应用。

3) 推荐使用有限的服务发现模式:对一台HID主机而言,HID终端设备通常都是一对一的关系;通过击键或者电源接通来激活HID终端设备。

4) 作为从设备必须始终保持可连接性,例如PC在启动时寻呼键盘,或者键盘在有数据传输时寻呼PC机。

5) HID主机必须支持QoS。

6) HID主机必须支持低功耗工作模式,一般的HID终端设备(如鼠标、键盘、游戏杆)的设计目标通常为:在3节标准AAA电池或者2节标准碱性AA电池下,至少工作三个月;

HID主机和HID终端设备都必须支持呼吸(sniff)工作模式和休眠(park)工作模式;保持工作模式对HID主机来说是必须的,而对HID终端设备来说是可选的。

7) HID终端设备只需要支持DM1格式的数据。

8) 除了查询模式和寻呼模式,交互的寻呼扫描模式和查询扫描模式也是必需的。

9) 对单功能设备而言并不需要支持SCO语音通道。

10) 支持绑定的设备必须有某种形式的固定内存来存放128位的认证码,使用联合键的HID设备比只使用单键的设备需要更多的内存来支持。

11) 为了使设备支持联合键认证,推荐最少为四个主机键(host key)留有适当的存储空间。

2.3 HID规范的导入模式

HID规范规定基本的键盘和指示功能使用固定格式的数据包,在HID主机端不需要HID剖析器(约占70kB)。允许用固定的PSM和辅助的设备类控制FHS数据包作为服务发现协议的定位,以及键盘与指示设备的连接。USB导入模式被保留用作最低层的终端应用。为了使得用户界面更加友好,要求系统遵从以下规定:

1) 能够自动探测HID终端设备;

2) 必须有硬件添加向导;

3) 键盘必须是加密的,且安全;

4) 在PC机导入时,HID终端设备暂时不能使用。

2.4 HID规范的虚电缆连线概念

像鼠标、键盘等HID终端设备都是个人区域设备,它们有以下特征:

1) 通常与HID主机都有一对一的关系;

2) 不支持同时与一个以上的HID主机同时连接;

3) 它们也许有一个以上的可能建立连接的HID主机。

当蓝牙HID终端设备与一个HID主机建立一对一的连接关系时,它就被称为虚拟电缆连接。这时HID终端设备与HID主机就建立了以下关系:

1) HID终端设备与HID主机捆绑。

2) 如果连接断开,将会自动重新建立连接。

3) 不会和另一HID主机相连,除非用户明确地去掉该虚拟电缆连接。

2.5 蓝牙HID终端设备的解决方案

如图2所示,作为HID终端设备端的BlueCode+可以有以下两种应用模型:

1) 与蓝牙核心协议栈一起集成在蓝牙芯片内,以蓝牙硬件模块形式提供。

2) 作为一个软件协议栈,BlueCode+也能够集成在客户指定的CPU中。

每个蓝牙HID终端设备(如键盘)都会有它自己的输入控制处理器,该控制器采集用户的输入信号,并转换成某种特定的代码传送给它的HID主机(如PC、PDA等)。由于输入处理器的资源比较少,因此通常情况下蓝牙软件都需要在某个特定的处理器上运行。在我们的方案中将BlueCode+移植到蓝牙芯片中运行,最大程度地实现了资源共享,也使得硬件集成更加简单,集成度更高。而蓝牙芯片与输入控制器的接口可以是更便于系统集成的TTL电平的串行接口。

例如键盘、鼠标和游戏操纵杆等嵌入式设备,可以通过PS/2、UART、GPIO等标准接口将客户已有的HID终端设备硬件与内置HID规范的蓝牙模块结合起来。由于BlueCode+HID软件已经集成进蓝牙芯片,因此,用户只需要将BlueRS+I或蓝牙芯片放进他们的硬件中。输入控制器应按照USB格式通过串行连接发送扫描代码,当然,针对用户的特殊格式要求也是可以的。

如果输入控制器有比较大的资源空间(MIPS、RAM和闪存),蓝牙上层协议栈可以移植到输入控制器中运行,蓝牙芯片与输入控制器也可以以TTL电平串行连接。如果包含HID规范的BlueCode+上层协议栈运行在HID终端设备的输入处理器上,那么对系统硬件结构来说,只有一个带HCI接口的蓝牙芯片需要集成进客户的硬件。

由于蓝牙鼠标的应用非常简单,这时提供HID的BlueCode+可以和鼠标本身的应用程序一起集成在含有蓝牙核心协议栈的蓝牙芯片内。

2.6 蓝牙HID主机端的解决方案

在HID主机侧,BlueCode+有三种提供方式:

1. 提供完全的蓝牙HID主机驱动程序,使之成为一个标准的OEM产品;

2. 以软件协议栈的形式帮助客户整合进他们的蓝牙PS/2接入点设备;

3. 提供独立于操作系统的API,客户可以将它们整合进自己的驱动程序中。

对标准操作系统(如Windows、Linux)来说,已经有包括HID规范的完整的驱动程序可以提供。这时,除了用户用于表示包括公司及产品的名字、标志、图形和其它类似的图形界面,HID主机端不需要对HID主机的标准驱动作任何改动。这里的HID主机可以用蓝牙USB dongle或PC卡实现,HID主机侧的软件将包括上层堆栈和用户端应用程序。与HID的应用类似,USB dongle也还可用在类似DUN、FAX、FTP、LAN等应用中。因此,这种应用方式的优点是可支持多个蓝牙规范,其缺点是它们的驱动程序依赖于操作系统。

由于BlueCode+能够方便地移植到不同的操作系统,因此客户也可以用HID API开发适合自己的独特应用。例如,可以做成蓝牙HID接入点设备,所有软件作为固件运行在HID接入点设备上。这时,蓝牙HID接入点设备可以是智能化的USB dongle,或者是用户定义的其它设备。在这种应用方式下,HID主机侧不再需要安装驱动程序。HID接入点设备可被HID主机的操作系统认作标准USB或PS/2设备看待。

这种方案的优点是HID接入点设备与操作系统无关, 可用于支持在PS/2或USB 上的标准 HID的任何平台,不需在HID主机上安装任何东西。该方案的缺点是不支持多个蓝牙规范,因为所有运行于HID接入点设备的软件,只是为HID应用设计的

发布评论

评论列表 (0)

  1. 暂无评论