吴忠躺衫网络科技有限公司

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

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

3天內(nèi)不再提示

使用M62板子實現(xiàn)USB的設(shè)備開發(fā)

安信可科技 ? 來源:安信可科技 ? 2024-02-25 09:49 ? 次閱讀

01介紹

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

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

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

02描述符

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

設(shè)備(Device) :就是一個實實在在的 USB 設(shè)備,比如 USB 鼠標(biāo),U 盤。

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

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

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

對于 HID 設(shè)備來說還有 HID 描述符和 HID 報告描述符。

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

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

下面來一一看看它們都怎么寫的。

設(shè)備描述符

cherryUSB 中封裝了宏來定義設(shè)備描述符:

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

詳細(xì)說說字段表示的意思:

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

配置描述符

cherryUSB 中封裝了宏來定義配置描述符:

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

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

接口描述符

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

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

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

端點描述符

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è)備的實現(xiàn)

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

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

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

在主函數(shù)中調(diào)用它, 如下就實現(xiàn)了一個不斷向主機(jī)發(fā)送字母 a 的 usb 鍵盤設(shè)備。

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

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

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

硬件的接線順序如下:

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

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

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

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

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

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

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

04USB描述符的查看

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

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

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

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

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

審核編輯:湯梓紅

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

    關(guān)注

    60

    文章

    7980

    瀏覽量

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

    關(guān)注

    2913

    文章

    44929

    瀏覽量

    377065
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5121

    瀏覽量

    98200

原文標(biāo)題:【外設(shè)移植】USB鍵盤+M61開發(fā)板

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

收藏 人收藏

    評論

    相關(guān)推薦

    【外設(shè)移植】USB鍵盤+M61開發(fā)

    這篇開始使用 M62 板子實現(xiàn) USB設(shè)備開發(fā),首先從最簡單的
    的頭像 發(fā)表于 02-26 11:31 ?2046次閱讀
    【外設(shè)移植】<b class='flag-5'>USB</b>鍵盤+<b class='flag-5'>M</b>61<b class='flag-5'>開發(fā)</b>板

    用MINI STM32板子實現(xiàn)USB虛擬串口

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

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

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

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

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

    實現(xiàn)stm32 usb復(fù)合設(shè)備開發(fā)

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

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

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

    三星新機(jī)Galaxy M62詳細(xì)規(guī)格參數(shù)曝光

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

    三星Galaxy M62平板電腦再獲Wi-Fi認(rèn)證

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

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

    現(xiàn)了 Galaxy Tab M62 的關(guān)鍵規(guī)格。可知這款代號為 SM-M625F 的設(shè)備采用了三星自家的 Exynos 9825 芯片組、輔以 6GB RAM,與 Galaxy F62
    的頭像 發(fā)表于 01-22 14:37 ?2315次閱讀

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

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

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

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

    傳聞許久的三星Galaxy M62新機(jī)上市在即

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

    鍵盤電子實現(xiàn)

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

    智能家居之旅(3):Ai-M61/M62 接入HomeAssistant 實現(xiàn)點燈

    上一篇我們介紹了MQTT設(shè)備如何接入HomeAssistant(打卡智能家居之旅(2):設(shè)備接入HomeAssistant的方法),這一篇就給大家講一下Ai-M61/M62
    的頭像 發(fā)表于 06-07 10:07 ?673次閱讀
    智能家居之旅(3):Ai-<b class='flag-5'>M</b>61/<b class='flag-5'>M62</b> 接入HomeAssistant <b class='flag-5'>實現(xiàn)</b>點燈

    安信可Ai-M61/M62系列模組支持CAN接口了?

    hello,小伙伴們,經(jīng)過一段時間的開發(fā)和測試,安信可Ai-M61/M62模組可以支持CAN接口了。 起因是前段時間,突然有客戶想拿小安派-SCP-4.3做電動車的碼盤,但是沒有CAN 接口
    的頭像 發(fā)表于 12-27 10:59 ?254次閱讀
    安信可Ai-<b class='flag-5'>M</b>61/<b class='flag-5'>M62</b>系列模組支持CAN接口了?
    真钱娱乐游戏| 狮威百家乐官网赌场娱乐网规则| 沙龙百家乐娱乐平台| 百家乐官网赢钱皇冠| 噢门百家乐玩法| 百家乐官网包赢技巧| 百家乐的必赢方法| 含山县| 百家乐庄闲路| 百家乐官网波音平台开户导航| 乐天百家乐的玩法技巧和规则| 新葡京百家乐官网娱乐城| 太阳城| 百家乐官网赌马| 奇博娱乐| 赌博百家乐技巧| 金城百家乐官网玩法平台| 威尼斯人娱乐欢迎您| 万人迷百家乐官网的玩法技巧和规则 | 百家乐模拟投注器| 百家乐官网的必胜方法| 百家乐又称什么| 百家乐官网社区| 盘锦市| 微信百家乐群资源| 女优百家乐官网的玩法技巧和规则 | 大发888充钱| 真人百家乐打法| 百家乐官网娱乐城会员| 7位百家乐扑克桌| 百家乐游戏运营| 百家乐官网网站新全讯网| 东方太阳城招聘| 百家乐娱乐城网址| 澳门百家乐官网鸿运| 娱乐城注册送18| 澳门百家乐公试打法| 百家乐官网游戏机图片| 大发888娱乐场登陆| 百家乐筹码多少钱| 百家乐官网赌场技巧大全|