霡霂的个人空间 https://blog.eetop.cn/maimu [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

网络上的USB连接

已有 1065 次阅读| 2006-6-28 15:59 |个人分类:备份

天气: 晴朗
心情: 高兴
USB是一种成功的点对点连接接口,但通过IP实现USB则是项挑战性的工作。
要 点
  ●设计师成功地将 USB(通用串行总线)用于连接其它通信技术;
  ●在任何项目中,不明确的含义都是造成错误和损失时间的根源;
  ●一些 USBOIP(互联网协议上工作的 USB)实现可以使多台主控计算机串行共享一台设备。
  2005年的 USBOIP(互联网协议上工作的通用串行总线)亲自动手项目探索的是 USB 设备能在网络上工作需要什么条件。该项目试图激发对拓展 USB 设备功能新方法的兴趣与考虑。与其他所有亲自动手项目一样,本项目花了数月时间进行研究、规划和实现。最新推出的无线 USB 规范在项目进行的大部分时间中尚未可行,因此对我们的工作没有实质影响。

  一个由七家计算机与电信公司组成的联盟在 1995 年正式开发并推出了 USB 规范。尽管USB 最初的设计目标是连接计算机与电信设备,但它最终却成了台式机、外设与很多消费电子产品的通用总线。根据USB 工具论坛的数据,今天,全世界有超过 20 亿个有线 USB 连接。USB 已经成为非常成功的即插即用工具,现在亦有通过USB将计算机与实现其他通信技术的设备相连接的,如 USB 转串行口 、USB 转以太网,以及 USB 转 802.11 适配器。

  我们曾经在 EDN 的一个亲自动手项目中,在带 USB 接口的任天堂 Gameboy Color 之间建立了专有的游戏链接接口(参考文献 1)。该项目的目标是证明设计师可以用新奇的方法使用普通市售装置,在本例中,将为游戏设计的手持设备用作一个重要的商务与工程平台。对于将 Gameboy 用作便携平台(包括低成本医疗设备)的设计,读者们给出了很多反馈信息。

  本次亲自动手项目的最初概念是让一个 USB 主机通过一个无线网络连接,访问一个既有的 USB 设备,该 USB 设备可以正常工作,甚至觉察不到有网络连接的存在(见附文“USB 术语”)。为了让 USB 设备能通过网络进行连接,用户可以将 USB 设备插入到一个小盒子中,该小盒子作为本地主控端和网络适配器,管理网络上与主控计算机的交互(图 1)。在主控计算机上,可以对 USB 系统软件进行扩展,使它通过网络发送和接收 USB 事项,而不是通过缺省的 PCI 总线。扩展系统软件时,要让 USB 的类驱动程序察觉不到变化,这是可以做到的。最后一点很关键,即仍具备支持现有 USB 设备的能力。


  这种安排与适配器不同(如 USB 转 802.11 的适配器),它是通过 USB 设备提供与主系统的无线连网能力。在这种情况下,适配器是仅连到主控制器上的一个 USB 设备(图 2)。因此,这些设备用 USB 端口增加了对主控制器的连接能力,而不是对其他 USB 设备。


  EDN 认为,无线 USB 的亲自动手项目过于雄心勃勃了,因此我们将项目范围减小,使其能在有线网络连接上建立一个 USB 连接。我们打算先在有线连接上完成一个 USB 连接,然后再对付无线连接增加的复杂性。因此这个改变是可以接受的。

  为减少项目的复杂性,项目的目标被定为演示通过网络进行的一次成功的 USB 会话。项目的时间表还是相当紧张的(毕竟这不是一个全职工作。)因此,我们并不打算制造一个可以量产的演示方案,或期待有最高的性能。为节省时间,我们决定避免为项目制作物理元件,而使用可以支持该项目的市售处理器与电路板。

  所需电路板要有能支持至少一个 USB 2.0 设备连接的软、硬件,还要求能与我们办公室的网络建立连接和共同工作。这样,我们能把注意力集中在为主控计算机和 USB 服务器上的 USB 系统软件开发新的总线驱动程序,以验证该项目概念(图 3)。最后,Atmel公司 为我们提供了一块 AT91RM9200-EK 评估板,上面有本项目使用的 ARM9 处理器,但收到它以前我们已经选择了原用的处理器和电路板,而且损失了项目不少时间。

  不明确的含义

  与许多工程项目一样,这次的亲自动手项目也受制于许多模棱两可的含义所造成的错误假设。出现的第一个“冷不防”问题起因于 USB 连接的电气接口与逻辑接口是非对称的。在向 USB 芯片供应商采购为完成本项目所用芯片时,我们只讨论了项目在功能级上实现验证的问题。

  在这种情况下,目标电路板不仅要支持至网络的以太网连接,而且还要作为连接到 USB 设备的一个主机。暗含的假设就是目标电路板会带有一个 USB 主控端口。经过与多家芯片供应商讨论之后,我们确定了一个目标处理器和开发电路板,它们既支持 USB,也支持以太网,但芯片与电路板都处于发布前的最后开发阶段。这个延迟看来对项目进度没有明显的风险,而且也无其他的候选部件,因此,我们决定选用这种很有前途的目标处理器与电路板。

  目标处理器是一个基于 ARM7 的器件。这种有希望的器件与电路板有一个好处,即它们已经有了小型实时操作系统的端口,我们可以使用一个简单的操作系统架构,简化项目的工作。虽然对多项目的应用开发者来说,操作系统可以对其下的硬件作抽象处理来提高生产率。但这一抽象对本项目没有帮助,因为我们是一次性的工作,并且工作层面要低于应用开发者日常所进行的。实际在本例中,若采用庞大的操作系统会增加项目的复杂性,因为我们需要花费时间来学习它的界面和架构。

  芯片与电路板的进度均按部就班地进行,但是当我们在电路板交货前查看新器件的数据表时却冷不防地发现了问题。虽然新芯片能在同一个器件上同时支持以太网和 USB,但它有 USB 设备端口,而没有 USB 主控端口。这会造成通信错误,因为 USB 设备端口可以连接到 USB 主控端口,但不能连接到其他的 USB 设备端口。于是我们飞快地确定了一个新的目标: Atmel公司的 AT91RM9200EK 评估套件所含有的基于 ARM9 处理器。

  这次改变不仅花费了我们几周时间,而且也增加了项目的复杂性。操作系统只有  WindowsCE 或 Linux 可供选择,因此操作系统架构比原先预计的更大、更复杂。我们选择了 Windows CE,因为它是更集成的工具套件,也因为我们要在项目的台式机部分使用 Windows 对 USB 的支持。这一决定也导致了一个不利的结果,即由于我们加州办公室与法国技术支持供应商之间存在时区的差异,拖长了我们的调试过程。

  采用 ARM9 处理器内核的评估套件到货后,项目重新开始。但是,让这块电路板运行起来的过程又印证了一个道理,即不确定性会产生错误的假设。这个过程要求我们安装 Windows CE Platform Builder 5.0、ActiveSync 3.7、Embedded Visual C++ 4.0 sp4,以及用于台式工作站上 Platform Builder 的 AT91RM9200EK BSP。为 AT91RM9200EK 目标建立一个 CE 图像是一个简单但却要经过很多步骤的过程。

  评估板采用一个三步过程装载 Windows CE,因为它太大了,不能常驻板上。第一步是将来自串行数据闪存的引导装入程序装入 SRAM,并执行它。在通过串行连接建立并配置好引导装入程序以后,引导装入程序将 Windows CE 图像通过一个以太网连接装入 SDRAM,并起动它。最后,在 SDRAM 中执行 Windows CE 图像。

  在安装带有引导装入程序的串行数据闪存卡时,出现了让我们困惑的事情。我们按照电路板的说明将卡插入评估板底部的槽中,然后引导电路板。但这样做了以后,串行口却出现了意外的情况。此时,我们并没有看到装入程序,而是没完没了地重复一个字符 C。问题的原因在于 “电路板底部” 这句话,更糟的是说明书没有电路板示意图。我们最终在电路板背面发现了另一个插槽,它与电路板前面的插槽位置相同。将数据卡插到电路板背面的槽内,我们就能够建立正常的串行调试会话了。

  我们可以配置装入程序,通过以太网初始化 Windows CE 图像的下载工作,但是,下载看来并不正常。最终,我们确认随评估板提供的以太网电缆是交叉式连接的,我们是将评估板连接到路由器上,而不是直接连接到工作站。如果我们能早点注意到电缆头上的红色标记就好了,当然工具包能提供两种以太网电缆也可以避免这个困境。如果工作站专门与目标电路板沟通,交叉连接的电缆就没有任何问题。但在本项目中,一台工作站要作很多事情,因此要将其连接到网络上。

  碰到麻烦和损失一些项目时间的另一原因,涉及到要在 Windows CE 下通过 USB 端口建立一个 ActiveSync 连接。但是,这已经不是第一个在 ActiveSync 连接上遇到麻烦的项目了(参考文献 2)。

  USBoIP

  项目进入正轨后,我们发现了一家提供 USB 服务器的公司 Keyspan 有一款产品(型号是 US-4A),它可以通过以太局域网将 USB 设备接入 Mac 或 PC。Keyspan 的产品是以一个嵌入式微控制器和 Cypress 的 USB EZ 主控芯片为基础的。USB 服务器的方法与我们的项目目标相当一致。Keyspan 公司的副总裁与首席技术官 Eric Welch 为我们提供技术支持,帮助我们了解项目的底层详情。我们也找到了其他一些公司,如 Icron,它提供一个采用 Freescale 处理器的 USB 电缆替代方案(见附文“替换电缆”)。

  要在台式机与 USB 服务器之间通过网络传输 USB 数据,主控系统和 USB 服务器上的软件必须按普通 USB 连接进行修改。USB 服务器转过来起到 USB 设备的主控制器作用。为避免混淆,我们用 Keyspan 的术语“主客户机”来表示台式机上的主控制器,因为它实际上是与 USB 服务器通信,而不是与 USB 设备通信。另外,我们采纳了 Keyspan 的术语“NHCI”(网络主控制器接口),用它代替 USB 规范中定义的 OHCI(开放式主控制器接口)或 EHCI(增强型主控制器接口)。

  在主客户机一端,软件会遍查连接到 USB 服务器上的各个设备,看它们是否已在本地插入,这样设备管理器会装入相应的类或供应商为该设备提供的驱动程序。这些驱动程序将与微软的 USB 栈进行交互,因此 NHCI 主控软件也必须仿真这个接口。于是,客户端的软件有两个任务:当设备被连接时通知设备管理器;仿真微软的 USB 栈通信 API。

  当类或供应商驱动程序请求远程连接的 USB 设备时,NHCI 协议将请求打包后,通过 TCP/IP 发送。主客户机软件的最终段在网络上探测 USB 服务器,使之对用户可见。这里有一个实现细则,即网络部分是否应该与 USB 栈的仿真隔离开来,如双总线仿真器驱动程序。举例来说,微软的驱动程序开发工具包中有一个“烤面包”实例,它演示了如何编写一个内核总线仿真器驱动程序,它向设备管理器报告子设备的情况,并管理所有即插即用电源请求。NHCI主客户机端软件仿真本地 USB,与微软 USB 栈没有任何关系,而是代替它来工作。除了主客户机上的 USB 栈以外,USB 服务器也含有部分的 USB 主控栈,因为对其本地连接的设备来说,它是一个主控制器。本地 USB 栈允许服务器完成普通的轮询工作,否则主控系统会通过网络进行发送。USB 服务器提供集线器支持,因而可以管理本地带宽,独立处理集线器下游的设备,即它可以将这些下游设备连接到不同的主客户机 ,以支持串行共享。 

  主客户机上的 NHCI 软件需要对 USB 系统软件的其他部分作修改。由于一个 USB 上的所有设备都共享总线带宽,主控制器要做传输管理,并为每个设备分配带宽。但是,来自 USB 服务器的数据不会与任何本地 USB 共享带宽,因为数据与信息是通过网络传送的。网络传输的延迟要高于本地 USB。因此,底层驱动程序需要有比较宽松的时序要求。只要类驱动器不需要严格的时间限制,这种方法也是可以用的。有些情况下,通过网络控制 USB 设备可能无法完成,或者与用户期望的方式不相符。对无线连接的传输延迟问题来说,对底层时序宽松的要求起着至关重要的作用。

  共享

  本项目的概念与各种无线 USB 规格和产品有类似之处,目的是为了替换 USB 主控与设备之间的点对点连线。但有一点这些方案都没有涉及,即让多个主控制器连续地在网络上共享 USB 设备。

  用 USB 服务器模型在一个网络连接上扩展 USB 可提供这种能力,这是 USB 所没有的。Keyspan公司 的 Welch 说:“我们把串行共享模型看作 USB 在网络上的抑制器应用。它可以实现所有功能的多方共享,例如一台多功能打印机上的传真、扫描仪和内存卡接口。你可以用市场上既有的 USB 设备获得这种功能,而不必等待重新设计一款产品。”

  最近推出的无线 USB 规范也解决了用无线网络功能替代 USB 设备与主控之间连接的问题(参考文献 3)。在这一点上,该规范只关注连线的替换,而没有考虑通过网络连接时多设备串行共享的扩展问题。该规范表示,USB 会话将能够与主控计算机上的其他设备共享超宽带射频频段,而规范把支持这种带宽共享的任务放在了无线 USB 主控端上。如果主控端必须考虑与其他设备共享带宽,那么为什么不利用无线网络连接这个很好的机会,在同一网络上与其他主控计算机共享设备和带宽呢?

  USB 接口已证明自己是一个有用且成功的电气与逻辑协议。设计师也用它增加了很多接口功能,如与主控计算机的无线连网,无需用户打开计算机外壳或者关闭计算机。本亲自动手项目验证了 USB 设备连接与共享的扩展能力,并且无需重新设计制造,无需等待未来的 USB 设备就可直接发挥连接性功能。

参考文献
1. Cravotta, Robert, "Gaming as serious business," EDN, Feb 7, 2002, pg 48.
2. Cravotta, Robert, "Forge ahead?," EDN, March 6, 2003, pg 50.
3. USB Implementers Forum, Wireless Universal Serial Bus Specification, Revision 1.0, 2005, www.usb.org. 


  USB 术语

  要开发和支持 USB(通用串行总线)设备,就需要理解 USB 2.0 规范以及与之相关的 OHCI(开放式主控制器接口)规范的内容(参考文献 A 与 B)。我们亦参考了 Jan Axelson 关于该项目的著作(参考文献 C)。下面就是出自这些参考书的术语解释,它们可能会帮助读者熟悉 USB 术语。

  USB 是一种轮询式电缆总线,它支持主控计算机与同时接入多个外设之间的数据交换。任何 USB 系统只有一个主控端。主计算机系统上的 USB 接口是主控制器,或 USB 主控端。主控制器的实现可以是硬件、固件或软件的组合。它初始化所有数据传输,因而所连接的外设可以通过一个由主控端安排、基于令牌的协议来共享 USB 带宽。总线支持热插拔外设,用户可以在主控端和其它外设处于工作状态时插入、配置、使用和拔下外设。USB 2.0 支持三种总线传输速度:高速 480 Mbps、全速 12 Mbps 和低速 1.5 Mbps。

  USB 设备的一个功能是为系统提供一种能力,一个物理设备能拥有一个以上的功能。USB设备可分为多个设备类,如集线器、人机接口、打印机、扫描仪或海量存储设备。USB 设备必须保维自标识和一般配置的信息,还必须经常显示与所定义的 USB 设备状态相一致的状态。集线器设备类是一种可提供 USB 设备接入点的 USB 设备。

  USB设备与 USB 主控端连接成一种多层星状拓扑结构。总线的每个线段都是主控端与一个集线器或一个功能,或者是连接到其他集线器或功能的一个点对点连接。各个集线器均位于每个星状结构的中心。主控系统整合有一个根集线器,提供一个或多个接入点。集线器保维状态位,报告每个端口上 USB 设备的连接与否情况。主控端通过查询集线器恢复这些状态位。在插入时,主控端会起动该端口,并在默认地址上通过设备的控制流水线寻址该 USB 设备。用于主控端和设备端的 USB 电缆连接器各不相同,并有密钥保护,使用户不会插入错误的设备。这种限制很重要,因为 USB 主控端必须满足的要求要多于 USB 设备,包括为每台设备提供电源和地线,即一个额定 5V电压和最高500 mA 电流。每个电缆段可以长达 5m,并且在主控端和设备之间最多可以级联五个集线器,这样外设距主控端最远可达 30m。如果要将外设距离扩展到 30m 以上,则必须用其它接口的长距电缆,例如本动手项目就使用了以太网连接。

  在主机和设备端点上,源与目标之间的 USB 数据传输模型是一个管线。数据流管线没有 USB 定义的结构,而消息数据管线则有。管线有相应的数据带宽、传输服务类型,以及端点特性,如定向和缓冲区大小。大多数管线在用户配置好 USB 设备后就存在了。一旦用户为设备供电,就存在一个消息管线,即默认控制管线,它提供对设备的配置、状态和控制信息的访问。

  总线枚举(Bus enumeration)功能是识别连接到总线上的设备,并为该设备分配独特的地址。由于 USB 允许在任何时候接入、拔出 USB 设备,因此总线枚举对 USB 系统软件是一个不间断的活动。总线枚举也包括对设备更换的检测与处理。

参考文献
1. USB Implementers Forum, Universal Serial Bus Specification, Revision 2.0, April 27, 2000,
http://www.usb.org/developers/docs/usb_20_02212005.zip.
2. USB Implementers Forum, Open Host Controller Interface Specification for USB, Release 1.0a, 1999,
http://h18000.www1.hp.com/productinfo/development/openhci.html.
3. Axelson, Jan, USB Complete, Third Edition, Lakeview Research, 2005.


  替换电缆

  Icron 方案不仅使 USB(通用串行总线)设备能够在网络上运行,而且其目的还在于用专用无线接口替换 USB 电缆。Icron 的无线架构采用了本地与远程 ExtremeUSB 子系统加密卡(Lex 和 Rex dongle),将 USB 设备连接到主系统上(图 A)。主 USB 系统软件不用修改,因为 Lex 和 Rex 会处理时序的适应问题。


  Turnaround Timer(回转定时器)参数限制了主控端或设备端对请求或告知收到消息的响应时间。采用无线方案时,这个时间限制可以受到多种因素的影响,如半双工无线电在发射和接收模式之间转换的时间、由于带宽限制和丢包造成的较长传输时间、较高的传输误码率,以及由于纠错和加密处理造成的延迟等。

  Lex 和 Rex 系统有适应这种时序限制的办法,即当 Lex 子系统发现一个数据包不能在预定时间内返回主控端时,它会给主控系统送一个 NAK(否认)(图 B)。与此同时,Lex 会将请求转发给 Rex。Rex 将请求转发至设备,并为设备生成一个本地响应。然后,Rex 将消息传回 Lex。当主控系统重新发出请求时,Lex 辨认它已经缓存了所需信息,并将其发送给主控端。


作者:凌峰
发表时间:2006-2-27 8:59:55

与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

图1:USB软件与操作
系统的上层关系图。

USB2.0规范是USB1.1的演进,采用一个高速接口使系统生产商能推出具有相同易用连接优点的高性能产品。USB2.0支持高达480Mbps的高速数据传输,并且与USB1.1规范后向兼容,而后者仅支持全速的12Mbps和低速的1.5Mbps。

USB OTG是USB2.0规范的补充,结合了对移动应用友好的新特性,包括低功耗、更小的USB接头以及在相同的USB端口上增加了双重角色的功能(作为主机和外设的功能)。OTG通过在没有计算机的情况下,相互之间对等连接使传统的只能作为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个端口

作者:Paul Liu


产品行销总监


Email: pliu@transdimension.com。


TransDimension公司


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 3

    粉丝
  • 1

    好友
  • 6

    获赞
  • 45

    评论
  • 3123

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-28 17:10 , Processed in 0.024183 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部