0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【技术专栏】泰凌微电子USB HID 用户自定义设备应用及调试

泰凌微电子 来源:未知 2023-07-19 08:40 次阅读

本文主要简单介绍USB HID Vendor Defined设备的应用和调试方法,结合Telink 8355 Dongle做简要说明。

1

USB HID Vendor Defined 设备概述

1、hid设备类型是由hid报告描述符中的用途页(USAGE PAGE)决定的,常见的有Generic Desktop Controls ,Keyboard/Keypad ,还有有厂商自定义(Vendor Defined Page)选项。常用的用途表如下:

382f2352-25cc-11ee-962d-dac502259ad0.png

2、借助USB HID Vendor Defined设备可以实现USB设备与上位机间的双向通信

2

新增一个USB HID Vendor Defined设备

1、修复报告描述符

开发者可以在已有的usb interface中新增一个vendor defined设备,也可以新增一个interface,把这个vendor defined设备挂在新增的接口下面。

38451d7e-25cc-11ee-962d-dac502259ad0.png

采用在一个单独的接口中添加Vendor Defined设备,report 描述符如下:

38507f8e-25cc-11ee-962d-dac502259ad0.png

通过上面的修改,usb设备枚举完成后,在bus hound中可以查看到两个Vendor Defined设备已经枚举成功。

386bec4c-25cc-11ee-962d-dac502259ad0.png

3

USB HID Vendor Defined设备的调试

1、Vendor Defined设备调试方法

根据第二章中的报告描述符,设置了两个usage page 并开辟了两个集合,分别对应两个Vendor Defined设备。第一个设备的usage page为0xFFEF,用来给dongle 升级使用。Report ID为6,既有输入也有输出,report长度都为63。第二个设备开发者可以自由决定他的用途,可以跟上位机做自定义的数据通信。设备2的Report ID,9,Report length为32。这两个设备都使用相同的输入输出端点,他们的数据通过不同的报告ID来进行区分。

38788f9c-25cc-11ee-962d-dac502259ad0.png

2、利用bus hound模拟上位机下发数据

对于上位机一般是通过指定的usage page来打开usb设备,然后进行数据读取和写入。使用bus hound可以简单的模拟上位机进行数据发送。

特别在发送数据的时候,要严格按照报告描述符中定义的report ID 和Report Length来发,否则可能出错。

双击上图中的USB Input Device,可以选Control Out 和 interrupt Out进行发送数据测试。如果接口里面有OUT端点,则set report命令下发数据和write file命令数据都是通过out端点下来,如果没有OUT端点,则set report命令数据是通过控制端点下发的。

01

通过Set report命令下发数据

Set report命令格式如下:

388c0c5c-25cc-11ee-962d-dac502259ad0.png

389fc8c8-25cc-11ee-962d-dac502259ad0.png

02

通过write file下发数据

38c0be7a-25cc-11ee-962d-dac502259ad0.png

03

MCU读取上位机发送的数据

  • 读取上位机set report命令数据

38d25784-25cc-11ee-962d-dac502259ad0.png

  • MCU读取上位机write file数据

38e4b91a-25cc-11ee-962d-dac502259ad0.png

04

Vendor Defined设备发送数据

上报数据就是通过往Vendor Defined设备所在接口的in端点里面写数据。

特别的,第一个字节需要为报告描述符指定的Report ID,数据长度需要为报告描述符指定的长度。

38f06102-25cc-11ee-962d-dac502259ad0.png

4

总结

USB HID Vendor Defined设备是一种非常常见的人机交互接口,可以方便的实现用户各种定制化的与上位机交互需求,广泛应用于固件升级、参数设置、命令收发等定制化场景。目前Telink 键鼠领域的各SDK均支持USB HID Vendor Defined 设备,用户只需简单调用接口便可以实现与上位机交互功能。

关 于 泰 凌

泰凌微电子致力于为客户提供一站式的低功耗高性能无线连接SoC芯片解决方案,包括经典蓝牙,蓝牙低功耗,蓝牙Mesh,Zigbee,Thread,Matter,Apple HomeKit,Apple“查找(Find My)”,和私有协议等低功耗2.4GHz多协议无线连接系统级芯片和丰富的固件协议栈。公司产品广泛应用于智能照明,智能家居/楼宇,智能遥控,无线外设,智能零售,穿戴设备,无线音频,智能玩具,物流追踪,智慧城市等各类消费和商业应用场景中。

官网:www.telink-semi.com

微信公众号:telink-semi

泰凌开发者论坛

https://developers.telink-semi.cn/

销售接洽:

中国大陆(华东、华北) :

+86-21-20281118-8213

中国大陆(华南、香港、音频) :

+86-0755-26614003

telinksales@telink-semi.com

390ec732-25cc-11ee-962d-dac502259ad0.gif


原文标题:【技术专栏】泰凌微电子USB HID 用户自定义设备应用及调试

文章出处:【微信公众号:泰凌微电子】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 泰凌微
    +关注

    关注

    7

    文章

    154

    浏览量

    10945

原文标题:【技术专栏】泰凌微电子USB HID 用户自定义设备应用及调试

文章出处:【微信号:telink-semi,微信公众号:泰凌微电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何快速创建用户自定义Board和App工程

    概述自HPM_SDKv1.7.0发布开始,在HPM_ENV中新增了user_template文件夹,以方便用户快速创建自定义的Board和App工程。user_template是用户模板工程,
    的头像 发表于 02-08 13:38 145次阅读
    如何快速创建<b class='flag-5'>用户</b><b class='flag-5'>自定义</b>Board和App工程

    Altium Designer 15.0自定义元件设计

    电子发烧友网站提供《Altium Designer 15.0自定义元件设计.pdf》资料免费下载
    发表于 01-21 15:04 0次下载
    Altium Designer 15.0<b class='flag-5'>自定义</b>元件设计

    think-cell:自定义think-cell(四)

    C.5 设置默认议程幻灯片布局 think-cell 议程可以在演示文稿中使用特定的自定义布局来定义议程、位置和议程幻灯片上的其他形状,例如标题或图片。通过将此自定义布局添加到模板,您可以为整个组织
    的头像 发表于 01-13 10:37 186次阅读
    think-cell:<b class='flag-5'>自定义</b>think-cell(四)

    微电子精彩亮相CES 2025

    美国时间2025年1月7日,全球瞩目的科技盛会CES 2025在拉斯维加斯盛大开幕。微电子携前沿技术与创新产品重磅登场。
    的头像 发表于 01-09 16:54 535次阅读

    think-cell;自定义think-cell(一)

    布局介绍了如何创建自定义议程幻灯片布局,第六部分 C.6 功能区自定义 介绍了如何使用 PowerPoint 的功能区自定义选项自定义 think-cell 的
    的头像 发表于 01-08 11:31 300次阅读
    think-cell;<b class='flag-5'>自定义</b>think-cell(一)

    微电子荣获小米两项大奖

    在刚刚落幕的“2024小米生态合作伙伴大会”上,微电子凭借其在技术实力、产品性能和合作经验方面的卓越表现,荣获“小米 Vela 生态合作伙伴 —— 卓越表现奖”和“小米 IoT模组
    的头像 发表于 12-31 15:43 392次阅读

    微电子获蓝牙 6.0 认证,助力蓝牙技术拓展与应用升级

    。尤为值得一提的是,微电子是全球范围内首个获得该认证的非手机芯片公司,也是中国第一家获得蓝牙6.0认证的芯片公司。这一标志性成果,再次有力地彰显了
    发表于 11-26 14:07 516次阅读
    <b class='flag-5'>泰</b><b class='flag-5'>凌</b><b class='flag-5'>微电子</b>获蓝牙 6.0 认证,助力蓝牙<b class='flag-5'>技术</b>拓展与应用升级

    创建自定义的基于闪存的引导加载程序(BSL)

    电子发烧友网站提供《创建自定义的基于闪存的引导加载程序(BSL).pdf》资料免费下载
    发表于 09-19 10:50 0次下载
    创建<b class='flag-5'>自定义</b>的基于闪存的引导加载程序(BSL)

    EtherCAT运动控制器PT/PVT实现用户自定义轨迹规划

    EtherCAT运动控制器PT/PVT实现用户自定义轨迹规划。
    的头像 发表于 08-15 11:49 796次阅读
    EtherCAT运动控制器PT/PVT实现<b class='flag-5'>用户</b><b class='flag-5'>自定义</b>轨迹规划

    esp32s2如何自定义HIDUSB开发?

    请问一下,想自定义HIDUSB开发,对于底层的操作如中断、上位机发送的请求、回复上位机请求等这些底层操作有示例吗?通过ESP-IDF、Arduino或者Rust的方式。
    发表于 06-17 07:18

    一图读懂微电子2023年年度报告

    一图读懂微电子2023年年度报告
    的头像 发表于 05-22 10:30 577次阅读
    一图读懂<b class='flag-5'>泰</b><b class='flag-5'>凌</b><b class='flag-5'>微电子</b>2023年年度报告

    TSMaster 自定义 LIN 调度表编程指导

    LIN(LocalInterconnectNetwork)协议调度表是用于LIN总线通信中的消息调度的一种机制,我们收到越来越多来自不同用户希望能够通过接口实现自定义LIN调度表的需求。所以在
    的头像 发表于 05-11 08:21 829次阅读
    TSMaster <b class='flag-5'>自定义</b> LIN 调度表编程指导

    HarmonyOS开发实例:【自定义Emitter】

    使用[Emitter]实现事件的订阅和发布,使用[自定义弹窗]设置广告信息。
    的头像 发表于 04-14 11:37 1125次阅读
    HarmonyOS开发实例:【<b class='flag-5'>自定义</b>Emitter】

    鸿蒙ArkUI实例:【自定义组件】

    组件是 OpenHarmony 页面最小显示单元,一个页面可由多个组件组合而成,也可只由一个组件组合而成,这些组件可以是ArkUI开发框架自带系统组件,比如 `Text` 、 `Button` 等,也可以是自定义组件,本节笔者简单介绍一下自定义组件的语法规范。
    的头像 发表于 04-08 10:17 770次阅读

    STM32F401VC USB枚举成自定义HID,为什么每台设备连接到同一台电脑上都要有一个加载驱动的过程?

    我的项目用的是STM32[i]F401VC,USB枚举成自定义HID.生产过程中每台设备都要连接电脑下载数据.现在的问题是每台设备连接到同一
    发表于 04-01 06:17