********************************LoongEmbedded************************

作者:LoongEmbedded(kandi)

时间:2011.05.30

类别:WINCE驱动开发

********************************LoongEmbedded************************


关键字:

HNP:主机协商协议(Host Negotiation Protocol)。

SRP:会话请求协议(Session Request Protocol)。

DRD:两用设备(Dual-role-devices),即可当host,也可当device。

POD:(Peripheral-only-device),只能作为device。


1.       USB OTG

1.1   USB OTG含义

OTG是On The Go的缩写,正在进行中的意思,是近年发展起来的技术,2001年12月18日由USB Implementers Forum公布,主要应用于各种不同的设备或移动设备间的联接,进行数据交换。特别是PDA、移动电话、消费类设备。改变如数码照相机、摄像机、打印机等设备间多种不同制式连接器,多达7种制式的存储卡间数据交换的不便。

 

1.2   USB OTG作用

OTG的设备,例如数码相机直接连接到打印机上,通过OTG技术,连接两台设备间的USB口,将拍出的相片立即打印出来;也可以将数码照相机中的数据,通过OTG发送到USB接口的移动硬盘上,野外操作就没有必要携带价格昂贵的存储卡,或者背一个便携电脑。我们知道USB设备分为HOST(主设备)和SLAVE(从设备),只有当一台HOST与一台SLAVE连接时才能实现数据的传输,而OTG设备既能充当HOST,亦能充当SLAVE,也即DRD(Dual-role-devices),所以这样就可以脱离PC(host设备)来在不同的移动设备上通过OTG技术来传输数据了。USB OTG设备就是指具备独立数据拷贝功能的移动硬盘产品。


1.3   USB OTG的由来和发展

自1996年USB1.0规范以后,USB-IF(Universal Serial Bus Implementers Forums)又陆续公布了USB2.0和 USB OTG等几个规范,其中USB2.0的传输带宽达到480Mbps,而USB OTG更使USB装置摆脱了原来主从架构的限制,实现了端对端的传输模式,随着USB规范的不断完善,USB的应用领域也得到了拓展。USB诞生的初衷是简化电脑和其外设的连接,最早是用在键盘和鼠标上,而现在,USB的应用已经从PC外设跨越到了消费电子产品和通信电子产品领域,最显著的应用是在数码相机等消费电子产品上。


目前,USB低功耗、便于连接和高速传输的特性已经使它成为一个可方便应用的架构,它与其他技术结合便诞生出新的应用。如在移动存储领域,USB与闪存结合,创造性催生了目前广为流行的移动存储设备-U盘。


1.4   USB OTG设计原理

1.4.1       USB OTG接口

传统的USB设备是主从结构,分为A和B两种,A接口的设备提供电源VBUS,用作HOST。B接口的设备在通讯过程中作为Device。无论是A接口、B接口还是各自的Mini接口,虽然外形有些差异,但是用的引脚都遵循以下的定义:

1脚:VCC电源

2脚:D-差分负极

3脚:D+差分正极

4脚:GND接地


USB OTG增加了一个ID引脚,它的接口(Mini-AB)定义如下:

1脚:VCC电源

2脚:D-差分负极

3脚:D+差分正极

4脚:ID

5脚:GND


当2个DRD互连时,哪个设备作为主机?为什么要作为主机呢?为了解决这两个问题,在USB OTG中提出了新的协议———主机协商协议(HNP)。在OTG中还定义了一种新的接口———mini AB插座(可以直接接入mini A或Mini B插头)以及mini A插头和mini B插头(mini A和mini B是通过电缆连为一体的USB OTG连接线)。为了是用方便,不同的接插件颜色不一样:Mini A采用白色,Mini B采用黑色,Mini AB采用灰色。在mini AB插座以及mini A插头和mini B插头中都增加了一个ID引脚,如下图所示

 

Mini AB接口有一个ID引脚上拉至电源端,Mini A插头有一个与地连接好的ID引脚(R<10欧姆),Mini B插头有一个与地连接的开路ID引脚(R>100千欧姆)。当两个OTG设备通过连接线(一端为Mini A插头,另一端为Mini B插头)连接到一起的时候,Mini A插头边的ID引脚会直接给一个OTG设备Mini AB接口的ID引脚一个低电平,此OTG设备默认为主机(如图2的A-device);Mini B插头边的ID引脚会直接给另一个OTG设备的Mini AB接口的ID引脚一个高电平,此时,此OTG设备默认为外设(如图2的B-device)。当然,我们也可以调换连接线插头方向来互换为主机或外设,但不需要这样做,只需要通过HNP协议就可以互换为主机或外设。


1.4.2       主机协商协议(HNP)

HNP协议用于两个OTG设备互连时角色切换,当两用设备连接了一个Mini A插头或者Mini B插头时,它相应的便以OTG主机或者OTG外设的默认方式工作。A-device为默认主机,所以由它提供VBUS电源,且在检测到有设备接入时复位总线、枚举并配置B-device。


1) A-device在完成对B-device的使用后,可以通过查询B-device的OTG描述符来判断是否支持HNP协议(即是否为两用OTG设备)。如支持HNP,B-device将返回有效的OTG描述符,A-device则发送一个SetFeature命令通知B-device可以在A-device挂起总线的时候控制总线,在SetFeature命令发送完成后,接着A-device便挂起总线。


2) A-device挂起总线后,B-device通过turn off D+的上拉电阻来通知A-device以示断开连接,处于挂起状态的A-device解析到这个断开的动作作为B-device要作为主机的请求。接着A-device便通过turn on D+的上拉电阻来作为对B-device断开的响应,完成这些转换后,B-device和A-device便各自以主机和外设角色来使用总线了。


3) B-device使用总线完成后,它在总线FS(full speed,全速)空闲的时候通过停止所有的总线活动和turn on自身D+的上拉电阻来开始返回作为从设备的工作方式。A-device将会检测到这个动作并且turn off自身D+上拉电阻,接着如果A-device检测到B-device的连接,它将作为主机复位总线操作,这样A-device和B-device又回到初始的工作方式,也即分别工作在主机和从设备的方式。


A-device便挂起总线B-device

1.4.3       会话请求协议

在以往的USB系统运行过程中 主机提供5V的电源和不低于100mA的总线电流。当OTG主机(指以主机方式工作的两用OTG设备 又称A-device)连接到有线电源时这种方法是适用的 但像手机这样的自供电移动设备则不能承受如此大的电能浪费。为了节约电源延长电池的使用寿命,当总线上没有活动时OTG主机将挂起总线电源VBUS,从而节省系统的功耗。


当一个B-device设备连接到A-device之后,就要初始化SRP并且请求给A-device来turn on VBUS以提供足够的电压和电流来开始会话。在OTG中,DRD既可以作为A-device,也可作为B-device,因此DRD必须支持初始化SRP和响应SRP,而POD只能作为B-device,所以只能初始化SRP。B-device有两种方式向A-device发送请求来要求建立会话:数据线脉冲(Data-Line Pulsing),另一种是VBus脉冲(VBus Pulsing)。任何一个A-device只要求能响应一种SRP方式,而B-device必须能初始化两种SRP方式,这样才能保证B-device初始化一种SRP,A-device无法响应时,B-device能用另一种SRP方式来建立会话。


1.5 USB的主要特点

1) 接口更小巧,有效减少电子产品的体积。

2) 既能当HOST又能作为Device,即DRD(Dual-role-devices)双重作用的设备。

3) OTG设备依然可以连接到PC上用作普通的外设,即POD(Peripheral-only-device)

综合2)和3)点:

OTG有两种设备类型:两用的OTG设备(Dualrole Device)和外设式OTG设备(POD)。两用OTG设备完全符合USB 2.0规范,同时它还要提供有限的主机能力、一个MiniAB插座、支持HNP,并和外设式OTG设备一样支持SRP(注意了,当作为外设式OTG设备时是不支持HNP协议的)。当作为主机工作时,两用OTG设备可在总线上提供8mA的电流,而以往标准主机则需要提供100~500mA的电流。

4) 功耗更低,以延长采用电池供电的USB设备的待机时间。