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

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

3天内不再提示

FPGA和USB3.0通信-USB3.0协议简介

OpenFPGA 来源:OpenFPGA 作者: 碎碎思 2021-11-02 11:29 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

今天开始将会通过4~5篇文章介绍FPGAUSB3.0通信的相关知识,这其实是《FPGA和外围接口(继续更新)基于FPGA的网口通信设计》后续。PCIe也在筹备中。

完成后也是《Xilinx 7系列FPGA入门级图像处理-完整版V1》初、中级篇的开始,图像处理部分也会通过摄像头前端算法(主要ISP)和后端算法组成,最后应该会形成一个初级工业UVC摄像头和IPC,平台还没选定(不知道有没有赞助,哈哈),算法基本验证完毕。

USB3.0介绍

总线、接口和协议

这里首先提几个概念,大家应该常见到:

USB3.0协议

USB3.0接口

USB3.0总线

是不是很懵逼?

其实理解了这几个概念,对于USB的具体协议就可以有得放矢,不需要看整个复杂又冗长的协议,针对自己的岗位去选择。

总线是一组传输通道,是各种逻辑器件构成的传输数据的通道,一般由由数据线、地址线、控制线等构成。接口是一种连接标准,又常常被称之为物理接口。协议就是传输数据的规则。

我们通常说的USB,既可以是USB信号,也可以是USB接口、USB总线,还可以是USB协议。之所以这么复杂,主要原因就是每个人对概念认知的差异。举个简单的例子,USB总线说的是一组传输通道,而USB接口是一种连接标准,两者之间的关系就是USB接口的设备都要通过USB总线来进行通信,而USB总线上走的设备并不全是USB接口的,像集成USB声卡,走的就是USB总线,但是没有走USB接口。在这里USB总线提供了一种通道,这个通道上可以有不同的符合这种通道要求的接口设备或信号(USB信号或Audio信号)。

35306478-3b8a-11ec-82a9-dac502259ad0.png

USB板载声卡

对于USB声卡,外置声卡时走的就是USB接口,板载声卡时时走的USB总线而不包含USB接口(物理层满足要求即可)。

所以总结一下:

协议即总体框架,定义接口设备、器件及信号、总线及通道之间需要满足的关系,即要实现信号的传输,所有这些组成成员必须通力合作,各自满足协议要求的各种必要条件。

对于USB,下图可以说明这三者关系:

3565e3be-3b8a-11ec-82a9-dac502259ad0.png

通过上面的分析,后面会在简单介绍USB3.0中规定的几个重要方面。

USB3.0的分层机制

大家都知道PCIe具有三层结构(事务层(Transaction Layer),数据链路层(Data Link Layer)和物理层(Physical Layer)),TCP/IP五层结构(物理层、数据链路层、网络层、传输层、应用层),为什么复杂协议都具有分层结构呢?

这个由来主要来源于OSI五层参考模型(例说七层OSI参考模型)。

35c6924a-3b8a-11ec-82a9-dac502259ad0.png

即使简单的RS232也是遵守上面的分层结构,只不过RS232只规定了物理层,所以现实中很少有人用分层结构进行分析。

USB3.0的分层机制其实和PCIe类似(协议层(Protocol Layer),链路层(Link Layer)和物理层(Physical Layer)),从某种意义上看,可以把USB3.0看做是PCIe变形版本。下图是分层的通讯结构:

36304a0a-3b8a-11ec-82a9-dac502259ad0.jpg

这种分层结构即方便标准化,又方便扩展,所以现今大部分协议都遵循OSI参考模型,希望大家可以理解一下这个模型(推荐的文章中有很多形象的解释)。

以上部分解释包含了个人理解,为了通俗易懂,有些表述不是很准确,希望大家留言交流,下面就很俗套的简单讲解官方的文档了。

USB3.0 与USB2.0的特性比较

366bd674-3b8a-11ec-82a9-dac502259ad0.jpg

硬件接口

368d22fc-3b8a-11ec-82a9-dac502259ad0.png

369da5f0-3b8a-11ec-82a9-dac502259ad0.png

物理层

高亮显示部分:

36f20a28-3b8a-11ec-82a9-dac502259ad0.png

本层主要定义了高速组件之间互操作性所需的电气层参数。

37240398-3b8a-11ec-82a9-dac502259ad0.png

物理层Tx框图

3735cdf8-3b8a-11ec-82a9-dac502259ad0.png

物理层Rx框图

377764ca-3b8a-11ec-82a9-dac502259ad0.png

不带电缆(顶部)和带电缆(底部)的通道示意图

USB3.0使用8b/10b传输代码。该传输代码的定义与ANSI X3.230-1994(也称为ANSI INCITS 230-1994)第11条中规定的定义相同。

378bc7ee-3b8a-11ec-82a9-dac502259ad0.png

加扰功能使用线性反馈移位寄存器(LFSR)实现。在发送端,加扰应用于8b/10b编码之前的字符。在接收端,对8b/10b解码后的字符应用解扰。无论何时发送或接收COM符号,LFSR都会重置。

3798725a-3b8a-11ec-82a9-dac502259ad0.png

以上就是物理层大致的规定,详情请见《USB3.0协议规范(英文完整版)(第六节)》。

Link Layer链路层

高亮显示部分:

37cfd8f8-3b8a-11ec-82a9-dac502259ad0.png

Link Layer链路层主要包括:

•数据包帧

•链路命令

•链路管理和流量控制

•链路错误规则/恢复

•重置

•链路状态机描述

37e5d9be-3b8a-11ec-82a9-dac502259ad0.png

具有帧符号、CRC-16和链路控制字的分组报头

3823003c-3b8a-11ec-82a9-dac502259ad0.png

链接控制字

3833b10c-3b8a-11ec-82a9-dac502259ad0.png

链接命令结构

38625fa2-3b8a-11ec-82a9-dac502259ad0.png

链接命令字结构

387475de-3b8a-11ec-82a9-dac502259ad0.png

链路训练和状态机的状态图

协议层

高亮显示部分:

38be6d24-3b8a-11ec-82a9-dac502259ad0.png

协议层主要包括:

•数据包类型

•数据包的格式

•对主机和设备发送的数据包的预期响应

•描述了四种USB 3.0事务类型

•支持批量传输类型的流式传输支持

•设备/主机可能接收/发送的各种响应和数据包的定时参数

整个协议层非常复杂,数据包就差不多十几种类型,所以这里就不过多介绍了。

编辑:jq

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

    关注

    0

    文章

    1047

    浏览量

    36431
  • RS232
    +关注

    关注

    13

    文章

    867

    浏览量

    97607
  • PCIe
    +关注

    关注

    16

    文章

    1420

    浏览量

    87541
  • 数据包
    +关注

    关注

    0

    文章

    269

    浏览量

    25423

原文标题:FPGA和USB3.0通信-USB3.0协议介绍

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    PL27A1超高速USB3.0数据对拷线芯片资料

    电子发烧友网站提供《PL27A1超高速USB3.0数据对拷线芯片资料.pdf》资料免费下载
    发表于 10-16 16:49 0次下载

    USB3.0 电路板布局指南

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

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

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

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

    =73882cd30422e7942d630b1024b22055 一、功能简介: 1转7的USB3.0 HUB(上行5G,1转7路USB3.0); 电流功率可视化(电流采样,功率计算,实时更新显示,并可上传电脑,后期可设计升级
    发表于 06-28 00:23

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

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

    如何用QT开发一个USB3.0上位机?

    如何用QT开发一个USB3.0上位机
    发表于 05-21 06:54

    CYPD4266+TUSB1064实现USB3.0 UFP 2lane +DP 2lane传输遇到的问题求解

    我们在使用CYPD4266+TUSB1064 实现USB3.0 UFP 2lane +DP 2lane 传输, 1.当DP mode Parameters ->Modes
    发表于 05-21 06:15

    PC电脑USB3.0接口无法识别CX3设备分辨率怎么解决?

    我正在使用CX3065来捕获图像,我发现有些USB3.0接口无法找到分辨率,现在我尝试了几台笔记本电脑,我发现USB3.0接口提供关机充电,它可以识别CX3设备分辨率。 我保存了是或否的USB接口图片。 我猜想改变 CX3 防火
    发表于 05-15 08:26

    调试CX3 USB3.0兼容USB2.0出图的问题求解

    调试CX3 USB3.0兼容USB2.0出图的问题,我们在调试一款sensor,需要输出全分辨率1124x1364,USB3.0调试可以出图,但是在调试USB2.0时,无法调试出图,在
    发表于 05-15 08:18

    在automaster和autoslave项目中如何配置参数来满足usb3.0usb2.0的数据传输?

    在automaster和autoslave项目中如何配置参数,来满足usb3.0usb2.0的数据传输,因为一边检测到是usb3.0, 一边是usb2.0。
    发表于 05-09 06:26

    是否可以与USB2.0集线器 (CYUSB2302) 共享USB2通道SS线路直接到USB3.0端口?

    我们的SoM iMX8提供一个USB3.0 接口。 但在我们的应用中我们需要一个完整的USB3.0 端口以及USB2.0端口。 在路由 USB3.0 的同时,是否可以与
    发表于 05-08 07:38

    CYUSB3014无法识别为USB3.0设备怎么解决?

    我开发了一款CYUSB3014硬件,但是我在烧录了syncfifo示例代码后,板卡只能被识别为USB2.0设备。我确认我的线材是支持USB3.0的,并且我检查了19.2Mhz的晶振工作正常
    发表于 04-30 07:24

    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

    轩展科技发布4K USB3.0编码采集模块

    在成功推出新版配备TYPE-C接口的USB3.0编码采集模块后,轩展科技再次发力,近日隆重推出一款集多项先进技术于一体的4K USB3.0编码采集模块。作为SONY(中国)FCB摄像机官方授权代理商
    的头像 发表于 12-30 11:19 998次阅读