比较在 MCU 与 FPGA/CPLD 上实现简单的自动化设计

电器工程 微控制器 FPGA 赛灵思 发展 斯巴达人
2022-01-14 06:21:42

自 90 年代以来,我一直在使用 MCU,最近我使用 Xilinx 的 Spartan6 系列芯片涉足 FPGA 领域。假设一个带有传感器和电机的简单工厂自动化设计,以及将所有东西连接起来的一些智能,我可以在哪种类型的设备上更快、更轻松地完成设计,MCU 还是 FPGA?小的或“明显的”点也受到赞赏,因为我一般是 FGPA 的新手。

2个回答

除非需要,否则没有理由使用 FPGA 即使是 MCU 和 FPGA 领域的两位同样才华横溢的工程师也会使用 MCU 来完成相对简单的自动化任务。

专业单片机:

如果必须,请使用 FPGA,因为:

  • 微处理器的功率、重量、尺寸或成本预算无法满足所需的数字运算
  • 有软件无法保证的硬实时截止日期(例如微秒级的响应时间)
  • 使用 FPGA 逻辑可以更容易地做出关于响应时间的稳健断言
  • 通过使用自定义数据类型(例如 12 位浮点),您可以大大节省成本、功耗等

要么:

  • 你的任务告诉你你必须:)

我认为使用微控制器 (MCU) 对您来说更容易的几个原因:

  • 您有使用 MCU 的经验。学习任何新芯片的来龙去脉都需要时间。
  • MCU 具有内置的外围设备,您必须自己在 FPGA 上实现(或购买)这些外围设备。例如,大多数 MCU 都有一个 I2C 端口,如果您从 I2C 传感器读取数据,它将派上用场。此外,大多数 MCU 都具有某种模数转换器和脉宽调制器,这两者很可能都是良好的电机控制所必需的。
  • 复杂的算法在 C 中比在 VHDL 中更容易表达(我没有 Verilog 的经验)。
  • 人类规模的延迟在 MCU 中很容易,但在 FPGA 中会占用大量资源。
  • 对于简单的工厂自动化,短的标准位宽和低速度的 MCU 很可能就足够了。

在任何一种情况下都必须注意您编写的代码,以便它在所有情况下都能正常工作,尤其是在危险的情况下。