0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區
會(huì )員中心
創(chuàng )作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內不再提示

使用M62板子實(shí)現USB的設備開(kāi)發(fā)

安信可科技 ? 來(lái)源:安信可科技 ? 2024-02-25 09:49 ? 次閱讀

01介紹

前面寫(xiě)過(guò)兩遍關(guān)于 USB 協(xié)議基礎的帖子,如果對 USB 協(xié)議不了解,可以去看看下列的基礎內容。

這篇開(kāi)始使用 M62 板子來(lái)實(shí)現 USB 的設備開(kāi)發(fā),首先從最簡(jiǎn)單的 USB HID 鍵盤(pán)開(kāi)始。固件的 SDK 使用的是 CherryUSB 開(kāi)源 USB 固件。CherryUSB 是一個(gè)小而美的、可移植性高的、用于嵌入式系統的 USB 主從協(xié)議棧。設備端的協(xié)議執行流程如下圖:

07d83556-d236-11ee-a297-92fbcf53809c.png

02描述符

CherryUSB 實(shí)現好了一套 USB 的設備協(xié)議,只需要使用的 CheryyUSB 提供的接口調用就可以實(shí)現想要的 USB 設備了。首先應該為 USB 設備填描述符。描述符的種類(lèi)很多,先得理解他們的含義。

設備(Device) :就是一個(gè)實(shí)實(shí)在在的 USB 設備,比如 USB 鼠標,U 盤(pán)。

配置(Configuration):一個(gè) USB 設備可以有多種配置。比如 4G 上網(wǎng)卡就有 2 種配置:U 盤(pán)、上網(wǎng)卡。第 1 次把 4G 上網(wǎng)卡插入電腦時(shí),它是一個(gè) U 盤(pán),可以安裝里面的程序。裝好程序后,把它再次插入電腦,它就是一個(gè)上網(wǎng)卡。驅動(dòng)程序可以選擇讓它工作于哪種配置,同一時(shí)間只能有一種配置有效。大多數的 USB 設備只有一種配置。

接口(Interface) :每個(gè)配置下可以有多個(gè)接口,這個(gè)接口不是硬件上的接口,可以把這個(gè)接口理解為功能,一個(gè)接口就代表該設備當前支持的一種功能。

端點(diǎn)(Endpoint) :每個(gè)接口可以有多個(gè)端點(diǎn)。USB 主機和設備就是通過(guò)端點(diǎn)進(jìn)行數據交互的。每個(gè)端點(diǎn)地址對應一個(gè)方向,例如端點(diǎn) 2-IN,端點(diǎn) 2-OUT,這兩個(gè)含義完全不同。

對于 HID 設備來(lái)說(shuō)還有 HID 描述符和 HID 報告描述符。

HID 描述符:描述設備數據包的固定代碼字節數組,包括設備支持多少個(gè)包,包有多大,以及包中每個(gè)字節和比特的含義。

HID 報告描述符:HID 報告描述符是一個(gè)硬編碼的字節數組,用于描述設備的數據包。這包括:設備支持多少數據包,數據包有多大,以及數據包中每個(gè)字節和位的用途。

下面來(lái)一一看看它們都怎么寫(xiě)的。

設備描述符

cherryUSB 中封裝了宏來(lái)定義設備描述符:

07e72764-d236-11ee-a297-92fbcf53809c.png

詳細說(shuō)說(shuō)字段表示的意思:

07ee203c-d236-11ee-a297-92fbcf53809c.png

配置描述符

cherryUSB 中封裝了宏來(lái)定義配置描述符:

07f80f2a-d236-11ee-a297-92fbcf53809c.png

080624c0-d236-11ee-a297-92fbcf53809c.png

接口描述符

接口描述符是需要自己寫(xiě)成數組的:

080fe8f2-d236-11ee-a297-92fbcf53809c.png

08198b28-d236-11ee-a297-92fbcf53809c.png

端點(diǎn)描述符

081d5668-d236-11ee-a297-92fbcf53809c.jpg

082135bc-d236-11ee-a297-92fbcf53809c.png

HID 描述符

08290fda-d236-11ee-a297-92fbcf53809c.png

082fe21a-d236-11ee-a297-92fbcf53809c.png

HID 報告描述符

083a0ede-d236-11ee-a297-92fbcf53809c.png

03設備的實(shí)現

在設備連接時(shí)設備端就需要向主機上報各種描述符,主機這時(shí)候就會(huì )識別到設備然后給 USB 設備分配端口(USB 協(xié)議基礎中的設備枚舉)。

連接完成后設備就可以通過(guò) usbd_ep_start_write 函數(cherryUSB 提供的 API)向主機上報數據了。

084a2d78-d236-11ee-a297-92fbcf53809c.png

在主函數中調用它, 如下就實(shí)現了一個(gè)不斷向主機發(fā)送字母 a 的 usb 鍵盤(pán)設備。

08551c56-d236-11ee-a297-92fbcf53809c.png

為了能和真實(shí)的鍵盤(pán)對應上,這里特意使用矩陣鍵盤(pán)接上板子來(lái)讀取矩陣鍵盤(pán)的鍵值,將對應的鍵值轉換成對應的 hid 報告發(fā)送給電腦端。

08639baa-d236-11ee-a297-92fbcf53809c.png

硬件的接線(xiàn)順序如下:

087112da-d236-11ee-a297-92fbcf53809c.png

在矩陣鍵盤(pán)掃描的 task 里面循環(huán)掃描矩陣鍵盤(pán),如果按鍵有按下直接轉換成對應的 hid 鍵值:

0874ecfc-d236-11ee-a297-92fbcf53809c.png

這些鍵值的定義可以在這里找到:

087c05dc-d236-11ee-a297-92fbcf53809c.png

在 usb 鍵盤(pán)的 task 里面則取接受消息,并把消息發(fā)松給 pc 端。

0892b52a-d236-11ee-a297-92fbcf53809c.png

04USB描述符的查看

Windows 下可以使用 usbview 來(lái)查看 usb 描述符信息,這有利于我們調試分析使用。

089a8818-d236-11ee-a297-92fbcf53809c.png

05USB協(xié)議調試軟件

usb 協(xié)議相對還是比較復雜的,任何的描述符寫(xiě)錯了都可能導致設備沒(méi)辦法正常的工作。這時(shí)候好用的調試軟件就非常的重要了。

USBlyzer, WireShark 都是可以用來(lái)抓 USB 數據包進(jìn)行分析的。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權轉載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習之用,如有內容侵權或者其他違規問(wèn)題,請聯(lián)系本站處理。 舉報投訴
  • usb
    usb
    +關(guān)注

    關(guān)注

    59

    文章

    7521

    瀏覽量

    260090
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2880

    文章

    42146

    瀏覽量

    361046
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4579

    瀏覽量

    94984

原文標題:【外設移植】USB鍵盤(pán)+M61開(kāi)發(fā)板

文章出處:【微信號:安信可科技,微信公眾號:安信可科技】歡迎添加關(guān)注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    【外設移植】USB鍵盤(pán)+M61開(kāi)發(fā)

    這篇開(kāi)始使用 M62 板子來(lái)實(shí)現 USB設備開(kāi)發(fā),首先從最簡(jiǎn)單的
    的頭像 發(fā)表于 02-26 11:31 ?1253次閱讀
    【外設移植】<b class='flag-5'>USB</b>鍵盤(pán)+M61<b class='flag-5'>開(kāi)發(fā)</b>板

    用MINI STM32板子實(shí)現USB虛擬串口

    `實(shí)驗內容:通過(guò)STM32的USB端口在PC上虛擬一個(gè)COM口,當虛擬成功后,可通過(guò)串口調試軟件。發(fā)送控制命令,去點(diǎn)亮板子上相應的LED燈,同時(shí)輸出調試信息。在PC機的設備管理器中可看到虛擬
    發(fā)表于 06-28 11:03

    如何用STM32板子實(shí)現了NRF24L01無(wú)線(xiàn)通信實(shí)驗

    我現在用STM32板子實(shí)現了NRF24L01無(wú)線(xiàn)通信實(shí)驗,怎么修改程序才能發(fā)送和接收“數字1”!現在只能顯示這個(gè)
    發(fā)表于 06-01 15:53

    TCLM62機芯線(xiàn)路原理圖相關(guān)資料下載

    TCL M62機芯線(xiàn)路原理圖文件下載
    發(fā)表于 06-24 07:39

    基于RT-Thread+RA6M4的USB設備驅動(dòng)適配設計實(shí)現

    1、基于RT-Thread+RA6M4的USB設備驅動(dòng)適配應用背景rt-thread 自己實(shí)現了一套usb 協(xié)議棧,放在了component
    發(fā)表于 08-01 11:38

    實(shí)現stm32 usb復合設備開(kāi)發(fā)

    cube的stm32 usb代碼分析以及復合設備開(kāi)發(fā)
    的頭像 發(fā)表于 07-05 00:11 ?8933次閱讀
    <b class='flag-5'>實(shí)現</b>stm32 <b class='flag-5'>usb</b>復合<b class='flag-5'>設備</b><b class='flag-5'>開(kāi)發(fā)</b>

    三星Galaxy Tab M62通過(guò)WiFi聯(lián)盟認證

    稍早前,一個(gè)來(lái)自三星大野田工廠(chǎng)的內部信息顯示,讓我們知道這家韓國公司正在準備一款名為Galaxy Tab M62的價(jià)格合理的緊湊型平板電腦。而另一個(gè)消息也顯示了這款產(chǎn)品目前正在三星在印度諾伊達建設
    的頭像 發(fā)表于 01-21 10:46 ?1872次閱讀

    三星新機Galaxy M62詳細規格參數曝光

    據外媒爆料,近日有一款三星新機在跑分網(wǎng)站上曝光,型號為三星Galaxy M62。這款手機的型號為SM-M625F,根據Geekbench跑分顯示,它將采用Exynos 9825芯片,該芯片組曾用于Galaxy Note10和Note10+。
    的頭像 發(fā)表于 01-21 15:13 ?7064次閱讀

    三星Galaxy M62平板電腦再獲Wi-Fi認證

    繼獲得美國聯(lián)邦通訊委員會(huì )(FCC)的認證之后,配備 7000 mAh 電池、支持 25W 快充的三星 Galaxy M62 平板電腦又拿到了 Wi-Fi 聯(lián)盟的認證。認證信息表明該機的型號為
    的頭像 發(fā)表于 01-21 16:29 ?2061次閱讀

    三星Galaxy Tab M62平板芯片與跑分曝光

    現了 Galaxy Tab M62 的關(guān)鍵規格??芍@款代號為 SM-M625F 的設備采用了三星自家的 Exynos 9825 芯片組、輔以 6GB RAM,與 Galaxy F62 智能機有許多
    的頭像 發(fā)表于 01-22 14:37 ?2084次閱讀

    三星Galaxy M62將成為Galaxy M系列的首款平板電腦

    在談到Wi-Fi聯(lián)盟認證時(shí),該清單表明三星Galaxy M62將開(kāi)箱即用運行Android 11。在連接性方面,平板電腦支持2.4GHz和5GHz頻段。雖然此新清單并未分享有關(guān)即將推出的平板電腦的許多關(guān)鍵細節
    的頭像 發(fā)表于 01-22 16:39 ?2787次閱讀

    三星Galaxy M62電池容量已通過(guò)美國聯(lián)邦通信委員會(huì )頒發(fā)的證書(shū)

    在為Samsung Galaxy M62準備的證書(shū)中,該型號提供25W充電支持,并使用USB Type-C充電。但是,據報道該型號具有3.5毫米耳機插孔。還指出該型號也稱(chēng)為Samsung Galaxy F62,型號名稱(chēng)可能會(huì )因國
    的頭像 發(fā)表于 01-26 14:16 ?1826次閱讀

    傳聞許久的三星Galaxy M62新機上市在即

    91Mobiles 報道稱(chēng),傳聞許久的 Galaxy M62(SM-M625F / DS)新機,已于近日獲得了泰國電信監管機構 NBTC 的認證。消息表明,該機支持 4G LTE 移動(dòng)網(wǎng)絡(luò )、以及
    的頭像 發(fā)表于 02-03 15:30 ?2999次閱讀

    鍵盤(pán)電子實(shí)現

    鍵盤(pán)電子實(shí)現
    發(fā)表于 05-26 15:32 ?1次下載

    智能家居之旅(3):Ai-M61/M62 接入HomeAssistant 實(shí)現點(diǎn)燈

    上一篇我們介紹了MQTT設備如何接入HomeAssistant(打卡智能家居之旅(2):設備接入HomeAssistant的方法),這一篇就給大家講一下Ai-M61/M62 開(kāi)發(fā)板或者
    的頭像 發(fā)表于 06-07 10:07 ?149次閱讀
    智能家居之旅(3):Ai-M61/<b class='flag-5'>M62</b> 接入HomeAssistant <b class='flag-5'>實(shí)現</b>點(diǎn)燈
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看