USB简介系列-03

本文深入探讨USB数据传输,解析数据包的概述和格式,包括PID、令牌、正常数据包和握手数据包。USB事务由令牌包、数据包和握手包构成,确保数据的安全传输。此外,还介绍了USB的四种传输类型:批量、中断、等时和控制传输,以及它们各自的应用场景和错误控制机制。
摘要由CSDN通过智能技术生成

系列文章目录

USB简介之三



USB数据流

本部分讨论USB数据包。


一、USB数据包概述

数据包可以被认为是USB数据传输的最小单元。每个数据包以当前传输速率传输一段整数字节数的数据。在数据包之前和之后,总线处于空闲状态。

除非您在芯片级别进行设计,否则您无需担心同步、位填充和数据包结束条件的细节,因为串行接口引擎 (SIE) 将为您处理上述细节。您应该知道 SIE 可以识别数据包的开始和结束,并且数据包包含整数字节。

尽管如此,数据包通常期望数据字段跨越字节边界。要记住的重要规则是,所有 USB 字段都首先传输最低有效位LSB。因此,例如,如果一个字段由 2 个连续的字节定义,则第一个字节将是最低字节,而传输的第二个字节将是最高字节。

数据包以同步数据开头,以允许接收器位时钟与数据同步。紧随其后的是数据包的数据字节,并以数据包结束 (EOP) 信号结束。数据实际上是 NRZI 编码的,为了确保足够频繁的转换,在 6 个连续的 1 之后插入一个零(这称为位填充)。

二、USB数据包格式

每个数据包中的第一个字节是数据包标识符 (PID) 字节。SIE需要快速识别此字节,因此不包含在任何CRC检查中。因此,它有自己的有效性检查。PID 本身的长度为 4 位,这 4 位以反码形式重复。

PID定义
定义了 17 个不同的 PID 值。这包括一个保留值,以及一个在两种不同情况下使用过两次且含义不同的值。

PID类型
有四种不同的数据包格式,具体取决于数据包以哪个 PID 开头。

  • 令牌数据包
    令牌数据包

用于 SETUP、OUT 和 IN 数据包。它们始终是事务中的第一个数据包,用于标识目标端点和事务的目的。

令牌数据包包含两个寻址元素:
ADDR(7bits) - 此设备地址最多可以寻址 127 个设备。地址 0 保留给尚未设置其地址的设备。
ENDP(4bits) - 设备中每个方向最多可以有 16 个可能的终结点。方向隐含在 PID 中。OUT 和 SETUP PID 将引用 OUT 端点,而 IN PID 将引用 IN 端点。

  • 20
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值