在这个系列的第一篇博文中,我们了解到FPGA是如何被引入到驱动架构中的。现在,我们来看一看在一个工业驱动/伺服机架构中使用FPGA时遇到的一些挑战,以及以COTS MCU形式运转的控制片上系统 (SoC) 的全新功能如何用FPGA来改变针对工业驱动的成本有效模型。 很多工业逆变器和伺服机厂商在很长一段时间内依靠现场可编程门阵列 (FPGA) 或ASIC技术来完成32位微控制器 (MCU) 等商用现货 (COTS) 产品所不支持的功能。然而,为了支持位置传感器反馈或增量-累加滤波,在软件可编程控制器中添加的FPGA和ASIC将增加系统成本和开发复杂度。 难道我们就不该问一问:正在被置入到FPGA中的功能是不是能为驱动产品带来真正的改变?将这些功能包括在内是不是已经成为每一个驱动设备厂商的标准做法?简言之,这些被用来实现所需功能、价格虚高的FPGA门是不是已经成为在工业驱动行业里生存的筹码? 虽然FPGA是重新可编程的,并且被认为有可能提供系统适应性和更佳的系统性能,相对于目前用于工业驱动应用的MCU,它们也有某些缺点。开发人员应该衡量所需专业化工程技能、总体项目工作量和系统总成本。 很多正在被开发的驱动系统保持了与FPGA组合在一起的C语言可编程微控制器或微处理器。这个处理器的C代码生成和调试开发环境被人所熟知,并且是必须的。现在,将一个FPGA引入到这个系统需要额外的开发流程和工具集。尽管在对外宣传时,这些工具在易用性方面取得了一定的进步,不过通常情况下开发MCU C代码和开发FPGA VHDL代码的不是同一批工程人员。VHDL编码风格与开发流程与MCU软件开发大不相同,并且需要特别的工程资源。此外,恰恰是FPGA开发人员必须成为他们所执行的硬件IP方面的低级和系统级专家。例如,他们不但需要知道如何为一个BiSS主机执行VHDL,他们需要了解BiSS协议,这是因为他们需要验证他们的FPGA器具是否符合BiSS传感器的要求。这项专业化工程技能不是每个运动控制或逆变器厂商都能够为员工提供的,并且这当然也不能发挥他们在运动和电机控制性能方面所起到的独特作用。只使用一个本身就支持BiSS编码器的微控制器是不是更简单一些呢? 从开发角度讲,管理人员需要将FPGA创建视为一个定制开发。他们的开发团队对于上市销售的FPGA的产品特性具有额外的所有权,并且对这些产品特性负责。如果VHDL未被正确编码,他们不能求助于FPGA供应商;他们只能自己寻找问题的原因,并且找到解决问题的补救方法。当你把VHDL与使用COTS MCU的模型相比较的时候,与FPGA开发相关的定制责任远远超过了FPGA内部的门设计工作。印刷电路板 (PCB) 影响、MCU门级/寄存器接口、软件抽象和总体系统集成工作量全都是非标准的,也就是说,它们不是现成可用的解决方案。详细信息请见图1。除了开发之外,随着全新连接组件的发布或修改,这个模型在用户支持、产品维护版本和长期品质一致性方面具有额外的工程设计复杂度。使用具有这些特性的标准MCU,并且供应商对整个产品解决方案负责(硬件、软件、工具和设计)的话,会不会更加简单? 图1:FPGA与驱动SoC的EnDat开发比较 此外,也许最明显的一点就是额外组件对物料清单的影响。FPGA的成本绝不仅仅限于对单价的影响。FPGA器件将需要额外的PCB面积,以及MCU对接和电源所需要的引脚。当与FPGA一同运行时,这些成本是不可避免的,不过,当这些功能已经存在于驱动SoC MCU上时,这些开销是没有必要的。在几种情况下,我们观察到,相对于驱动SoC器件,FPGA本身需要额外的、且更加复杂的电源电路。此外,执行FPGA将多余的门引入到系统中,诸如到MCU的寄存器接口,以及实现相位电流和电压感测的外部模数转换器 (ADC) 接口。一个驱动SoC包括一个针对驱动应用的内置高性能ADC,并且无需这个额外的逻辑电路。因此,相对于附加FPGA架构的MCU,使用一个单个COTS驱动SoC可以有很多机会降低总体系统成本。 在这个博客系列的下一篇关于驱动控制架构的**中,我将着重介绍现货C2000 Delfino™ MCU工业驱动SoC如何处理那些传统上已经由一个FPGA完成的功能:快速转矩环路计算、已调制增量-累加ADC信号的过滤、高性能PWM、PWM保护,以及与高性能位置传感器的对接。
|