本文主要簡單介紹USB HID Vendor Defined設(shè)備的應(yīng)用和調(diào)試方法,結(jié)合Telink 8355 Dongle做簡要說明。
1
USB HID Vendor Defined 設(shè)備概述
1、hid設(shè)備類型是由hid報告描述符中的用途頁(USAGE PAGE)決定的,常見的有Generic Desktop Controls ,Keyboard/Keypad ,還有有廠商自定義(Vendor Defined Page)選項。常用的用途表如下:
2、借助USB HID Vendor Defined設(shè)備可以實現(xiàn)USB設(shè)備與上位機間的雙向通信。
2
新增一個USB HID Vendor Defined設(shè)備
1、修復(fù)報告描述符
開發(fā)者可以在已有的usb interface中新增一個vendor defined設(shè)備,也可以新增一個interface,把這個vendor defined設(shè)備掛在新增的接口下面。
采用在一個單獨的接口中添加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ù)第二章中的報告描述符,設(shè)置了兩個usage page 并開辟了兩個集合,分別對應(yīng)兩個Vendor Defined設(shè)備。第一個設(shè)備的usage page為0xFFEF,用來給dongle 升級使用。Report ID為6,既有輸入也有輸出,report長度都為63。第二個設(shè)備開發(fā)者可以自由決定他的用途,可以跟上位機做自定義的數(shù)據(jù)通信。設(shè)備2的Report ID,9,Report length為32。這兩個設(shè)備都使用相同的輸入輸出端點,他們的數(shù)據(jù)通過不同的報告ID來進(jìn)行區(qū)分。
2、利用bus hound模擬上位機下發(fā)數(shù)據(jù)
對于上位機一般是通過指定的usage page來打開usb設(shè)備,然后進(jìn)行數(shù)據(jù)讀取和寫入。使用bus hound可以簡單的模擬上位機進(jìn)行數(shù)據(jù)發(fā)送。
特別在發(fā)送數(shù)據(jù)的時候,要嚴(yán)格按照報告描述符中定義的report ID 和Report Length來發(fā),否則可能出錯。
雙擊上圖中的USB Input Device,可以選Control Out 和 interrupt Out進(jìn)行發(fā)送數(shù)據(jù)測試。如果接口里面有OUT端點,則set report命令下發(fā)數(shù)據(jù)和write file命令數(shù)據(jù)都是通過out端點下來,如果沒有OUT端點,則set report命令數(shù)據(jù)是通過控制端點下發(fā)的。
01
通過Set report命令下發(fā)數(shù)據(jù)
Set report命令格式如下:
02
通過write file下發(fā)數(shù)據(jù)
03
MCU讀取上位機發(fā)送的數(shù)據(jù)
-
讀取上位機set report命令數(shù)據(jù)
-
MCU讀取上位機write file數(shù)據(jù)
04
Vendor Defined設(shè)備發(fā)送數(shù)據(jù)
上報數(shù)據(jù)就是通過往Vendor Defined設(shè)備所在接口的in端點里面寫數(shù)據(jù)。
特別的,第一個字節(jié)需要為報告描述符指定的Report ID,數(shù)據(jù)長度需要為報告描述符指定的長度。
4
總結(jié)
USB HID Vendor Defined設(shè)備是一種非常常見的人機交互接口,可以方便的實現(xiàn)用戶各種定制化的與上位機交互需求,廣泛應(yīng)用于固件升級、參數(shù)設(shè)置、命令收發(fā)等定制化場景。目前Telink 鍵鼠領(lǐng)域的各SDK均支持USB HID Vendor Defined 設(shè)備,用戶只需簡單調(diào)用接口便可以實現(xiàn)與上位機交互功能。
關(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è)備,無線音頻,智能玩具,物流追蹤,智慧城市等各類消費和商業(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)注
7文章
144瀏覽量
10797
原文標(biāo)題:【技術(shù)專欄】泰凌微電子USB HID 用戶自定義設(shè)備應(yīng)用及調(diào)試
文章出處:【微信號:telink-semi,微信公眾號:泰凌微電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論