接口/总线/驱动
作者:巴尔加维·尼萨尔加、基思·奎林、莱斯·泰勒
新的 MCU 为便携式嵌入式应用的 USB 带来了功效和简单性。
USB 的普遍性使其成为需要连接到 PC 或其他主机设备以进行配置、定期下载数据或固件更新的应用程序的极具吸引力的接口。这些设备通常是便携式的,例如远程收集需要稍后上传的数据的医疗或工业工具。由于这些设备是便携式的,因此最终的 USB 实现必须既经济又节能。
USB 成功的主要原因之一是其无与伦比的易用性。但在表面之下,USB 是一项复杂的技术,它巧妙地掩盖了用户的复杂性。因此,刚接触 USB 的开发人员往往会低估所涉及的工作量。还会遇到许多新的术语和程序,而且事情通常不会按应有的方式“正常工作”。
隐藏的挑战可能会给开发人员带来意想不到的延误,而延误的代价是昂贵的。
对于试图专注于使他们的产品与众不同并为客户提供最佳价值的开发人员来说,这些挑战是一个不受欢迎的负担。出于这个原因,TI 致力于将 USB 技术作为一种集成的简化解决方案提供,使开发人员能够专注于在其应用中使用 USB,而不是学习 USB 作为一种技术。
介绍 MSP430TM USB 微控制器
为满足开发人员的需求,TI 已将全速 USB 引入 F5xx 系列 MSP430 微控制器 (MCU)。通过集成 USB 具有强大的性能(高达 25 MHz)、大内存(Flash 和 RAM)、集成的智能外设(包括片上 ADC、比较器、硬件乘法器、DMA 控制器、温度传感器和其他外设),以及电源管理,MSP430 是在嵌入式应用中实现 USB 的理想 MCU(参见图 1)。
图 1:将 USB 与 MSP430 架构的强大性能和高集成度相集成,为在嵌入式应用中实现 USB 创建了理想的微控制器。
通过简单地添加一个 USB 连接器和一些分立器件,MSP430 USB MCU 是一个完整的解决方案,适用于需要 USB 连接和模拟外设的应用,同时具有超低功耗。从软件的角度来看,TI 提供了支持三种最常见设备类别的 API 堆栈。
新型 MSP430 USB MCU 基于 TI 最新、最先进的 MSP430 架构 F5xx。每个都支持 1.8 至 3.6 V 的操作,时钟速度高达 25 MHz,集成的可编程电源监控约为 200 nA。新的时钟源进一步最大化了功率、速度、精度和成本之间的权衡。闪存写入/擦除可以在整个 Vcc 范围内执行。除了提供各种闪存大小(64 到 128 KB 和 16 到 256 KB)外,支持 USB 的 MSP430 设备还具有专用于 USB 的 2 KB RAM,当 USB 被禁用时,可用于一般用途。
加速开发和易用性
TI 认识到消费者和工程师已经开始期望 USB “正常工作”。事实上,虽然 USB 看起来像 UART 或 SPI 端口一样简单,但该协议的实现并非易事。与 UART 或 SPI 接口不同,一致性是 USB 设计的主要考虑因素,即使在最简单的应用中也是如此。例如,主机可以随时挂起连接的设备。设备还必须能够处理“意外删除”。对于以前没有经历过这个过程的开发人员来说,这种意外的考虑可能需要额外的开发时间并导致意外的延迟。
MSP430 的 USB 支持的部分附加值是通过直观的 API 堆栈管理实现 USB 的许多底层复杂性。API 堆栈专为开发人员快速吸收而设计。与 USB 本身一样,它们包含许多“幕后”的复杂性,使开发人员免于不必要的麻烦,以帮助加快开发时间。堆栈源代码对希望完全控制的开发人员开放。对于每个堆栈,都提供了完整的程序员指南,作为 API 函数调用的参考,并清晰地描述了底层概念。
此外,TI 还提供了 MSP430 USB 描述符工具。该工具用作 API 堆栈的“控制面板”,允许快速配置。它会根据用户输入自动创建每个 USB 设备必须向主机报告的描述符。这为开发人员节省了大量时间,并让您放心,描述符已正确完成。
堆栈适用于最常见的设备类别,并且不收取额外费用。虽然开发人员不应低估创建稳健 USB 接口所需的条件,但 TI 已显着缩短了 USB 学习曲线。通过这种方式,开发人员可以从学习 USB 作为一项技术的细节的负担中解脱出来,而能够专注于使用 USB 来增加其应用程序的价值和可用性。
多设备类
MSP430 USB API 堆栈提供的部分简单性在于支持三个设备类:
通信设备类 (CDC): CDC 将 USB 端口作为标准 COM 端口提供给 PC 应用程序。COM 端口是流行的接口,灵活、快速且易于使用。因为它使用批量传输,CDC 提供了高带宽和合理的简单性。使用 CDC 的主要缺点是开发人员必须将一个简单的文件分发给最终用户,以使其与 Windows 中内置的 CDC 驱动程序相关联。幸运的是,Windows 中的“检测到新设备”安装相当简单,并且最终用户已经很好地接受了这个小步骤。
人机接口设备 (HID):虽然 HID 通常被认为主要用于鼠标和键盘,但它是一种灵活的设备类别,适用于各种应用。TI 的 HID API 有效地概括了 HID 功能,从而通过允许开发人员以与 CDC 设备/COM 端口完全相同的方式访问接口来消除与 HID 报告相关的复杂性。虽然它的带宽有限(最高 64 KB/s),但它不需要像 CDC 那样分发文件,它在 Windows 中静默加载,无需安装过程。
大容量存储类 (MSC):MSC 是用于实现非常成功的 USB“闪存驱动器”以及数码相机和闪存卡读卡器的设备类。由于它是为移动大量数据而设计的,因此它提供了更高的带宽,类似于 CDC。权衡是更复杂——例如,开发人员将需要实现一个文件系统——以及使用更多的代码空间。与 HID 一样,MSC 设备在 Windows 中静默加载,无需安装过程。TI 免费提供 MSC API 层。考虑到软件处理文件系统、不同媒体类型和闪存管理(即通过磨损均衡和其他技术)的各种配置可能性,开发人员可以灵活地购买商业实现或使用许多开放式应用程序之一。可用于 MSP430 的源系统。
在这三个设备类别中,开发人员应首先考虑 HID。如果应用程序可以在可用的 64 KB/s 带宽内工作,那么 HID 通常是最具成本效益的选择,因为用户无需安装即可插入并使用它。由于 Windows 安装过程有时会给用户带来问题,因此避免它会导致减少支持电话和客户退货。
TI USB API 堆栈支持三种数据传输类型:USB 级控制/状态数据的控制、低带宽的中断、固定延迟数据和高带宽可变延迟数据的批量。这些数据类型的使用由设备类决定;开发人员不必关心与不同类型相关的大部分细节。
借助这些数据类型,MSP430 的 USB 可以支持任何需要控制/配置、固件更新或需要传输大量数据(与流数据相反)的应用。MSP430 不支持同步(高带宽、固定延迟)数据,因此不适用于流式音频/视频应用。
正如 MSP430 很灵活一样,它的 USB 功能也很灵活。任何 USB 设备都包含一定数量的所谓端点。对多个端点的支持允许复合 USB 设备可以与主机进行更灵活的通信。例如,使用 MSC 进行批量数据传输并使用 HID 来管理控制和状态的设备由三个输入和三个输出端点组成。MSP430 架构支持多达 8 个输入和 8 个输出端点,可为大多数应用提供足够的容量,而不会增加成本。
超低功率效率
就其本质而言,MSP430 架构已针对低功耗运行进行了优化,无论是在使用 USB 还是不使用 USB 时。例如,MSP430 器件具有五种低功耗模式,使设计人员能够延长便携式应用中的电池寿命。MSP430 以最低功耗提供高性能,在待机模式下的有功功耗低至 160 µA/MHz 和 1.5 µA,再加上从待机状态快速唤醒(小于 5 微秒)和低至 1.8 V 的工作电源电压。 与电池供电的主机通信时,板载 DMA 控制器还可以节省大量电力。
USB 在嵌入式应用中的优势之一是能够通过接口为设备供电。理想情况下,电池供电的设备可以在连接到主机时通过总线为设备供电,从而最大限度地延长工作寿命。由于 USB 主机通过总线提供 5 V 电源,因此需要一个 LDO 将电压降至 IC 的 3.3 V 典型值。MSP430 器件通过集成高效的 LDO 以及相关的上拉功能来简化电源设计并节省电路板空间。除了允许 MSP430 直接在 5 V 电压下运行之外,集成 LDO 和上拉电阻器还减少了组件数量,并且相对于分立式实现节省了 0.15 到 0.20 美元。通过将 USB 电源和其他 MSP430 模块的电源管理分开,只要 USB 设备连接到主机,就可以始终为 USB 模块供电。
MSP430 设计为在 LDO 的功率限制范围内运行,甚至可以从 USB 总线获取电源以为整个系统供电。通过从外部驱动 3.3 V 输出 (VUSB),MSP430 可以为系统提供高达 12 mA 的电流(参见图 2),并且还无需系统 LDO。对于高电流系统(需要超过 12 mA 的电流)或即使通过 USB 连接也可以通过电池为设备供电的应用,MSP430 提供了绕过集成 LDO 并从外部电源驱动 DVcc 的灵活性或调节器(见图 3)。TI 提供多种外部 LDO,非常适合低成本 (TPS73033)、低功耗 (TPS67233)、低噪声 (TPS1733) 和低噪声、高电流 (TPS73433/735) 应用。
图 2:MSP430 USB 微控制器可以从 USB 总线供电,以 12 mA 为整个系统供电。
图 3:对于高电流系统或即使通过 USB 连接也可以通过电池为设备供电的应用,MSP430 提供了绕过集成 3.3 V LDO 并从外部电源驱动 DVcc 的灵活性。
5 V USB 总线电源也可用作电池充电的主要电源(参见图 4)。在此配置中,无论 USB 端口是否插入主机,DVcc 始终来自电池。插入端口后,充电器通过 USB 接收电源为电池充电。TI 的 BQ2407x/3x 系列充电器专为 USB 电池充电应用而设计。
图 4:USB 供电也可用作电池充电的主要来源。TI 的 BQ2407x/3x 系列充电器专为 USB 电池充电应用而设计。
例如,鼠标和键盘中使用的低速 USB 通常不适用于任何需要现代通用 MCU 来处理足够数据的应用程序。具体来说,以较慢的数据速率进行传输会浪费总线带宽并消耗更多的功率,因为它要求 MCU 在更长的传输周期内保持活动状态。同样,除非应用程序需要支持大型音频或视频传输,否则高速 USB 会提供太多带宽。全速 USB 更适合大多数嵌入式应用。
虽然成为 OTG 似乎是一个吸引人的选择,但它并不适合许多应用程序。嵌入式主机必须能够为连接的设备提供 8 mA 电流。这一要求导致许多公司重新考虑支持 OTG 主机功能的意图,特别是在需要单节电池长使用寿命的应用中。对于确实需要 OTG 支持的应用,TI 在其 Stellaris MCU 产品组合中提供了解决方案。
一般来说,USB 设备比嵌入式主机更便宜、更简单且开发速度更快。带有 USB 的 MSP430 系列经过优化,可满足 USB 设备的需求,而不会因实施 USB 主机所需的额外复杂性、额外内存、集成外设和更大电源而加重这些应用的负担。
照顾细节
为了兑现其简化 USB 的承诺,TI 提供了范围广泛的工具和软件,以帮助开发人员快速上手使用和实施强大的 USB 解决方案。除了 API 堆栈外,TI 还提供:
USB 描述符工具:USB 描述符工具在简化 USB 设计和实现方面发挥着关键作用。这个基于 GUI 的工具自动配置 USB 堆栈以反映特定应用程序的特定要求,处理描述符字段的管理,包括 VID、PID、字符串、从主机汲取多少功率等。与其要求开发人员通过闯入 USB 堆栈并编写代码来支持他们的应用程序来深入研究各种 USB 描述符字段背后的细节,描述符工具从开发人员那里收集所需的信息并自动生成对 API 堆栈的适当软件修改,不需要开发人员进一步的工作。此外,USB 描述符工具旨在使复合设备的高级堆栈配置更加简单。
引导加载程序(BSL):TI 的 BSL 是为需要现场固件更新能力的开发人员提供的另一个重要工具。USB 的常见用途之一是将更新推送到已部署的设备。例如,医生可以将医疗仪器插入 PC 并让它快速自动更新自己的新功能或修复错误。BSL 工具通过将固件映像文件转换为可交付给最终客户的独立 PC 可执行文件,简化了开发人员的更新过程。所有 MSP430 器件均配备 BSL,当通过 USB 实施时,即使在器件未通电(即 MSP430 通过 USB 供电)时也可以安全地进行更新,无需安装电池即可实现快速高效的生产线编程。对于开发者来说,
VID 共享计划: TI 还为开发人员提供参与其 VID 共享计划的机会。每个 USB 设备都需要一个 Vendor_ID (VID) 和 Product_ID (PID)。对于只生产少数器件的公司,TI 可以提供 VID 和唯一的 PID,以绕过向 USB 联盟注册 VID 所需的时间和金钱投资。
通过处理通过 USB 描述符工具、引导加载程序、API 堆栈和来自其广泛的第三方网络的其他支持软件实现 USB 的“零碎”,TI 简化了使用 USB 的过程。通过提供 USB 所需的大部分底层基础,TI 的 MSP430 使开发人员能够专注于其应用程序的增值组件,而无需担心与 USB 等复杂接口相关的无数实施问题。
高集成度
除了集成 USB 之外,这些新控制器还集成了标准 MSP430 架构之外的许多其他功能和外围设备,从而进一步简化了开发,包括:
可编程 PLL:这种灵活的可编程 PLL 可以适应广泛的晶体频率,使开发人员能够根据应用相关标准选择频率,例如成本、系统中的其他组件,或者系统中其他地方是否需要该频率为了另一个目的。
超低功耗振荡器 (VLO): VLO 使开发人员能够在主机暂停时保持 USB 模块运行。这很重要,因为 USB 模块必须能够识别主机何时想要唤醒它。VLO 以这种方式汲取的电流在亚微安范围内。
比较器_B:MSP430 USB 微控制器还提供了一个新的比较器,用于产生迟滞,无需外部组件。许多应用需要能够根据两个阈值监控输入,例如电池充电和电容式触摸界面。典型的比较器只能监控一个阈值,并且必须配置为监视上升或下降阈值,并在超过另一个阈值时切换到另一个阈值。新的比较器被称为 Comparator_B,是一种通用的参考发生器,它使用能够产生 32 种不同电压参考电平的 R 梯形图。这种方法避免了对外部组件的需求以及使用外部电阻器时的恒定功率消耗。Comparator_B 以三种模式运行,超低功耗(典型值为 0.1 µA 至最大值 0.5 µA)、正常(典型值为 10 µA 至最大值 30 µA)、
端口映射:基于 USB 的 MSP430 微控制器的一个独特功能是端口映射控制器。通过端口映射,开发人员可以在特定范围的引脚上动态重新配置数字输出,例如定时器 PWM 或 SPI/I2C 接口。这种映射在电路板设计期间实现了信号路由的灵活性,允许设计人员根据需要将信号移动到 IC 的另一侧。每个数字输出都可以映射到多个输出引脚,这在例如多个引脚上需要相同的定时器 PWM 的情况下很有用。在引脚对引脚兼容性方面,端口映射还减轻了与从一个设备系列迁移到另一个设备相关的挑战。
USB
入门 MSP430 USB 微控制器入门非常简单。MSP430F552x 样品套件包括带有 USB 支持的 80 引脚 MSP-TS430 目标板 (#MSP-TS430PN80-USB) 以及样品硅片。借助经过验证的 MSP430 工具链和全面的 USB 支持包,已经熟悉 MSP430 的开发人员可以轻松地将 USB 引入他们的应用程序。此外,TI 的众多第三方还提供范围广泛的软件和硬件,以加快开发速度并加快上市时间。
开发人员可以从三个支持 USB 的 MSP430 微控制器系列中进行选择,每个系列都具有灵活的路线图和可扩展的选项,以满足各种嵌入式应用要求:
中档应用: F552x / F551x 提供 64 至 128 KB 闪存和 4 至 8 KB (+2 KB) RAM,以及 Comparator_B 功能。F552x \ F551x 器件现已开始提供样片。
高端应用: F563x/F663x 可能是有史以来功能最丰富的集成 MSP430 器件。该器件具有 128 至 256 KB 闪存和 16 KB (+2 KB) RAM,具有 6 个 DMA 通道、RTC 备份模式(即使在 Vcc 丢失时,RTC 也能以低于 1 µA 的电流运行)以及许多其他集成外设。
低端应用: F550x 提供具有 16 至 32 KB 闪存和 4 KB + 2 KB RAM 以及 10 位 ADC 和 Comparator_B 功能的经济高效的 USB。
TI 的新型 MSP430 USB 微控制器可降低系统成本、提供卓越的电源效率以延长电池寿命、促进快速实施并且易于使用。除了允许开发人员专注于他们的应用而不是 USB 作为一种支持技术之外,这些新控制器还通过集成多个先进的外围设备和模块来降低系统 BOM,这些外围设备和模块可以提高性能并降低功耗,同时减少组件数量。凭借其全面的支持软件和硬件,TI 将 USB 学习曲线从数周缩短至数小时,从而使将 USB 引入各种嵌入式应用变得经济高效且简单。
全部0条评论
快来发表一下你的评论吧 !