• [USB波形分析] 全速USB波形数据分析(二)


    在上一篇文章全速USB波形数据分析(一)介绍了全速USB的数据包(Packet)的组成,数据的类型等基本知识。这篇文章介绍USB的几种传输方式

    事务(Transaction)

    USB协议定义了三种不同的事务(Transation),即SETUP事务, IN事务和OUT事务

    SETUP 事务

    一次成功的SETUP事务包含3个连续的数据包,分别是令牌包(TOKEN PACKET),数据信息包(DATA PACKET),握手包(HANDSHAKE PACKET)

    用示波器实际获取的D+/D-信号如下,

    IN 事务

    一次成功的SETUP事务包含2个或者3个连续的数据包,分别是令牌包(TOKEN PACKET),数据信息包(DATA PACKET),握手包(HANDSHAKE PACKET)。对于同步传输(Isochronous)模式,省略了握手包以保证数据实时传输

    用示波器实际获取的D+,D-信号如下,

    OUT 事务

    一次成功的OUT事务包含2个或者3个连续的数据包,分别是令牌包(TOKEN PACKET),数据信息包(DATA PACKET),握手包(HANDSHAKE PACKET)。对于同步传输(Isochronous)模式,省略了握手包以保证数据实时传输

    OUT事务在示波器中的波形如下,

    USB数据传输(Transfer)

    USB数据传输过程包含1个到多个事务传输,一个事务传输包含了2个到3个的数据包传输,它们的层次结构如下图所示,

    USB协议定义了四种数据传输类型,分别是控制传输(Control Transfer), 中断传输(Interrupt Transfer),同步传输(Isochronous),批量传输(Bulk Transfer)

    控制传输(Control Transfer)

    用于对设备配置和发送命令,使用了完善的错误检查机制。控制传输强制使用端口0(Endpoint 0)。控制传输包含2个到3个阶段,SETUP阶段,DATA阶段(可选),STATUS阶段。

    没有数据的控制传输(Control No Data Transfer)

    写数据控制传输(Control Write Transfer)

    读控制传输(Control Read Transfer)

     批量传输(Bulk Transfer)

    不定周期的大数据量的传输方式,对于全速USB,数据包的数据大小可以是8,16,32,64字节;对于高速USB数据包的数据大小为512字节

    中断传输(Interrupt Transfer)

    中断传输类似于批量传输,对于全速USB,数据包的数据大小可以由1字节到64字节;对于高速USB,数据包的数据大小可以由1字节到1024字节。中断端点有一个相关联的轮询间隔,确保主机将定期轮询它们(接收IN令牌)。

    同步传输(Isochronous Transfer)

    同步传输用于流数据,如音频和视频。对于全速USB,数据包数据可以多达1023个字节;对于高速USB则可多达1024个字节。同步传输没有握手数据包

     

     

     

     

     -----------------------------------------------------------------------------------END

    [参考资料]

  • 相关阅读:
    设计模式之设计原则
    把二叉树打印成多行
    快速排序的递归遍历和非递归遍历
    二叉树的非递归遍历
    约瑟夫环问题
    strcpy strcat strcmp memcpy函数的自己实现
    【解题模板】一些很基础的板子
    【笔记】取模运算的用法
    【OJ技巧】DSACPP pa-book中的一些提示
    【编程语言】Java基础进阶——面向对象部分
  • 原文地址:https://www.cnblogs.com/mr-bike/p/USB.html
Copyright © 2020-2023  润新知