找回密码
 注册
搜索
查看: 830|回复: 1

[资料] USB OTG的概述

[复制链接]
发表于 2007-2-2 14:27:18 | 显示全部楼层 |阅读模式
1994年,Intel,Compaq等七家软硬件全球知名企业为了突破当时PC使用串口和并口传输速度的限制,成立了通用串行总线开发者论坛(USB Implementers Forum, USB IF),并在1994年11月提出了USB 0.7版,到了1998年开始出现了支持USB 1.1的设备,他的高速性(USB1.1支持1.5 Mb/s和12 Mb/s两种速度[1])和易用性迅速使之成为P C外设的宠儿。为了对抗1394速度的优势(1394可以达到400 Mb/s),1999年提出了US B 2.0规范的思想,2000年4月USB IF推出USB 2.0。USB 2.0向下兼容1.1,提供3种速度 ,最高可以达到480 Mb/s[2]。
USB 1.1和2.0都是必须依赖于PC的,为了在一定程度摆脱对PC的完全依赖,有一定程度的主机功能,2001年12月推出了OTG 1.0,经过6次修改,于2003年6月推出了USB OTG 1.0 a,正式成为一个达到市场实用的规范[3]。
本文中分析讨论了USB 2.0补充规范OTG的工作原理,并且针对目前数码相机伴侣存在的问题,作者提出了自己的解决方案。
1 USB OTG的工作原理

OTG补充规范对USB 2.0的最重要的扩展是其更具节能性的电源管理和允许设备以主机和外设两种形式工作。OTG有两种设备类型:两用OTG设备(Dualrole device)和外设式OTG设备(Peripheralonly OTG device) 。两用OTG设备完全符合USB 2.0规范,同时,他还要提供有限的主机能力和一个MiniAB插座、支持主机流通协议(Host Negotiatio n Protocol, HNP),并和外设式OTG设备一样支持事务请求协议(Session Request Protocol, SRP)。当作为主机工作时,两用OTG设备可在总线上提供8 mA的电流,而以往标准主机则需要 提供100~500 mA的电流。

2个两用OTG设备连接在一起时可交替以主机和从机的方式工作,这个特点兼容了现有USB 规范主机/外设的结构模型。OTG主机负责初始化数据通信的任务,比如:总线复位、获取USB 各种描述符和配置设备。这些配置完成后,2个OTG设备便可以分别以主机和从机方式传输信息,2个设备主从角色交换的过程由主机传输协议(HNP)定义。
下面从5个方面说明OTG的工作原理。

1.1主机(Adevice)和从机(Bdevice)的初始功能

设备的初始功能是通过定义连接器来实现的。OTG定义了一个叫做MiniAB的袖珍插孔,他能直接接入MiniA或者MiniB插口,MiniAB有一个ID引脚 上拉至电源端,MiniA插头有一个与地连接好的ID(R<10 Ω),Mini B插头有一个与地连接的开路ID引脚(R>100 kΩ)。当2个OTG设备连接到一起的时候 ,MiniA插头边的ID引脚会注入一个"0"状态,MiniB插头边的ID引脚为 "1",ID为0的OTG设备默认为主机(Adevice),ID为1的OTG设备默认为从机(B device)。图1对上述内容进行了图解[4]。


1.2 对话请求协议SRP(Session Request Protocol)

这个协议允许Adevice(可以是电池供电)在总线未使用时通过切断Vbus来节省电源消耗,也为Bdevice启动总线活动提供了一种方法。任何一个Adevice, 包括PC或便携式电脑,都可以响应SRP;任何一个Bdevice,包括一个标准USB外设, 都可以启动SRP;要求一个双重功能设备既能启动SRP,又能响应SRP。

1.3 主机流通协议HNP(Host Negotiation Protocol)

HNP是一种用来实现Adevice和Bdevice主机/从机转换的协议(实际上是电缆的反转)。主/从机功能交换的结果表现在下列过程中:

(1)利用上拉电阻来发送信号给从机。
(2)Adevice可在Bdevice上设置"HNP Enable"特性。
(3)Bdevice断开上拉。
(4)ADevice与上拉电阻相连,表明Adevice从属于从机。
(5)Adevice给Vbus供电。
(6)Bdevice检测Adevice的上拉。
(7)复位/列举/使用Adevice。

1.4 驱动程序[5]

与PC主机不同,便携式设备没有便捷的方式和足够的空间装载新的驱动程序。因此,OTG 规范要求每个两用OTG设备有一个支持的外设式OTG目标设备的列表,列表中包括设备的类型和制造商等信息。

与PC机不同,OTG两用设备的驱动程序栈由USB主机栈和USB设备栈构成以满足两种工作方式的需要。OTG驱动程序通过连接器的不同或者是否有NHP交换设备的工作方式来决定使用USB主机栈还是USB设备栈。

当OTG两用设备以主机方式工作时,USB主机栈工作。其中的主机控制器驱动程序负责USB 主机栈与硬件端点的数据交换,USB驱动程序枚举并保存设备的信息,目标外设主机类驱动程序支持目标设备列表里的设备。主机类驱动程序由芯片制造商提供,同时,OTG提供通用的主机类驱动程序(可以修改以用于非通用设备)。

当OTG两用设备以从机方式工作时,USB设备栈工作。其中的设备控制器驱动程序负责USB 设备栈与硬件端点的数据交换,USB协议层负责处理USB协议规范,设备类驱动程序的功能取决于该两用设备的功能(如数码照相机、存储设备、打印机等)。

OTG驱动程序负责处理两用OTG设备的工作方式转换,同时,他还可以返回其结果(如设备是否支持HNP)并处理总线错误。应用层程序通过OTG驱动程序开始或者结束一个传输事务, 通过USB主机栈或设备栈与硬件层交换数据。

1.5 数据流模型

OTG主机和设备被划分为功能层、USB设备层和USB接口层3个不同层次,如图2所示[5 ]。


USB接口层为OTG主机和OTG设备提供物理连接,USB系统软件使用主机控制器来管理主机与 USB设备的数据传输。USB系统软件相对于主机控制器而言,处理的是以客户角度观察的数据传输及客户与设备的交互。USB设备层为USB主机系统软件提供一个可用的逻辑设备。主机通过与之功能匹配的客户软件实现其各种功能。

OTG设备与以往的USB设备一样有两种通道:数据流通道和消息通道。数据流通道没有定义好的结果,而消息通道则有固定的结构。但是,每个通道都有一定的带宽、传输类型、传输方向和缓冲区大小。自供电设备配置一个默认的控制通道,由他提供该设备的配置和状态等信息。
2 目前数码相机伴侣存在的问题及其解决方案

上面对USB OTG的工作原理的主要部分进行了说明,下面将探讨USB OTG的应用。

当前随着中高档数码设备如数码相机的价格的下降,已经开始普及到千家万户,统计表明 ,2003年上半年数码相机的销量达到38.5万台,年底有望突破100万台,其进口量比去年同期增加了53倍,而现在一般使用的数码相机象素在200万~400万,尤其以320万象素左右的为市场热点,如果要拍摄高质量的照片,每张会超过1M,即使是256M的存储空间也会很快消耗光了,而现在市场上CF卡等存储介质的价格一直高居不下,所以就应运而生了一种叫做数码相机伴侣(典型的产品如Phototainer,韩国Innoplus公司产品)的电子消费类产品。 这类产品能够提供以下功能:

(1)通过读卡机,能把各种存储介质(比如SD卡,CF卡等)上的内容拷贝到移动硬盘中去 ,为外出旅行的人们提供了极大的方便。

(2)通过USB口,可以在计算机上和数码相机伴侣之间进行数据拷贝、删除等功能。

(3)提供大容量的存储空间(从10 GB到40 GB都有),外出旅行的人再也不必为存储卡的容量操心了,大可放心的拍摄。

作者认为这类产品美中不足的是:

(1)他读取数码相机存储介质的方法是通过读卡机来实现的,也就是必须把数码相机的存储介质取下来,插到数码相机伴侣上的插口里,不但很不方便,而且注定了数码相机伴侣的尺寸重量不会很小,由于存在不同存储介质还必须有不同类型的插口(一般都是要两种插口 )。

(2)为了兼容多种存储介质,还必须要配置转接设备。

(3)耗电量也很大的,一般来说,一次充电只能用1-2 h。

(4)当前许多此类产品还采用USB 1.1接口,传输速度显然不可能达到用户的期望。

针对上面存在的问题,作者考虑把USB OTG技术应用到数码相机伴侣上来,从以下几个方面进行改进:

(1)采用PHILIPS ISP1362芯片[4]来实现USB OTG功能。优点如下:

①利用USB OTG的双重角色功能,使之可以在连接到其他便携式数码产品或者存储介质时可以作为主机,来完成数据从其他外设拷贝到移动硬盘中;当他连接到PC中时,就可以作为普通的USB设备,由PC控制,进行数据的操作。

②采用USB OTG,整体结构将发生翻天覆地的变化,将读取数据等工作将由芯片完成 ,也就省去了很多关系存储卡的工作,所以可以将尺寸和重量做的很小,而且在使用的时候也是很方便的,只要使用USB电缆连接移动硬盘和数码相机伴侣等设备就可以了。

③USB OTG的优秀电源管理能力也能使电池的使用时间更加持久。

(2)可以考虑采用大容量微硬盘,一方面满足大容量的存储需求,另一方面可以把整个数码相机伴侣体积大幅度的减小。

(3)USB 2.0在速度上的优势已经得到了市场的积极支持,所以采用的USB
2.0接口保证了数据传输的高效。

经过改进后的数码相机伴侣与目前市面上的数码相机伴侣相比,具有如下特点:

(1)PHILIPS ISP1362芯片来实现USB OTG功能,无需PC就可把图像等数据拷贝到硬盘上。

(2)内置1英寸大容量微硬盘,满足现在数据大量存储的要求。

(3)无需取下数码相机等数码设备的存储卡,使用方便。

(4)采用USB 2.0规范,最高速度可以达到480 Mb/s。

(5)可以充当便携式移动硬盘,完成数据备份等工作。

(6)简单控制,只有电源和复制按钮,即可轻松实现对存储数据的操作。

(7)采用微硬盘,典型的产品如Magicstore,体积可以更小,更时尚诱人。
(8)使用LCD显示各种状态。

(9)由于使用了OTG的特别供电模式,电源耐久性会有很好表现。
具有USB OTG功能的数码相机伴侣由于其具有海量存储、存取数据、存取速度快和出色的电源管理等特点,不仅可以充当便携式移动硬盘,更为外出旅行的人提供了极大的方便。
3 结语

分析讨论了USB 2.0补充规范OTG的工作原理,作者针对目前数码相机伴侣存在的问题提出了应用USB OTG技术进行改进的方案。USB OTG已受到Cypress等芯片供应商、软件开发商和设备制造商的广泛支持,该方案从理论上和实际应用上都是实际可行的,非常具有应用价值。USB OTG规范是USB 2.0规范的补充而不是替代品。PC主机和标准外设并没有被取代, 因为新的OTG仅适用于需要具有主机功能和更小体积的便携式设备。OTG在这些外设间引入了点对点的(point to point)通信方式,这使得便携式仪器的发展有了更加广阔的空间,OTG不久将会成为新一代的"移动计算"解决方案。
USB On-The-Go 技术概述
  USB-OTG实际上是USB Implementers Forum组织对于传统USB接口的一个追加协议,直接建立在USB 2.0基础之上。它修改了USB接口的针脚定义和接口外形,对USB2.0标准最重要的扩展是它更具节能性的电源管理和允许设备以主机和外设(外围设备)两种形式工作(图1)。
        USB OTG定义了两种设备类型:双用设备(英文全称为Dual-Role Device,以下简称为DRD)和单外设设备(英文全称为Peripheral-Only Device,以下简称POD)。DRD具备Host和外设的两种功能,但也正是因为具有双重角色任务,DRD必须有切换角色等新功能;POD基本与外设功能近似,因此在这里我们主要讨论DRD设备。
        要成为一个USB Host,必须具有存储外设驱动程序、提供足够的USB端口电流和相对应Host插座的能力。而它所要实现的基本功能包括三个部分:管理和控制总线,包括提供USB端口电源管理;检测外设的接入和断开;初始化总线上所有数据包传输等等。
        1.USB OTG的接插件
        USB2.0协议规范中定义了3种Host与外设的连接方式:Host上的标准A插头和插座、外设上的标准B插头和插座以及外设上可选择的Mini B插头和插座。USB OTG主要是为了应用在便携式移动USB设备上,要求减小插头和插座的大小。为此,OTG1.0作为USB2.0 的补充,新定义了两种接插件:Mini A插头和插座、Mini AB插头和插座。(提示:在USB-TOG规范中,A设备代表主设备,充当Host的角色,一般指以主机方式工作的DRD设备,;B设备代表从设备,充当外设的角色。)
        Mini AB插座正是为OTG DRD的特点精心设计的。Mini A插座是设计在Host上的,用于连接外设的Mini A插头;同理,Mini B插座设计在外设上,及来连接Host上的Mini B插头。因此,不同的插座类型,区分了不同的USB设备。当OTG DRD需要进行设备角色变换时,就需要相应的插座类型,所以OTD DRD正是凭借两种特性来充当双用—— Mini AB巧妙地应用机械原理,一个插座可以连接Mini A和Mini B插头,而系统又可以通过ID信号线来识别。当然,为了方便用户识别,厂商们对接插件的封装颜色进行了不同的定义:Mini A插头及插座采用白色、Mini B插头及插座采用黑色、Mini AB插座则采用灰色。
        两个DRD设备连接在一起时可交替以主机和从机的方式工作,这个特点兼容了现有USB规范主机/外设的结构模型。OTG主机同样负责初始化数据通信的任务。比如:总线复位、获取USB各种描述符和配置设备。这些配置完成后,两个OTG设备便可以分别以主机和从机方式传输信息,两个设备主从角色交换的过程由主机传输协议(HNP)定义。以下我们以DRD设备来讨论SRP和HNP协议。
        2.事务请求协议——SRP
        在以往的USB系统运行过程中,主机提供5V的电源和不低于100mA的总线电流。当OTG主机连接到有线电源时这种方法是适用的,但像手机这样的自供电移动设备则不能承受如此大的电能浪费。一般OTG系统中的A设备采用的是电池供电,这就决定了OTG系统电源管理是非常重要的。因此,为了节省OTG系统的电源开支,OTG规定A设备在没有总线活动时可以关掉Vbus上的电源。这样,当一个B设备连接到A设备上之后,就要初始化SRP,并发给A设备,请求A设备在Vbus提供电流支持,进而进行通信。OTG中,DRD可以作为A设备,也可以作为外设设备,因此,DRD必须支持初始化SRP和响应SRP;而POD只能作B设备,所以只能初始化SRP(图2)。
        SRP中,B设备有两种方式可以向A设备发送请求,要求建立SRP:一种是数据线脉冲,一种是Vbus脉冲。任何一个A设备只要求能响应一种SRP方式,而B设备必须能初始化两种SRP方式——-当B设备先初始化一种SRP,而A设备无法响应的话,则B设备就要用另一种SRP方式。
        A设备检测到数据线脉冲调制或者Vbus脉冲调制后,首先复位总线,然后发送Set_feature命令而先不进行设备的枚举,此时B设备尚处在默认的从机状态。如果Set_feature命令成功执行,说明B设备为DRD设备,A设备(使用HNP协议)挂起Vbus准备让B设备交换为主机方式接管总线。如果Set_feature命令执行失败,说明B设备为外设式OTG设备,于是A设备使能Vbus准备开始一个传输事务。当A设备认为总线上没有传输需要时,挂起Vbus以结束该事件。
        3.主机流通协议——HNP
        在上面我们已经提及OTG DRD采用Mini AB型插座,因此DRD既可以作为Host,也可以作为外设。而在某个OTG连接中,这个DRD到底是作Host(即A设备),还是作为外设(B设备),则要根据接入的另一个OTG设备来定的。如果接入的是OTG POD,那么这个DRD肯定是充当A设备角色。但如果接入的是另一个DRD,那么这两个DRD之间就可以HNP协议来随时切换Host角色(图3)。
        一次完整的HNP流程是这样的:B设备希望控制总线,成为Host;在A设备发送了SetFeature命令后,B设备就可以请求控制总线;A设备挂起总线,通知B设备可以控制总线;B设备发送信号,断开与A设备的连接;A设备改变自身设置;这样A设备就可以充当外设的角色,放弃对总线的控制权,这时B设备就成为了Host。
        4.驱动程序
        与PC主机不同,便携式设备没有便捷的方式和足够的空间装载新的驱动程序。因此,OTG规范要求每个DRD设备有一个支持的外设式OTG目标设备的列表,列表中包括设备的类型和制造商等信息。USB IF正计划定义“OTG Type”规范。对于符合此规范的设备,OTG主机只须提供一个驱动程序即可,这将使OTG主机无须为每个设备提供单独的驱动程序,从而支持尽量多的OTG外设(图4)。
        与PC机不同,OTG两用设备的驱动程序栈是由USB主机栈和USB设备栈构成,以满足两种工作方式的需要。OTG驱动程序通过连接器的不同或者是否支持NHP交换设备的工作方式来决定使用USB主机栈还是USB设备栈。当OTG两用设备以主机方式工作时,USB主机栈工作。其中的主机控制器驱程序负责USB主机栈与硬件端点的数据交换。当OTG两用设备以从机方式工作时,USB设备栈工作。其中的设备控制器驱动程序负责USB设备栈与硬件端点的数据交换。
        OTG驱动程序负责处理DRD设备的工作方式转换,同时,它还可以返回其结果(如设备是否支持HNP)并处理总线错误。应用层程序通过OTG驱动程序开始或者结束一个传输事务,通过USB主机栈或设备栈与硬件层交换数据。
  可以说,OTG的确为USB应用带来了新的突破,而目前各数码、外设厂商也纷纷推出了基于OTG功能的产品。这些产品号称是脱离了PC机的束缚,是数码伴侣的一次革命,大有OTG可以一统天下的趋势。那么,OTG真的如此美好吗?答案是否定的!
        1.传输速度慢
        OTG虽然属于USB2.0协议的补充,但它的实际传输速度要比USB2.0的数据传输速度慢上许多,而且传输过程中数码相机不能拍摄,对传输时的条件要求苛刻。即使使用最新的OTG2.0版本,1张256MB的存储卡影像传输时间都在5分钟以上,而且要确保传输数据的成功,最好是将相机和存储装置平放在桌子上,稍不留神就会造成传输的失败!但处在野外环境中,试想一下,有谁愿意平端着相机等待5分钟的时间,而且在此期间,还不能使用数码相机拍摄!
        2.兼容性仍须改进
        目前支持OTG功能的外设、数码产品已经相当丰富,光是数码相机就有几十个品牌的产品,近千种型号!OTG作为近两年才开发的一种技术,虽然要求每个DRD设备有一个支持的外设式OTG目标设备的列表来对OTG设备提供支持,但目前数码产品升级换代速度极快,同时DRD设备的驱动列表不能像刷新BIOS那样容易升级,因此往往无法支持新OTG设备,要支持所有OTG设备的难度可想而知!而且即使是一般OTG产品的兼容性列表标明本产品可以使用在哪些数码相机上,但即使是标明可以适用的数码相机,在实际使用中也会经常出现死机,或者工作异常,无法传输等问题,因此目前各厂商一般推荐用户在使用OTG设备时最好使用同一品牌的产品。
        当然,通过USB直接管理外围设备的USB OTG已经吸引了越来越多的技术设计者的注意,但是不同设备间的直接验证成为了非常复杂的问题。一个USB OTG的认证过程成为了限制以前设备实现USB OTG的障碍,这需要众多的外部设备生产商间的协同与沟通,同时也需要在未来新的产品中一步到位地加入USB OTG。
        3.来自竞争者的压力
        此外,虽然USB接口在数码设备中的普及率是最高的,但是USB OTG也并非为实现数码设备直连的惟一解决方案,比如IEEE 1394有以索尼为首的众多家电厂商的支持,是不会轻易认输的。
        以上的种种原因阻碍了OTG技术的发展、普及进程。这就是为什么OTG技术在推出后,至今不能普及的原因。因此目前OTG功能一般体现在在数码伴侣上,只能作为一种附带功能,毕竟其固有特点在目前是无法将它作为一个主打功能使用的。当然,现在一些负责任的厂商已经看到了OTG技术本身的优缺点,在推出产品时既考虑了它的优点,也在避免它所带来弊病……
总的来说,USB OTG规范是USB2.0规范的补充而不是替代品,PC主机和标准外设并没有被取代。当然,OTG在这些外设间引入了点对点的通信方式,这使得便携式产品的发展有了更加广阔的空间,只要能迅速地得到广大数码外设制造厂商的支持,USB OTG还是很有潜力的一项通用标准……
 楼主| 发表于 2007-2-2 14:27:18 | 显示全部楼层 |阅读模式
1994年,Intel,Compaq等七家软硬件全球知名企业为了突破当时PC使用串口和并口传输速度的限制,成立了通用串行总线开发者论坛(USB Implementers Forum, USB IF),并在1994年11月提出了USB 0.7版,到了1998年开始出现了支持USB 1.1的设备,他的高速性(USB1.1支持1.5 Mb/s和12 Mb/s两种速度[1])和易用性迅速使之成为P C外设的宠儿。为了对抗1394速度的优势(1394可以达到400 Mb/s),1999年提出了US B 2.0规范的思想,2000年4月USB IF推出USB 2.0。USB 2.0向下兼容1.1,提供3种速度 ,最高可以达到480 Mb/s[2]。
USB 1.1和2.0都是必须依赖于PC的,为了在一定程度摆脱对PC的完全依赖,有一定程度的主机功能,2001年12月推出了OTG 1.0,经过6次修改,于2003年6月推出了USB OTG 1.0 a,正式成为一个达到市场实用的规范[3]。
本文中分析讨论了USB 2.0补充规范OTG的工作原理,并且针对目前数码相机伴侣存在的问题,作者提出了自己的解决方案。
1 USB OTG的工作原理

OTG补充规范对USB 2.0的最重要的扩展是其更具节能性的电源管理和允许设备以主机和外设两种形式工作。OTG有两种设备类型:两用OTG设备(Dualrole device)和外设式OTG设备(Peripheralonly OTG device) 。两用OTG设备完全符合USB 2.0规范,同时,他还要提供有限的主机能力和一个MiniAB插座、支持主机流通协议(Host Negotiatio n Protocol, HNP),并和外设式OTG设备一样支持事务请求协议(Session Request Protocol, SRP)。当作为主机工作时,两用OTG设备可在总线上提供8 mA的电流,而以往标准主机则需要 提供100~500 mA的电流。

2个两用OTG设备连接在一起时可交替以主机和从机的方式工作,这个特点兼容了现有USB 规范主机/外设的结构模型。OTG主机负责初始化数据通信的任务,比如:总线复位、获取USB 各种描述符和配置设备。这些配置完成后,2个OTG设备便可以分别以主机和从机方式传输信息,2个设备主从角色交换的过程由主机传输协议(HNP)定义。
下面从5个方面说明OTG的工作原理。

1.1主机(Adevice)和从机(Bdevice)的初始功能

设备的初始功能是通过定义连接器来实现的。OTG定义了一个叫做MiniAB的袖珍插孔,他能直接接入MiniA或者MiniB插口,MiniAB有一个ID引脚 上拉至电源端,MiniA插头有一个与地连接好的ID(R<10 Ω),Mini B插头有一个与地连接的开路ID引脚(R>100 kΩ)。当2个OTG设备连接到一起的时候 ,MiniA插头边的ID引脚会注入一个"0"状态,MiniB插头边的ID引脚为 "1",ID为0的OTG设备默认为主机(Adevice),ID为1的OTG设备默认为从机(B device)。图1对上述内容进行了图解[4]。


1.2 对话请求协议SRP(Session Request Protocol)

这个协议允许Adevice(可以是电池供电)在总线未使用时通过切断Vbus来节省电源消耗,也为Bdevice启动总线活动提供了一种方法。任何一个Adevice, 包括PC或便携式电脑,都可以响应SRP;任何一个Bdevice,包括一个标准USB外设, 都可以启动SRP;要求一个双重功能设备既能启动SRP,又能响应SRP。

1.3 主机流通协议HNP(Host Negotiation Protocol)

HNP是一种用来实现Adevice和Bdevice主机/从机转换的协议(实际上是电缆的反转)。主/从机功能交换的结果表现在下列过程中:

(1)利用上拉电阻来发送信号给从机。
(2)Adevice可在Bdevice上设置"HNP Enable"特性。
(3)Bdevice断开上拉。
(4)ADevice与上拉电阻相连,表明Adevice从属于从机。
(5)Adevice给Vbus供电。
(6)Bdevice检测Adevice的上拉。
(7)复位/列举/使用Adevice。

1.4 驱动程序[5]

与PC主机不同,便携式设备没有便捷的方式和足够的空间装载新的驱动程序。因此,OTG 规范要求每个两用OTG设备有一个支持的外设式OTG目标设备的列表,列表中包括设备的类型和制造商等信息。

与PC机不同,OTG两用设备的驱动程序栈由USB主机栈和USB设备栈构成以满足两种工作方式的需要。OTG驱动程序通过连接器的不同或者是否有NHP交换设备的工作方式来决定使用USB主机栈还是USB设备栈。

当OTG两用设备以主机方式工作时,USB主机栈工作。其中的主机控制器驱动程序负责USB 主机栈与硬件端点的数据交换,USB驱动程序枚举并保存设备的信息,目标外设主机类驱动程序支持目标设备列表里的设备。主机类驱动程序由芯片制造商提供,同时,OTG提供通用的主机类驱动程序(可以修改以用于非通用设备)。

当OTG两用设备以从机方式工作时,USB设备栈工作。其中的设备控制器驱动程序负责USB 设备栈与硬件端点的数据交换,USB协议层负责处理USB协议规范,设备类驱动程序的功能取决于该两用设备的功能(如数码照相机、存储设备、打印机等)。

OTG驱动程序负责处理两用OTG设备的工作方式转换,同时,他还可以返回其结果(如设备是否支持HNP)并处理总线错误。应用层程序通过OTG驱动程序开始或者结束一个传输事务, 通过USB主机栈或设备栈与硬件层交换数据。

1.5 数据流模型

OTG主机和设备被划分为功能层、USB设备层和USB接口层3个不同层次,如图2所示[5 ]。


USB接口层为OTG主机和OTG设备提供物理连接,USB系统软件使用主机控制器来管理主机与 USB设备的数据传输。USB系统软件相对于主机控制器而言,处理的是以客户角度观察的数据传输及客户与设备的交互。USB设备层为USB主机系统软件提供一个可用的逻辑设备。主机通过与之功能匹配的客户软件实现其各种功能。

OTG设备与以往的USB设备一样有两种通道:数据流通道和消息通道。数据流通道没有定义好的结果,而消息通道则有固定的结构。但是,每个通道都有一定的带宽、传输类型、传输方向和缓冲区大小。自供电设备配置一个默认的控制通道,由他提供该设备的配置和状态等信息。
2 目前数码相机伴侣存在的问题及其解决方案

上面对USB OTG的工作原理的主要部分进行了说明,下面将探讨USB OTG的应用。

当前随着中高档数码设备如数码相机的价格的下降,已经开始普及到千家万户,统计表明 ,2003年上半年数码相机的销量达到38.5万台,年底有望突破100万台,其进口量比去年同期增加了53倍,而现在一般使用的数码相机象素在200万~400万,尤其以320万象素左右的为市场热点,如果要拍摄高质量的照片,每张会超过1M,即使是256M的存储空间也会很快消耗光了,而现在市场上CF卡等存储介质的价格一直高居不下,所以就应运而生了一种叫做数码相机伴侣(典型的产品如Phototainer,韩国Innoplus公司产品)的电子消费类产品。 这类产品能够提供以下功能:

(1)通过读卡机,能把各种存储介质(比如SD卡,CF卡等)上的内容拷贝到移动硬盘中去 ,为外出旅行的人们提供了极大的方便。

(2)通过USB口,可以在计算机上和数码相机伴侣之间进行数据拷贝、删除等功能。

(3)提供大容量的存储空间(从10 GB到40 GB都有),外出旅行的人再也不必为存储卡的容量操心了,大可放心的拍摄。

作者认为这类产品美中不足的是:

(1)他读取数码相机存储介质的方法是通过读卡机来实现的,也就是必须把数码相机的存储介质取下来,插到数码相机伴侣上的插口里,不但很不方便,而且注定了数码相机伴侣的尺寸重量不会很小,由于存在不同存储介质还必须有不同类型的插口(一般都是要两种插口 )。

(2)为了兼容多种存储介质,还必须要配置转接设备。

(3)耗电量也很大的,一般来说,一次充电只能用1-2 h。

(4)当前许多此类产品还采用USB 1.1接口,传输速度显然不可能达到用户的期望。

针对上面存在的问题,作者考虑把USB OTG技术应用到数码相机伴侣上来,从以下几个方面进行改进:

(1)采用PHILIPS ISP1362芯片[4]来实现USB OTG功能。优点如下:

①利用USB OTG的双重角色功能,使之可以在连接到其他便携式数码产品或者存储介质时可以作为主机,来完成数据从其他外设拷贝到移动硬盘中;当他连接到PC中时,就可以作为普通的USB设备,由PC控制,进行数据的操作。

②采用USB OTG,整体结构将发生翻天覆地的变化,将读取数据等工作将由芯片完成 ,也就省去了很多关系存储卡的工作,所以可以将尺寸和重量做的很小,而且在使用的时候也是很方便的,只要使用USB电缆连接移动硬盘和数码相机伴侣等设备就可以了。

③USB OTG的优秀电源管理能力也能使电池的使用时间更加持久。

(2)可以考虑采用大容量微硬盘,一方面满足大容量的存储需求,另一方面可以把整个数码相机伴侣体积大幅度的减小。

(3)USB 2.0在速度上的优势已经得到了市场的积极支持,所以采用的USB
2.0接口保证了数据传输的高效。

经过改进后的数码相机伴侣与目前市面上的数码相机伴侣相比,具有如下特点:

(1)PHILIPS ISP1362芯片来实现USB OTG功能,无需PC就可把图像等数据拷贝到硬盘上。

(2)内置1英寸大容量微硬盘,满足现在数据大量存储的要求。

(3)无需取下数码相机等数码设备的存储卡,使用方便。

(4)采用USB 2.0规范,最高速度可以达到480 Mb/s。

(5)可以充当便携式移动硬盘,完成数据备份等工作。

(6)简单控制,只有电源和复制按钮,即可轻松实现对存储数据的操作。

(7)采用微硬盘,典型的产品如Magicstore,体积可以更小,更时尚诱人。
(8)使用LCD显示各种状态。

(9)由于使用了OTG的特别供电模式,电源耐久性会有很好表现。
具有USB OTG功能的数码相机伴侣由于其具有海量存储、存取数据、存取速度快和出色的电源管理等特点,不仅可以充当便携式移动硬盘,更为外出旅行的人提供了极大的方便。
3 结语

分析讨论了USB 2.0补充规范OTG的工作原理,作者针对目前数码相机伴侣存在的问题提出了应用USB OTG技术进行改进的方案。USB OTG已受到Cypress等芯片供应商、软件开发商和设备制造商的广泛支持,该方案从理论上和实际应用上都是实际可行的,非常具有应用价值。USB OTG规范是USB 2.0规范的补充而不是替代品。PC主机和标准外设并没有被取代, 因为新的OTG仅适用于需要具有主机功能和更小体积的便携式设备。OTG在这些外设间引入了点对点的(point to point)通信方式,这使得便携式仪器的发展有了更加广阔的空间,OTG不久将会成为新一代的"移动计算"解决方案。
USB On-The-Go 技术概述
  USB-OTG实际上是USB Implementers Forum组织对于传统USB接口的一个追加协议,直接建立在USB 2.0基础之上。它修改了USB接口的针脚定义和接口外形,对USB2.0标准最重要的扩展是它更具节能性的电源管理和允许设备以主机和外设(外围设备)两种形式工作(图1)。
        USB OTG定义了两种设备类型:双用设备(英文全称为Dual-Role Device,以下简称为DRD)和单外设设备(英文全称为Peripheral-Only Device,以下简称POD)。DRD具备Host和外设的两种功能,但也正是因为具有双重角色任务,DRD必须有切换角色等新功能;POD基本与外设功能近似,因此在这里我们主要讨论DRD设备。
        要成为一个USB Host,必须具有存储外设驱动程序、提供足够的USB端口电流和相对应Host插座的能力。而它所要实现的基本功能包括三个部分:管理和控制总线,包括提供USB端口电源管理;检测外设的接入和断开;初始化总线上所有数据包传输等等。
        1.USB OTG的接插件
        USB2.0协议规范中定义了3种Host与外设的连接方式:Host上的标准A插头和插座、外设上的标准B插头和插座以及外设上可选择的Mini B插头和插座。USB OTG主要是为了应用在便携式移动USB设备上,要求减小插头和插座的大小。为此,OTG1.0作为USB2.0 的补充,新定义了两种接插件:Mini A插头和插座、Mini AB插头和插座。(提示:在USB-TOG规范中,A设备代表主设备,充当Host的角色,一般指以主机方式工作的DRD设备,;B设备代表从设备,充当外设的角色。)
        Mini AB插座正是为OTG DRD的特点精心设计的。Mini A插座是设计在Host上的,用于连接外设的Mini A插头;同理,Mini B插座设计在外设上,及来连接Host上的Mini B插头。因此,不同的插座类型,区分了不同的USB设备。当OTG DRD需要进行设备角色变换时,就需要相应的插座类型,所以OTD DRD正是凭借两种特性来充当双用—— Mini AB巧妙地应用机械原理,一个插座可以连接Mini A和Mini B插头,而系统又可以通过ID信号线来识别。当然,为了方便用户识别,厂商们对接插件的封装颜色进行了不同的定义:Mini A插头及插座采用白色、Mini B插头及插座采用黑色、Mini AB插座则采用灰色。
        两个DRD设备连接在一起时可交替以主机和从机的方式工作,这个特点兼容了现有USB规范主机/外设的结构模型。OTG主机同样负责初始化数据通信的任务。比如:总线复位、获取USB各种描述符和配置设备。这些配置完成后,两个OTG设备便可以分别以主机和从机方式传输信息,两个设备主从角色交换的过程由主机传输协议(HNP)定义。以下我们以DRD设备来讨论SRP和HNP协议。
        2.事务请求协议——SRP
        在以往的USB系统运行过程中,主机提供5V的电源和不低于100mA的总线电流。当OTG主机连接到有线电源时这种方法是适用的,但像手机这样的自供电移动设备则不能承受如此大的电能浪费。一般OTG系统中的A设备采用的是电池供电,这就决定了OTG系统电源管理是非常重要的。因此,为了节省OTG系统的电源开支,OTG规定A设备在没有总线活动时可以关掉Vbus上的电源。这样,当一个B设备连接到A设备上之后,就要初始化SRP,并发给A设备,请求A设备在Vbus提供电流支持,进而进行通信。OTG中,DRD可以作为A设备,也可以作为外设设备,因此,DRD必须支持初始化SRP和响应SRP;而POD只能作B设备,所以只能初始化SRP(图2)。
        SRP中,B设备有两种方式可以向A设备发送请求,要求建立SRP:一种是数据线脉冲,一种是Vbus脉冲。任何一个A设备只要求能响应一种SRP方式,而B设备必须能初始化两种SRP方式——-当B设备先初始化一种SRP,而A设备无法响应的话,则B设备就要用另一种SRP方式。
        A设备检测到数据线脉冲调制或者Vbus脉冲调制后,首先复位总线,然后发送Set_feature命令而先不进行设备的枚举,此时B设备尚处在默认的从机状态。如果Set_feature命令成功执行,说明B设备为DRD设备,A设备(使用HNP协议)挂起Vbus准备让B设备交换为主机方式接管总线。如果Set_feature命令执行失败,说明B设备为外设式OTG设备,于是A设备使能Vbus准备开始一个传输事务。当A设备认为总线上没有传输需要时,挂起Vbus以结束该事件。
        3.主机流通协议——HNP
        在上面我们已经提及OTG DRD采用Mini AB型插座,因此DRD既可以作为Host,也可以作为外设。而在某个OTG连接中,这个DRD到底是作Host(即A设备),还是作为外设(B设备),则要根据接入的另一个OTG设备来定的。如果接入的是OTG POD,那么这个DRD肯定是充当A设备角色。但如果接入的是另一个DRD,那么这两个DRD之间就可以HNP协议来随时切换Host角色(图3)。
        一次完整的HNP流程是这样的:B设备希望控制总线,成为Host;在A设备发送了SetFeature命令后,B设备就可以请求控制总线;A设备挂起总线,通知B设备可以控制总线;B设备发送信号,断开与A设备的连接;A设备改变自身设置;这样A设备就可以充当外设的角色,放弃对总线的控制权,这时B设备就成为了Host。
        4.驱动程序
        与PC主机不同,便携式设备没有便捷的方式和足够的空间装载新的驱动程序。因此,OTG规范要求每个DRD设备有一个支持的外设式OTG目标设备的列表,列表中包括设备的类型和制造商等信息。USB IF正计划定义“OTG Type”规范。对于符合此规范的设备,OTG主机只须提供一个驱动程序即可,这将使OTG主机无须为每个设备提供单独的驱动程序,从而支持尽量多的OTG外设(图4)。
        与PC机不同,OTG两用设备的驱动程序栈是由USB主机栈和USB设备栈构成,以满足两种工作方式的需要。OTG驱动程序通过连接器的不同或者是否支持NHP交换设备的工作方式来决定使用USB主机栈还是USB设备栈。当OTG两用设备以主机方式工作时,USB主机栈工作。其中的主机控制器驱程序负责USB主机栈与硬件端点的数据交换。当OTG两用设备以从机方式工作时,USB设备栈工作。其中的设备控制器驱动程序负责USB设备栈与硬件端点的数据交换。
        OTG驱动程序负责处理DRD设备的工作方式转换,同时,它还可以返回其结果(如设备是否支持HNP)并处理总线错误。应用层程序通过OTG驱动程序开始或者结束一个传输事务,通过USB主机栈或设备栈与硬件层交换数据。
  可以说,OTG的确为USB应用带来了新的突破,而目前各数码、外设厂商也纷纷推出了基于OTG功能的产品。这些产品号称是脱离了PC机的束缚,是数码伴侣的一次革命,大有OTG可以一统天下的趋势。那么,OTG真的如此美好吗?答案是否定的!
        1.传输速度慢
        OTG虽然属于USB2.0协议的补充,但它的实际传输速度要比USB2.0的数据传输速度慢上许多,而且传输过程中数码相机不能拍摄,对传输时的条件要求苛刻。即使使用最新的OTG2.0版本,1张256MB的存储卡影像传输时间都在5分钟以上,而且要确保传输数据的成功,最好是将相机和存储装置平放在桌子上,稍不留神就会造成传输的失败!但处在野外环境中,试想一下,有谁愿意平端着相机等待5分钟的时间,而且在此期间,还不能使用数码相机拍摄!
        2.兼容性仍须改进
        目前支持OTG功能的外设、数码产品已经相当丰富,光是数码相机就有几十个品牌的产品,近千种型号!OTG作为近两年才开发的一种技术,虽然要求每个DRD设备有一个支持的外设式OTG目标设备的列表来对OTG设备提供支持,但目前数码产品升级换代速度极快,同时DRD设备的驱动列表不能像刷新BIOS那样容易升级,因此往往无法支持新OTG设备,要支持所有OTG设备的难度可想而知!而且即使是一般OTG产品的兼容性列表标明本产品可以使用在哪些数码相机上,但即使是标明可以适用的数码相机,在实际使用中也会经常出现死机,或者工作异常,无法传输等问题,因此目前各厂商一般推荐用户在使用OTG设备时最好使用同一品牌的产品。
        当然,通过USB直接管理外围设备的USB OTG已经吸引了越来越多的技术设计者的注意,但是不同设备间的直接验证成为了非常复杂的问题。一个USB OTG的认证过程成为了限制以前设备实现USB OTG的障碍,这需要众多的外部设备生产商间的协同与沟通,同时也需要在未来新的产品中一步到位地加入USB OTG。
        3.来自竞争者的压力
        此外,虽然USB接口在数码设备中的普及率是最高的,但是USB OTG也并非为实现数码设备直连的惟一解决方案,比如IEEE 1394有以索尼为首的众多家电厂商的支持,是不会轻易认输的。
        以上的种种原因阻碍了OTG技术的发展、普及进程。这就是为什么OTG技术在推出后,至今不能普及的原因。因此目前OTG功能一般体现在在数码伴侣上,只能作为一种附带功能,毕竟其固有特点在目前是无法将它作为一个主打功能使用的。当然,现在一些负责任的厂商已经看到了OTG技术本身的优缺点,在推出产品时既考虑了它的优点,也在避免它所带来弊病……
总的来说,USB OTG规范是USB2.0规范的补充而不是替代品,PC主机和标准外设并没有被取代。当然,OTG在这些外设间引入了点对点的通信方式,这使得便携式产品的发展有了更加广阔的空间,只要能迅速地得到广大数码外设制造厂商的支持,USB OTG还是很有潜力的一项通用标准……
高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-10-6 14:31 , Processed in 0.050037 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表