虽然 USB 来自 PC 世界,但它不仅仅是一种 PC 现象。手机、相机、录音机、播放器、显示设备、调谐器等都使用 USB 连接,无论是作为外围设备,还是作为主机。甚至相框也有 USB 端口。
此外,USB 不仅适用于普通消费者。商业、工业、汽车甚至军事系统都利用 USB 的灵活性、小尺寸、高数据速率和易用性,特别是在商业现货 (COTS) 系统中。
作为嵌入式系统设计人员,我们看到这种无处不在的技术悄悄进入了我们自己的世界。以现代数据记录仪、示波器、逻辑分析仪、波形记录仪、仪表、频谱分析仪、诊断设备等为例。特别是在嵌入式系统开发方面,USB 连接允许直接通过我们的编译器和调试器重新刷新、仿真和访问 JTAG。有没有人记得过去的大型、精致和侵入式在线仿真器 (ICE)?
本文介绍了嵌入式系统设计人员可用于添加 USB 功能的选项。它在决定如何以及在什么级别实现 USB 时检查架构方法和关键因素。
做你最
擅长的事情 许多公司拥有使他们与众不同的核心竞争力——独特的算法、专利解决方案或专有架构。他们的工程师是各自领域的专家,尽管他们可能没有时间或带宽成为每个标准的专家,尤其是当这些标准不断更新、更改和被更高版本取代时。
USB 也可能出现这种情况。规范冗长而复杂,了解所有细节是一项全职工作。这就是以更高级别形式封装的专业知识发挥作用的地方。
设备制造商通常是标准规范中的内容和未来内容的专家。他们是标准委员会的成员,并且经常指导标准。他们负责确保他们的零件符合标准,这样您就不必担心每一个小细节。
是的,打包的解决方案可能会花费更多,但它们可以让您的设计更快地进入市场。此外,随着标准的更新,零件也会更新。芯片制造商有责任保持最新状态,他们和您的生存都处于危险之中。
话虽如此,在嵌入式设计中支持 USB 有两种主要方法。一种方法是使用专用 USB 芯片来处理所有 USB 交互,并充当嵌入式微控制器的透明数据端口。另一种方法涉及在嵌入式微控制器和固件中实现 USB 协议。我们将探讨这两种选择。
最简单的方法
并非每个嵌入式系统设计都以惊人的速度运行并使用数百万个晶体管处理器。事实上,8 位处理器的销量仍然比所有 16 位和 32 位处理器的总和还要多。厨房用具等简单应用具有相对简单的显示和执行相对简单的功能。除非您正在设计基于 AI 的“Talky Toaster”,否则 8 位处理器的马力绰绰有余。
虽然 USB 连接对于烤面包机来说似乎很愚蠢,但有 8 位应用程序需要 PC 连接,而且由于过去的 COM 端口已让位于 USB,因此需要 USB 链接。幸运的是,COM 端口并没有在微控制器的世界中消失。事实上,尽管 I²C、SPI 和 CAN 很受欢迎,但典型的微控制器现在比以往任何时候都拥有更多的 UART 式 COM 端口。
您需要重新设计(并可能重新认证)新的 PC 板,以将 USB 功能添加到使用基于标准 UART 的 COM 端口的传统设计中——也就是说,如果它不是基于 DB9 的USB系列Future Technology Devices International (FTDI)的转换模块(见图 1)。这些 USB 转 RS-232 转换设备可作为公头或母头(DTE 或 DCE)接口使用,用 USB MINI-B 插座代替连接器的 DB 引脚侧。
完整的 USB 到 RS-232 转换发生在 DB9 型 RS-232 连接器内。
由于它们在 PCB 端模拟标准 DB9 连接器,因此 FTDI 芯片直接插入,无需重新设计 PCB。此外,它们模拟 COM 端口,因此需要 FTDI 免费驱动程序以允许软件通过 USB 使用标准 COM 端口调用或允许应用程序软件通过 API 连接。
使用这种方法需要牢记几件事。RS-232 电平可以通过低成本电缆传输数百英尺;USB不能。如果设备需要远离驱动主机,那么转换板或电缆将是更好的选择,因为它允许更长距离的 RS-232 信号完成繁重的工作。请注意,RS-232 电缆可能不允许目标板通过 USB 供电,就好像它是纯 USB 链路一样。
这种方法非常适合保持旧设计的活力,但它可能不是新设计的首选技术。首先,DB9 连接器比 USB 连接器大得多,可能会施加太多的尺寸限制。其次,如前所述,RS-232 信号电平不是逻辑电平。相反,RS-232 使用非归零 (NRZ) 信号,该信号可高达 +15 伏至 –15 伏。这将破坏标准逻辑芯片,因此需要一个电平转换器来安全地连接到目标微控制器。
为了消除新板上的电平转换器,存在多个 USB 到 UART 转换器。Exar Corporation提供了一个不错的紧凑型解决方案,其小型 16 针 QFN XR21V1410IL16-F USB-to-UART 芯片。这些精选部件支持 USB 2.0 的 12 Mbit/sec 高速速率,并针对半双工和 RS-485 类型的多点应用。Exar 的UART 产品概述中讨论了该部分功能的详细信息。该公司还提供具有更多渠道的更大零件。
Microchip Technology通过其特色 MCP2200-I/SS提供 USB 到 UART 功能。两针部件还支持 12 Mbit/sec 数据速率,并为 Windows® 应用程序使用标准虚拟 Com 端口驱动程序。这些总线或自供电部件支持高达 1 Mbit/sec 的 UART 数据速率,并且可以使用硬件流控制。片上 256 字节的 EEPROM 允许存储配置数据。这些部件在 5 和 3.3 伏电压下工作。
Silicon Labs 提供了一个精心设计的解决方案,其部件包括CP2110-F01-GM USB 到 UART 桥接器。这些器件支持 12 Mbit/sec 数据速率、硬件流控制、通用 I/O 和片上稳压器,还具有 343 字节的一次性可编程 (OTP) 存储器块。这对于用于自动软件版本跟踪的序列号、唯一地址和部件号修订信息很有用。培训模块描述了如何使用这些部件进行设计以及特性和优点。
FTDI 提供流行的 USB 转 UART 转换器系列,其部件具有多达四个 UART。例如,64 引脚 QFN FT4232HQ-REEL包含四个独立的 UART,并实现了 USB 2.0 可以支持的 480 Mbits/sec 的完整数据速率。多功能 UART 不仅可以作为 UART 运行,还可以模拟 JTAG、SPI、I²C 和其他 bit-banged 串行协议。自动传输功能支持半双工式 485 仿真。
在设计复杂的基于 USB 的项目时,有几个因素使其成为需要考虑的部分。首先是可实现的数据速率。大多数设计都能在 USB 2.0 的 12 Mbit/sec 高速模式下充分发挥作用,在这种模式下实现完整的 480 Mbit/sec 链接将是多余的。然而,高带宽仪器、高端视频、多媒体和医疗设备等高端应用可能需要更高的数据速率。
此外,在设备端拥有多个 UART 和串行端口的能力为对设计元素进行非侵入式控制打开了大门。例如,当一个高端微控制器在进行实时和密集的应用程序时,可以在不中断主机的情况下操作板上的其他芯片。这包括用于自校准和自动校准的模拟控制和偏置元件、NVRAM 中的参数更新、更新控制和 LED 状态的数字 I/O 状态以及按钮的独立监控。
USB 到 UART 转换器芯片的功能非常特殊,因此有几个设计和评估模块可用于快速轻松地测试它们以进行原型设计。一个例子是 DLP Design Inc. 系列的USB 评估模块基于 FTDI 部分和 FPGA 实现。
它在那里
高端微控制器具有内置的 USB 硬件。与任何其他片上外围设备一样,I/O 引脚专用于 USB 差分数据线,特殊寄存器用于启用和控制这些功能。
与所有外围设备一样,供应商之间甚至零件之间存在不同级别的性能和功能。高端产品包括STMicroelectronics 的基于 ARM11™ 处理器的 Cartesio™ STA2064N,具有嵌入式 GPS 的高性能 533 MHz“信息娱乐应用处理器”。片上低功耗 ARM11™、TFT 控制器、GPS、USB、USB OTG、蓝牙和音频的组合使其成为考虑在小型低功耗器件中实现高端功能的部件(参见图 2)。
图 2:Cartesio 设备是基于 ARM11™ 处理器的高端引擎,具有许多先进的高速数据密集型外围设备,例如全速 USB 2.0、TFT 控制、GPS、流音频、蓝牙等。(由意法半导体提供)
Fujitsu Semiconductor America MB86R01PB -GSE1是一款高性能 ARM9™,具有 TFT 控制、USB、HDD 和 LAN 功能等等。片上动态可切换主机端和外设端 USB 2.0 高速 (HS) 和全速 (FS) 接口使该部件能够实现 USB 连接链路的全速。它还具有完整的通信和视频捕获能力、A/D 以及带有内置 2D 和 3D 渲染引擎的图形显示控制器。每个总线组中的总线架构和外设选择都很有趣(参见图 3)。
图 3:MB86R01PB 还可以处理全速 USB 2.0 数据速率,是资源和高性能外围设备的多功能集合,包括 2D 和 3D 图形渲染引擎(由 Fujitsu Semiconductor America 提供)。
Cortina Systems、Texas Instruments和Micrel Inc. 等也提供类似的高性能部件。
通用与特定应用
很难区分什么是特定应用和什么是通用。我们是那些利用我们的资源并使用它们来实现我们的目标的人。某人对“特定于应用程序”一词的任意分配可能不适用,因为完全不同的应用程序可能需要相同的资源和功能。如果库存零件完全适合您的设计,这是否使其成为特定应用程序?
许多复杂的库存处理器可用于您的设计。以恩智浦半导体为例 LPC11U24FHI33/301。这款基于 50 MHz ARM® Cortex™-M0 的处理器包括 10 位 A/D 转换器;I²C; I2S;54 个 I/O;UART 和 USART;和 EEPROM,以及一个 USB 2.0 接口。
即使是像AKM Semiconductor, Inc. 的AK5371A 这样目标明确的部件也具有使其在特定应用目标之外有效的外设和资源(参见图 4)。它的标准音频 PLL 采样率控制器显然是针对音频应用的;可编程增益放大器;和双通道 16 位 A/D 控制器,带静音和音量控制。然而,仪器仪表、数据采集和医疗设计可以很好地利用这种功能组合。那么它真的是 ASIC 吗?
图 4:尽管 AK5371A 专门针对音频记录应用,但它非常适合多种类型的数据采集和波形记录应用,例如数据记录和医疗应用(由 AKM Semiconductor, Inc. 提供)。
关键是,不要打折那些被吹捧为特定于您的设计的应用程序的零件。而是查看外围设备和资源的组合,您将有更多可行的选择。
对您有利
供应商提供的 USB 设计解决方案的最大好处是他们提供的 IP。很多时候,有据可查的 API 和参考程序对芯片用户来说是免费的或成本很低。他们的业务是销售芯片,而不是软件,所以为了吸引你使用他们的芯片,他们提供免费的参考软件。
免费软件的可用性可以使您降低系统成本并实现相对较快的上市时间,因为您只需将软件剪切并粘贴到您的应用程序中即可。这也将支持遵守 USB 标准的负担推到了芯片供应商的肩上。
请注意,芯片制造商并不总是提供源代码,只是提供二进制文件和 API 文档。在采用硅解决方案之前,请检查控制级别和功能粒度是否适合您的需求。
如果芯片制造商捆绑了第三方解决方案,请检查芯片制造商是否获得许可或购买了他们的软件 IP。如果获得许可,每个设计、每个公司、每个产品或每个应用的价格是多少?您不想为产品的不同迭代中使用的同一代码块支付多次费用。
此外,由于 USB 是标准通信链路,大多数芯片制造商的开发系统都提供了内在支持。这意味着您本身不需要特定的 USB 开发套件。相反,一些芯片制造商的设计环境以某种方式支持 USB 开发。由于接口在许多芯片上,它被带到板上的连接器上,并且固件也被芯片制造商记录和支持。
在角落附近
USB 1.1 和 USB 2.0 的成功正在为即将到来的更新的 USB 3.0 口味铺平道路。虽然现在还为时过早,但新的 USB 标准将使用 8b/10b 编码,与一些高端光纤电信系统正在使用的方法相同。USB 3.0 还将数据速率提高到 5 Gbits/sec 的包络极限。这比目前大多数应用程序仍然不使用的 480 Mbits/sec 提高了十倍以上,即使在今天。
对更大文件、更多交互和更高分辨率的需求催生了对 USB 3.0 的需求,这些速率带来的新功能肯定会出现。
密切关注英特尔、AMD、赛普拉斯半导体和德州仪器等已经承诺支持 USB 3.0 的公司。一些兼容USB 3.0的芯片开始出现,但距离支持和知识库的建立以及“杀手级应用”开始出现可能还需要一段时间。与此同时,今天和明天的 USB 2.0 兼容设备仍有许多用途。
评论
查看更多