打算使用 FPGA+UTMI PHY实现一个数据传输。开贴记录基础知识。使用USB2.0,只考虑全速和高速两种状态。
USB识别:全速和高速设备在D+线上接1.5K上拉电阻。
全速和高速线状态:
| DM/D- | DP/D+ | 状态 |
| 0 | 0 | SE0 状态 |
| 0 | 1 | J 状态 |
| 1 | 0 | K 状态 |
| 1 | 1 | SE1 状态 |
空闲状态:全速 J状态表示空闲,高速 SE0状态表示空闲
全速设备:SE0表示EOP,SE0维持2.5us表示总线复位
高速设备:SE0维持3ms-3.125ms进入全速状态,全速后100us-875us内,
- 如果继续维持SE0状态,则进入复位,开始高速握手
- 如果变成J状态则挂起。
高速握手条件 :
- 设备处于挂起状态,若出现SE0则立即开始高速握手;
- 设备处于全速,SE0持续2.5us,则开始高速握手;
- 设别处于高速,SE0持续3.0ms,切继续持续,则开始高速握手。
高速握手过程:
当设备为非低速设备,且总线处于SE0状态才可以进行高速握手。
1.在复位阶段,scvrselect和termselect为全速状态,DP被上拉,HS terminations被屏蔽,opmode被驱动disable bit stuffing and nrzi encoding状态。
2.xcvrselect变为高速时,设备发送chirp K暨全零信号到主机,同时txvalid有效。
3.高速集线器检测到chirp K后发送一串交替的chirp K J对,设备检测到三个chirp K J对后,
驱动termselect为高速。
4.高速集线器发现termselect变化后持续若干chirp K J对后进入短暂SE0状态,之后便开始
发送sof 包。
5.高速握手成功。
若设备在发送chirp K后没有相应,则设备只能工作在全速模式
4454

被折叠的 条评论
为什么被折叠?



