USB 接口

USB包:

    USB数据传输有4种类型:  

              1)控制传输对总线和总线上的设备进行设置;

              2)快传输通过USB设备对数据进行异步发送;

              3)同步传输用来传输实时性高的数据,单向的。

              4)中断传输用来在一定时间片发送数据。

一个USB包包括1个SYNC字节,1个PID(包ID),内容(数据、地址等)和1个CRC字段。

PID:用于标识包的类型,共8位。PID4~PID7 由 PID0~PID3取反得到。共有四种包:
 
PID0PID1 PID2PID3包类型
 
1000OUT令牌包
1001IN令牌包
1011SOF令牌包
1011SETUP令牌包
 
1100DATA0数据包
1101DATA1数据包
1110DATA2数据包
1111MDATA数据包
 
0100ACK握手包
0101NAK握手包
0111STALL 握手包
0110NYET握手包
 
0011PRE特殊包
0011ERR特殊包
0001SPLIT特殊包
0010PING特殊包
 
0000保留未用

 

USB包的数据类型:令牌、数据、握手、先导包。

① 令牌包。用于启动一次USB传输。IN 令牌包 用于通知设备返回一个数据包;
OUT令牌包用于通知设备将要输出一个数据包;
SETUP令牌包用在控制传输中。以上三种令牌包的结构如下:
 
| 同步域 | 8位包标识 | 7位地址 | 4位端点号 | 5位CRC5校验 | EOP |
 
SOF包在每帧开始时以广播方式发送,发送帧号,不跟随数据:
 
| 同步域 | 8位包标识符 | 11位帧号 | 5位CRC5校验 | EOP |
 
②数据包。用于传输数据。当设备或主机端成功发送或接收数据时,会切换数据包的类型。有DATA0, DATA1, DATA2, MDATA类型。结构为:
 
| 同步域 | 8位包标识符 | 字节0 | 字节1 | …… | 字节N | 16位CRC16校验 | EOP |
 
③握手包。握手包数据结构简单, 用于表示对方是否确认传输。
| 同步域 | 包标识 | EOP |
 
④先导包。主要包括PRE, ERR, SPLIT, PING.
PRE : 只用在全速中,通知集线器打开低速端口。
PING : 等待设备返回ACK或NAK,判断设备是否能够进行传输;
SPLIT :通知集线器将高速数据包转化为全速或低速数据包下发;
ERR : 分裂事物中的错误表示。
 
物理接口:
    USB线:pin 1: VBUS      +5V               红色
                pin 2: D+          差分数据线       绿色
                pin 3: D-         差分数据线       白色
                pin 4:GND       电源和信号地    黑色
 
上行连接(Upstream):     从一个设备连回到主机—— A系列插头——DP线有上拉电阻1.5K欧姆;   
下行连接(Downstream): 从主机连到设备——B系列插头——DP和DM线上都串联电阻(注意 总电阻应该为45欧姆),和下拉电阻。
posted @ 2012-08-20 16:33  举子 刘  阅读(756)  评论(0编辑  收藏  举报