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平台的发布,工程师的系统设计工具库中现在有了另一工具。将嵌入式应用视为处理功能的组合,分解处理功能,并在处理子系统阵列上分配这些处理功能,工程师们现在能够优化其嵌入式系统的效率,并降低系统功耗。