linux usb驱动——USB OTG硬件设计
转自 http://www.elecfans.com/dianlutu/dianyuandianlu/20100716220514.html
随着PDA、移动电话、数码相机、打印机等消费类产品的普及,用于这些设备与电脑,或设备与设备之间的高速数据传输技术越来越受到人们的关注,IEEE1394和USB是用于此类传输的两个主要标准。这两个标准都提供即插即用和热插拔功能,都可以向外提供电源,也都支持多个设备的连接。其中IEE1394支持较高的数据传输速度,但相对比较复杂、价格较高,主要用于需要高速通信的AV产品;而最初的USB标准主要面向低速数据传输的应用,其中USB1.1支持1.5Mbps和12Mbps的传输速率,被广泛用于传输速率要求不高的PC机外设,如:键盘、鼠标等。USB2.0标准的推出使USB的传输速度达到480Mbps。而USB OTG技术的推出则可实现没有主机时设备与设备之间的数据传输。例如:数码相机可以直接与打印机连接并打印照片,从而拓展了USB技术的应用范围。图1是USB技术的典型应用示意图。
1 主机通信协议与对话请求协议
USB OTG标准在完全兼容USB2.0标准的基础上,增添了电源管理(节省功耗)功能,它允许设备既可作为主机,也可作为外设操作(两用OTG)。OTG两用设备完全符合USB2.0标准,并可提供一定的主机检测能力,支持主机通令协议(HNP)和对话请求协议(SRP)。在OTG中,初始主机设备称为A设备,外设称为B设备。可用电缆的连接方式来决定初始角色。图2所示是用第5个ID脚确定默认主机的示意图,两用设备使用新型mini-AB插座,从而使mini-A插头、mini-B插头和mini-AB插座增添了第五个引脚(ID),以用于识别不同的电缆端点。mini-A插头中的ID引脚接地,mini-B插头中的ID引脚浮空。当OTG设备检测到接地的ID引脚时,表示默认的是A设备(主机),而检测到ID引脚浮这的设备则认为是B设备(外设)。系统一旦连接后,OTG的角色还可以更换。主机与外设采用新的HNP,A设备作为默认主机半提供VBUS电源,并在检测到有设备连接时复位总线、枚举并配置B设备。OTG标准为USB增添的第二个新协议称为对话请求协议(SRP)。SRP允许B设备请求A设备打开VBUS电源并启动一次对话。一次OTG对话可通过A设备提供VBUS电源的时间来确定(注:A设备总是为VBUS供电,即使作为外设)。也可通过A设备关闭VBUS电源来结束一闪会话以节省功耗,这在电池供电产品中是非常重要的。例如,在两台蜂窝电话通过连接互相交换信息时,一台连接在电费的mini-A端,是A设备,默认为主机。另一台是B设备,默认为外设。当在不需要USB通信时,A设备可以关闭VBUS线,此时B设备就会检测到该状态并进入功低耗模式。
2 OTG功能的构建
图3所示电路给出了构建OTG功能时需要在基础USB外设上添加的电路,电路中的通用串行总线控制器可以是一个微处理器和USB SIE(串口引擎),也可以是集成的μP/USB芯片或与USB收发器相连的ASIC。为总线提供电源的外部设备需要一路3.3V稳压输出供电电压,以便为逻辑电路和连接在D+、D-引脚的1500Ω电阻提供电源。通过D+、D-引脚上的上拉电阻可向主机发出设备已连接的信号,并指示设备的工作速度。电阻上拉至D+表示全速运行,电阻上拉至D-表示低速运行。其它端点(包括D+和D-的15kΩ下拉电阻)用于检测上拉电阻的状态。由于USB设计需要提供热插拔功能。因此,其ESD保护电路主要用于为D+、D-和VBUS引脚提供保护。
为了增加OTG的两用功能,必须扩充收发器功能来使OTG设备既可作为主机使用,也可以作为外设使用。而要实现上述功能,就需要在图3所示电路中添加D+和D-端的15kΩ下拉电阻并为VBUS提供供电电源。此外,收发器还需要具备以下三个条件:
(1)可切换D+/D-线上的上拉和下拉电阻,以提供外设和主机功能。
(2)作为A设备时,需要具有VBUS监视和供电电路;作为B设备初始化SRP时,需要监视和触发VBUS。
(3)具有ID输入引脚。
作为两用OTG设备,ASIC、DSP或其它与收发器连接的电路必须具备充当外设和主机的功能,并应按照HNP协议转换其角色。
收发器所需添加的大多数电路用于VBUS引脚的管理。作为主机,它必须能够提供5V、输出电流可达8mA的电源。图3中的模拟开关用于配置收发器的各种功能。
ASIC和控制器还必须包含USB主机逻辑控制功能,包括发送SOF(帧启动)包、发送配置u36755输入u36755输出数据包,在USB 1 msec帧内确定传输进程、发送USB复位信号、提供USB电源管理等。
3 Maxim要提供的USB OTG方案
MAX3301E是Maxim公司研制的一款USB OTG收发器,该器件集成有电荷泵,可将PDA、蜂窝电话和数码相机等移动设备与USB外设直接连接而无需PC机的参与。采用MAX3301E和一个嵌入式USB主机,就可直接将诸如打印机或外部硬盘驱动器这样的外设连接。MAX3301E内部包括USB OTG收发器、UBUS电荷泵、线性稳压器和I2C 2线串行接口。内部电平转换器使MAX3301E能够与采用+1.65至+3.6V逻辑电源电压的器件连接。MAX3301E中的电荷泵工作在+3V至+4.5V输入电源下,可产生符合OTG要求的VBUS输出,且输出电流大于8mA。该器件可利用内部比较器控制并测量VBUS,同时支持USB OTG SRP和HNP,其典型应用电路如图4所示。