1.软件系统架构
- 软件的系统架构分为2中,一种是主机架构,就是说运行Linux的设备是一个主机,可以插入U盘等设备。
- 最底部是一个USB主控制器,这是一个硬件,在芯片里面都会带有的。为了让这个主控制器工作起来,Linux需要有一个USB主控制器驱动。
- 为了方便用户设计USB设备驱动,Linux内核里面实现了一些USB核心,这里面主要是一些Linux协议之类的。USB设备驱动就是针对插入到Linux主机上的设备来设计的。
- 另一种模型是设备端软件架构,这里运行Linux的设备变成了一个USB设备,它和PC机连接起来
- 同样它需要USB控制器硬件。同时需要一个UDC驱动来实现Linux设备作为USB设备。在Linux内核中提供了一些Gadget API来方便用户实现Gadget驱动。Gadget驱动是用来干嘛的呢?它是用来实现把Linux设备变成一个USB网卡、串口的。