USB系列(2)协议简介

USB通信的层次结构

  • Frame (帧): 从时间的维度看,USB通信是由一系列的Frame(帧)组成的
    • Transaction (事务): 每一个Frame(帧)又可以分成不同的Transaction, 具体的Transaction类型为以下3种:
      • IN/Read/Upstream Transaction 输入(Host)事务
      • OUT/Write/Downstream Transaction 输出(Host)事务
      • Control Transaction 控制事务
        • Packet 每一次Transaction又由不同的Packets所组成
          • Token Packet
          • Data Packet
          • Handshake Packet
          • Special Packet

USB Communication

USB Transactions (USB 事务)

USB Transactions主要由四种Packet组成, Token Packet, Data PacketHandshake PacketSpecial Packet
通常的一次Transaction由3个Packets组成:Tocken->Data->Handshake

在这里插入图片描述

Packet (包)

通常一个Packet由5个部分组成。

  • PID: Packet ID
  • ADDR: Device Address
  • EP: Endpoint Number
  • Payload DATA
  • CRC: 5/16 bits CRC
    在这里插入图片描述
Token Packets

Token Packets主要分四种:IN, OUT, SETUP, SOF
在这里插入图片描述

DATA Packets

Data Packets主要由三部分组成:Packet ID(DATA1/DATA0, toggle), Payload data, CRC16。
在这里插入图片描述

Handshake Packets

Handshake Packets主要有4种:

  • ACK: 返回成功
  • NAK: Device忙,或者没有什么需要执行。
  • STALL: Device出错
  • NYET: Host only, Not ready.

在这里插入图片描述

Special Packets
  • PRE: 由host向hubs发送,指示下一个packet是low speed
  • SPLIT: Host only, split transaction
  • ERR: Host only, 由hub向host发送,指示在一次split transaction中出错
  • PING: Host only, check status
    在这里插入图片描述
IN/Read/Upstream Transaction

IN Transaction主要用于Device向Host发送数据。

  1. Host 向 Deivce发送一个IN Tocken Packet
  2. Device如果忙,则回复NAK Packet, Host在收到NAK Pakcet之后则持续向Device发送IN Tocken Packet。
  3. 当Device准备好时,回复Data Packet, Host在收到Data packet之后回复一个ACK handshake。
    在这里插入图片描述
OUT/Write/Downstream Transactions

OUT Transaction主要用于Host向Device发送数据。

  1. Host向Deivce发送一个OUT Tocken Packet和一个DATA Packet。
  2. Device忙,则回NAK, Host则会复发OUT和DATA
  3. Device在成功收到数据后,回ACK handshake packet。
    在这里插入图片描述
Control Transactions

Control Transaction最多由3个Stage组成, Setup stage, Data stage, Status stage。其中Data stage不是必需的,有的control transaction没有data stage。

  • Setup Stage
    Setup stage中的setup packet只会出现在control transaction中, device必须回ACK, 不能回NAK。

-

  • Data Stage
    Data Stage可以有若干的Data transaction。这个stage只有在host和device需要data传输时才会存在,通常setup stage的payload可以cover, 这个时候就不需要data stage.
    在这里插入图片描述
  • Status Stage
    以下是control read transaction和control write tranasaction分别对应的status stage。
    在这里插入图片描述
Control No Data Transfer

在这里插入图片描述

Control Read Transfer

在这里插入图片描述

Control Write Transfer

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值