Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1595847
  • 博文数量: 204
  • 博客积分: 2215
  • 博客等级: 大尉
  • 技术积分: 4427
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-06 08:03
个人简介

气质,源于心灵的自信!

文章存档

2018年(1)

2017年(1)

2016年(1)

2015年(18)

2014年(20)

2013年(30)

2012年(119)

2011年(14)

分类: LINUX

2012-04-21 14:22:36

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

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