USB 協議是主從結構:
左邊主機,右邊從機;USB 有主機控制器 UHC 和從機控制器 UDC,主機側有 USB Device Driver,從機側有 USB
Function Driver。
意思是說,一個開發板,可以當 USB 主機,接鼠標、鍵盤等從機;一個開發板也可以當 U 盤,接入 PC
電腦,此時開發板是從機。因此,我們要掌握兩套驅動框架。這是 Linux 下 USB 相對于 I2C、SPI 復雜的地方,I2C 等根本不會考慮主控 Soc
作為從機的情況,但 USB 需要考慮。
本文主要針對主控 Soc 作為 USB 從機的情況,Linux 為其提供了 Gadget 框架。
編寫 USB 設備驅動程序時,主要是:
讀取設備的各類描述符,比如 endpoint 描述符,得到端點號
使用底層 USB Host Controller 驅動程序提供的 API 函數,從 endpoint 上讀寫數據
基于 Gadget 驅動框架模擬一個 USB 設備時,endpoint 的數據傳輸能力是底層的 USB Device Controller
驅動提供的,我們要做的就是:
提供各類設備描述符
使用底層 USB Device Controller 驅動程序提供的 API 函數,從 endpoint 得到數據、反饋數據
Gadget 的含義是“小器件”,在 Linux 的 USB 系統中,它表示“usb device”。Gadget 驅動程序,就是用來模擬 USB
Device。對于真實的 USB Device,它有兩大要素:
怎么表示自己?
每個 USB Device 都有 1 個設備描述符
都 1 個或多個配置描述符
每個配置描述符里面有 1個 或多個接口描述符
每個接口描述符里面有 0 個多個端點描述符
怎么進行數據傳輸?
通過端點進行傳輸
有端點的操作函數
在學習過程中,記住這幾個要點非常有幫助:
各類描述符的構造
USB Host 獲得 Gadget 各類描述符的過程
數據傳輸的流程
-
嵌入式
+關注
關注
5093文章
19178瀏覽量
307708 -
Linux
+關注
關注
87文章
11345瀏覽量
210403 -
框架
+關注
關注
0文章
403瀏覽量
17543
發布評論請先 登錄
相關推薦
RK3288使用USB GADGET實現大容量存儲腳本
怎樣理解EMC電路
RS亞太首發Gadget Renesas開發套件
工具SemExpr可實現gadget搜索與語義分析
![工具SemExpr可實現<b class='flag-5'>gadget</b>搜索與語義分析](https://file.elecfans.com/web1/M00/E5/1C/pIYBAGBLEPqAOfz2AACJ-fLgRWo277.png)
[嵌入式linux]將linux板卡虛擬為USB網卡設備(Ethernet Gadget)
![[嵌入式linux]將linux板卡虛擬為USB網卡設備(Ethernet <b class='flag-5'>Gadget</b>)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
AMD Xilinx Linux 2022.1 USB Gadget使用
USB Gadget serial應用實例(上)
![USB <b class='flag-5'>Gadget</b> serial應用實例(上)](https://file1.elecfans.com/web2/M00/8C/A2/wKgaomSvaYyAKANEAACuWMtslD4395.jpg)
USB Gadget zero應用實例程序
![USB <b class='flag-5'>Gadget</b> zero應用實例程序](https://file1.elecfans.com/web2/M00/8C/A2/wKgZomSva-iADAypAAC3NHq5ZPM519.jpg)
從硬件軟件角度理解Gadget框架
![從硬件軟件角度<b class='flag-5'>理解</b><b class='flag-5'>Gadget</b><b class='flag-5'>框架</b>](https://file1.elecfans.com/web2/M00/8C/A3/wKgaomSvbR2AEoUiAAWGHZ-svJI275.jpg)
從獲取描述符的角度理解Gadget框架
![從獲取描述符的角度<b class='flag-5'>理解</b><b class='flag-5'>Gadget</b><b class='flag-5'>框架</b>](https://file1.elecfans.com/web2/M00/8C/A3/wKgZomSvcNeAMnH6AAEhkwvm1og718.jpg)
評論