连通移动设备之桥 USB OTG规范解析

技术讲坛

随着技术的发展,目前的智能手机、平板电脑俨然成为了一种小型应用平台,它们使用全功能操作系统,拥有与桌面系统相似的应用程序,例如电子表格、文档、PDF、电子邮件等。而正如PC已经将 USB作为标准接口一样,这些移动设备也是如此!不过这些设备在特定的使用环境下,标准USB已经不能满足它们的需要,为此在2001年USB-IF(USB 行业协会)在USB规范的基础上推出移动版USB——USB OTG规范。

寻根究源,大话USB OTG

USB OTG全称为USB On The Go,意思就是通过USB接口的连接功能,可以实现各种移动设备之间不需要电脑就能进行数据交换的功能。

1.USB的历史发展

要想了解 USB OTG,首先必须了解USB标准。这就要追溯到1994年11月,以Intel为首的7家公司推出了USB协议的第一草案,掀起了新一轮的总线革命。到1996年2月,USB协议规范1.0版本发布,并同意任何人可免费使用。至此,USB才开始逐渐被广大计算机技术人员和用户认可,并逐渐成为电脑主板上的标准接口。接着,USB-IF很快在1998年及2000年推出了USB 1.1及USB2.0版本,这大大扩展了USB应用领域。随着USB应用领域的逐渐扩大,人们对USB的期望也越来越高,希望USB能应用在各种计算机领域中,尤其是在移动通讯领域中,能让移动设备和USB外设直接通信。

2. USB OTG因移动而诞生

标准USB连机需要一个主端(host),这个主端通常是PC。如果想把储存在某个外围设备的数据传输到另一个外围设备,唯一的方法是通过主端来中介传输。例如,想要将数码相机的照片打印出来,必须先将照片上传到PC,再从PC传送到打印机。为什么不在移动设备里加入主端功能呢?USB是一种主从架构的通信协议,原先是按照给一个主端搭配多个外围设备的应用方式设计的,因此USB连机的操控管理都是仰赖主端。如果要将整套 USB规格的主端控制模块全部建立在一个移动设备中,对于看重简便的移动设备而言,会造成很大的负担。

40-e15-1-2.jpg
40-e15-1-3.jpg

因此,“如何将USB应用到嵌入式领域?如何实现USB点对点的通讯”等问题开始进入了USB开发者的讨论议程。正是在这种新的需求下,USB-IF于2001年12月18日针对USB 2.0主从式架构的不足,再增订USB 2.0的增补规格“USB OTG 1.0”,并经过6次修改,于2003年6月推出了USB OTG 1.0a。

充当主机的功能,USB OTG特点解析

USB OTG规范的最初目标是一些消费类便携式设备,即没有计算机时终端用户想要与之共享数据的设备。

1.更省电的电源管理

USB OTG 1.0a作为USB2.0的补充协议,基本上符合USB2.0规范。与标准USB一样,OTG也是一种点对点的中央主控制器总线,而不是一种全新的点对点网络连接。OTG补充标准主要介绍了某个设备在主机模式下其必须如何工作的问题,它对USB 2.0的最重要的扩展是其更具节能性的电源管理和允许设备以主机和外设两种形式工作。

正如标准 USB 主机端口一样,必须为OTG主机提供电源,但就应用层面而言,USB OTG主要是以便携式电子产品如数码相机、智能手机、平板等为应用市场,此类产品强调轻薄小巧与低耗电,故USB OTG的电流有一定的限制——所需电源电流被限定在 8mA 以内。由于大多数支持OTG的产品都为电池供电,因此在延长电池使用时间和为外设提供充足电力之间始终存在一种平衡关系。在这里,OTG规范采用事务请求协议(Session Request Protocol,SRP),实现了根据“主机”设备需要开/关总线电源的方法,在总线未使用时通过切断VBUS来节省电源消耗。

延长电池使用时间对于厂商和最终用户来说都是最为重要的事情,考虑到这一点,OTG连接中的A设备可以关闭总线电源,并转入延长电池使用时间的睡眠模式,如果需要它还允许B设备也进入睡眠模式。在睡眠模式时,如从属设备需要使用总线,则可请求主设备开启VBUS,为VBUS重新供电。

2.禁止“Silent Failure”功能

USB规范和OTG规范之间的另一个重要差异就是OTG拥有禁止“Silent Failure”功能。这是因为OTG设备没有为“未识别”设备添加驱动的功能。目前OTG设备都为操作系统分配了一个固定的存储容量,但由于缺少开放式内存,这样无法将其他驱动程序添加到这一存储空间中。因此,OTG设备必须提供所谓的“目标外设清单(TPL)”,这就让设备厂商可以准确地指定他们支持的外围设备。TPL是一个厂商识别号(VID)和产品识别号(PID)列表,可以为OTG主机所识别,并且可自动包含驱动程序来支持它。

如果最终用户插入某个不支持设备(不在TPL中),一定会提示用户错误消息。首选方法是在OTG设备的屏幕上显示图形或者文本消息,如果OTG设备没有文本/图形显示器,则必须提供显示消息的其他方法。例如点亮特定LED、以特定形式让LED闪烁、改变LED的颜色等。无论选择什么样的消息系统,都必须将消息通知最终用户。

3.更迷你的外形

在标准USB中,主机上的接口被称作“A”连接器,而外围设备上的接口被称作“B” 连接器。由于目标终端设备主要为一些小型电子产品,标准“A”接口对这些产品来说过大,因此OTG在硬件方面采用了“更迷你”的连接器,其中包括袖珍的A接口(Mini-A)、袖珍的A接口(Mini-A)和袖珍的AB接口(Mini-AB),这些连接器比通常的USB标准连接器Standard-A和Standard-B小很多,更适于便携式设备。

40-e15-1-4.jpg
USB OTG的接口类型

4.双重角色功能

当然,OTG最大的特点是具有双重角色的功能。OTG设备目前有两种:两用OTG设备 (Dual-BoleDevice)和外设式OTG设备(Peripheral-Only Device)。外设式OTG设备是传统的USB外设,它只能使用Mini-B接口,不能使用Mini-AB接口。而两用OTG设备既可作为主机,也可作为外设。当它与PC相连时,就只能作为外设使用。两用OTG设备都有一个Mini-AB接口,可依照主从设定,通过Mini-A或Mini-B连接器实现点对点的连接。为了易于区分两用设备,通常Mini-A为白色,多为主控接口,插入Mini-A的设备为A-设备(A-Device);Mini-B为黑色,多为从属接口,插入Mini-B的设备为B-设备(B-Device);Mini-AB为灰色,多为双重角色接口。

这时问题就来了:如果插一个Mini-A插头,则设备会为一个主机;如果插一个Mini-B插头,则其为一个外围设备,但是基于Mini-AB的产品如何知道插入的是什么呢?OTG 规范给标准 USB 系统的四个触点又增加了一个触点,称作ID。USB OTG通过五脚接口和五线电缆传输数据。除了传统的VBUS、D+、D-、GND四个针脚外,第五个针脚为ID,ID脚决定了初始化的主从角色:在Mini-A插头中,ID短路接地,所连设备被初始化为主;在Mini-B插头中,ID悬空,所连设备被初始化为从。线缆方向决定着连接处两个 OTG 设备扮演的角色。

40-e15-1-5.jpg
线缆的方向决定初始主机/目标角色

在软件控制下,主从角色也可以利用主设备转换协议(HNP)进行互换。HNP定义了一种在主机和设备角色之间动态切换的方法。左边的设备在其 TPL 上有一台打印机,但其并“不”在打印机的TPL 上,则两个设备之间的通信便不可能进行。如果将线缆端点倒过来再重新连接,便可以实现通信。OTG 规范内置到了协议中,以自动地应对这种情况。HNP 允许静默和自动角色倒置,从而实现通信,这样做提高了最终用户体验。

各类厂家大力支持

这对于那些需要快速同步、大容量数据流传输的设备来说,USB OTG尤其有用。该规范已受到Cypress、飞利浦等芯片供应商、软件开发商和设备制造商的广泛支持。目前已知的支持USB OTG技术的设备有诺基亚智能手机,最具代表性的机型就有N8、N9系列。虽然它们没有配备USB插口,但是通过一根USB OTG数据线就能够连接闪存,直接读取、复制、删除其中的数据。另一方面基于微软Windows操作系统和谷歌 Android操作系统的平板电脑也支持USB OTG功能,代表产品为华硕Transformers和ACER A500/W500。

40-e15-1-1.jpg
40-e15-1-6.jpg

值得注意的是,USB 设计论坛在不久前推出了USB 3.0规范的补充标准——USB OTG 3.0。由此两个支持USB 3.0技术规范的设备之间可以相互通信而不需要通过PC主机,这样的话移动设备之间的无PC高速传输就可以更加的方便和容易实现。USB OTG 3.0规范还包含了USB OTG 2.0里提供的节能省电功能,同时保持了向下兼容,也就是说USB 3.0和USB 2.0设备之间同样可以直接互通。有理由相信,OTG不久将会成为新一代的“移动计算”解决方案。

写在最后

USB OTG作为一座移动终端之间通信的桥梁,必然会成为这类电子产品的标准技术。虽然在技术规格上没有那种飞跃性的突破,但因为它,电子设备脱离了PC可以任意互相连接,接口的通用性将是其价值的最大体现。一个不围绕PC为核心的IT时代,很有可能就这么诞生了。