全部博文(14)
2014年(14)
分类: LINUX
2014-09-15 14:48:39
原文地址:USB基础知识 作者:shangbaogen
USB分为两个部分:主机,设备。
他是一个树形的关系:
主机
设备 设备 设备
主机里装的是主机控制器,设备中装的是设备控制器
Host Controller 和 UDC
从主机侧看 | 从设备侧看 |
USB设备驱动 | Gadget驱动 |
USB核心 | Gadget API |
USB主机控制器驱动 | UDC驱动 |
USB主机控制器 | USB设备控制器 |
Linux中,USB设备用usb_device结构趋描述,而USB设备描述符定义为usb_device_descriptor结构体。
usb配置:在内核中使用usb_host_config结构体, USB配置描述符用usb_config_descriptor结构体。
usb接口:usb_interface结构体描述,usb接口描述符定义为结构体usb_interface_descriptor结构体。
usb端点:端点在内核中用usb_host_endpoint结构体描述,而端点描述符则定义usb_endpoint_descriptor结构体, 这样我们就可以把一个USB设备抽象成一个由四个基本元素组成的对象。其中还有一个事字符串结构体,usb_string_descriptor结构体。
主机侧和设备侧的USB控制器分别称为主机控制器和USB设备控制器,每条总线上只有一个主机控制器,负责协调主机和设备间的通信,而设备不能主动向主机发送任何消息。
在USB协议中,接口由多个端点组成,代表一个基本的功能,是USB设备驱动程序控制的对象,一个功能复杂的USB设备可以具有多个接口。端点是USB通信的最基本形式,每一个USB设备接口在主机看来就是一个端点的集合。