USB2.0官方协议手册阅读笔记(1)——总体介绍

1. 前言

这篇博客阅读官方手册1-4章的内容

  1. Introduction
  2. Terms and Abbreviations
  3. Background
  4. Architectural Overview (重点)

链接: usb2.0英文版协议原文 提取码: 1111 复制这段内容后打开百度网盘手机App,操作更方便哦

如今USBPCIe已经成为了计算机系统里面最重要的两个接口。任何一个协议都是分层次的,不同层次的开发者所需要了解的内容不尽相同,USB我们在平时的生活中也用得很多,所以在学习的时候很容易结合自己的实际使用感受。

注:本文中一些常用的定义,保留了一些简单的英文,我认为反而更容易记忆和理解。


2. 总体介绍

2.1 USB特性

从开发USB2.0的目的可以对USB2.0的功能略知一二,在第一章的介绍中,手册提到开发USB2.0的三个目的:(完整特征在手册的P13页)

  1. Connection of the PC to the telephone
  2. Ease-of-use
  3. Port expansion

可以概括出USB2.0的一些主要特性:

  • 即插即用,支持热插拔
  • 良好的扩展性,最多支持127个Device扩展
  • 双向传输
  • 高速同步串行
  • 完全的向下兼容USB1

USB2.0向下兼容,USB2.0的接口能够直接接到USB1.0的接口上,事实上USB2.0和USB1.0在物理层上也是有一定的继承,这个在后面的博客介绍中提及。可以理解为USB2.0是USB1.0的扩展。USB3.x又是USB2.0的扩展。

为了实现兼容性在一定程度上也使结构更加复杂,协议更加臃肿。


2.2 速率模式

USB2.0支持三种速率:

  • Full-Speed 12M/s FS (USB1.0支持)
  • Low-Speed 1.5M/s LS(USB1.0支持)
  • High-Speed 480Mb/s HS

简写为:FS/LS/HS,这个务必记住。

High Speed模式是USB2.0新加的。虽然USB2.0能够直接接到USB1.0的接口上,但是USB1.0接USB2.0并不支持High Speed模式。

几种速度模式下的属性介绍:
属性


2.3 拓扑结构

USB支持Host与多个外设进行数据交换,外设之间共享总线带宽,不过要基于一个由Host调度的、基于令牌的协议。

在部分外设运行时,也支持Host连接、配置、使用和分离另一部分外设。

一个USB系统由三部分组成:

  • USB interconnect
  • USB Device
  • USB Host

拓扑结构如下图所示,在一个系统中Host只有一个,Hub可以于Hub或者Function相连,考虑到传输延时的影响最多支持7层。

在这里插入图片描述

第七层只能是Function,从Host到Function最多经过5个Hub。这些看图也能得出来。


==最主要的结构就是两种:Host和Device ==

USB Host
一个USB系统中,有切只能有一个Host,与电脑相连的接口被称作the Host Controller,the Host Controller可以是软件硬件或者固件,在Host中有一个root Hub提供了下层的连接节点。

USB Devices
Device包括两种:

  • Hubs:提供附加的连接点
  • Functions:为USB系统提供功能

2.4 物理结构

USB一共有四条线:Vbus、D+、D-、GND

物理结构
D+、D-为数据线。Vbus和GND为电源线

  1. 为什么会没有时钟线呢?
  • 时钟通过NRZI和位填充的方式与差分数据共同编码
  1. 如何恢复时钟信号呢?
  • 每个数据包都有一个SYNC字段,允许接收方将时钟恢复出来。
  1. Vbus和GND之间的电压是多少呢?
  • 5V,允许一定程度的衰减,线缆长度通常有几米

2.5 总线协议

USB是一个轮训总线,所有的传输都由USB Host controller发起

大多数transaction包含3个packet(不过也有少数transactions是4个包的,用来管理Host和FS/LS DeviceDevice直接的传输)。
大致流程是这样的:

  1. Host发送一个带有type,direction of transaction,the USB Device address,endpoint number的数据包被称为token packet(令牌包)
  2. Device解码特定的字段,如果是一个协议给定的类型,就会按照之前指定的direction传输数据(也有可能不需要传输数据)(可以是Host to Device也可以是Device to Host)。
  3. 作为data的接收方(Device or Host),会回复一个握手包表示传输完成或失败

USB数据的传输模型可以描述为pipe,它有如下特点:

  • Host和Device内的ednpoint之间
  • 两种类型:message/stream
  • pipe与数据的位宽,传输模式和endpoint的某些特性相关
  • 大多数pipe仅当Device被配置完成才存在
  • 有一个特殊的pipe,上电就存在,即the Default Control Pipe。为了提供对Device的configuration, status, and control
    information的访问。
  • stream数据没有usb定义的结构,而message数据有。但是在硬件层面还是可以实现flow control

2.6 USB Device

所有USB Device都可以通过在Device连接和枚举时分配的地址进行访问。每一个Device可以提供一个或多个pipe(与Host通信)且支持一个特殊的pipe在endpoint0上。通过这个特殊的pipe可以访问usb Device的一些信息:控制和状态信息,除此之外还有Device的能力供货商,分类和一些商家自定义的信息。

正如前面所说的,有两种类型的Device:Hubs和Function
Hubs提供额外的USB连接点。Function为Host提供了额外的功能


2.6.1 Hubs

一个Hub可以将一个Attachment points分为多个,Attachment points被称为port,port的方向是单向的,有且只有一个upstream port,downstream port可以有多个。Hub可以检测到每个downstream port的连接和分离,并使电源分配到downstream Device,downstream port之间不会相互干扰,可以连接HS/FS/LS的Device。
在这里插入图片描述
一个USB 2.0 Hub由三个部分组成: the Hub Controller, the Hub Repeater, and the Transaction Translator。作用分别是:

  • the Hub Repeater是在上游Port和下游Port之间的协议控制开关。硬件支持重置和暂停/恢复信令
  • the Hub Controller提供与Host之间的通信。允许Host配置Hub,并监视和控制其Port。
  • the Transaction Translator Hub支持FS/LSDevice,同时在Host和Hub之间HS传输所有Device数据

在USB Host controller 与 Hubs之间,FS和LS的数据可以用HS的速率进行传输,在Hub和Device中只能FS和LS。

减少FS和LSDevice对带宽的影响。(因为所有Device都是公用总线的,在单车道上,走的慢的车会影响走的快的车)

很容易想到,总线上的低速Device越多,总线的利用率就越低。


2.6.2 Function

一个Function通常是个单独的外设,被连接的Hub上。

每个Function都包含描述其功能和资源需求的配置信息。在使用Function之前,必须由Host配置。

常见的Function有哪些?

  • 人机交互设备,如鼠标、键盘、平板电脑、或游戏控制器
  • 扫描仪,如打印机或照相机等成像设备
  • 一种大容量存储设备,如CD-ROM驱动器、软盘驱动器或DVD驱动器

这里有一个特别的概念:什么是Compound Device?

  • 由多个Function和一个Hub通过物理封装在一起,对外留出一个USB接口
    在这里插入图片描述

2.7 Host

Host的工作包括一下几个方面:

  • 检测USB Device的连接和移除
  • 管理control flow between the host and USB devices
  • 管理data flow between the host and USB devices
  • 收集状态和活动统计
  • 提供电源给USB devices

The USB System Software 管理着Device和Device Software(Host上) ,在The USB System Software和Device Software有如下五种交互:

  • Device 枚举and配置
  • 同步数据传输
  • 异步数据传输
  • Power management
  • Device and bus management information

3. 后言

读完1-4章以后对USB的结构有了大致的了解。

觉得有帮助的朋友们可以点个赞!有任何意见可以评论区指出,感谢大家的阅读。

  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bigbeea

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值