OTG 协议
7.1A device
7.1.1 a_idle
这是 A 设备的启动状态。
A 设备转换到 a_wait_vrise 状态:
如果A-device应用程序不想丢弃总线 (a_bus_drop = FALSE),并且以下任何一项为true:
o A-device应用程序正在请求总线 (a_bus_req = TRUE),或
o在总线上检测到SRP (a_srp_det = TRUE) 或
o已检测到ADP更改 (adp_change = TRUE) 或
o设备仅刚刚为其USB系统加电 (power_up = TRUE)。
注意: 对于支持ADP的A设备,ADP探测在加电后立即进行,以校准测量 (请参阅第5.4.4节)。在这种情况下,只有在获得可靠的ADP测量值后才能触发power_up转换。
OTG 设备的配置使得 id 从 TRUE 到 FALSE 的变化会导致 a_bus_req 被断言,除非设备支持 ADP(参见第 4.2.4 节),并且 id 从 FALSE 到 TRUE 的变化会导致转换到 b_idle 状态。
带有 Micro-AB 插座的 EH 被配置为,id 从 TRUE 到 FALSE 的变化会导致 a_bus_req 被断言,除非设备支持 ADP(参见第 4.2.4 节),并且 id 从 FALSE 到 TRUE 的变化会导致转换到b_idle_eh 状态。
这不适用于带有标准 A 插座的 EH,因为标准 A 插头中没有 ID 引脚。
7.1.2 a_wait_vrise
在此状态下,A 设备等待 VBUS 上的电压进入调节状态(a_vbus_vld = TRUE)。 进入此状态后,A 设备启动计时器 (a_wait_vrise_tmr)。
A 设备转换到 a_wait_bcon 状态:
如果 VBUS 上的电压处于调节状态(a_vbus_vld = TRUE)
A 设备转换到 a_wait_vfall 状态:
如果 Micro-A 插头断开(id = TRUE,适用于 仅限 OTG A 设备),或
如果 a_wait_vrise_tmr 超时(a_wait_vrise_tmout = TRUE)或
如果 A 设备应用程序想要丢弃总线(a_bus_drop = TRUE)。
7.1.3 a_wait_bcon
在此状态下,A 设备等待 B 设备发出连接信号。进入此状态后,Adevice 会启动一个计时器 (a_wait_bcon_tmr)。
A 设备转换到 a_wait_vfall 状态:
如果 Micro-A 插头已分离(id = TRUE,仅适用于 OTG A 设备),或者
如果 A 设备应用程序想要丢弃总线(a_bus_drop = TRUE ),或者
如果 a_wait_bcon_tmr 超时 (a_wait_bcon_tmout = TRUE) 20 18FP18F 。
P 如果 A 设备检测到 B 设备发出连接信号(b_conn = TRUE),则 A 设备应转换到 a_host 状态并在 TA_BCON_ARST 内生成总线复位,以使 B 设备为数据包流量做好准备。
7.1.4 a_host
在此状态下,A 设备执行以下操作:
A 设备枚举 B 设备
如果 A 设备支持 B 设备(参见第 3.4.1 节),则 A 设备设置与 B 设备通信
否则,如果 A 设备不支持 B 设备,则 A 设备通知用户不支持 B 设备并设置 a_bus_req = FALSE 如果 B 设备断开连接 (b_conn = FALSE),则A 设备从 a_host 状态转换到 a_wait_bcon 状态 。
在以下情况下,A-device从a_host状态转换到a_wait_vfall状态。
如果micro-a插头已断开 (id = TRUE,仅适用于OTG A-device),或者
如果A-device希望停止对VBUS供电 (a_bus_drop = TRUE)。
在以下情况下,A 设备从 a_host 状态转换到 a_suspend 状态:
如果 A 设备上的应用程序不再希望使用总线 (a_bus_req = FALSE)
如果连接的设备由于过流而不受支持条件(参见第 4.2.2 节),然后 Adevice 转换到 a_vbus_err 状态。
7.2