嵌入式系统设计中的USB OTG方案
TD1120设计实现了硬件处理调度和传输层协议,包括实现高级性能的数据转换、重试和带宽管理。当出现传输错误或者设备还没有准备接收传输时,将发送设备否定应答(NAK)。NAK可以是性能和系统影响的巨大因素,TD1120的设计减小了这些影响。当出现在主机与连接的外设之间进行大量的数据交换所采用的批量数据传输的情况时,批量列表结构(Bulk list structure)经过存储器映射到TD1120的主机控制器,所有因为USB设备NAK而产生的重试以及传输描述符(TD)都在硬件内部处理,而不需要对系统总线的持续访问,这样减少了中断并降低了对CPU的占用。 接口性能表现
USB数据传输速率高度依赖于系统平台。对速率的期望要现实而适当,因为有很多因素会影响到系统的数据吞吐量,包括CPU处理能力、CPU的利用率、OS存储系统总线访问时间、USB控制器、系统应用程序、软件和协议开销,等等。采用400MHz处理器的嵌入式系统不能与4GHz CPU的USB速度相提并论,后者在高速模式下可以达到200Mbps的吞吐量。
图2:TD1120架构框图。
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个端口
作者:Paul Liu
产品行销总监
Email: pliu@transdimension.com。
TransDimension公司
- USB设备的调试与测试技巧(11-11)
- USB系统结构与应用设计(01-18)
- 基于C8051F320 USB接口的数据采集存储电路(01-18)
- 基于USB的CAN总线适配器设计(01-21)
- 带USB接口的短信收发最小系统设计(01-23)
- 基于USB总线和Aduc831单片机的数据采集系统的设计(01-25)