USB总线工作原理

USB总线工作原理
一、问:当一个USB设备插入PC机,PC机怎么知道有设备插入?        

答:如图1-1和图1-2所示,USB接口只有4条线: VCC(5V),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全速或高速设备,具体是全速设备还是高速设备,会由PC机和USB设备发包握手确定。

USB总线工作原理_第1张图片

图1-1  USB低速设备硬件接线图

USB总线工作原理_第2张图片

图1-2   USB全速(高速)设备硬件接线图


二、问:当USB设备插入后,PC机 会提醒我们“某某设备接入”,PC机怎么知道我们插入的设备的信息的呢?

       答:如图2-1所示,当PC机检测到有USB设备插入后,会主动向设备发送命令包,要求设备告诉PC机,设备信息。这时设备必须向PC机回复自己的信息(以描述符形式)。明确一点:USB设备不会主动给PC机发数据,只能被动的等待PC机来拿。

USB总线工作原理_第3张图片

图2-1  USB设备获取设备信息过程

三、问:PC机上接有非常多的USB设备,怎么分辨它们?
       答:每一个USB设备接入PC时,USB总线驱动程序都会给它分配一个编号,接在USB总线上的每一个USB设备都有自己的编号(地址)。PC机想访问某个USB设备时,发出的命令都含有对应的编号(地址)。

四、问:USB设备刚接入PC时,还没有编号;那么PC怎么把"分配的编号"告诉它?
       答: 新接入的USB设备的默认编号是0,在未分配新编号前,PC使用0编号和它通信。

五、其他一些概念
1、USB是主从结构所有的USB传输,都是从USB主机这方发起;USB设备没有"主动"通知USB主机的能力。例子:USB鼠标滑动一下立刻产生数据,但是它没有能力通知PC机来读数据,只能被动地等得PC机来读。
2、USB传输速度有:低速1.5Mbps(USB1.0协议)、全速12Mbps(USB1.1协议)、高速480Mbps(USB2.0协议)和超高速5Gbps(USB3.0协议)。
3、 USB的传输类型:
      a. 控制传输:可靠,时间有保证,比如:USB设备的识别过程
      b. 批量传输: 可靠, 时间没有保证, 比如:U盘
      c. 中断传输:可靠,实时,比如:USB鼠标
      d. 实时传输:不可靠,实时,比如:USB摄像头

4、所有USB通信数据的来源和目的都是基于端点,每个USB外设只有唯一一个地址,最多包含16个端点,注意:3.(IN) 和3.(OUT)是两个不同的端点。
5、USB传输的对象:端点(endpoint)
     每一个端点都有传输类型,传输方向。我们说"读U盘"、"写U盘",可以细化为:把数据写到U盘的端点1,从U盘的端点2里读出数据。除了端点0外,每一个端点只支持一个方向的数据传输。注意:端点0用于控制传输,既能输出也能输入。 术语里、程序里说的输入(IN)、输出(OUT) "都是" 基于USB主机的立场说的。比如鼠标的数据是从鼠标传到PC机, 对应的端点称为"输入端点"。

你可能感兴趣的:(USB基础知识)