0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA学习-USB 3.0协议理解

FPGA设计论坛 来源:未知 2023-02-11 15:55 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

USB3.0和USB2.0相比,在线缆上从4根线(Vbus、GND、D+、D-)变为了8根线(Vbus、GND、D+、D-、SSRX+SSRX-SSTX+SSTX-),可见增加的4根线都是和超速相关的,新增加的超速有两类,分别为:超速Gen 1(5.0 Gbps), 超速+Gen 2(10 Gbps),还兼容USB2.0的3类速率:low-speed (1.5 Mbps), full-speed (12 Mbps), and high-speed (480 Mbps)。从设计可以看出,USB3.0的重点解决的问题是速率,最高10Gbps。


所有增强的超高速设备都与USB2.0共享它们的基本架构。通信模型视图保留了USB2.0分层架构和通信流的基本组件(即,点对点、相同的传输类型等)

增强的超高速协议提供了在主机和设备端点之间的应用程序数据信息交换。这种通信关系被称为管道。它是一个主机导向的协议,这意味着主机决定何时在主机和设备之间传输。增强的超高速协议不是一个轮询的协议,因为设备能够代表特定的端点从主机异步请求服务。所有协议层通信都是通过包交换来完成的。数据包是具有特定控制序列的数据字节序列,它们作为由链接层管理的分隔符。主机传输的协议包通过中间集线器直接路由到外设设备。它们不遍历不属于主机和目标外围设备之间的直接路径的一部分的总线路径。

- USB2.0使用三部分事务(令牌、数据和握手),而增强的超高速协议使用相同的三个部分则不同。对于OUTs,令牌将被合并到数据包中;而对于INs,令牌将被握手替换。
- USB2.0不支持bursting,而增强的超高速协议支持连续bursting。
- USB2.0是一个半双工广播总线,而增强的超高速总线是一个双单工单播总线,它允许并发的IN和OUT事务。-- USB2.0使用了一个轮询模型,而增强的超高速协议则使用了异步通知。
- USB2.0没有流媒体功能,而增强的超高速协议支持批量端点的流媒体功能
- USB2.0以固定的1ms/125μs的间隔传输SOF/uSOF,具有非常严格的持续时间和抖动规范。增强的超速度链路也有一个类似的机制,称为等时时间戳包(ITP),它由主机传输。USB主机可以在从总线间隔边界的放松定时窗口内发送同步时间戳包(ITP)。USB3.0增加了一种机制,供设备发送总线间隔调整消息,主机用来将其125μs总线间隔调整至+/-13.333μs。一个设备可以通过较小的有限调整来改变时间间隔。
- USB3.1为以Gen1速度运行的主机和集线器定义了一个可选的规范,并且需要以Gen2速度运行的主机和集线器,为增强的超高速设备提供精密时间测量(PTM)能力,使主机、集线器和设备能够通过USB拓扑准确地确定传播延迟。
- USB2.0电源管理,包括链路电源管理,总是由主机直接启动。增强的超高速总线支持链路级电源管理,可以从链路的两端启动。因此,每个链路都可以独立地进入低功耗状态
数据包有四种基本类型:链接管理数据包LMP、事务数据包TP、数据数据包DP和同步时戳数据包ITP。

发送到接收方的每个非等时数据包都通过握手(称为ACK事务包)进行确认。然而,由于增强的超高速总线具有独立的传输和接收路径,发射机不必在发送下一个数据包之前等待所传输的每个数据包的显式握手。增强的超高速总线保留了USB2.0中定义的所有基本数据流和传输概念,包括传输类型、管道和基本数据流模型。这本质上意味着主机在开始下一个事务之前启动并完成一个总线事务{令牌、数据、握手}。拆分事务也遵循相同的模型,因为它们由完整的高速事务{令牌、数据、握手}组成,这些事务在与所有其他事务在相同的模型下完成。增强的超高速协议通过使用独立的传输和接收路径,改进了USB2.0事务协议。其结果是,增强的超高速USB事务协议本质上是一个分割事务协议,通常允许在总线上同时有多个IN或OUT总线事务活动。请注意,一个超高速链接有一个限制,最多有一个在“总线事务”可以在该超高速总线实例上激活。分割事务协议可以很好地扩展到(跨多个事务到多个函数端点),因为它不受传播延迟的影响。USB2.0协议在继续到下一个预定功能端点的下一个总线事务之前,先完成整个IN或OUT事务{令牌、数据、握手}。所有来自主机的传输基本上都在USB2.0总线上广播。相比之下,增强的超速度协议不广播任何数据包(ITPs除外),而数据包只遍历到达预期收件人所需的链路。主机通过发送握手或数据来启动所有事务,设备以数据或握手进行响应。如果该设备没有可用的数据,或不能接受该数据,它会响应一个数据包,声明它不能这样做。随后,当设备已经准备好接收或传输数据时,它会向主机发送一个通知,表明它已经准备好恢复事务。此外,增强的超高速总线提供了转换链接到和退出特定的低功率状态的能力。低功率链路状态在被软件启用后,可以在软件控制或自主硬件控制下输入。

传输方式有:
- IN transfer
- OUT transfer
- Control Transfer控制传输
- Bulk Transfers批量传输
- Interrupt Transfers中断传输
- Isochronous Transfers异步传输

接口形式有Standard-A、Standard-B、Micro-B、Micro-A、Micro-AB接口如下:

cable线的定义如下:

USB3.1 Standard A到USB3.1 Standard B的连接如下:

物理层physical layer:
Gen 1采用8b/10b K-Code编码,Gen 2采用128b/132b编码。
链路层link layer:
包的帧格式、链路指令、链路初始化和流控制、错误检测与控制、复位。
 
链路训练和状态机

U0:可以传输和接收数据包的正常操作状态。
U1:一种低功率状态,不传输数据包,两个端口都同意进入一个链路状态,其中一个增强的超高速PHY可以置于低功率状态。
U2:一种链接状态,与U1相比,允许有更多的节能机会,但退出延迟增加
U3:一种使设备处于暂停状态的链路状态。保存了重要的链路和设备电源。
Recovery:恢复链路状态,以重新训练链路,或执行热重置,或切换到回载模式。
Loopback:可用于测试和故障隔离。回载功能包括一个位误码率测试(BERT)状态机
HotReset
协议层protocol layer:

这一层建立在链路层保证头数据包交付的假设之上,并且该层根据传输类型增加了其余数据包的端到端可靠性。如果没有特别说明,则要求协议层同时适用于超高速和超高速+架构。

四大类Packet类型:
- Link Management Packets (LMP):
+ Set Link Function
+ U2 Inactivity Timeout
+ Vendor Device Test
+ Port Capabilities
+ Port Configuration
+ Port Configuration Response
+ Precision time Measurement
- Transaction Packets (TP)
+ ACK
+ NRDY
+ ERDY
+ STATUS
+ STALL
+ DEV_NOTIFICATION
+ PING
+ PING_RESPONSE
- Data Packets (DP)
- Isochronous Timestamp Packets (ITP)
所有的packet都有16byte的头:
对于USB协议,可以通过WireShark抓取通信数据包:





扫描二维码获取

更多精彩

FPGA设计论坛




欢迎关注至芯科技

至芯官网:www.zxopen.com

至芯科技技术论坛:www.fpgaw.com

至芯科技淘宝网址:

https://zxopen.taobao.com

至芯科技FPGA初级课程(B站):

https://space.bilibili.com/521850676

至芯科技FPGA在线课程(腾讯课堂):

https://zxopenbj.ke.qq.com/

至芯科技-FPGA 交流群(QQ):282124839

更多资料下载欢迎注册http://www.fpgaw.com




扫码加微信回复加群

邀请您加入FPGA学习交流群




欢迎加入至芯科技FPGA微信学习交流群,这里有一群优秀的FPGA工程师、学生、老师、这里FPGA技术交流学习氛围浓厚、相互分享、相互帮助、叫上小伙伴一起加入吧!




点个在看你最好看





原文标题:FPGA学习-USB 3.0协议理解

文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1655

    文章

    22283

    浏览量

    630179

原文标题:FPGA学习-USB 3.0协议理解

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    IP5569 支持 3 路 Type-C、PD3.0 等快充协议15W无线充 TX的移动电源 SOC

    IP5569支持3路Type-C、PD3.0等快充协议,自唤醒15W无线充TX等功能的移动电源SOC简介IP5569是一款符合WPCQI标准,支持FCP/AFC输入输出快充协议USB
    发表于 10-24 20:17 0次下载

    USB3.0 电路板布局指南

    该文章介绍USB3.0的布局布线要求及走线规范
    发表于 08-19 16:50 2次下载

    基于FPGAUSB3.0通信的UVC摄像机设计方案

    本次演示用的是USB3.0芯片-CYPRESS CYUSB3014(下称 FX3),该芯片是标准的USB3.0 PHY,可以大大简化使用USB通信时FPGA的设计,主需要使用状态机进行
    的头像 发表于 07-21 16:20 6153次阅读
    基于<b class='flag-5'>FPGA</b>和<b class='flag-5'>USB3.0</b>通信的UVC摄像机设计方案

    IP2726H 集成多种协议、用于USB-A和TYPE-C双端口输出的快充协议 IC

    IP2726H 是一款集成 多种协议 、于 用于 USB-A 和TYPE-C 双 端口 输出 的快充协议 IC 。 支持 多 种 快充协议,包括 U
    发表于 07-02 11:33 1次下载

    电流功率检测USB3.0HUB,USB3.0扩展坞,可扩展的USB2.0

    “Power HUB V1.0”,1转7路USB3.0 HUB,电流功率可视化!USB2.0和3.0分工! 演示视频: https://www.bilibili.com/video
    发表于 06-28 00:23

    IP2723TH 集成 多种协议、用于 USBC 端口的快充协议 IC

    IP2723TH 是一款集成 多种协议 、用于 USB 输出议 端口的快充协议 IC 。 支持 多 种括 快充协议,包括 USB TypeC
    发表于 06-11 17:31 1次下载

    创惟GL3213S与国产DD3118在USB3.0读卡器方案中BOM对比

    如下: 使用场景及目标:① 设计和开发USB3.0读卡器产品;② 理解和应用USB、SD、eMMC等标准协议;③ 进行读卡器控制芯片的选型和评估;④ 掌握芯片的电气特性和物理封装参数。
    发表于 06-11 15:43

    IP5355 支持高压 SCP、双向 PD3.0等全部快充协议中文资料

    IP5355 是 一 款 集 成 QC2.0 / QC3.0/SCP 输 出 快 充 协 议 、 FCP/AFC 输 入 输 出 快 充 协 议 、TYPE-C/PD2.0/PD3.0 输入输出协议
    发表于 06-11 15:32 0次下载

    使用CYUSB3014作为USB3.0数据传输方案,USB3.0无法识别是什么原因?

    我们使用CYUSB3014作为USB3.0数据传输方案,目前处于试产阶段。试产过程中偶尔出现板卡连接至PC后,USB3.0无法识别的情况。 固件使用的官方SlaveFifoSync固件。问题板卡上电
    发表于 05-29 06:48

    抖胆DD3118高性价比USB3.0读卡器芯片方案-替代创惟GL3213S

    USB3.0读卡器产品;② 理解和应用USB、SD、eMMC等标准协议;③ 进行读卡器控制芯片的选型和评估;④ 掌握芯片的电气特性和物理封装参数。
    发表于 05-27 17:28

    HC8216BP/BP25/BP30 USB TYPE-C PD多协议控制器规格书

    HC8216BP是一款集成 USB Type-C、USB Power Delivery(PD3.0)以及 PPS、ac3.0+/ac3.0/
    发表于 05-06 16:09 2次下载

    国产芯片沁恒USB 3.0芯片替代方案解析

    USB2517 ‌ ‌ 性能提升 ‌:CH338X支持USB 3.0 Gen1(5Gbps)高速传输,显著优于USB2517的USB 2.0
    的头像 发表于 03-10 15:24 2912次阅读

    CH634USB3.0HUB控制芯片USB3.0国产控制芯片

    CH634是南京沁恒微电子股份有限公司推出的一款高性能、工业级4端口USB3.0 HUB控制器芯片,该芯片全面符合USB3.2 Gen1协议规范,集成了四口USB HUB和
    的头像 发表于 02-07 16:07 4102次阅读
    CH634<b class='flag-5'>USB3.0</b>HUB控制芯片<b class='flag-5'>USB3.0</b>国产控制芯片

    基于FT600Q芯片 的USB3.0设计,为什么连接PC后设备无法识别?

    一个基于FT600Q芯片 的USB3.0设计,进行高速传输,使用的是Micro usb3.0的接口,但是连接PC端口,显示无法识别该设备,请教各位大佬,这种情况是接口的设计有问题吗?下面是我的原理图。*附件:FTDI_FPGA.
    发表于 01-20 14:48

    利用FPGA实现USB 2.0通信接口

    USB 2.0接口的实现方式 利用FPGA来实现USB 2.0接口的方式一般有两种,一是借助外围的USB接口芯片,二是FPGA内部实现
    的头像 发表于 12-30 13:59 3776次阅读
    利用<b class='flag-5'>FPGA</b>实现<b class='flag-5'>USB</b> 2.0通信接口