完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
AT32 HOGP开发指南 前言 人机接口设备(Human Interface Devices, HID)的主要目的是基于USB实现者论坛所维护的规格书,提供用户与计算器之间的接口。HID涵盖了显示器、键盘、网络摄影机和鼠标甚至到VR耳机、游戏手把和触控屏幕的各种装置。HID传统上通过USB接口连接到计算器,然而,HID设备也可以通过使用无线技术与计算器连接。通过使用HID规范,可以开发出符合通用标准的计算器外设,从而与大多数装置兼容。 支持型号 列表: AT32WB415 1 HOGP概述 HOGP(HID over GATT)是由Bluetooth SIG维护的蓝牙配置文件规范,通过低功耗蓝牙实现HID的配置文件并作为与计算器之间的接口,消除HID中对电线或物理连接的需求。 1.1 HID 角色 在HID 中,以及在 HOGP 的延伸中,定义了两个角色,这些角色是 HID 主机和 HID 设备。 HID 设备 一次只能主动连接到单个 HID 主机;然而一个 HID 主机可以连接到多个 HID 设备。有关主机和设备 如何交互的细节,请参阅 HOGP 规范 中的第 3 章 HID 设备需求和第 4 章 HID 主机需求和行为。 1.2 HID 主机 HID主机实现蓝牙 GAP 中的中心 ( 角色,接收输入讯息并使用提供的数据进行更进一步的处 理。例如,计算器会是 HID 主机,因为这是接收 HID 数据的设备。 HID 主机对 HID 功能的正确执行 有许多责任与需求,但在此开发指南中所提供的范例仅实现了 HID 设备,因此本文檔不涉及这些内 容。想要了解 HID 主机的职责和需求,请参阅 HOGP 规范中的第 2 章配置、第 4 章 HID 主机需求和 行为、第 5 章连线建立。 1.3 HID 设备 HID设备实现蓝牙 GAP 中的外设 ( 角色,负责将输入信息传输到中央计算器。例如,鼠标 或键盘会是 HID 设备,因为它们将输入数据发送到计算器设备。 2 例 蓝牙键盘实做 HOGP工程是一个在 AT32WB415 上实现 HOGP 规范的低功耗蓝牙工程,该工程使用 HOGP 规范 指 定的 蓝牙 外设角色,演示了 HOGP 的键盘。通过使用通知 ( 和 GATT 配置文件,该项目能 够通过低功耗蓝牙 HID 装置并与 HID 主机正确连接。 HOGP 工程中有几个复杂的部份,在本文档中 进行了讨论,这些部份组合在一起以实现整体功能。 2.1 报告映射讨论 HOGP工程依赖于报告映像,报告映射是 HOGP 用于实现低功耗蓝牙 HID 功能的结构。报告映像用 于告诉主机许要从 HID 设备获得什么功能和什么样的数据,在原始的 HID USB 规范中,报告映射称 为报告描述符,报告映射和报告描述符是相同的,它们之间唯一的区别是报告映射用于 HOGP, 报告 描述符用于 HID USB 。 该工程使用的报告映像可以在 app_hid.c 文件中找到,并且包含在 gHIDReportDescriptor 变量中,此 工程中的报告映像包含键盘的输入信息。该结构分为多个部份,应用程序以及 HID 主机能够通过使用 报告 ID 字段找到所需的部份。可以轻松修改报告映像以包含不同的输入或修改已经存在的输入, USB 实现者论坛的设备工作组有一个报告描述符建构器工具,可以用于轻松创建报告映射。 图 3 显 示了报告映像结构的片段,所有字段都有标签,可以轻松修改。例如,如果需要不同数量的键盘按 键,则可以轻松修改相关字段。 图1 . 键盘的部份报告映像 2.2 资源准备 1) 硬件环境: 对应产品型号的AT-START BOARD 2) 软件环境 wb415_hogp_bt_demoprojectsble_app_remote wb415_hogp_mcu_demoutilitieswb415_hogp_mcu_demomdk_v5 2.3 软件设计 1) 配置流程 a) MCU端 配置USER KEY作为击键 编写USART3通讯函数 轮询USER KEY是否按下 根据需求去配置USER KEY按下后发出的AT command b) BT端 将HOGP的Profile加入database 编写应用层与GATT之间的界面 在应用层中轮询AT command 透过HOGP将不同的key function发给host端 2) 代码介绍 MCU端 main函数代码描述
BT端 原则上不需要去修改Profile层的内容,由APP层去设定HID装置的内容即可 初始化HOGP装置变量
将HOGP加入database
在main函数之中的while loop不断轮询app_user_entry()来确认有无收到AT command,如果收到有收到AT command则执行该命令的内容。 解析AT command并执行对应的程序
2.4 实验效果 按下AT-START板上的USER KEY发送www back按键,则浏览器页面返回上一页 按下AT-START板上的USER KEY发送volume up按键,则音量提高(需要修改AT command) 按下AT-START板上的USER KEY发送volume down按键,则音量降低(需要修改AT command) 2.5 按键定义 本应用指南以多媒体按键为例,在代码中定义了多媒体按键值的数组,用户可以在app_key.c 中找到以下代码: 多媒体按键值定义
在app.c 中的 app_user_entry 函数,每当添加一个新的按键实例,必须透过 app_hid_send_report 这个函数,将按键值及长度发送给主机端,主机才能根据按键值做出对应的行为; 举例来说,要发出 降低音量的按键功能,从上面的注释可以看到 volume down 对应到第九列,是整个数组的第 18 个 数,因此调用发送函数时写成 app_hid_send_report(&key_copy[18], 2) 2),其他按键也是如此使用。 2.6 HOGP 相关 AT command 本应用指南中,已经建立部分的AT command ,如下表 表1 . HOGP 相关 AT command 用户自行添加 AT command 时,需要在 MCU 端及 BT 端同时增加对应的实例; MCU 端要在 at_cmd.h 中新增 AT command 的请求及期待的响应; BT 端要在 app.h 中新增要解析的 AT command 字符串、 command 的枚举以及回复的枚举,数量上如果对不上的话则发出的按键功能可 能会不正常。 详细内容及代码请参考附件:
AN0145_AT32WB415_HOGP_Development_Guide.zip
(1.77 MB, 下载次数: 2
)
|
|
7 浏览 0 评论
26 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
13 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
644 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1000 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11769 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 23:29 , Processed in 0.560596 second(s), Total 36, Slave 26 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号