打印

USB3.0规范正式发布,开始研究。

[复制链接]
19544|47
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mcuduoduo|  楼主 | 2008-11-20 12:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
kenndy| | 2008-11-20 16:06 | 只看该作者

usb3.0

好东西啊,希望有志人士能和我一起翻译为中文,一起卖吧!定价48译本中文版本USB3.0

使用特权

评论回复
板凳
mcuduoduo|  楼主 | 2008-11-20 20:14 | 只看该作者

2

第三章    USB3.0 结构总览
读这一章的时候,由于对USB3.0的技术细节还完全不了解,而总览又会牵涉到USB3.0整体实现的描述,因此理解上还是有些难度。

本章对USB3.0的结构和关键概念做一个总览。

3.1  USB3.0系统描述
USB3.0使用双总线(dual-bus)结构,并向后兼容USB2.0。

USB3.0系统描述:
双总线结构:

使用特权

评论回复
地板
mcuduoduo|  楼主 | 2008-11-20 20:15 | 只看该作者

3

在物理连接上,超速(SuperSpeed)总线和USB2.0总线并行组合在一起,这通过电缆和连接器实现。USB3.0的互联方式和USB2.0相同,仍然是星形拓扑,唯一的主机在第一层,集线器在较低的层级提供其他设备总线连接。
D+/D-提供USB2.0信号路径;SSTX+/SSTX-,SSRX+,SSRX-提供超速信号路径,其中一对为发送线路,另一对是接收线路。
电源方面的规定和USB2.0类似,但是增加了超速下设备的电源预算。

USB3.0电缆在机械上主要有8个连接点:三对双绞信号线提供数据路径,和一对电源线。见下图所示:

使用特权

评论回复
5
mcuduoduo|  楼主 | 2008-11-20 20:21 | 只看该作者

xx



使用特权

评论回复
6
mcuduoduo|  楼主 | 2008-11-20 20:22 | 只看该作者

xx

3.2  超速结构
     超速总线是一个分层的通讯结构,如下图所示:

使用特权

评论回复
7
mcuduoduo|  楼主 | 2008-11-20 20:23 | 只看该作者

next

物理层:
    第六章详细描述了超速物理层。
电气上每个信号路径特性包括发送器、通道和接收器;每个差分信号连接通过发送器的电容进行交流耦合;通道包括电缆和连接器的电气特性;每个差分信号连接的接收端使能其接收终端,这样发送器可以检测到远端接收器是否存在从而指示总线连接信息。
当接收终端存在但是差分链路上没有信号时,这是电气空闲状态,此时低频周期性信号(LFPS)用于表示一个电源管理信息。只需要使用非常微小的电源消耗就能产生或者检测到LFPS。
每个PHY都有其自己的扩频时钟调制(SSC)的时钟域。USB3.0电缆不包含参考时钟。本地接收器通过锁相接收到的位流变化使其位恢复时钟对齐到远程发送器的时钟,位定时同步依赖于此。
接收器需要足够的位变化才能可靠从位流中恢复时钟和数据,为此,发送器使用8b/10b编码数据和控制字。

    链路层:
        链路层在第七章详细描述。
        超速链路是两个端口的逻辑和物理连接。
逻辑部分有如下内容:
管理物理端接的状态机,包括物理层初始化和事件管理,如连接、移除、和电源管理。
        管理端口信息交换的状态机和缓冲区。
        数据和协议层信息缓冲区。
在发送时打包字节序列到正确的帧。
检测接收到的包,包括包间隔符、对接收到的头包进行错误检查。
提供合适的接口给协议层使得协议层包信息直通。

        物理部分:
        管理PHY状态;
        发送、接收字节流

    协议层:
        协议层在第八章详细描述。协议层在主机和设备间定义了end-to-end通讯规则。
超速协议在主机和设备端点(endpoint)之间提供应用数据信息交换。这个通讯关系叫做管道(pipe)。它是主机导向的协议,意味着主机决定什么时候在主机和设备间进行应用数据传输。设备可以通过一个特定端点向主机发起异步请求服务,所以它不是一个轮询协议。
        数据可以背对背突发传输,提高总线效率。
        对某些传输类型,协议提供流控支持。
        设备可以异步发送通知给主机。
主机发送包含主机时间戳的特殊包头到总线上,该值可以用于保持设备和主机同步(如果需要的话)。

    鲁棒性:
        超速USB的几个属性有助于其鲁棒性:
        信号完整性上使用差分驱动器、接收器和屏蔽;
        CRC保护头和数据包;
        链路级头包重试保证可靠传送;
        数据包的端到端(end-to-end)协议重试保证可靠传送;
        检测、连接、解连接和系统级的资源配置;
        数据和控制管道结构保证独立于功能设备间的非法互联???

使用特权

评论回复
8
ejack| | 2008-11-21 07:50 | 只看该作者

faint,电缆都改了!?

使用特权

评论回复
9
钻研的鱼| | 2008-11-21 12:20 | 只看该作者

规范比较难读

      要做翻译,谈何容易?国内的很多都是字面直译,没有一点技术含量。看看mindshare写的一些资料,不光是对规范的翻译,更重要的是加入自己的理解。这样一本翻译的书才有点分量。现在国内翻译的书基本不看,很多是高校老师找几个学生翻译,最后简单校对就出书。所以建议如果想做翻译就做好,这样一本书才经典。我对USB很感兴趣,不过这一段没时间,到明年中旬的时候,准备设计USB device的core,欢迎交流

使用特权

评论回复
10
mcuduoduo|  楼主 | 2008-11-21 13:32 | 只看该作者

next

错误检测:
超速USB物理层位错误期望值是1/10^12。包帧和链路通讯命令有足够的冗余使之能够容忍单个的位错误。每个包包括一个CRC来对多个位错误提供错误检测。需要的时候,硬件或者软件可以进行错误恢复处理。
在协议中,头包和数据包有各自的CRC,此外,链路控制字(在每个包头)有其自己的CRC。 头包或者链路控制字中的CRC错误是一个严重的错误,此时链路级的重试将从该错误中恢复。数据包中的CRC错误用来指示一个损坏的数据,协议层可以请求重发该数据包。
错误处理:
硬件或者软件可以处理错误。
超速电源管理:
    主机不能直接控制,也不可见各个链路的电源状态。
    链路电源管理的关键点是:
    设备向主机发送异步准备好通知
    包是有路由路径的,这样就允许不参与数据通讯的链路进入或仍旧停留在低电源状态。
    如果包送到一个处于低电源状态的端口,这个端口会切换到退出低电源状态并指示这个切换事件。
    ????
设备:
    超速需要支持USB2.0对默认的控制管道的规定。
    外设设备:
        USB3.0外设必须提供超速和最少一个非超速的支持。最小需求是,当在非超速下时,外设能够被主机检测到以使软件能够指示用户把它连接到一个超速端口上。外设也可以选择在非超速下实现其全功能。但是不允许外设同时操作在超速和非超速模式下。
    ――想象一下:如果是一个海量存储类设备,在超速模式下可以达到惊人的传输速度,如果不幸连接到了一个普通的USB2.0端口,那它仍然能够正常操作,不过速度只能是USB2.0的速度了。
    单个外设也可以是组合设备(composite),也可以是复合设备(compound)。

    HUB设备:
    为了支持USB3.0的双总线结构,USB3.0 HUB在逻辑上是两个HUB的组合:一个USB2.0 HUB和一个USB3.0 HUB。

主机(Hosts):
    一个USB3.0主机通过主控器和USB设备互连。为了支持USB3.0双总线结构,USB3.0主控器必须包括超速和USB2.0部分,这样可以同时管理每一个总线上主机和设备间的控制、状态和信息交换。
    主机含有几个根下行口实现:
    检测USB设备的连接和移除;
    管理主机和设备间的控制流;
管理主机和设备间的数据流;
收集状态和活动统计;
对连接的设备供电;
USB系统软件继承了USB2.0的结构,包括:
设备枚举和配置;
规划周期性和异步数据传输;
设备和功能电源管理;
设备和总线管理信息。

数据流模型:
    数据流模型在第四章描述。超速USB集成了USB2.0的数据流模型,包括:
    主机和设备间的数据和控制交换通过管道(pipe)进行
    数据传输在主机软件和指定的设备端点间进行。
大多数管道在系统软件对设备进行配置后才存在,但是一个消息管道即默认的控制管道总是存在的。
一个管道支持四种传输类型中的某一种。
海量传输类型在超速中进行了扩展,叫做流(stream)。

使用特权

评论回复
11
mcuduoduo|  楼主 | 2008-11-21 16:39 | 只看该作者

next

第四章    超速数据流模型
本章是对超速数据和信息传输的一个概括性的描述,提出几个概念,详细描述在后续各个章节中。
在框架上,超速是向后兼容USB2.0的,但是二者在协议上还是有一些重大的不同:
USB2.0的transaction有三部分(令牌、数据和握手(token,data,handshake)),超速也是这三部分但是用法不同;
USB2.0不支持突发(bursting),超速支持持续突发;
USB2.0是半双工(half-duplex)的广播总线,超速是duan-simplex的非广播总线并支持同时进行IN、OUT transaction;
USB2.0使用轮询模式,超速使用异步通知方式;
USB2.0不支持流能力,超速支持海量(bulk)端点的Stream方式;
USB2.0在等时传输(isochronous)间隔中没有进入低耗电状态的机制,超速则允许等时传输服务间隔中自动进入低耗电状态;
USB2.0设备无法告知主机在进入低耗电状态前可容忍的延迟时间,超速则提供Latency Tolerance消息;
USB2.0以固定的1ms/125us间隔发送SOF/uSOF。超速下,设备可以发送Interval Adjustment消息给主机调整间隔+-13.333us;
USB2.0电源管理总是主机导向的,超速下链路两端都支持电源管理;
USB2.0 仅在每个transaction进行end-to-end级别的错误检测、恢复、流控,超速切分这些功能在end-to-end和链路级别。

比较USB2.0和超速Transaction
USB2.0的包是广播方式,设备分析每个包的地址、端点、方向信息来决定自己是否应该响应。超速包有路由信息,HUB决定每个包要送达哪个设备,只有一个例外,等时时间戳包(Isochronous Timestamp Packet, ITP)广播到每一个设备。

超速包:
有四种基本类型的包:
Link Management Packet(LMP),Transaction Packet(TP),Data Packet(DP),Isochronous Timestamp Packet(ITP)。

对传输(transfer)一般性的描述:
IN transfer:
    Host发IN packet之后,设备可以持续发送多个数据包,不需要等待每个包都得到host的认可包,因为超速是dual-simplex的,但是设备收到的总的认可包数量应该和设备发送的数据包数量一样。IN transfer在下列情况下完成:
所有数据已经成功传送;
设备发送了一个短包;
端点响应错误。
OUT transfer:
    Host可以持续发送数据包,不需要等待设备的认可包,但是Host收到的总的认可包数量应该和Host发送的数据包数量一样。OUT transfer在下列情况下完成:
所有数据已经成功传送;
Host发送了一个短包;
端点响应错误。

四种transfer类型:control、bulk、interrupt、isochronous transfer。用意同USB2.0,但是bulk 最大包大小增加为1024B,control端点最大包大小增加为512B。control 端点不支持burst,bulk可burst 1~16,interrupt、isochronous可以bust 1~1024。bulk还增加了Stream能力。

使用特权

评论回复
12
cheungman| | 2008-11-22 00:43 | 只看该作者

刚学2.0又出3.0,跟不上步伐了

使用特权

评论回复
13
mcuduoduo|  楼主 | 2008-11-22 18:34 | 只看该作者

next

第五章    机械

USB3.0 连接器:
    USB3.0 标准A插头和插座;
    USB3.0 标准B插头和插座;
USB3.0 供电B插头和插座;
USB3.0 Micro-B插头和插座;
USB3.0 Micro-A插头;
USB3.0 Micro-AB插座;
有些令人意外的是,在不久前把Mini-AB插座和Mini-A插头废除这后,USB-IF这次干脆把Mini-B插头和插座也废除了,看来今后几年Mini系列连接器要逐渐消失了,替代为Micro系列。

插头和插座的互连关系:
插座                        适配插头
USB2.0 标准A               USB2.0 标准A或者USB3.0标准A
USB3.0 标准A               USB3.0 标准A或者USB2.0标准A
USB2.0 标准B               USB2.0 标准B
USB3.0 标准B               USB3.0 标准B或者USB2.0标准B
USB3.0 供电B               USB3.0 供电B,USB3.0标准B或USB2.0标准B
USB2.0 Micro-B              USB2.0 Micro-B
USB3.0 Micro-B              USB3.0 Micro-B,或USB2.0 Micro-B
USB2.0 Micro-AB             USB2.0 Micro-B,或USB2.0 Micro-A
USB3.0 Micro-AB             USB3.0 Micro-B,或USB3.0 Micro-A,或
USB2.0 Micro-B,或USB2.0 Micro-A
可以看到,USB3.0为OTG应用已经设计好了连接器,也许不久就会出现一个新的OTG补充规范以支持USB3.0。

USB3.0定义了如下的电缆种类:
USB3.0标准A插头到USB3.0标准B插头;
USB3.0标准A插头到USB3.0 Micro-B插头;
USB3.0标准A插头到USB3.0标准A插头;--奇怪,这个是干什么用的?
USB3.0 Micro-A插头到USB3.0 Micro-B插头;
USB3.0 Micro-A插头到USB3.0标准B插头;
带USB3.0标准A插头的固定电缆;
带USB3.0 Micro-A插头的固定电缆;

各种插头、插座的机械图在本章中也给出了,Micro系列的外形怪模怪样的,不过USB3.0可以做到那么高的速度,那我们也就欣然接受吧。

电缆内部线材构成、接插件引脚定义、超速接插件的**等细节在本章给出了详尽规定。

使用特权

评论回复
14
ejack| | 2008-11-23 09:22 | 只看该作者

现在也在读规范中

电缆、连接器的设计让人很吐血……为了兼容而把一堆屏蔽双绞线塞进一个套管里……
照这样看,USB电缆的成本将会大大上升。须知成本很可能是一个方案的命门……个人目前不太看好3.0的当前版本。

使用特权

评论回复
15
钻研的鱼| | 2008-11-23 13:36 | 只看该作者

量大成本就低。

usb3.0刚出来肯定价格较高,但如果有intel这样的支撑,在pc上普及开来,那价格就降得很快。usb3.0的速率很高,这是它的主要优势。我还是很希望它能早点出来

使用特权

评论回复
16
drentsi| | 2008-11-23 21:32 | 只看该作者

有空就开发一些IPCORE用用看

这个协议比起PCI-E 2.0要简单些咯

使用特权

评论回复
17
钻研的鱼| | 2008-11-24 08:33 | 只看该作者

您开发过USB2.0?

device还是host?host开发难度比较大,device稍微容易一些。pci-e不知道您做过没?我只做过PCI总线,对usb2.0和pci-e很感兴趣,有时间交流交流

使用特权

评论回复
18
mcuduoduo|  楼主 | 2008-11-24 13:56 | 只看该作者

谢谢,多多交流

谢谢楼上几位。很多年了,对USB1.1,USB2.0,OTG,PCI略懂一二吧,PCI-E还没研究过。欢迎以后在这些方面多多交流。

使用特权

评论回复
19
mcuduoduo|  楼主 | 2008-11-24 13:57 | 只看该作者

next

第六章    物理层
超速不再使用之前USB2.0的NIZR编码,而是使用8b/10b转换码。似乎和PCI-E物理层使用相同的方式,在USB3.0和PCI-E规范中对编码方式使用了完全相同一句话:The definition of this transmission code is identical to that specified in ANSI X3.230-1994, clause 11。
惭愧,我对这个编码还处于一无所知的状态,以后再研究吧。所以本章在此先只是先大概浏览下。

眼图是衡量信号品质的重要指标。在USB2.0的时代,我就常常通过眼图得到一个高速USB链路大概的信号品质状况,那么USB3.0的眼图是什么样子的呢?下图是一个参考:

    虽然已经知道USB3.0的位速率达到了5Gbps,但是第一次看到着张图还是让我有点吃惊,对那些走在业界最前端的工程师们不懈的追求精神充满由衷的感动。
    同USB2.0相比,差分信号幅度仍为400mV左右,但是单端信号幅度降为了200mV左右,这是由于信号驱动方式发生了变化;眼睛宽度由将近2ns左右缩到了不到80ps,信号抖动已经变得非常敏感。电气特性参数在本章中进行了描述。
    
    接收器检测:
    发送器必须实现接收器检测电路。检测电路通过发送器的检测电阻、交流耦合电容、寄生电容和接收器的端接电阻,原理上使用RC时间常数变化获知接收端是否存在。

使用特权

评论回复
20
mcuduoduo|  楼主 | 2008-11-24 16:06 | 只看该作者

next

第七章    链路层
链路层负责管理链路连接保证成功的链路数据传输。
这一章主要描述:
包帧;
链路命令定义和用法;
链路初始化和流控;
链路电源管理;
链路错误规定/恢复;
复位;
LTSSM (Link Training Status State Machine) 规范;

本章内容非常细碎,大都难以理解,所以先了解包的构造,其他内容先略过。即使是包构造,我第一次仍然不能从本章中获得清晰的认识,不得不先把第八章翻了一下,才算稍稍有所了解。随着了解的深入,也许我会更新现在认识上的偏差。

超速包有LMP,TP,ITP,DP几种,详细格式在第八章描述。但是有两种基本的包结构-头包(Header Packet)和数据包(Data Packet Payload),前面四种包是由基本的包结构加上格式定义构成的。可以说,总线上任何包在结构上都是一个头包结构或数据包。

头包构造如图7-3所示:
头包由共20个字节,四个字节的HPSTART序列集,14个字节的包头(Packet Header),2个字节的链路控制字构成。HPSTART似乎是用于链路双方数据时钟恢复同步用途,类似于USB2.0时的SYNC;Packet Header则包含12个字节的包信息和2个字节的16位CRC;Link Control Word为2个byte,包括3 bit Header Sequence Number,3 bit reserved,3 bit Hub Depth Index,1 bit Delayed bit,1 bit Deferred bit,和5bit CRC。在第八章将会看到,LMP,TP,ITP,DPH其实都是头包结构,只不过12byte的包信息定义了不同的格式意义。

数据包构造:
数据包其实是由一个数据包头(Data Packet Header,DPH)后面无缝跟着一个数据负载包(Data Packet Payload,DPP)构成的。DPH的结构同上面的头包结构,DPP的结构如图7-8所示:
    DPP由四个字节的DPPSTART(类似头包中的HPSTART),0~1024字节的数据,四个字节的32位CRC,以及四个字节的DPPEND(作用类似于USB2.0的EOP?在数据有异常的时候这个将是DPPABORT)构成。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

41

帖子

0

粉丝