|
利用大多数外设中已有的USB接口,可以很容易地将USB OTG控制器集成到基于不同处理器和操作系统的ASIC中。本文对USB双用(dual-role)控制器的设计进行了讨论,包括USB主控制器、USB设备控制器,以及集成了OTG HNP、模拟部分(充电泵,收发器电压电平检测)和软件驱动器的OTG模块。同时还讨论了SRP和HNP的实现。 SRP/HNP实现 OTG允许SRP/HNP的各种实现,可能包括基于会话、基于插入或者基于混合的SRP/HNP实现。SRP/HNP的软件实现对不同的应用有最大灵活性。 根据经验,在硬件中实现HNP不能改善OTG协议性能。只要注意确定硬件中的关键时间,用软件实现HNP在灵活性方面具有优势。软件HPN可以总被改变,直到与所有现有的OTG设备以及即将进入OTG市场的控制器兼容。OTG模块为软件实现SRP/HNP提供状态和控制寄存器。这些寄存器包括:OTG状态寄存器、OTG控制寄存器、OTG中断寄存器和OTG定时器。 在软件实现中,中断延迟会使HNP状态转换产生问题,该状态转换响应时间需要小于5ms。由于这个原因,建议使用硬件实现这些状态转换。 自动连接 在OTG HNP的状态图中,当A设备处于A_SUSPEND状态时,必须在检测到B设备是断开之后的3ms内启动D+线上的上拉电阻。如果在硬件中实现自动连接,且当A设备进入A_SUSPEND状态时启动自动连接,于是A设备将通过检测断开状态而自动启动D+线上的上拉电阻。 自动复位 在OTG HNP状态图中,当B设备处于B_WAIT_ACON状态时,必须在检测到A设备是连接的之后1ms内发送总线复位信号。如果在硬件中实现自动复位,并当B设备进入B_WAIT_ACON状态时启动自动复位,那么B设备将会通过检测连接状态而自动发送总线复位。 总线恢复 在USB2.0规范中,下行或上行设备可能会将任何空闲信号当作来自上行或下行设备的恢复信号。在OTG规范中,如果双用B设备处于B_WAIT_ACON状态,或者A设备处于A_SUSPEND状态(且B设备使能为HNP),那么只有总线从J到 省电和唤醒 对于电池供电的OTG设备,如果该设备不在会话期时,则OTG控制器被置于省电模式。这样做会极大地减少电源功耗(通常,拉电流小于50uA)。在这种模式中,DC和HC均处于挂起状态。锁相环(PLL)、晶振以及充电泵被关闭。为在必须响应一个OTG事件的时候支持OTG设备,当芯片处于省电模式时,它仍保持低速或缓慢的运行。在省电模式下,时钟以非常低的速度运行,功率消耗也很小,以便于设计满足ACPI、OnNow以及USB电源管理要求的外设。在检测到一个OTG事件的同时该芯片被唤醒(也就是说,启动PLL和晶振)。时钟建立后,如果启动相应的中断,则会有中断产生。OTG控制器也支持软件唤醒。如果没有检测到OTG事件,但正运行在OTG设备上应用想使用USB总线,软件也可以唤醒OTG控制器并开始会话。 支持集线器 双用设备可支持集线器,但标准的USB集线器不支持用于SRP和HNP的信令模式。因此,当A设备直接连接到标准集线器时,启动下行设备以准备或初始化HNP的命令对A设备来说是禁止的。因此,当外设连接到集线器的下行设备时,该外设不能再充当主机。 OTG收发器 OTG收发器是物理层设备,是ORG控制器内核与USB总线的接口。除了标准USB收发器的功能,OTG收发器为SRP/HNP提供模拟部件,包括5V充电泵、电压电平比较器、上拉/下拉电阻以及ID检测器。市面上流行两类OTG收发器:一种是支持USB低速和全速的全速OTG收发器,另外一种收发器增加了对高速USB的支持。两种类型的收发器在市场上并存,是因为高速USB的功耗更大且需要更大的芯片封装。两种收发器都具有由主要USB供应商组成的工业联盟所制定的标准接口。对于不需要480Mbps高速数据率的应用中,全速OTG收发器是更为经济的选择。 事实上,工业标准的USB OTG收发器ISP1301业界的第一个USB OTG收发器,它已被设计到手机及基带通信的主要制造商的参考设计中。它支持mini-USB模拟车载工具包标准,而且在D+/D-有透明的I2C/UART模式(图2)。 作者:Alan Chang,Shaun Reemeyer,Zhong Wei Wang,飞利浦半导体 |