[转]USB协议基本概念

0. 基本概念

Pipe:Host与Device.Endpoint间的通路(HOST与Device间多个Pipes)。

Packet信息传输的基本单元。

Transaction:由Packet组成,可分为3类IN、OUT、SETUP。

Transfer (控制、批量、中断、等时):由Transaction组成。

Frame:把Transfer封装于Frame传输,下图Frame由SOF、SETUP、IN、IN、IN、EOF(非Packet、仅电平)

 

1. Packet

  Packet 组成:SYNC、PID、ADDR-ENDP、FrameNumber、DATA、CRC和EOP(电平)。

 

 

 1.1 PID:指定不同类型的Packet。

 

1.2 Token类型Packet:IN、OUT、SETUP、PING

 

1.3 SOF Packet

 

1.4 Data类型Packet:DATA0、DATA1、DATA2、MDATA

 

1.5 Handshake类型Packet:ACK、NAK、STALL

 

2.Transaction

2.1 输入(IN)事务处理

•【正常】的输入事务处理

•【设备忙】时的输入事务处理

•【设备出错】时的输入事务处理

2.2. 输出(OUT)事务处理

 •【正常】的输出事务处理

  •【设备忙时】的输出事务处理

 •【设备出错】的输出事务处理

2.3 设置(SETUP)事务处理  

•【正常】的设置事务处理

 

•【设备忙时】的设置事务处理

 

•【设备出错】的设置事务处理

 

3.Transfer

3.1 控制传输 (Control Transfer)的2~3个阶段:

3.1.1 建立阶段:Host配置Device

Transfer.Setup = Transaction_SETUP =(P_SETUP、P_DATA0、P_ACK)…,配置Transaction_IN/Transaction_OUT的P_DATA个数、发送方向等。

3.1.2 数据阶段:

控制读:Transfer.IN = Transaction_IN、Transaction_IN … = (P_IN、P_DATA0、P_ACK)、(P_IN、NAK)…

控制写:Transfer.OUT = Transaction_OUT、Transaction_OUT … = (P_OUT、P_DATA0、P_ACK)、(P_OUT、NAK)…

3.1.3 Status阶段:

 

3.2 批量传输 (Bulk Transfer):大量可靠传输,如U盘

•DATA0-DATA1-DATA0-…翻转传输(同步、纠错)。
• Host容忍连续 3次传输错误。

 

3.3 中断传输(Interrupt Transfer):Device -> Host,优先级次于同步,如键盘、鼠标

   

3.4 同步传输(Isochronous Transfer):不可靠、优先级最高适用于固定速率,如麦克风、喇叭、UVC Camera等设备。

 

4. OTG协议

    若设备ID线拉低,则为Host;悬空或拉高,则为Device。

   设备也能通过“主机交换协议(HNP)”实现角色互换。

   因总线空闲而被切断电源的从设备,可通过“会话请求协议(SRP)”请求恢复电源。

2.1 HNP协议:主从切换

   假设A为主设备、B为从设备。若B想成为主机,并告知A;A向B发送SetFeature命令,使总线进入J状态(D+=1、D-=0,Idle);B检测到并等待5ms,使总线处于SE0状态(D+=D-=0,Stop);A检测到后,使总线再次进入J状态(表示A认可B的HNP请求);B复位并控制总线。

2.2 SRP协议:

   SRP分为数据线脉冲调制和电压脉冲调制两种方式,B发起SRP的必要条件:
    1) A、B均低于有效电压阈值。
    2) D+和D-低于有效阈值(SE0状态)时间至少2ms。

    数据线脉冲调制:B检测到上述必要条件;B上拉D+(接入上拉电阻);A检测到后,发送SRP指示信号。
    Vbus脉冲调制会话请求:B检测到上述必要条件;B对电容充电(提高总线电压),达到总线电压阈值;A检测到后,发送SRP指示信号。

有修改,转自:https://blog.csdn.net/myarrow/article/details/8484113

posted on 2018-05-25 16:16  黑夜里的孤独者  阅读(510)  评论(0编辑  收藏  举报

导航