PSoC产品经理
Cypress半导体公司
在刚刚过去的数年内,我们见证了多处理系统日渐成为主流,事实上大多数现代个人计算的CPU均采用了对称多处理系统(SMP),其中,相同处理器的多个实现例程分担运行在PC上的应用程序负荷。SMP目前已相当常见,但在嵌入式计算中,向多处理的转移趋势并不常见。然而,新的嵌入式设计技术为工程师提供了相当的自由度,能够在数字子系统上智能化地分配处理功能。在本文中,研究了一个使用Cypress半导体公司PSoC 3和PSoC 5架构的分布式处理技术示例,该架构由一个主CPU(在本例中为8051或ARM Cortex M3)、一个DMA引擎、以及通用数字模块(UDB)阵列构成。UDB可高效用作微处理器阵列。通过在这类子系统上分配处理功能,减少计算复杂程度和处理负荷,工程师能够提升整个系统的效率。
将处理功能分解到多个功能块上具有很多优点,最大的优点是降低了实际功耗。通过降低CPU在处理MIPS方面的负荷,只计算简单的函数,如服务中断,能够以较低的频率运行应用程序,这是因为,除了应用程序的所有函数外,CPU无需在不太复杂的函数上耗费指令周期。这样,就能从两个方面降低整个应用的功耗。第一个优点显而易见,降低CPU时钟,随着时钟速度的降低,实际功率呈线性下降。第二个优点有些容易被忽视,但同样重要,CPU具有的逻辑门约是UDB的10倍以上,通过将处理功能从主CPU卸载到微处理器上,可释放大量用于完成处理功能的逻辑门,从而进一步显著改善实际功耗。
除了显著降低应用程序的实际功耗外,分布式处理还具有另一项优点,由于CPU从更平凡的处理负担中解脱出来,能够将其MIPS更多地用在可更好发挥CPU特性的功能上,用于具有更高计算强度的函数上,如乘除指令。
为了理解将处理功能分解在架构上的方式,我们将分析常见的嵌入式应用,如无刷直流电机控制。首先我们深入实质,了解PSoC 3和PSoC 5数字子系统,以便理解其能力。
PSoC 3和PSoC 5器件公用平台架构,这意味着在两个系列中,基本硬件是相同的。PSoC3和5平台架构由四个主要功能块构成,它们是:
CPU子系统:首先是CPU子系统,它包含主CPU(8051或Cortex M3)以及所有支撑IP,包括中断控制器,调试硬件,以及DMA控制器。其他系统功能也包含在CPU子系统中,如计时,电源管理,以及系统存储器。通过CPU与DMA引擎的结合,可为我们提供实现分布式处理功能所需的两个关键部件。
数字子系统:数字子系统是PSoC 3和PSoC 5系列架构的另一重要部分,使用它,能够实现分布式处理系统。PSoC 3和PSoC 5中的数字子系统主要由可灵活编程的通用数字模块(UDB)阵列构成。正如从图X中所见到的,UDB硬件包含数据路径元素,它本质上是8位微处理器,能够执行标准的处理功能,如移位、加和比较。数据路径元素(图XX)还与PLD单元相结合,可用于实现定制的逻辑功能,甚至能够查询表以找出可用作参考的数据路径元素。这些UDB可用于实现很多外围标准功能,如PWM、定时器和SPI,它们也能用于实现定制的外围功能。正因为这种灵活性,PSoC能够实现分布式处理功能。
UDB阵列可支持高达24个UDB,支持灵活的布线矩阵,用户能够将多个UDB连接在一起,以实现更大和更复杂的处理功能。
图2
模拟子系统:PSoC 3和PSoC 5系列还具有高性能和可编程模拟子系统,它包含创建完整模拟信号链所需的所有部件,包括高达20位的模拟-数字转换,用于信号调节的数字过滤器,以及数字-模拟转换。在本次关于分布式处理的讨论场景下,模拟子系统能够在将模拟输入发送至数字子系统或CPU进行进一步数据处理前,对模拟输入进行处理。
可编程布线和互联子系统:它位于框图的最右侧,可编程布线和互联子系统包含灵活的布线矩阵,布线矩阵与I/O以及数字、模拟和CPU子系统相连。该功能块具备相应的能力,使用它,能够定义将芯片上的信号路由至何处,并能创建多路子系统的处理系统。
分布式处理的示例
至此,我们已了解了用来创建分布式处理子系统的可用工具,现在我们将考察如何使用分布式处理来提升系统效率。在这里,我们将考察一个分布式处理应用的真实示例。Sensored无刷直流(BLDC)电机控制即是能够展示这类分布式处理优点的常见的嵌入式控制功能
控制带传感器的BLDC的传统方法是,电机转动并导致三个霍耳效应传感器的逻辑电平改变状态,在典型的带传感器的 BLDC MCU控制系统中,当状态发生变化时,处理器接收IO中断信号。CPU随后将调整连接至PWM输出和驱动的电机线圈。这会在CPU上造成较重的中断负担,降低服务于中断功能的CPU MIPS,而不是执行应用程序需要更多关注的其他处理功能。此外,电机运行越快,CPU中断就越频繁。不仅如此,为应用增加额外电机还会使问题进一步复杂,这是因为,无法可靠地对两台(或多台)电机进行同步以确保霍尔传感器不会同时触发,独立的中断具有相同的优先级。
必定有其他方式,是吗?的确如此。PSoC 3和PSoC 5系列的架构给出了在微处理器阵列上执行分布式处理的良好示例,可将这类中断密集型操作卸载。通过在UDB的PLD单元中简单地实施硬件查找表,就不必再中断CPU。取而代之的是,将中断发送至CPU中断控制器,霍尔效应传感器输入直接送至硬件查找表,随后确定将用于接收PWM信号的输出。在该实施方案中,仅当电机速度变化时CPU才会中断。
这只不过是使用分布式处理降低主CPU负担并提升系统效率的一个例子,还有很多实施分布式处理的示例,包括中断密集型应用,其中,CPU需参考数据结构并作出决策。通过在UDB架构中实施查找表、并使用UDB数据路径元素对数据进行比较,CPU将不再需要处理中断事宜。
分布式处理应用的另一示例是,将DMA用于数据传输密集型应用,如I2S对USB(记录)、或USB对I2S(放出)应用。通过在UDB架构中实施I2S块,使用DMA在处理过程中、在两个功能块和SRAM块之间传输数据,只需很少的CPU周期来控制数据流。以这种方式使用DMA,在基于脉冲密集型方案的通信协议应用中,能带来极大的好处,如USB以及具有可靠数据速率的应用(如I2S)。
通过提供更高效的处理器和功耗更低的处理技术,CPU厂家和MCU供应商致力于不断降低功耗并提升系统效率,作为系统设计者,我们也应寻找机会,设计出具有更低功耗和更高效率的嵌入式系统。随着新PSoC 3和PSoC 5平台的发布,工程师的系统设计工具库中现在有了另一工具。将嵌入式应用视为处理功能的组合,分解处理功能,并在处理子系统阵列上分配这些处理功能,工程师们现在能够优化其嵌入式系统的效率,并降低系统功耗。
上一篇:优化面向超低功耗设计的微控制器功效
下一篇:示波器死区时间和波形捕获率对测量的影响