zoukankan      html  css  js  c++  java
  • USB 管道 && 端点

    管道是对主机和usb设备间通信流的抽象。 
         管道和usb设备中的端点一一对应,一个usb设备含有多少个端点,其和主机进行通信时就可以使用多少条管道,且端点的类型决定了管道中数据的传输类型。 
       端点数是由软件决定的,所以管道自然也是软件决定的咯。
     
           端点: 每一个USB设备在主机看来就是一个端点的集合。主机只能通过端点与设备进行通讯,以使用设备的功能。每个端点实际上就是一个一定大小的数据缓冲区,这些端点在设备出厂时就已定义好。在USB系统中每一个端点都有唯一的地址,这是由设备地址和端点号给出的。每个端点都有一定的特性,其中包括传输方式,总线访问频率,带宽端点号,数据包的最大容量等等。端点必须在设备配置后才能生效(端点0除外)。端点0通常为控制端点,用于设备初始化参数等。端点1,2等一般用作数据端点,存放主机与设备间往来的数据。 
          管道: 一个USB管道是驱动程序的一个数据缓冲区,与一个外设端点的连接。它代表了一种在两者之间移动数据的能力。管道有两种类型:数据流管道(其中的数据没有USB定义的结构)和消息管道(其中的数据必须有USB定义的结构)。管道只是一个逻辑上的概念。所有的设备必须支持端点0以作为设备的控制管道。通过控制管道,可以获取完全描述USB设备的信息。一个USB设备可以分为三个层:最底层是总线接口,用来发送与接收包;中间层处理总线接口与不同的端点之间的数据流;最上层就是USB设备所提供的功能。

         Hub:Hub提供了附加的USB节点(又叫端口)。Hub可以检测出每一个下行端口的状态,并且可以给下端的设备提供电源。

     
    Note that:

    一个系统中有多个USB设备,一个USB设备中有多个端点

    系统用设备地址识别设备,设备用端点号区别端点。

    主机设置设备的地址,端点号是设备固有的不能被设置。

    对于HID类,OUT端点并不是必须的.
    根据USB HID协议,当没有专用的OUT端点时,set report使用control端点实现,具体就是通过HID类的请求,然后通过Data stage携带set report数据.

  • 相关阅读:
    杂谈
    xss bypass 学习记录
    小结--dns注入
    在CentOS 7 安装没有mysql
    备份WordPress
    php留言
    基于mysq搭建的l许愿墙
    http服务的安装与配置
    centos 7忘记密码重置
    安装centos 7 桌面
  • 原文地址:https://www.cnblogs.com/AlwaysOnLines/p/3859111.html
Copyright © 2011-2022 走看看