Chinaunix首页 | 论坛 | 博客
  • 博客访问: 34790
  • 博文数量: 14
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 13
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-17 14:40
文章分类
文章存档

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设备接口在主机看来就是一个端点的集合。

阅读(965) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~