几乎所有的现代系列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应用,当你知道了一些最常见和最重要的差别。
评论
查看更多