SB OTG规范的SRP和HNP协议

USB OTG规范的SRP和HNP协议

 

OTG设备首先应该是符合USB2.0规范的设备,此外它还具有以下特征[1]

1. 有限的主机性能

2. 像外围设备一样能进行全速操作(可选高速)

3. 像主机一样支持全速(可选低速和高速)

4. 可连接的外围设备清单(Targeted Periphral List)

5. 会话请求协议SRP

6. 主机交换协议HNP

7. 只有一个Mini-AB插座

8. VBUS的输出电流最小是8mA

9. 向用户传递消息的方法

 

SRP

1. 介绍

    为了节约电源,在不使用总线时OTG规范允许A设备关断Vbus。如果B设备在Vbus关断时需要使用总线,那么它可以用某些方法请求A设备在Vbus上提供电源。因此OTG规范定义了会话请求协议。

    会话被定义为Vbus高于给定设备的会话有效阈值的一段时间。

当Vbus下降至低于A设备的会话有效阈值后,会话结束。双角色设备要求能初始化并响应SRP。所有A设备,包括PC,都可以响应SRP。所有B设备,包括标准的USB外围设备,都可以初始化SRP。

OTG规范定义了B设备向A设备请求开始会话的方式。被称为数据线脉冲调制(data—line pulsing)。

2. 初始条件

    B设备在确定A设备己检测到前一次会话结束后才能尝试启动新的会话。A设备通过检测Vbus下降到低于其会话有效阈值(VOTG_SESS_VLD)来确定会话结束。等待时间: TB_SSEND_SRP。

启动新的会话的第二个初始条件是B设备必须检测到D+和D一数据线在至少TB_SE0_SRP的时间内为低电平(SEO)。这能确保A设备检测到设备的断开连接情况。

3. 数据线脉冲调制

要用数据线脉冲调制SRP请求新的会话,B设备必须等待,直到符合上面所述的初始条件,并接入了其数据线上拉电阻(D+或D一线)保持时间TB_DATA_PLS。

被设计为检测SRP数据线脉冲调制的A设备应在D+或D一线变高电平时产生一个SRP指示。

4.  B-device Session Valid

当B设备检测到Vbus高于会话有效阈值(VOTG_SESS_VLD)之后,B设备认为当前正进行会话。B设备需要在Vbus超过VOTG_SESS_VLD后,在最多TB_SVLD_BCON时间内使得D+或D-有效。

5. A设备的反应时间

在初始化SRP之后,B设备需要等待A设备的响应,至少等待TB_SRP_FAIL。

6.  SRP的初始化

  

 

 SB OTG规范的SRP和HNP协议

 

 SB OTG规范的SRP和HNP协议

Host Negotiation Protocol

 

(A)  A设备使用完总线并停止所有总线活动(即挂起总线)。

(B)  B设备检测到总线空闲超过TB_AIDL_BDIS,断开D+数据上的上拉启动HNP。这使总线放电为SEO状态。

(C)  A设备在总线上检测到SE0,而且认为这是B设备要成为主机的请求。A设备在总线检测到SE0的TA_BDIS_ACON时间内连接其D+线上拉电阻作为响应。

(D)  在等待了足够长时间确保D+线由于B设备上拉的剩余效应不能为高电平后,B设备发现D+线是高电平D一线是低电平(即J状态)。这表示A识别出来自B设备的HNP请求。此时,B设备成为主机,而且发送总线复位信号开始使用总线。B设备必须在A设备连接了其上拉电阻的TB_ACON_DBNC时间内发送总线复位信号(SE0)。

(E)   当B设备使用完总线后,它停止所有总线活动(B设备可以选择在总线上检测到全速空闲情况时连接其D+线上拉电阻)。

(F)   设备在超过TA_BIDL_ADIS的时间内没有检测到总线活动就会断开其D+线上拉电阻。另外,如果A设备不再需要与B设备通信,A设备可能会关断Vbus并结束会话。

(G)  设备连接其上拉电阻。

(H)  待了足够长的时间(TLDIS_DSCHG)确保D+线由于A设备上拉的剩余效应不为高电平后,A设备发现D+线是高电平(D一线是低电平),表示B设备正在发送连接信号并准备作为外围设备响应。此时,A设备变为主机,并发送总线复位信号开始使用总线。

 

SB OTG规范的SRP和HNP协议