USB Phy/ULPI (3-接收模块和传输模块)

接收模块:

使用ULPI接口接收USB信号并且向link发送状态信息。通过RX Cmd和link进行数据交互。

        ULPI link 需要linestate[1:0], rxactive, rxvalid, rxerror, and VbusValid 得到需要的信息。当在OTG模式下时,VBUS和ID 也需要发送到Link 。

   RX Cmd的格式如下:

        USB Phy/ULPI (3-接收模块和传输模块)_第1张图片

            linestate: 告诉link,USB数据线的状态,以及DM、DP引脚。

                  1.LS/FS 模式下的含义

                  USB Phy/ULPI (3-接收模块和传输模块)_第2张图片

         2.HS 模式下的含义

                     

传输模块:

 支持高速、全速和低速操作。

         按照USB2.0 spec文档中的 bit-stuffing和 NRZI 方式编码USB 包

         通过XcvrSelect[1:0], TermSelect, OpMode[1:0] 、DpPulldown, and DmPulldown 来确定接下来要执行什么样的操作

         在发送高速package的时候发送32位的同步帧,当发送低速和全速包时候发送8位的同步帧

         USB 传输时序图

       USB Phy/ULPI (3-接收模块和传输模块)_第3张图片

               1.传输数据之前先发送命令

                            TX CMD where DATA[7:6] = 01b, DATA[5:4] = 00b, and Data[3:0] = PID

               2.通过NXT 去控制传向PHY的数据传输速率

               3.传输接收的时候会检测到STP信号被拉高

               4.完成传输以后DP/DM引脚为IDLE状态。同时向link发送一个RX CMD


         

         


你可能感兴趣的:(USB)