SylixOS USB总线原理浅析

1. USB总线的工作原理

1.1 USB总线的硬件接线

如图 1.1和图 1.2所示,USB接口只有4条线:VCC,GND,D-,D+。PC机的USB插孔的D-和D+数据线均连接15K欧姆的下拉电阻。而USB设备端的D-或D+数据线连接1.5K欧姆的上拉电阻。当设备插入PC机的时候,会将PC机的D-或D+端的电压拉高,当PC机在D-或D+端检测到高电平时,就知道有设备插入了。如果是PC机D-端被拉高,接入的则是USB低速设备;如果是PC机D+端被拉高,接入的则是USB全速或高速设备。

                          

图 1.1 USB全速(高速)设备硬件接线图

                            

图 1.2 USB低速设备硬件接线图

1.2 USB设备获取设备信息过程

如图 1.3所示,当PC机检测到有USB设备插入后,会主动向设备发送命令包,请求设备的设备信息。设备必须向PC机回复设备的信息(以描述符形式)。

                                                   

图 1.3 USB设备获取设备信息过程

2. USB总线的一些概念

USB结构类型是主从结构。所有的USB传输,都是从USB主机方发起。例如:USB鼠标滑动一下立刻产生数据,但是它没有能力通知PC机来读取数据,只能被动地等待PC机读取它的数据。
USB传输速度有:低速1.5Mbps(USB1.0协议)、全速12Mbps(USB1.1协议)、高速480Mbps(USB2.0协议)和超高速5Gbps(USB3.0协议)。
USB的传输类型:
控制传输:可靠,时间有保证,比如:USB设备的识别过程;
批量传输:可靠,时间没有保证,比如:U盘;
中断传输:可靠,实时,比如:USB鼠标;
实时传输:不可靠,实时,比如:USB摄像头。
USB传输的对象:端点(endpoint)
每一个端点都有传输类型和传输方向。所谓的"读U盘"、"写U盘",可以细化为:把数据写到U盘的端点1,从U盘的端点2里读出数据。除了端点0外,每一个端点只支持一个方向的数据传输。注意:端点0用于控制传输,既能输出也能输入。术语里、程序里说的输入(IN)、输出(OUT)都是基于USB主机的立场说的。比如鼠标的数据是从鼠标传到PC机,对应的端点称为"输入端点"。
所有USB通信数据的来源和目的都是基于端点。每个USB设备最多包含16个端点,注意:3(IN)和3(OUT)是两个不同的端点。
 
3.免责声明

内部交流文档,若发现相关错误或者建议,请及时联系文档创建者进行修订和更新。

猜你喜欢

转载自my.oschina.net/u/3249576/blog/1594827