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

描述

本文主要简单介绍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)选项。常用的用途表如下:

 

泰凌微

 

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

 

2

新增一个USB HID Vendor Defined设备

 

 

1、修复报告描述符

 

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

 

泰凌微

 

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

 

泰凌微

 

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

 

泰凌微

 

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来进行区分。

 

泰凌微

 

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

 

泰凌微

 

泰凌微

 

 

 

02

通过write file下发数据

 

泰凌微

 

 

 

03

MCU读取上位机发送的数据

 

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

泰凌微

 

  • MCU读取上位机write file数据

泰凌微

 

 

 

04

Vendor Defined设备发送数据

 

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

 

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

 

泰凌微

 

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

 

泰凌微


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

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


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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分