本文主要簡單介紹USB HID Vendor Defined設(shè)備的應(yīng)用和調(diào)試方法,結(jié)合Telink 8355 Dongle做簡要說明。
1
USB HID Vendor Defined 設(shè)備概述
1、hid設(shè)備類型是由hid報(bào)告描述符中的用途頁(USAGE PAGE)決定的,常見的有Generic Desktop Controls ,Keyboard/Keypad ,還有有廠商自定義(Vendor Defined Page)選項(xiàng)。常用的用途表如下:

2、借助USB HID Vendor Defined設(shè)備可以實(shí)現(xiàn)USB設(shè)備與上位機(jī)間的雙向通信。
2
新增一個USB HID Vendor Defined設(shè)備
1、修復(fù)報(bào)告描述符
開發(fā)者可以在已有的usb interface中新增一個vendor defined設(shè)備,也可以新增一個interface,把這個vendor defined設(shè)備掛在新增的接口下面。

采用在一個單獨(dú)的接口中添加Vendor Defined設(shè)備,report 描述符如下:

通過上面的修改,usb設(shè)備枚舉完成后,在bus hound中可以查看到兩個Vendor Defined設(shè)備已經(jīng)枚舉成功。

3
USB HID Vendor Defined設(shè)備的調(diào)試
1、Vendor Defined設(shè)備調(diào)試方法
根據(jù)第二章中的報(bào)告描述符,設(shè)置了兩個usage page 并開辟了兩個集合,分別對應(yīng)兩個Vendor Defined設(shè)備。第一個設(shè)備的usage page為0xFFEF,用來給dongle 升級使用。Report ID為6,既有輸入也有輸出,report長度都為63。第二個設(shè)備開發(fā)者可以自由決定他的用途,可以跟上位機(jī)做自定義的數(shù)據(jù)通信。設(shè)備2的Report ID,9,Report length為32。這兩個設(shè)備都使用相同的輸入輸出端點(diǎn),他們的數(shù)據(jù)通過不同的報(bào)告ID來進(jìn)行區(qū)分。

2、利用bus hound模擬上位機(jī)下發(fā)數(shù)據(jù)
對于上位機(jī)一般是通過指定的usage page來打開usb設(shè)備,然后進(jìn)行數(shù)據(jù)讀取和寫入。使用bus hound可以簡單的模擬上位機(jī)進(jìn)行數(shù)據(jù)發(fā)送。
特別在發(fā)送數(shù)據(jù)的時候,要嚴(yán)格按照報(bào)告描述符中定義的report ID 和Report Length來發(fā),否則可能出錯。
雙擊上圖中的USB Input Device,可以選Control Out 和 interrupt Out進(jìn)行發(fā)送數(shù)據(jù)測試。如果接口里面有OUT端點(diǎn),則set report命令下發(fā)數(shù)據(jù)和write file命令數(shù)據(jù)都是通過out端點(diǎn)下來,如果沒有OUT端點(diǎn),則set report命令數(shù)據(jù)是通過控制端點(diǎn)下發(fā)的。
01
通過Set report命令下發(fā)數(shù)據(jù)
Set report命令格式如下:


02
通過write file下發(fā)數(shù)據(jù)

03
MCU讀取上位機(jī)發(fā)送的數(shù)據(jù)
-
讀取上位機(jī)set report命令數(shù)據(jù)

-
MCU讀取上位機(jī)write file數(shù)據(jù)

04
Vendor Defined設(shè)備發(fā)送數(shù)據(jù)
上報(bào)數(shù)據(jù)就是通過往Vendor Defined設(shè)備所在接口的in端點(diǎn)里面寫數(shù)據(jù)。
特別的,第一個字節(jié)需要為報(bào)告描述符指定的Report ID,數(shù)據(jù)長度需要為報(bào)告描述符指定的長度。

4
總結(jié)
USB HID Vendor Defined設(shè)備是一種非常常見的人機(jī)交互接口,可以方便的實(shí)現(xiàn)用戶各種定制化的與上位機(jī)交互需求,廣泛應(yīng)用于固件升級、參數(shù)設(shè)置、命令收發(fā)等定制化場景。目前Telink 鍵鼠領(lǐng)域的各SDK均支持USB HID Vendor Defined 設(shè)備,用戶只需簡單調(diào)用接口便可以實(shí)現(xiàn)與上位機(jī)交互功能。
關(guān) 于 泰 凌
泰凌微電子致力于為客戶提供一站式的低功耗高性能無線連接SoC芯片解決方案,包括經(jīng)典藍(lán)牙,藍(lán)牙低功耗,藍(lán)牙Mesh,Zigbee,Thread,Matter,Apple HomeKit,Apple“查找(Find My)”,和私有協(xié)議等低功耗2.4GHz多協(xié)議無線連接系統(tǒng)級芯片和豐富的固件協(xié)議棧。公司產(chǎn)品廣泛應(yīng)用于智能照明,智能家居/樓宇,智能遙控,無線外設(shè),智能零售,穿戴設(shè)備,無線音頻,智能玩具,物流追蹤,智慧城市等各類消費(fèi)和商業(yè)應(yīng)用場景中。
官網(wǎng):www.telink-semi.com
微信公眾號:telink-semi
泰凌開發(fā)者論壇:
https://developers.telink-semi.cn/
銷售接洽:
中國大陸(華東、華北) :
+86-21-20281118-8213
中國大陸(華南、香港、音頻) :
+86-0755-26614003
telinksales@telink-semi.com

原文標(biāo)題:【技術(shù)專欄】泰凌微電子USB HID 用戶自定義設(shè)備應(yīng)用及調(diào)試
文章出處:【微信公眾號:泰凌微電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
泰凌微
+關(guān)注
關(guān)注
8文章
207瀏覽量
12603
原文標(biāo)題:【技術(shù)專欄】泰凌微電子USB HID 用戶自定義設(shè)備應(yīng)用及調(diào)試
文章出處:【微信號:telink-semi,微信公眾號:泰凌微電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
使用Python/MyHDL創(chuàng)建自定義FPGA IP
極海APM32F427如何實(shí)現(xiàn)自定義USB HID設(shè)備與PC進(jìn)行通信
泰凌微電子Embedded World 2026精彩回顧
泰凌微電子邀您相約Embedded World 2026
極海APM32F427移植CherryUSB實(shí)現(xiàn)自定義USB HID設(shè)備
泰凌微電子以突破性創(chuàng)新多維定義AIoT無線連接邊界
泰凌微電子深度參與藍(lán)牙 ULL 新標(biāo)準(zhǔn),助力HID設(shè)備實(shí)現(xiàn)高刷新低延時
泰凌微電子積極推進(jìn)Matter 1.5落地
無圖形界面模式下自定義檢查工具的應(yīng)用
泰凌微電子邀您相約EAC 2025
泰凌微電子榮獲雙碳節(jié)能領(lǐng)軍企業(yè)獎
泰凌微電子邀您相約2025國際AI+IoT生態(tài)發(fā)展大會
KiCad 中的自定義規(guī)則(KiCon 演講)
智能照明互聯(lián)新突破:泰凌微電子邀您共探 Matter 技術(shù)前沿
【技術(shù)專欄】泰凌微電子USB HID 用戶自定義設(shè)備應(yīng)用及調(diào)試
評論