自 90 年代以来,我一直在使用 MCU,最近我使用 Xilinx 的 Spartan6 系列芯片涉足 FPGA 领域。假设一个带有传感器和电机的简单工厂自动化设计,以及将所有东西连接起来的一些智能,我可以在哪种类型的设备上更快、更轻松地完成设计,MCU 还是 FPGA?小的或“明显的”点也受到赞赏,因为我一般是 FGPA 的新手。
比较在 MCU 与 FPGA/CPLD 上实现简单的自动化设计
电器工程
微控制器
FPGA
赛灵思
发展
斯巴达人
2022-01-14 06:21:42
2个回答
除非需要,否则没有理由使用 FPGA 。即使是 MCU 和 FPGA 领域的两位同样才华横溢的工程师也会使用 MCU 来完成相对简单的自动化任务。
专业单片机:
- MCU 通常已准备好连接到外部世界的所有外围设备
- 编译需要几秒钟(FPGA 需要几分钟到几小时)
- 有一个数量级(或两个!)更多的工程师可以提供帮助,或者从你离开的地方继续。(为了一个有趣的,不一定在统计上有效的比较 - 比较 Stack Overflow 上C与VHDL 或 FPGA的问答数量)
如果必须,请使用 FPGA,因为:
- 微处理器的功率、重量、尺寸或成本预算无法满足所需的数字运算
- 有软件无法保证的硬实时截止日期(例如微秒级的响应时间)
- 使用 FPGA 逻辑可以更容易地做出关于响应时间的稳健断言
- 通过使用自定义数据类型(例如 12 位浮点),您可以大大节省成本、功耗等
要么:
- 你的任务告诉你你必须:)
我认为使用微控制器 (MCU) 对您来说更容易的几个原因:
- 您有使用 MCU 的经验。学习任何新芯片的来龙去脉都需要时间。
- MCU 具有内置的外围设备,您必须自己在 FPGA 上实现(或购买)这些外围设备。例如,大多数 MCU 都有一个 I2C 端口,如果您从 I2C 传感器读取数据,它将派上用场。此外,大多数 MCU 都具有某种模数转换器和脉宽调制器,这两者很可能都是良好的电机控制所必需的。
- 复杂的算法在 C 中比在 VHDL 中更容易表达(我没有 Verilog 的经验)。
- 人类规模的延迟在 MCU 中很容易,但在 FPGA 中会占用大量资源。
- 对于简单的工厂自动化,短的标准位宽和低速度的 MCU 很可能就足够了。
在任何一种情况下都必须注意您编写的代码,以便它在所有情况下都能正常工作,尤其是在危险的情况下。
其它你可能感兴趣的问题