Why your embedded controller may not need a CPU 为什么嵌入式控制器可能不需要CPU?
Mark Ainsworth, Cypress Semiconductor
作者:Mark Ainsworth,赛普拉斯半导体
Do you really need that CPU in your microcontroller? Here’s a way to free up your CPU using a combination of programmable logic devices and datapaths. Mark Ainsworth of Cypress Semiconductor explains how.
在你的微控制器系统中真的需要CPU吗?这里有一种方法可以解放出CPU,就是结合使用PLD和数据路径(datapath)。赛普拉斯半导体的Mark Ainsworth将为你说明如何实现上述方式。
In most microcontroller architectures, a "smart" CPU is surrounded by a set of relatively "dumb" peripherals. The peripherals have limited functions; usually they just convert data from one form to another. For example, an I2C peripheral basically converts data between serial and parallel formats, while an ADC converts signals between analog and digital. The CPU has to perform all of the work to process the data and actually do something useful with it. This, plus close management of the peripherals, can result in a lot of complexity in the CPU's firmware and may require a fast and powerful CPU to execute that firmware within real-time timing constraints. This in turn can lead to more obscure bugs and thus to more complex and expensive debugging equipment, and so on.
在大多数微控制器结构中,一个"聪明"的CPU身边会环绕着一系列“愚笨”的外围设备。外设只有有限的功能,通常它们只是把数据从一种形式转换成另一种形式。例如,一个I2C外设只是进行串行数据格式和并行格式之间的转换,而ADC则在模拟和数字信号之间转化。CPU不得不完成处理数据的所有工作,实际上它还能做些更有用的事情。以上这些,再加上还有很多外设要管理,这将会导致CPU固件很复杂,这可能需要一个快速高效的CPU来实时适时地执行这些固件。这反过来又会导致更多的潜在bug,从而需要更加复杂和昂贵的调试设备等等。
But what if the peripherals were complex enough, flexible enough, and ultimately "smart" enough to effectively relieve the CPU of many of its tasks? A complex design could then be restructured as a group of simple designs distributed among the CPU and the peripherals. The CPU would ultimately have fewer tasks and perhaps fewer interrupts to handle, in turn making bugs easier to find and fix. The overall design would become more robust, and portions of the design more easily reused. Finally, a CPU with less to do may be run at a slower speed to save power, or that available bandwidth could be used for the additional tasks that the marketing department dreams up for the next-generation product. However, the peripherals would still need to be designed in a cost-effective manner or the overall microcontroller might become too expensive. This article shows how a set of smart, flexible, low-cost, custom digital peripherals can be designed into a microcontroller and configured to help implement a robust distributed system design.
但是如果外设都足够复杂、足够灵活、足够“聪明”,足以有效缓解CPU的许多任务又会怎样呢?一个复杂的设计可以重建架构,变为一组简单的设计,分布在CPU和外围设备中间。CPU将会需要执行更少的任务,或许可以进行更少的中断处理,从而使bug更容易发现和解决。整体设计将使系统具有更好的鲁棒性,并且部分设计更容易再利用。最后,CPU处理任务少就可以跑在较低的速度,从而可以节省能源,或者这些可用带宽可以用来实现市场部梦想的下一代产品。然而,外设设计仍需要具成本效益,或者整体的微控制器可能变得太贵。本文将展示如何把智能、灵活、低成本、可定制数字外围设备设计到微控制器并配置,以帮助实现强鲁棒性的分布式系统设计。 |