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

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

3天内不再提示

关于USB 2.0的数据传输方法的分析和介绍

立錡科技 来源:djl 2019-10-10 09:02 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

普通的消费者使用USB设备的时候是不需要了解USB本身到底是怎么回事的,实际上,这样的人对USB到底是怎么回事都是处于无知的状态。无知,同时又享受着USB带来的便利,这种无知其实是很幸福的。

对于工程师来说,无知就常常意味着无能。你没有办法在无知的情况下进行思考,自然也没有办法开展相关的工作,要想把它变成安生立命的基础,或是仅仅满足求知的欲望,那就唯有从了解开始学习,使自己成为有知的状态,然后在遇到问题的时候就有了很好的思考基础,从而能够展开思考并且确定自己应该采取的行动,这样才有可能从中获得正面的结果。

USB的规范既要满足已有应用的需求,又要满足不断增加的带宽要求,就从1.0版本发展到了3.0版本(双向5Gbps),又在2013年进入了3.1时代,最终把它的速度提升到了双向10Gbps的水平。

双向同时进行的通讯是无法和USB 2.0以前的单一总线双向轮流进行的通讯方法兼容的,所以,USB 3.0以后的最大的变化并不是速度提高了,而是变成了双总线的结构:

关于USB 2.0的数据传输方法的分析和介绍


为了持续兼容于过去的标准,很显然,USB 2.0的总线将持续存在下去,我想这种状况将持续到低速设备消亡以后才会发生改变。所以,首先认识USB 2.0的做法将具有比较长久的价值。我们今天关注的重点是USB 2.0以前版本的数据传输方法。

实际有效的数据传输大多是通过二进制的数据表达方式来进行的,由于二进制数据的每个位只有两个状态,其实现方法相对比较简单。对于低速的数据传输来说,用高低不同的电压信号就可以表达一个数据位的两种状态,其驱动电路和接收电路都非常简单。但是,USB是用于不同设备之间的远距离传输的,在这种情况下,用电压传递信号变得很不可靠,所以,它采用了电流传递信号的方法。下图是USB 2.0规范中提供的收发器接口电路示意图:

关于USB 2.0的数据传输方法的分析和介绍


一个典型的USB 2.0收发器就是由这样的接口加上数据串并行转换器、数据时钟恢复电路以及一个ULPI(UTMI+ Low Pin Interface)接口和其它一些辅助电路构成的。

为了在USB总线上传递信息,驱动器的内部会有一个电流源(标称值为17.78mA),它被一个高速开关轮流切换引导至D+或D-。当电流被引导至D+时,它就对外表达了一个信号状态J;如果电流被引导至D-,它对外表达的信号状态是K。由J和K组成的信号序列来源于原始数据,它们之间是通过不归零反向编码的方法来进行转换的:

关于USB 2.0的数据传输方法的分析和介绍


如上图所示,以0和1组成的二进制串行数据经过NRZI编码后形成的J/K序列送入前面图中的LS/FS Driver或High Speed Current Driver,其输出就呈现为总线上的连续不断的数据流了。

如果要将电压信号在传输线上进行传输,由于传输线是有阻抗的,其信号幅度会随着线路的延长而衰减,到了接收端,很可能信号幅度已经变得不足以被检出正确的数据了,而电流信号则不会有这个问题。当然了,电流信号的传输也会受到线路阻抗的影响,其脉冲形状也会发生变化,但相对来说就要更好些。
以我的直觉来看,除了传输的可靠性外,采用电流信号传输数据对于及时发现外设的接入和拔出非常有好处。由于发送器的输出是电流源,当没有负载的时候,有电流输出的端子就总是会处于高压状态,而当负载接入的时候,其电压马上就降低了,这是非常方便检测电路的设计的。

要进行通讯,收发两端的同步是非常重要的。同步分为两种,一种是数据位的同步,一种是数据包的同步。

位同步要求收发两侧要有同步运作的时钟,这个时钟的信息是包含在NRZI编码之中的。在数据与NRZI编码的转换过程中,一个为0的数据位将造成NRZI编码的状态发生变化,为1的数据位则不会。编码发生变化的信息是很重要的,它正好对应着信号发生变化的地方,接收端的数据时钟恢复电路利用此信息将与发端同步的时钟恢复出来,然后再延迟一点时间后读入状态信息,就可以得到与发端相同的J/K数据流,再经过反向的NRZI编码,原始数据就可以被恢复出来了。

由于NRZI编码仅在数据为0的时候发生变化,如果长时间出现连续的1就会造成NRZI编码持续处于一种状态,其中便没有了时钟信息,数据时钟恢复电路的时钟输出就可能失去与发端的同步。为了避免这个问题的发生,USB规范规定:如果数据串中连续出现了6个1,其后就要插入一个为0的数据位。这样就可使接收器在7个数据位的传输时间内至少会看到一次编码信号的状态转换,从而保证其时钟恢复电路不至于丢掉同步状态。当然了,这些插入的数据需要在接收端再把它们消除掉以恢复原始数据。

一个含有多个连续1的原始数据包被插入0后再进行编码的过程如下图所示,其中的Stuffed Bit箭头所指的地方就是新插入的为0的数据位。

关于USB 2.0的数据传输方法的分析和介绍


上图中标识为Sync Pattern的信息被称为同步模板,它们的作用是告诉收方后面的信息就是我要发送的数据包了,所以它们所起的作用就是数据包的同步。如果没有包同步,收方就不会知道信息是从何时开始的,因而不能正确地理解收到的信息。

LS/FS通讯的数据包同步信号是由3个KJ序列紧接2个K状态构成的,如下图所示:

关于USB 2.0的数据传输方法的分析和介绍


高速通讯的同步头要长许多,它包含了15个KJ序列和紧接着的2个K状态,总共有32个信号周期。考虑到高速通讯的速度提高了几十倍,32个信号周期其实并不算太长。

USB总线上需要传递的数据可以分为4种类型:用于控制的数据,设备和主机之间的连接过程就需要传输这种数据(地址、端口编号等);批量数据,主机与打印机、扫描仪之类的外设间的通讯以这类数据为主;中断信息,这种信息的出现时间是不确定的,但又需要系统做出及时的响应,这与MCU应用中的中断信号很类似;同步数据,它们在时序上有严格的要求,而且需要按照一定的节奏进行,一旦不同步,接收方的感觉就会很差,所以在传输时需要安排出足够的带宽与其配合,摄像头、话筒等外设所拾取的信息用这种方式进行传输就比较好。

USB属于轮询总线,所有的通讯都是在主机的控制下进行的,外设只有在收到主机的询问数据包时才可以进行响应,告诉主机自己没有数据或是把它要发送的数据打包发给主机,主机在收到以后要进行回应,至少它得说明收到的信息是否正确吧,所以一次正常的通讯至少会有三个数据包需要传输。

USB规范把一个主机应用和一个设备之间的传输通道称为管道,这种管道并不真实存在,属于一种逻辑实体。由于应用众多,外设也很多,所以可以有很多管道同时存在,这有点像现实中的物流系统的样子。当我向京东下了一个订单的时候,我和京东之间就建立起了一个管道,京东将通过此管道把货物送到我指定的地方,这个管道直到我收到货物、京东也收到确认信息以后才会消失。当我需要京东的后续服务如退货、返修之类的需求时,一条新的管道又会建立起来。而在我做这些事情的时候,也有其他人在和京东之间做着同样的事情。这个物流系统与USB不一样的地方是它不是轮询式的,因为京东不会主动来询问我要不要什么东西。但是,京东为了做成更多的业务,它会想办法吸引我多去它那里选择商品,这又属于广告性质了,这有点像USB主机在总线上发布广播信息:“我要关机了,你们大家配合一下。”至于外设会不会配合,那是另外一回事了。

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

    关注

    54

    文章

    9012

    浏览量

    153354
  • 数据传输
    +关注

    关注

    9

    文章

    2076

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    旺玖PL27A1高速USB3.0对拷线方案,主机到主机数据传输

    PL27A1是一款专为USB主机间数据传输设计的单芯片SuperSpeed USB 3.0主机间桥接控制器。SuperSpeed USB的带宽最高可达5Gbps ,性能比Hi-Spee
    的头像 发表于 11-09 16:59 1130次阅读
    旺玖PL27A1高速<b class='flag-5'>USB</b>3.0对拷线方案,主机到主机<b class='flag-5'>数据传输</b>

    多通道数据传输终端 LoRa/LTE双模通信终端

    数据传输
    稳控自动化
    发布于 :2025年10月24日 13:57:21

    基于FPGA的USB数据传输

    你也许会有疑问,明明有这么多通信方式和数据传输(SPI、I2C、UART、以太网)为什么偏偏使用USB呢?
    的头像 发表于 08-06 14:47 4581次阅读
    基于FPGA的<b class='flag-5'>USB</b><b class='flag-5'>数据传输</b>

    振弦式应变计两种数据传输方式介绍

    采集的效率与可靠性。下面给大家介绍振弦式应变计两种数据传输方式。一、有线传输:稳定可靠的传统方案有线传输是振弦式应变计最传统的数据传输方式,
    的头像 发表于 07-15 13:38 340次阅读
    振弦式应变计两种<b class='flag-5'>数据传输</b>方式<b class='flag-5'>介绍</b>

    像这样一款体积小巧的DTU数据传输终端你见过吗?

    数据传输
    才茂通信
    发布于 :2025年06月04日 14:33:29

    SPI数据传输缓慢问题求解

    我遇到了 SPI 数据传输速率问题。 尽管将 SPI 时钟频率设置为 20 MHz,但我只获得了 2 Kbps 的数据传输速率。 我正在以 115200 的波特率通过 UART 监控数据。 我正在 cyfxusbspidmamo
    发表于 05-15 08:29

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

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

    无线采发仪 振弦、温度及多类型信号采集 多种数据传输方式

    数据传输
    稳控自动化
    发布于 :2025年03月10日 11:18:58

    信道带宽与数据传输速率关系

    信道带宽与数据传输速率之间存在密切的关系,这种关系可以通过香农定理来具体阐述。 一、理论关系 根据香农定理,信道的最大数据传输速率(C)与信道的带宽(B)和信噪比(SNR)之间存在如下关系:C=B
    的头像 发表于 01-22 16:36 3923次阅读

    请问ldc1000在与主机进行数据传输的过程中,数据传输速率设置为多大合适?

    你好,请问ldc1000在与主机进行数据传输的过程中,数据传输速率设置为多大合适(我的差不多1M),但数据一直不对····
    发表于 01-17 06:37

    MPU数据传输协议详解

    在现代电子系统中,微控制器(MPU)扮演着核心角色,负责处理各种任务和数据。为了实现这些功能,MPU需要与其他设备进行数据交换。数据传输协议就是规定这些数据交换如何进行的一套规则。 M
    的头像 发表于 01-08 09:37 1422次阅读

    总线数据传输的安全性分析

    总线数据传输的安全性分析,特别是针对像CAN(Controller Area Network)总线这样的重要通信协议,是一个复杂而关键的课题。以下是对CAN总线数据传输安全性的分析
    的头像 发表于 12-31 09:51 1195次阅读

    如何使用 HTTP 协议进行数据传输

    在互联网时代,数据传输是信息交换的基础。HTTP协议作为最常用的数据传输协议之一,支撑着全球数十亿用户的数据交互。 HTTP协议的基本概念 请求-响应模型 :HTTP协议基于请求-响应模型,客户端
    的头像 发表于 12-30 09:24 2147次阅读

    ptp对实时数据传输的影响

    在现代通信技术中,点对点(P2P)网络已经成为数据传输的一种重要方式。P2P网络允许网络中的每个节点既可以作为客户端也可以作为服务器,直接进行数据交换。这种去中心化的网络结构对于实时数据传输有着深远
    的头像 发表于 12-29 09:53 1043次阅读

    信噪比对数据传输速度的影响

    信噪比对数据传输速度有着显著的影响。以下是对这一影响的分析: 一、信噪比的定义与重要性 信噪比(SNR)是信号功率与噪声功率的比值,通常以分贝(dB)为单位表示。它是衡量信号质量的重要参数,直接影响
    的头像 发表于 12-10 14:38 2774次阅读