USB开发------相关概念

USB相关概念

  • 什么是usb
  • usb的几种角色
  • usb的传输模式
  • 端点(endpoint)
  • 描述符

什么是usb

通用串行总线(英语:Universal Serial Bus),从字面上看有两个关键词,一个是串行,这个串行可能让大家联想到串口,数据虽然都是串行传输,但是与串口有以下不同:
- usb: 传输速度快,接插方便(支持热拔插),可发展性好。传输距离短,成本高,开发复杂,需要驱动程序支持(通用设备os直接支持)。
- serial: 传输速度慢,接插不便。传输距离长,成本低,开发简单,不需要驱动程序支持(可直接在应用层会话)

usb的几种角色

  • usb host:是指当前usb作为主设备,能够对已连接的从设备发起主动的会话。
  • usb device/slave: 与host模式相对,device模式下,设备只能被动的响应主设备发送的会话请求
  • usb otg:设备既可以当host又可以作slave,由两个设备间协商角色

host模式下,usb由usb控制器与hub组成,usb控制器的主要作用是控制数据包在总线上的传输,并且在各个不同的slave设备间进行传输仲裁,hub主要是为了和多个slave进行连接,在hub中,有一个上端口,就是和usb控制器连接的,有多个下端口,与slave设备连接,在一个hub中,最多只能拥有15个下游端口。

usb的传输模式

在slave模式下,usb被区分为四种传输模式:
- BUIK(块传输): 追求数据完整性,有校验,可用作大数据传输,并不适合实时传输,代表设备:U盘
- Interrupt(中断传输):实时性优于BUIK, 并对数据准备性有一定的保证, 代表设备:键盘
- ISO(同步传输) :追求实时性,无校验,允许一定的数据错误。 代表设备:USB音箱,USB摄像头
- control(控制数据传输) :是负责向USB设置一些控制信息,传送这种事务的管道是控制管道

端点(endpoint)

位于USB外设内部,所有通信数据的来源或者目的都基于这些端点,是一个可寻址的先入先出队列。每个USB外设有一个唯一的地址,可能包含最多16个端点。主机通过发出器件地址和每次数据传输的端点号,向一个具体端点发送数据。每个USB谁被中会有很多的endpoiint,最多有16个,但一般的也只有三个,endpoint0用来做传输配置与控制信息,endpoint1用来做in,endpoint2用来做out.

描述符

描述符(Descriptor )是一个完整的数据结构, 存储在USB 设备中, 用于描述一USB 设备的所有属性。USB主机通过一系列命令要求设备发送这些信息。标准的USB设备有5中USB描述符:设备,配置,接口,端点,字符串。

描述符结构树:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/zjfengdou30/article/details/81172221