资讯 > 正文

机电一体化的调理艺术

发布时间:2008-07-31 作者:C.G. Masi

  优秀的厨师知道可口的菜肴应该使用考究的材料,设计卓越的机电系统同样也要选用正确的软件和硬件。

  如果你和我一样喜欢看美食频道,你可能就听说过Alton Brown谈论料理过程中的软件和硬件。现在,我们就要讨论一下机电一体化项目中的软硬件材料。
  对于Alton Brown来说,软件包括鸡蛋、牛奶和水,也就是食物中用到的所有“湿”的东西。而对于机电一体化,软件则包括操作系统(OS)、应用程序和仪器驱动。
  这些肯定都要集成到最终的产品里。并且,机电一体化的大厨们还需要大量的辅助软件。机械设计通常使用计算机辅助设计(CAD)的输入来描述机械系统、然后创建有限元分析模型。这个模型可以模拟出实际机械系统应用时期望的应力和扭力。类似的,电子设计自动化(EDA)软件使用电子元件描述语言和互连接,创建电子系统的SPICE模型,可以模拟实际电子系统期望的输入和负载。  

机电系统
  机电系统通常具有多嵌套控制回路。

  软件
  你同样需要软件来装配软件。微处理器能够读懂“机器码”一系列写成“操作码”的说明,它可以以数字的形式储存在计算机内存里。  

机电一体化的调理艺术如图

控制工程师通常面对的是第四代计算机语言,它可以简化诸如机电控制器应用这样的程序编写。

  尽管许多计算机专家和一些工程师仍然知道如何直接为机器编程,但是没有人喜欢这样做。应用源代码已经被写成了“人可以读懂”的语言,比如BASIC、C、Fortran。而这些人们可以读懂的语言被称作“第三代语言”(3GL),机器码则被称作第一代语言(1GL)。(相信我,你不需要知道第二代语言的情况)
  编译器是一种能将可读源代码转化成智能机器码的软件包。编译器不仅需要能够读懂某种第三代语言,它还需要为目标微处理器完全读懂操作码,以及最终系统中的可用资源。
  坦率地说,写第三代语言代码最好还是留给计算机工程师和专家吧。这些语言带有复杂的句法和令人难以捉摸的命令集,控制工程师最好还是使用第四代语言(4GL)。
  凭借描述性更强的词语“框架”、“环境”或者“集成开发环境”(IDE),这一代语言更具有参考性。例如Eclipse(开源)、LabView(美国国家仪器发布)以及任何一家面向IEC控制器语言具体实施的供应商开发的语言,它们都是高度面向应用的。

  目标系统
  对于绝大多数专业软件工程师和几乎全部嵌入式系统工程师,摆在他们办公桌上的电脑并不是目标系统。如果写出来的程序运行的计算机和你正在使用不是同一台,你就需要一台“交叉编译器”,它可以在你的计算机上运行,但是却可以创建运行在目标计算机上的机器码。运行在目标系统上的软件包括:
  ■ 操作系统,减轻微处理器的负担(比如内存、总线接入);
  ■ 仪表驱动,可以使应用程序接入外围资源(比如传感器、驱动);
  ■ 应用程序,可以控制程序流、执行逻辑操作和数学计算;
  机电应用经常需要实时操作,这种“实时性”有一部分来自操作操作系统(OS)。有很多实时操作系统(RTOS)的选择,一些供应商可以提供专利型实时操作系统,比如来自风河公司的VXWorks。微软也推出了三个Windows系统(CE、XP和嵌入式)的实时版本。其他的公司(比如Montavista、风河、Green Hills Software和Lynuxworks)则推出了Linux的实时版本。
  仪表驱动告诉外围硬件应该去做什么。在制作软件的时候,编译器通过在项目中为仪表加入合适的驱动,使第三代语言的代码可以在仪表之间进行传递。仪表制造商在驱动器和编译器中写入合适的机器码,所有的机电工程师必须要做的是,确保在编译的时候使用正确的驱动。
  应用程序是机电工程师心血的结晶,它在目标控制器上运行,融合了高层控制决策所需的全部才思和智慧。
  如果有行人踏入自动牵引车道,这是怎么办?应用程序必须能够识别出行人,并且计划合适的行动。驱动器的固件应该可以使牵引车转到正确的方向,转过的角度也必须合适。正是控制器来决定转向的方向和转过的角度。

  为机电一体化准备的硬件
  让我们回到可以将软件的想法转化成实际的硬件。控制器就是起到这种作用,它有很多选择。对于大型静态的项目,传统的可编程逻辑控制器(PLC)或者可编程自动控制器(PAC)就很好。那些需要获取数据和控制系统的工程师则会倾向于使用基于PC的控制,使用多功能卡以及处理模块来提供输入输出。
  然而,还是有越来越多的机电工程师选用嵌入式系统。举例来说,控创就提供多种单片机(SBC)解决方案,飞思卡尔半导体、威盛和德州仪器则提供片系统(system-on-chip ,SOC)设备,在单片IC上包含处理器、输入输出、内存,并且提供网络功能。我已经看到了米粒大小的4位处理器,以及传说中的将多个处理打包的多核IC。
  通常,选用嵌入式方法的工程师需要设计带有全部控制器元件的主板。很多IC制造商,比如AMD,可以为用户制作自己的主板提供线路板或者工具箱。很多其他的公司也乐于提供类似的帮助,搜索“制作定制线路板”,可以找到115000个结果。
  对您来说,下一个机电项目选择正确与否取决于您的喜好。比如,如果您有Linux使用经历并且是个C语言编程老鸟,您可能适合选择运行实时Linux的单片机。再比如,如果您来自传统的机械控制领域,您的第一选择可能就是PLC来运行功能模块。运动控制专家则可能喜欢安川的那些东西(这家公司率先提出了机电一体化)。
  需要记住的是,没有最佳选择。根据您以往的控制系统经验,采用您最熟悉的硬件和软件,才能玩转机电一体化。

  FPGA可以帮您做什么 

  BrianMacCleery美国国家仪器公司高级产品经理
  Brian MacCleery,美国国家仪器公司高级产品经理。

  现场可编程阵列(field-programmable gate array (FPGA))是一种嵌入式IC,使用计算元件可配置矩阵,以硬件的逻辑进行软件设计。与传统微处理器和DSP的固定计算功能不同,FPGA设备重新布置内部结构以执行计算任务。FPGA在设计上是完全平行的,所以很多应用子系统可以使用专门硬件资源独立和同时运行。
  在FPGA“构造”当中,将软件代码转化成高度优化的硬件实施方法被称作“合成”。由于可能有多种硬件实施方法可以满足要求,FPGA编译器可以进行复杂的优化、路径选择和确认。最终的结果就是设计中高性能、高可靠的硬件实施方法,设计以信息流的形式,可以告诉芯片中的元件如何对自身进行配置。因此,软件设计就转化到硬件的领域。
  通过将数百万个元件集成到单独芯片上,一个FPGA可以替代数以千计的单独元件。
  FPGA可以提供给设计极大的柔性和平行性。通常,设计师会区分FPGA和传统处理器,FPGA经常用来驱动低层面向传感器和执行器的I/O界面,执行对于时效要求很高的控制和信号处理任务,以及与指定周边设备和外围电路进行通信。
  举例来说,选择多轴运动控制的设计师可能使用通过Modbus进行基于标签通讯的处理器、高级监督控制、浮动点运动轨迹生成算法以及数据记录。在FPGA中,工程师可能选择更加快速、更加定制的应用,比如位置解码器和电流传感器接口、脉冲宽度调节(PWM)和电机交换、用于运动轨迹的齿轮插补、电流、位置和速度的级联PID控制回路、以及安全互锁等等。
  FPGA当中,没有任何对于各个子系统快速运行的阻碍(而不是电力消耗),由于它的强处并不在于处理资源。进一步说,FPGA程序员可以逐步对应用的每个部分进行定制,深入到逻辑门层次以满足各种独特的要求。并且,FPGA即便是部署到现场之后仍然可以进行配置,这就意味着升级系统或者添加某些新的功能的时候,不必在硬件板上重新布线。由于这些原因,对于FPGA编程的投资既可以加快市场响应速度,还可以在产品生命周期过程中减少支持和维护成本。

标签:机电一体化,机电系统,电子设计自动化,eda

相关文章