在许多嵌入式及分散式系统中,软体扮演重要的角色。Venture Development Corporation Survey在2005年进行的一项调查发现,嵌入式系统的总生产成本中有将近48%用在软体开发。当软体成为嵌入式系统的重要元件之时,工程师更需要直觉式的程式设计语言,以提高设计的效率。
此外,使用COTS硬体平台来进行原型製作,甚至节省宝贵的时间。使用COTS来进行系统布署,只需要少量甚至不需要做硬体设计,并可透过软体来提供系统弹性。本文探讨以图形化系统设计来进行运算法设计、系统原型建立以及最后布署,可以如何大幅节省时间和强化生产力。
建立软体运算法
布署在分散式设计中的信号处理和控制运算法可以为系统和终端产品增加显著的价值。因此,工程师需要能够设计及重复执行运算法的自由度。领域专家正是具备开发这些运算法和程序之知识的工程师和科学家。虽然他们明白程序中的数学和语义,但是往往不明白如何将这些程序应用在嵌入式运算设备上。
嵌入式运算设备的变化非常大,而且可能是有浮点运算的技术,例如PowerPCs,x86,或是ARM,但是它们也可以是固定位数的MPU、DSP,或FPGA技术。因为许多领域专家不明白用于设计这些设备之程式所使用的技术和开发工具,因此他们通常需要嵌入式运算的专业知识(透过学习或是雇用另一位开发人员)来布署运算法。嵌入系统开发人员可能很清楚嵌入式运算平台,但是他们可能并未完全了解运算法。这种现象造成极大的沟通障碍,也可能在设计过程中造成明显的效率不良,并在最后的系统或产品中造成严重的缺陷。在设计过程中,运算法设计师(领域专家)和软体布署(嵌入系统专家)之间的隔阂可能会在设计过程中造成极严重的效率不佳。以下说明领域专家和嵌入系统专家经常互动的地方。
图形化程式设计语言(例如National Instruments LabVIEW图形化开发环境)即在部份特定的垂直领域中处理了这些沟通上的挑战,包括运动控制或数位滤波器设计。举例来说,若有一个设计工作,目的是要设计数位滤波器,那么领域专家可以用互动的方式设计一个滤波器参数的高阶描述(例如下段”低通滤波器反应的图片”中所显示的低通滤波器反应的参数),再使用LabVIEW自动将它转换为固定点(fixed point)。在换算为固定点之后,工具可以执行模拟,以比较浮点和固定点的布署方式。滤波器设计者可以重复执行其设计,直到对模拟结果感到满意为止,这时候他们再将程式码交给嵌入系统工程师进行布署。
低通滤波器反应的图片
相对地,如果嵌入系统专家需要变动运算法,他们可以回到设计中,进行必要的改变,再重新产生更新过的LabVIEW或C程式码。使用一个平台来进行这种转换是很有效率的,因为从设计到布署,两方面的专家都使用同一套工具。
在运算法的背后运作
虽然图形化系统设计平台处理了领域专家和嵌入系统专家之间的沟通挑战,然而图形化系统设计法还有另外一个更强大的优点,就是让领域专家得以做更多事,包括布署其运算法。图形化系统设计法让领域专家得以使用一种工具进行系统原型建立及布署,自由地从设计环境直接移到布署环境。
令领域专家获得这个能力的重要条件之一就是让他们不需要设计自己的硬体。采用COTS平台进行原型製作,大幅加强工程师迅速设定嵌入式系统组态的能力。就建立任何一种嵌入式控制系统原型而言,COTS平台包括四个重要元件,如图1所示:
o 类比、数位及週边设备I/O,用于和真实世界互动。
o 即时处理器,用于执行复杂的模型和控制迴圈。
o 数位逻辑,可以让I/O和处理器互动,并提供硬体层级的决定性和稳定性。
o 使用者界面。
图 1. COTS硬体平台的元件,可应用于嵌入式控制系统原型建立
在一个适用的COTS系统中,工程师可以设计处理器、数位逻辑(使用FPGA时),以及使用者界面。但是,使用传统的方法需要一个独立且独特的工具,还需要对每个元件的功能和技术拥有核心程度的技术。这种情形进一步削减领域专家使用这项技术的能力。图形化系统设计平台(例如LabVIEW)提供单一平台,提供必要的后端语义,以横跨所有元件的开发,可以把多种运算平台(包括即时处理器和FPGA)当成目标。这种图形方式也将许多与即时和FPGA开发有关的复杂性抽取出来,使过去从来不曾运用过此种技术的工程师也能使用这项技术。这也使得工程师只需要学习一种语言,即可布署其系统中所有的可程式元件。
汽车案例研究
为了说明这个概念,我们假设有一位汽车工程师要开发一款电子控制单元 (ECU)供汽车使用,并使用COTS平台进行原型製作。ECU基本上就是汽车中的运算元件,处理从点火线圈的计时到开啟车头灯的一切运作。利用图形化系统设计法,工程师可以用图形的方式来设计运算法。此外,工程师可以将一项额外的设计工具或协力厂商的现有IP结合至系统中。在建立控制器的原型时,工程师使用以上提到的每一个元件,并将应用程式分割为系统的各种规格:I/O需求,即时处理器功能,数位逻辑功能,以及使用者界面。
由于ECU从高度客製化的汽车感测器读取信号,再将信号输出至致动器,因此可能需要特殊的I/O。专门从事ECU研究的Drivven开发出多种客製设备及IP,用于布署ECU功能,以及和需要的信号连接。Drivven选择NI CompactRIO嵌入式系统来建立其多项设计的原型,甚至製作客製的CompactRIO模组。CompactRIO是一个COTS平台,其中包括一个即时x86处理器、一个FPGA,以及模组化工业I/O。
客製模组直接连接至凸轮和曲柄感测器、点火线圈,以及火星塞。此外,Drivven为FPGA开发了一个IP函式库,用于建立可变通时间,并且进一步自订及调整感测器界面。透过将其IP引进LabVIEW中,Drivven的工程师使用一个简单的程式区块即可代表原本相当复杂的动作。
Drivven使用CompactRIO,为YAMAHA R6製作了一个功能完整的ECU模拟器。这个系统的成本只有15,000美元,而且只花了三个工作月的时间即完成开发,包括客製CompactRIO模组的开发;和过去的专案需要500,000美元成本及两年人力比较起来,是极大的改进。现在进行汽车系统控制的工程师可以轻鬆地运用Drivven的专业知识和CompactRIO来迅速建立原型及设计系统,而不需要知道设计FPGA或即时处理器程式的低阶详情。
YAMAHA R6机车采用CompactRIO ECU系统
从硬体的观点来看,开发ECU的工程师需要适当的I/O组合。他们可以使用子卡来配合机板原型或I/O模组,以获得高效能系统,例如CompactRIO。随后工程师可以使用控制设计工具,并在图形环境中使用直接呼叫,以便将控制程式码应用在即时处理器上,或是使用标准开放介面将之套入其它的设计工具。
最后系统的布署
当工程师完成原型的建立之后,即使用图形化系统设计平台将其程式码布署至最后的客製设备。LabVIEW让工程师得以将程式码布署于任何32位元处理器上。使用同样的平台来布署至客製设备,使得从原型建立到布署的转换过程更加容易且更具效率。
图形化方式提供许多重要优势,包括I/O元件的一致界面、与生俱来的平行运算能力,以及将基础的C程式码最佳化的机会。I/O节点提供与基本I/O元件之间的简单界面,供类比及数位I/O使用。此外,这些I/O节点提供与特殊设备驱动程式的界面,可以读取及写入各种週边,例如序列或乙太网路界面。最后,工程师需要调整所产生之C程式的能力,以便将设备的嵌入效能最佳化。图形化设计可以完成这个目的,让工程师有能力在图形化环境中撰写C程式码。
高阶图形化程式语言所提供的抽取(abstraction)功能担负起适当执行的重担,提升了设计过程的整体效率。透过将图形化程式输入至协力厂商的C交叉编译程式(cross compiler),将程式与客製处理器建立适当的连结、编译及程式码下载,可以确保达成这个目标。
供嵌入式控制设计使用的单一平台
使用单一的图形化程式设计平台进行运算法设计、原型建立以及布署,是将创新功能布署至设备中的有效方法。无论是设计数位滤波器、ECU或是机器控制系统,图形化系统设计背后的理念都是将高度最佳化的设计输入至具变通性的COTS硬体,然后再依需求输入至客製硬体。嵌入智能和信号处理是使硬体产品突显其不同特色的关键,尤其是在嵌入式和分散式应用中。因此,可以看得出来软体在这些系统当中扮演著重要的角色。使用单一平台可减少整体的啟动时间,尤其是在后续设计中;并且让工程师获得可重设程式处理器及客製I/O模组的变通性。
文章评论(0条评论)
登录后参与讨论