符合嵌入式设计的USB连接技术解决方案

时间:2019-01-28

随着串口从台式机和笔记本电脑中消失,通用串行总线(USB)现在成为需要连接到PC的各种外围设备的通用接口,无论是作为开发平台还是商用产品。在这个由两部分组成的系列文章的部分中,我们快速介绍了USB接口标准及其在嵌入式系统中不断发展的作用。在这篇结论文章中,我们将仔细研究集成和独立USB解决方案之间的选择,以及检查MCU制造商为其USB连接添加的一些创新性曲线,以帮助您的产品在具有挑战性的应用中展开竞争。我们将总结一些设计技术,您可以使用这些技术使USB连接更符合嵌入式设计的要求。

决定何时集成

正如我们在部分中简要讨论的那样,有几个因素会影响是否与具有片上USB功能的MCU实现USB连接或使用单独的USB控制器。在许多需要简单USB连接的情况下,Atmel的ATmega8U,Microchip Technology的8位PIC18F13K50或Silicon Labs的C8051F系列等集成解决方案几乎是不费脑筋的。

在需要支持特定USB协议类的应用中,例如UART到USB或USB到SPI,选择变得更加细微。例如,如果项目涉及使用RS-232接口更新现有产品以支持USB,则使用单独的USB-UART桥接器,例如Microchip的MCP2200 Silicon Labs的CP2104或德州仪器的TUSB3410,可缩短开发周期并减少中断到制造业供应链。如果原始设计基于速度较慢,功能较弱的MCU,独立控制器也可能特别有用,它可能没有额外的处理能力(或存储空间)来支持协议/格式转换所涉及的附加任务。

应用优化的USB芯片有助于微调您的设计

曾几何时,设计带有一个或多个USB端口的嵌入式系统非常简单,因为大多数设备(及其各自的驱动软件)非常相似,所以除了遵循参考设计之外,设计师几乎无能为力。不再。位于许多现代MCU上的USB连接后面的芯片已经发展并进行了调整,以满足粗糙的嵌入式系统环境的需求。 MCU制造商现在提供各种支持USB的产品,这些产品具有各种级别的硬件加速,可满足各种应用的价格和性能目标。

也许的创新领域是MCU如何执行请求,确认,错误检查以及与USB协议相关的其他功能。在不经常使用MCU的USB接口或传输小块数据的应用中,使用软件执行协议的例行信令和握手,数据包检查和错误检测任务可能很好。但是,如果您的应用需要频繁和/或大型USB事务处理,则可能会对MCU的有限处理资源造成太大负担。

直到近,的解决方案是使用独立的USB外设控制器,如赛普拉斯半导体的CY7C63801或Microchip的USB3300-EZK。现在,一些制造商提供具有集成USB控制器内核和其他功能的MCU,可以处理几乎所有与USB相关的任务。

例如,Atmel的AVR XMEGA系列8/16位MCU具有全速USB控制器内核,除了卸载常规协议功能外,还使用Ping-Pong缓冲器来减少或消除重置发送丢弃的数据包(NACK)以实现更高效的传输。这种组合允许接口以USB全速率规范支持的11 Mbps(或有效数据速率高达8.72 Mbits/s)运行或接近,同时仅消耗CPU处理能力的7%。许多Atmel MCU还支持专有的多数据包传输模式,该模式使用硬件逻辑通过将大多数大容量存储设备使用的512字节数据块拆分为块传输协议支持的64字节数据包来提高USB块传输的效率。相同的机制还可以将传入的多数据包传输重新组合成更大的数据块,而无需任何CPU干预。

进一步推动硅食品链,Energy Micro在其基于EFM32 32位Cortex-M3的Gecko MCU系列的许多变体上提供了多种性能增强功能。大多数外围功能(包括串行通信和USB端口)的活动由单独的低功耗反射总线协调(图2)。除了防止数据传输消耗任何主系统总线的带宽之外,来自一个外设的事件和信号可以用作其他外设的输入信号或触发,并以这种方式确保时序关键操作和降低的软件开销。此外,内置3.3 V稳压器还允许用户通过USB链路提供的电源运行MCU。

符合嵌入式设计的USB连接技术解决方案

图2:Energy Micro的EFM32 MCU架构包括外围反射系统,这是一个独立的外围总线,允许智能外设(包括USB端口)执行数据传输,几乎不会干扰CPU或影响主处理器总线。 (由Energy Micro提供。)MCU制造商也在提供USB技术的改进,这对嵌入式和更传统的应用都有好处。例如,几个MCU现在提供片上定时电路,消除了与USB接口的定时时钟中传统使用的参考晶体(及其相关的无源元件)相关的成本和PCB面积。直到近,基于晶体的定时源才能保持USB收发器每1 ms(±0.0005 ms)执行的帧起始信号交换所需的0.05%。 Silicon Labs向其C8051系列8位MCU推出了C8051F38x,C8051T62x和C8051T32x,其中包括一个片上时钟调谐电路,可从输入的USB数据包中恢复其时序信息。 2012年初,他们的“Precision 32”SiM3U1xx系列也推出了这一功能,这是32位处理器的业界首创。

Atmel的XMEGA系列8/16位MCU还提供无晶体操作,Microchip将为其PIC16系列推出一系列新型微控制器(例如近发布的“未来产品”8位PIC16F1459)精密内部振荡器或自动时钟调谐电路,可从输入的USB数据包中恢复其定时信息。

Power

在嵌入式系统中,USB收发器的功耗可占整体功率预算的很大一部分,因此了解控制它的因素非常重要。虽然图3中的公式初是为Microchip的USB PIC单片机的数据表开发的,但它们提供了一种有用的方法来计算MCU嵌入式USB收发器使用的电流。从总体方程中的术语PZERO(逻辑“0”的百分比)和PIN(输入流量的百分比)的关系来看,很快就会发现功耗取决于应用,因为它根据数量和值而变化。传输的数据。

符合嵌入式设计的USB连接技术解决方案

符合嵌入式设计的USB连接技术解决方案

图3:USB收发器消耗的功率可以使用相对简单的公式计算,该公式描述了收发器的特性,它正在发送和接收的数据,以及它所连接的电缆的长度。 (由Microchip Technologies提供。)

在这些示例中需要注意的另一个有趣的事情是,IN流量为零的百分比会影响从总线吸取的电流量。许多设计人员使用逻辑“0”作为数据变量的默认值,但重要的是要注意,与使用“1s”相比,这实际上可以略微增加系统电流。另请注意,这只是IN流量的考虑因素,即从USB外设到USB主机的流量。

现在,许多类别的USB外设都使用USB作为需要100 mA或更低电流的应用的事实上的电源。对于需要低于500 mA的应用,决策变得更加困难,因为自供电集线器不太常见,许多设计人员仍然选择使用单独的总线电源。

对于要求超过500 mA的应用,USB规范包括电池充电规定,允许从系统中提取高达1.5A的电流。遗憾的是,由于支持电池充电规范的主机系统相对较少,外围设备制造商不愿意生产可以利用它的设备。您将看到这种电池充电规格适用于某些基于USB的手机或平板电脑充电器。电池充电规范包括一种廉价(虽然效率低)的方式来实现充电器电路,只需通过一个电阻(《200Ω)短接USB连接的D +和D-引线,这种技术在大多数廉价的基于USB的手机中都会遇到/平板电脑充电器。从信令的角度来看,为主机实现电池充电规范v1.2非常简单。所需要的只是0.5和0.7V之间的电压源,可以在该范围内提供250μA电流,但不会将1.5k上拉电压拉至2.2 V以下的3.0 V(图4)。此电压源应连接到D-并在分离设备时启用,并在设备连接时禁用。图4是一个简单的原理图,通过运算放大器二极管,两个电阻和一条控制线来实现这一目标。

符合嵌入式设计的USB连接技术解决方案

图4:一个简单的电路,允许USB主机使用其可选的高功率电池充电模式。 (由Microchip Technologies提供。)

在外设上实现BCv1.2规范要复杂一些。它需要两个这样的电压源电路,两个恒流吸收器,以及USB外设上的更多代码实现,但它仍然在普通嵌入式设计人员的掌握之中。然而,不愿制造商投资支持其主机系统中的高功率充电选项所需的额外单位成本,导致业内一些“鸡与蛋的僵局”。幸运的是,如果PC制造商和其他USB主机设备制造商决定提供能够支持平板电脑和与资源紧密集成的其他移动外围设备的更高功率要求的基于台式机的产品,这可能在未来几年内发生变化他们的主机系统。

USB功能通过与各种USB设备进行通信,以及在单根电缆中添加可提供高达500 mA电流的电源选项,为系统增加了便利性和灵活性。正如我们所指出的,通过添加集成MCU或独立USB解决方案,可以将USB通信设计到嵌入式系统中。将USB融入嵌入式设计的主要考虑因素包括USB交易的大小和频率,USB收发器的功耗以及是否涉及USB电池充电规范(v1.2)。我们提供并讨论了集成USB MCU和独立控制器的示例。

上一篇:锂离子电池SOC的充电状态测量解决方案
下一篇:RF开关技术的应用设计方案介绍

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料