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 各类描述符的过程
数据传输的流程
-
嵌入式
+关注
关注
5020文章
18505浏览量
293544 -
Linux
+关注
关注
87文章
11031浏览量
207290 -
框架
+关注
关注
0文章
387浏览量
17163
发布评论请先 登录
相关推荐
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)
评论