与PC系统相比,设计工程师在嵌入式系统中实现USB将面临很多挑战和局限性,包括功耗、PCB面积、CPU处理能力等。本文以TD1120为例,分析了嵌入式应用中USB OTG控制器的功能特性,以及基于TD1120的软件实现。 移动设备和嵌入式市场的爆炸性增长促进了通过公共标准接口在不同设备之间进行方便的数据共享需求的增长。通用串行接口(USB)的广泛应用稳固了其作为业界标准接口的地位,已经成为嵌入式系统I/O连接的事实标准。USB的成功和流行归功于其具有热拔插和即插即用的易用性能。USB从最初引入到PC,到目前已经迅速扩展到非PC的应用,包括移动嵌入式系统。今天嵌入式系统生产商的问题已经不是在产品中实现USB,而是如何最佳地将USB性能集成到他的产品中去,以大大地提升产品的连接性能。
在嵌入式应用中实现USB并不那么简单,与PC系统相比,设计工程师将面临很多挑战和局限性。如果USB实现的规划很好,将简化并加快把USB集成到终端产品的工作。这其中涉及到关于根据终端产品的USB应用情况进行的系统层面决策,产品特性和性能要求的权衡的不同将影响到USB功能性的恰当实现。
USB2.0与OTG
USB2.0规范是USB1.1的演进,采用一个高速接口使系统生产商能推出具有相同易用连接优点的高性能产品。USB2.0支持高达480Mbps的高速数据传输,并且与USB1.1规范后向兼容,而后者仅支持全速的12Mbps和低速的1.5Mbps。
USB OTG是USB2.0规范的补充,结合了对移动应用友好的新特性,包括低功耗、更小的USB接头以及在相同的USB端口上增加了双重角色的功能(作为主机和外设的功能)。OTG通过在没有计算机的情况下,相互之间对等连接使传统的只能作为USB外设的移动产品的性能和连接性得到扩展。
图1:USB软件与操作系统的上层关系图。
OTG控制器
TD1120是TransDimensiON公司提供的第三代OTG控制器,并针对便携式媒体播放器(PMP)、智能电话、个人数字助理(PDA)、便携式视频录像机(PVR)、数字相册和多功能打印机等进行了优化。TD1120使得这些产品能扩展其应用,既可以当作全速USB主机操作或高速外设,又能同时执行两种功能。
数据内容量的增加和要求高带宽的应用(例如大数据文件的传输)推动了高速外设连接需求。TD1120能实现高速数据传输,减少像连接到PC这样的USB主机时大数据内容(图形文件)的传输时间。当在主机模式时,TD1120使系统能连接到更宽范围的USB外设,例如大容量存储设备(U盘)、键盘、鼠标、打印机以及数码相机。在全速下功耗较低,能延长系统电池寿命。
对于多功能打印机,TD1120提供了一种将打印机升级到具有USB主机功能和外设连接特性的一种具有成本效益的方法。高速USB外设控制器提供从打印机到PC的连接,同时全速主机控制器能支持PictBridge功能,这样用户就可以将数码相机连接到具有PictBridge的打印机,实现照片直接打印。
PC环境通常具有高性能的CPU,这个CPU具有充足的存储器、功率预算以及PCB空间。然而,在嵌入式应用中,由于产品设计的要求,这些资源是非常有限的。要恰当地实现USB功能特性,需要认真的产品规划和系统层面的考虑,这需要从USB应用、特性和性能要求以及权衡这些选择对嵌入式处理器、操作系统(OS)和USB软件堆栈的影响的判断能力。
相对于需要分别用来支持高速外设和全速主机功能两个USB控制器的双芯片实现来说,TD1120提供USB设计灵活性、低功耗、大大节省PCB空间并缩短系统开发周期的方案,这些都是工程师的主要关注的,这些好处同样也转换为系统成本的节省、加快客户产品面市时间。
TD1120允许多端口配置、同时的主机和外设操作以及灵活的操作模式。支持以下端口配置:双端口,一个OTG端口加标准的全速主机端口;三端口,两个全速主机端口和一个高速外设端口。Mini-AB插座用来作为OTG端口(OTG端口具有双重角色功能)。OTG端口可以配制成主机端口或外设端口,取决于插入Mini-A或Mini-B插头时所检测到的ID管脚。如果插入的是Mini-A插头(ID管脚短路),端口配置为主机,当Mini-B插头插入(ID管脚浮置),则端口配置为外设。
TD1120集成了一个片上高电流充电泵,可以支持高达100mA的电流,这样可以支持很多种USB设备,包括键盘、鼠标、部分U盘,这样就不存在需要外部充电泵的问题。此外,还集成了锁相环(PLL)来支持外部晶振或12MHz和30MHz晶振实现额外的系统灵活性。
采用TD1120在全速主机模式下功耗低于40mA(最大),全速外设操作时最大为80mA。TD1120整个芯片支持功率节省模式,包括主机控制器以及外设控制器的延缓模式以使功率消耗最小化,延长系统电池寿命,对于移动设备来说,电池寿命是很关键的性能。
接口性能表现
USB数据传输速率高度依赖于系统平台。对速率的期望要现实而适当,因为有很多因素会影响到系统的数据吞吐量,包括CPU处理能力、CPU的利用率、OS存储系统总线访问时间、USB控制器、系统应用程序、软件和协议开销,等等。采用400MHz处理器的嵌入式系统不能与4GHz CPU的USB速度相提并论,后者在高速模式下可以达到200Mbps的吞吐量。
图2:TD1120架构框图。
TD1120设计实现了硬件处理调度和传输层协议,包括实现高级性能的数据转换、重试和带宽管理。当出现传输错误或者设备还没有准备接收传输时,将发送设备否定应答(NAK)。NAK可以是性能和系统影响的巨大因素,TD1120的设计减小了这些影响。当出现在主机与连接的外设之间进行大量的数据交换所采用的批量数据传输的情况时,批量列表结构(Bulk list structure)经过存储器映射到TD1120的主机控制器,所有因为USB设备NAK而产生的重试以及传输描述符(TD)都在硬件内部处理,而不需要对系统总线的持续访问,这样减少了中断并降低了对CPU的占用。
TD1120的高速的外设控制器实现了像连接到PC这样的主机的性能,减少了传输大量数据内容的时间,因而大大提高了通过高速外设控制器的吞吐量,提升了用户体验。TD1120支持两个与外部直接存储器存取(DMA)主机接口的从DMA通道,这样可以在没有CPU干涉的情况下实现从或到外部存储器或设备的高带宽数据传输,减少对系统CPU的占用。然而,必须注意仔细调整CPU的外部存储器访问时间,以严格匹配外部USB主机控制器的时序要求,从而提高系统性能。
软件支持
软件在实现USB功能方面扮演了主要的角色。用于驱动控制器的必要软件可能很复杂。除了硬件之外,选择适当的OS和USB堆栈方案是USB实现的关键。支持TD1120的软件可以从TransDimension的SoftConnex软件套件得到,很多的实时操作系统(RTOS)都支持该软件堆栈,该软件套件提供完整的嵌入式USB方案的软件堆栈和驱动程序。嵌入式系统领域采用了大量的实时操作系统。本身带有USB主机和外设堆栈支持的操作系统在市场上并不多,如WinCE或Linux。对这些本身就带有USB堆栈的操作系统,TransDimension支持主机和外设低级控制器驱动程序来与USB协议层接口。协议堆栈负责协议管理和调度功能,包括处理即插即用特性,以便告知系统新插入的设备,并管理带宽以及其他与USB相关的资源。
对于其他本身并不带USB堆栈的操作系统来说,TransDimension可以通过向客户发放许可证的形式让客户使用TransDimension的软件堆栈和驱动程序实现USB主机、外设或OTG功能,并将其配置到很多种操作系统和CPU。模块化的软件架构能实现灵活的产品设计,系统设计工程师可以轻易地从主机或/和外设设计转到OTG方案上。
此外,TransDimension还提供便携主机控制器驱动程序(HCD)以及外设控制器驱动程序(PCD)。开发商可以轻易地将驱动程序移植到多种USB主机和外设软件堆栈、操作系统、处理器和硬件平台中。便携HCD和PCD提供设计工程师低级的应用编程接口(API)驱动程序来开发他们自己的USB方案,而可以不管TD1120是如何工作的细节。
便携式HCD和PCD提供简单的API,使用户能写独立的USB应用程序以及将驱动程序连接到现存的USB堆栈,并实现特定应用软件。当要求更多特性的应用,如支持大容量存储,而内部开发能力和资源受到项目时间的限制,采用授权软件产品可以提供最快的产品面世方案。
低功率设计
--低功率特性包括可调节内核时钟、动态寄存器关断、动态和可编程时钟选通大大降低功率消耗
鲁棒的OTG逻辑
--可配置硬件和软件主机协调协议和会话请求协议
内存映射接口
--16位数据总线允许直接连接到大多数微处理器
同时操作
--主机和外设控制器实现允许同时操作
灵活的端口配置
--允许多个端口配置,支持多达3个端口