几乎所有的现代系列 MCU 具有 USB 外设。因为 USB 是一个标准的,则可能期望所有 USB 实现都是相同的。如果是的话,你会通过各种符合标准,而且还提供了额外的功能和特性,可能只是做一个特定的 MCU 适合您的下一个设计的实现惊讶。本文将介绍一些差异化的 USB 功能,你会发现,在流行的 MCU 系列。一旦你了解一些关键的不同,你可以更好地寻找,将提供完美的适合你的下一个设计的实现。
USB 基础知识
同时在硬件和软件的水平 - 通用串行总线或 USB,已由于其简单的物理层接口,它的灵活性,并且易于整合越来越流行。标准化和集成连接器可以很容易地接口的 MCU 的 USB 连接线,共同驱动程序和应用程序接口,或 API,可以很容易地访问通过 USB 连接来传输和接收信息的数据包所需要的数据和控制元件。现成的参考设计,评估板和代码示例进一步简化基于 MCU 的实施。最近引入的在 USB 3.1 标准,具有高达 10 Gbit / s 的数据信号速率示出了标准的不断发展和可能是左右对许多,许多年。
USB 使用非对称拓扑结构,包括一台主机的在连接“金字塔”,用于管理整个网络的顶部。下游的 USB 端口(通常称为器件或功能)中的所有连接成直接主机或经由中间集线器,可以在星型拓扑扩展网络。主机可以有多个主机控制器,每个控制器管理多达 127 个端口。 USB 通信使用的管道,或逻辑信道,即一个主控制器和一个设备的端点之间进行连接。 USB 设备最多可以有 32 个端点(在 16 和 16 出)。有两种类型的管道:一个流,以用于数据传输,以及一个消息,用于短命令和状态转移。数据传输可以是同步(以保证数据速率),中断传输(当需要快速,低延迟的传输),或批量传输(通常用于文件传输,其中的延迟和数据传输速率并不重要)。
之一的 USB 标准的更多有用的方面是,有多个数据传输速率可能的(低速 1.5 Mbit / s 的,全速在 12 兆比特 / 秒,高速在 480 兆比特 / 秒,超 5 Gbit / s 的,和超高速+个 10Gbit / s)和主机可以确定用于使用特殊枚举过程的每个设备的数据速率。这简化了连接管理和便于应用程序集中于刚传输数据,而不是管理建立低层的物理连接。
一些产品培训模块可从 Digi-Key 的讨论显著详细的 USB 标准(从 FDTI 和伍尔特电子,等等),如果读者希望深入挖掘。然而,这篇文章的目的,上述描述足以让我们来看看一些不同的特点和基于微控制器的 USB 外设功能,以更好地满足特定应用的要求,具有最佳的 USB- 实现功能设置。
USB 实现
对于一些 USB 的基本知识的了解,我们就可以开始看看不同类型的 MCU 供应商在他们的设备所提供的实现。因为微控制器经常被发现控制 USB 外围设备,如传感器,指点设备和音频设备(仅举几例),而不是在主机控制器更经常在个人电脑和手持设备发现我们将通过观察一个示例函数实现启动在 Spansion 的 FM3 MCU 系列中,尤其是 Spansion 公司 MB9AF3 MCU。
Spansion 的 MB9AF3 MCU 采用了 ARM 的 Cortex-M3 的 CPU,并拥有多种先进的外设,包括电机控制定时器,高速 ADC,UART,SPI,I2C,DMA,和外部总线接口。一个 USB 外设同时具有一个主机和功能接口和功能的方框图显示在图 1 中。的 CPU 接口,在右侧的图,可以访问端点缓冲器,其中数据传输的位置。进出缓冲器是由经由 UDC 接口的 USB 数据控制器(UDC)管理。中断可用于通知的数据传输的状态的 CPU 和在 CPU 接口提供从 CPU 或 DMA 控制器访问缓冲器。
Spansion 公司 MB9AF3 MCU USB 功能框图
图 1:飞索 MB9AF3 MCU USB 功能框图。 (Spansion 公司提供)
该飞索 USB 实现的关键要素是源 USB 时钟,端点,缓冲器的数量,和 DMA 访问到端点缓冲器。这些特征可以,因为它们不是由 USB 标准规定不同 MCU 供应商之间变化。例如,USB 时钟由片上 PLL 可使用 MCU 的主时钟源,。这消除了对外部时钟减少了元件数量。并非所有的 USB 外设包括此功能。
从图 1 还可以看到有 6 个端点缓冲区。缓冲区的数量广泛使用不同的执行落实。对于简单的应用,少数缓冲器可能是足够的,但有可能是多个缓冲器的要求,这可能是因为有多个元件(例如,几个不同的传感器由 MCU 管理),或者因为多个缓冲区将简化软件实现由分离一个外设的不同的应用。
最后,USB 实现之间的差异化的公共区域包括使用 DMA 的。常它是更有效的有来自 CPU 的独立管理,从而 CPU 可以操作的其它更复杂的任务,或可放在一个低功耗状态,直到有足够的数据可开始处理端点缓冲区。该 MB9AF3 MCU 提供了访问端点缓冲区的 DMA 控制器,还提供了一些中断,可用于更轻松地管理缓冲区传输。寻找这些功能时,电源效率是您的应用程序的关键。
端点控制
您需要端点的数量可以选择您的 USB 外设时,是一个关键的区别。的灵活性有与每个端点的量可以是在选择中的一个重要因素,也是。例如,赛普拉斯的 PSoC CY8C24794 有一个 USB 外设有五个端点和每个人都可以被单独分配响应中断,批量或同步 IN 或 OUT 请求。图 2 示出了各种可分配给每个端点任务。选择性这一级别避免了显著量的,否则将被需要的确定任务的类型,然后控制转移到所需的常规处理器开销。
表赛普拉斯的 PSoC CY8C24794(点击查看全尺寸)
图 2:赛普拉斯的 PSoC CY8C24794 USB 工作模式表。 (赛普拉斯提供)
Cypress 的 USB 实现使用共享内存来存储端点数据,这可能会导致访问瓶颈,但使用的 PSoC 存储器仲裁(PMA)的优先处理器和 USB 外围设备之间的访问。这保证了移动指令由处理器连续流甚至在 USB 流量的最大速率处理将进行维修。
所述 USB PMA 具有足够的灵活性,使得端点数据不需要被处理接收到下一 USB 分组之前。这是通过简单地改变信道的写入位置或读位置寄存器值完成的。例如,当一个中断收到的资料表明,一个包已经收到,而不是处理数据,然后使终端接收更多的数据,你可以简单地改变写地址所使用的端点自由区的 PMA 通道的 USB 内存。通过这样做,你让 USB SIE 接收更多数据,而 M8C 正在处理先前接收的数据。类似的方法可用于制备数据到由 IN 事务的方式被发送。
当比较端点实现确保你不仅要看支持的端点的数量,而且在灵活性和软件支持 USB 外设提供量。这可以提高性能,降低功耗,并简化编码。
USB 在旅途中
USB 也发展到可以很容易地创建智能的 USB 设备,可以在任何一个主机或功能模式动态连接。这个“在转到”的能力使得有可能使用该设备作为外设(也许作为存储装置),然后作为宿主(或许以控制和功率的传感器,记录心脏速率活性)。这种能力是在各种的 IoT 应用中特别有用。 Microchip 的 DSPIC33EP256 MCU,例如,支持 USB 主机,设备和外出模式。在许多情况下,这样就可以看到什么低功耗的设施,可为 USB 外设是重要的低功率运行是在旅途中应用很重要。
Microchip 的 DSPIC33EP256 MCU 使 USB 外围设备来操作,即使在一些低功耗模式。例如,当 CPU 被放置在空闲模式的周仍可操作。在空闲模式下,CPU 的时钟被切断,并大大降低了这种动态功耗。 USB 模块可以继续运行,当 CPU 处于空闲状态,一旦收到需要 CPU 干预的消息时,CPU 可以带出空闲的。 USB 外设和 CPU 都可以放在一个更低的功耗状态,睡眠,甚至更多的权力将被保存。该 USB 活动中断可用于从休眠模式唤醒器件,只要有 USB 总线上的总线活动。
您可能需要从您的 USB 外设的另一项功能是先进的测试功能。特别是,如果您使用的是 USB 首次一些你可能要具体包括板级测试功能的 USB 端口。 Microchip 的 DSPIC33EP256 MCU 有一个特殊的 USB 测试模式,可以产生对 USB 输出即用于板级测试有用的连续测试码模式。正如图 3 此测试模式生成连续的 JK / JK 位序列来切换 USB 输出产生一个简单的“眼图”常用来测试信号的完整性。
Microchip 的 DSPIC33EP256 单片机图
图 3:Microchip 的 DSPIC33EP256 MCU USB 测试模式。 (Microchip 的提供)
USB 高端微控制器
USB 不仅在低收入和中端 MCU 的发现,它是高端设备的一个非常有用的接口也是如此。例如,德州仪器 F28M35H52C1RFPT 是一款双核 MCU 具有非常先进的处理能力,它包括一个 USB 外设与在转到能力。如图中 F28M35H52C1RFPT(图 4)的框图,USB 外设,在图的左上方,经由从 AHB 总线矩阵访问的 AHB 总线连接到 ARM Cortex-M3 的 CPU。
德州仪器的框图 F28M35x 协奏曲 MCU(点击查看全尺寸)
图 4:德州仪器 F28M35x 协奏曲 MCU 框图。 (德州仪器提供)
在 ARM Cortex-M3 CPU 充当通道控制器,负责管理所有的通信端口。这是当 USB 包含在高端设备,使得 USB 通信可以正确地对所有其他的,竞争的,通信端口进行优先排序的一个重要功能。例如,通常的 USB 端口用于外部文件存储和数据传输活动,可能需要提出了很高的优先级,以便处理不拖延数据缺乏。
结论
有许多不同的方法来实现 USB 和了解一些通过各种 MCU 系列提供的主要功能和差异化的功能是非常重要的。这是很容易找到合适的适合你的下一个 USB 应用,当你知道了一些最常见和最重要的差别。