USB2.0的高速、全速及低速设备的检测

1.9.1 Full-Speed / High-Speed Detection查看68013的技术参考手册英文版

The USB Specification requires that high-speed (480 Mbits/sec) devices must also be capable of enumerating at full-speed 
(12 Mbits/sec). In fact, all high-speed devices begin the enumeration process in full-speed mode; devices switch to high-
speed operation only after the host and device have agreed  to operate at high speed. The high-speed negotiation process 
occurs during USB reset, via the ‘Chirp’ protocol described in
Chapter 7 of the USB Specification.
When connected to a full-speed host, the EZ-USB FX2LP enumerates as a full-speed device. When connected to a high-
speed host, the EZ-USB FX2LP automatically switches to high-speed mode. The EZ-USB FX1 always enumerates as a full-
speed device. Neither the EZ-USB FX2LP or the EZ-USB FX1 support the low-speed mode (1.5 Mbits/sec). 

第七章讲总线复位时讲到了

7.5 USB Bus Reset
The host signals a USB bus reset by driving an SE0 state (both D+ and D- data lines low) for a minimum of 10 ms. The EZ-
USB senses this condition, requests the USB Interrupt (INT2), and supplies the interrupt vector for a USB Reset. After a USB 
bus reset, the following occurs:
■ Data toggle bits are cleared to ’0’.
■ The device address is reset to ‘0’.
■ If the Default USB Device is active, the USB configuration and alternate settings are reset to ‘0’.
■ The FX2LP renegotiates with the host for high-speed (480 Mbps) mode. 
Note that the RENUM bit is unchanged after a USB bus reset. Therefore, if a device has ReNumerated™ and loaded a new 
personality, it retains the new personality through a USB bus reset.


高速模式和全速模式的检测

USB2.0规范要求高速设备必须能在全速模式下枚举。每个高速设备都在全速模式下开始枚举过程。当与主机达成“Chirp”协议后设备再切换到高速工作模式下。详细内容见参考文献[1]第7章。FX2(68013)能自动检测高速主机,并切换到高速模式下。


首先,协议规定了,整个USB总线拓扑体系由三个元素组成:主机、集线器、设备。简单的说,主机只能作为主机存在,只能用来连接设备和集线器;设备只能作为设备存在,只能用来连接主机或集线器;而集线器则是既可用来连接主机,也可用来连接设备,它用来连接主机的端口,叫上行端口(upstream port),用来连接设备的端口,叫做下行端口(downstream port)。所以我认为主机的端口就是下行端口,而设备的端口是上行端口。


在USB 2.0的协议里,另有一些规定,即集线器必须支持高速模式,而设备则没有这个要求。对于一个上行的高速设备(可能是集线器或者设备)来说,它不允许支持低速模式,但允许支持全速模式。但对于下行的收发器,或者说下行端口(可能是主机或集线器),它必须支持高速、全速和低速模式。

1、 全速和低速设备的检测

全速和低速设备通过其端接的上拉电阻的位置来区分。

◆   全速设备 端接如图所示, D+线上接上拉电阻1.5K欧姆±5%

  低速设备 端接如图所示, D-线上接上拉电阻1.5K欧姆±5%

◆  下行端口的下拉端接电阻为15K欧姆±5%连接到地

当USB下行端口没有连接设备时,由于下拉电阻的存在,使D+和D-上的电压为0,而当端口接上设备时,设备供电后,电源会通过上拉电阻(1.5K欧姆)和端口的下拉电阻(15K欧姆)分压,在D+或D-上产生一个

正脉冲,而USB主机根据脉冲产生在哪根数据线上,来判断是全速还是低速。



2、 高速设备的检测

在连接的最开始阶段,高速设备是当成全速设备来识别的,因此, 高速设备的D+线上也会有一个1.5K欧姆的上拉电阻到电源 ,但是与全速设备不相同的是,高速设备对这个上拉电阻,会有一个开关进行通断控制。因为

高速信号传输是通过电流驱动的,而且D+和D-上的信号幅值在0V和400mv之间切换, 所以传输时不允许有一个接到3.3V的上拉电阻存在。以下就是简化的高速设备检测流程。

1,集线器或者主机必须确认连在它端口上的设备不是低速设备,如果是低速设备,则集线器或者主机就不会发起高速握手协议。

2,当集线器或者主机确认端口设备不是低速设备后,它将在握手协议的最开始阶段,T0时刻,发出一个SE0(信号或称命令、状态。不管是什么,理解了就好),用作复位

3,设备检测这个SE0,进行复位。(这里设备根据自己处在何种状态,会作出不同的动作)

4,假如设备是高速设备,则它会让上拉电阻仍然连接,但会使高速的端接无效,并驱动高速信号电流流向D-线上,这将在总线上产生一个K脉冲。该脉冲,在复位的TO时刻后,必须持续至少1.0 ms,但不能超过7.0ms

5,集线器在观察到设备发出的K脉冲至少2.5 us后,必须能检测出这个脉冲。假如集线器没有检测出这个脉冲,则它必须持续的发出SE0信号,直到复位结束。

6,在当K脉冲信号在总线上存在不超过100 us的时间后,集线器必须开始发送间隔的K脉冲和J脉冲序列信号,在J’s和K’s之间的总线上不允许有空闲状态发生。该序列信号在复位结束之前将持续一段时间,不少于100 us,但不长于500 us。(这保证了总线上始终保持活动状态,阻止设备进入高速挂起状态。)每一个独立的K脉冲和J脉冲的持续时间至少为40 us,但不能长于60 us。

7,在完成脉冲序列信号发生之后,集线器发出SE0信号,直到复位结束。在复位结束时,集线器必须转到高速使能状态,而无需在数据线上作出任何改变。

8,在设备完成它自己的脉冲信号(K脉冲)后,它将寻找高速集线器的脉冲信号。设备至少需要观测到K-J-K-J-K-J脉冲序列,来作为检测到一个有效的集线器脉冲信号。每一个独立的K脉冲和J脉冲至少需检测到2.5 us。

A),假如设备检测到脉冲序列K-J-K-J-K-J,则在检测到后的500 us(TWTHS)之内,设备要求断开D+的上拉电阻,并使能高速端接,进入高速缺省状态。即已进入高速模式

B),假如设备在完成它自己的脉冲信号之后的1.0 ms到2.5 ms之内,没有检测到脉冲序列K-J-K-J-K-J,则设备要回复到全速缺省状态,并等待至复位结束。(进入全速模式)
  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值