软件工具高级嵌入式控制这篇文章包含在线额外材料。

尽管在任何环境下开发应用软件都具有类似的特征,但嵌入式控制软件的要求和限制更为严格。执行速度、时间问题、内存大小、测试范围和安全分区(取决于应用程序的关键程度)都比一般基于pc的软件有更高的要求。

通过弗兰克·j·巴托斯 二四年四月一日
一目了然
  • 严格的发展要求

  • 在主机上可视化

  • 在目标硬件上执行

  • 更强大的开发工具

  • 套牢的方法

栏:
软件工具缩短了嵌入式运动控制的设计周期

尽管在任何环境下开发应用软件都具有类似的特征,但嵌入式控制软件的要求和限制更为严格。执行速度、时间问题、内存大小、测试范围和安全分区(取决于应用程序的关键程度)都比一般基于pc的软件有更高的要求。

嵌入式或专用软件的进一步区别是与“目标硬件”直接交互,而不是与程序代码行交互。仿真和仿真是开发过程的一部分,以获得目标控制器和嵌入到机器中的芯片的预期性能。而且软件必须不受频繁版本变更的影响。

代码大小,执行速度,....

赛普拉斯半导体公司(Cypress Semiconductor Corp.)子公司赛普拉斯微系统公司(Cypress MicroSystems)的战略营销总监内森·约翰(Nathan John)指出,无论是开发通用软件还是嵌入式控制软件,设计人员都必须与代码大小、执行速度和开发时间作斗争。然而,正是这些因素的相对重要性区分了这两个领域。

约翰说:“例如,对于嵌入式程序来说,代码大小几乎总是至关重要的。”大多数嵌入式应用程序都急需代码空间,而低效的空间使用是不可接受的。相比之下,通用软件设计人员很少受到代码空间限制的困扰。至于执行速度,嵌入式软件设计人员必须满足最终应用程序的速度要求,但进一步的速度优化不会获得任何优势。约翰补充说,例如,在试图让机器人的动作比需要的更快(如果可行的话)时,“没有人会因为机器人提前到达而欢呼”,然后等待另一个组装序列。然而,希望你的电脑运行得更快是另一回事。

Green Hills Software Inc.的产品管理总监大卫•巴内特(David Barnett)认为,嵌入式应用软件对实时(或确定性)性能的要求比普通软件严格得多,以确保它能够“跟上”被控制的过程或系统。此外,必须最小化内存、处理器速度和其他资源,以优化应用程序资源,包括可靠性。Barnett根据具体需求列举了这种极简理念的不同原因:将大批量应用的成本降至最低,将电池运行的功耗降至最低,并在涉及环境或外形因素限制的情况下将散热降至最低。

他还提到嵌入式软件控制关键任务的工业、医疗、汽车和飞机应用需要更高的可靠性。Barnett解释说,嵌入式软件需要更高的安全性,以防止外部攻击,并允许对安全关键应用程序进行分区,以便将更严格的质量保证应用于需要最高可靠性的软件部分(即控制功能与用户界面)。

软件工具的好处

赛普拉斯微系统公司的可编程系统芯片(PSoC)设备的集成开发环境(IDE)包含一个新颖的前端设备编辑器,据说可以简化用户在应用程序开发流程中的体验。

风河认为,嵌入式控制软件的开发依赖于“多种具有专业功能的工具”,从应用程序设计到编译器、调试器和测试工具等传统工具。风河公司的市场总监Marc Serughetti解释说,这类软件的一个显著特征是,用户在标准主机(例如PC或Unix工作站)上开发他们的应用程序,但软件并不打算在该主机上运行。他说:“嵌入式应用程序的应用软件被设计成在特定的目标硬件上工作,并具有特定的功能。”所有这些工具都可以用来在主机上可视化目标硬件上软件的执行情况。

根据Serughetti的说法,调试能力对于嵌入式软件开发尤为重要。在风河的产品中,他提到了visionTrace可以监视集成程序流以更快地调试代码的系列。它提供了用于重建软件执行的跟踪解决方案,使用在执行期间从CPU获得的信息访问来自内部缓存和外部总线周期的代码和数据。编译器还在软件开发中发挥关键作用,通过优化代码生成、大小和执行速度来最大化目标硬件的性能。更紧凑的代码意味着更少的内存需求,这直接影响了嵌入式设备的成本。编译器在控制应用程序中特别有用,它为代码生成工具技术增加了另一层优化。Serughetti说:“采用最新优化技术的编译器生成的代码通常比标准编译器快20%到30%,在某些情况下,速度是标准编译器的两到三倍。”

风河引用的其他开发工具包括用于软件行为实时可视化的工具。听诊器,一种实时图形监视器,允许用户在代码不间断运行时查看系统中的任何变量或内存位置。峰值和代码异常可以被观察、分析和保存。CoverageScope(另一种分析工具)显示了在测试用例中实际执行的代码部分。彻底的代码测试可以在下载软件之前发现并修复更多潜在的错误。在设计过程的早期进行修正显然可以节省时间、精力和金钱。

赛普拉斯微系统公司的约翰说:“对于嵌入式程序员来说,提高工作效率是好的软件工具的首要好处。”随着项目进度的缩短,开发工具必须为这种提高的生产力水平提供支持。

Cypress MicroSystems为其提供了集成开发环境(IDE)可编程芯片系统(PSoC)混合信号阵列器件。该应用软件前端的图形化“设备编辑器”据说提供了独特的功能。它将设计人员与称为“UserModules”的逻辑元素联系起来,这些逻辑元素提供更高级别的功能,如定时器、脉宽调制器和A/D转换器(参见“PSoC”图)。硅的灵活性与软件相结合,允许用户通过简单的寄存器设置配置底层模拟和数字硬件。UserModules还包括应用程序接口例程,用于与用户代码中的函数对话。“嵌入式程序员的大量时间花在操作硬件外围设备上,而这个软件工具将允许在这个过程中大幅减少时间,”约翰说。

时间依赖性

Green Hills强调开发和测试实时软件的时间依赖性很强。在这样的环境下工作成为新软件工具日益需要解决的挑战。巴尼特说:“软件漏洞经常间歇性地出现。”他解释说,复杂的交互(线程)和不同类型的程序输入会导致间歇性的计时问题,而传统的方法——比如用传统的调试器和/或检测应用程序代码来单步调试处理器——无法发现这些问题,因为它们扰乱了计时本身。

Green Hills公司最近推出的两款创新工具提供了解决方案。SuperTrace探针可以从芯片实时捕获多达1 GB的原始应用程序数据,而无需运行时检测或侵入式调试。捕获发生在超过300 MHz的速度下,但由于逻辑压缩,这相当于高达20亿个处理器周期(时钟速率高达1.2 GHz)。当bug出现时,时光机器调试器脱机分析捕获的历史记录。这允许开发人员在查看源代码和数据的同时,从错误的发生到其根本原因进行反向调试。Barnett补充说,该工具提供了“在时间维度上对应用程序的精确行为的全面可见性”。

Jenifer Loy,美国国家仪器公司LabView实时产品经理,对用于开发嵌入式控制应用的两种方法进行了历史回顾。她指出,“针对特定类型的应用进行优化的有限工具”代表了一种方法。这里的一个例子是plc——数字逻辑系统的理想选择——通过预编程模块专注于应用。她说:“第二种方法是通过ANSI C IDE编程的实时组件(操作系统和处理器)给开发人员提供无限的灵活性。”每种方法在其发展过程中都增加了渐进式的改进,例如PLC设备的模拟测量和实时操作系统的集成库。对嵌入式开发工具的需求正在上升,这其中存在一个挑战:根据Loy的说法,许多新用户缺乏传统工具所需的背景和经验。

两种嵌入式控制方法的混合正在出现。她解释说,新的工具类别针对目标硬件进行了优化,使工程师能够专注于特定的应用程序,而不是编程细节。“有了一种新型工具,工程师就可以在系统层面开发软件,该工具可以生成C代码。然而,翻译从来都不是完美的,所以工程师必须手工调整C代码以达到必要的优化,”Loy补充道。

可视化编程

使用美国国家仪器公司的图形化开发软件工具,如虚拟仪器实时虚拟仪器FPGA,用户可以通过可视化编程技术开发嵌入式应用程序,而无需进一步的代码翻译。LabView代码直接编译为机器码。

可视化编程是嵌入式软件工具带来更高生产力的一个例子(参见“软件工具…”侧栏)。赛普拉斯微系统公司的John说:“可视化编程是嵌入式软件开发社区的自然进化……现在它已经根深蒂固了。”“我估计10年前80%的嵌入式设计是用汇编语言完成的,而今天我猜情况正好相反,80%是用C语言完成的。”

Wind River的Serughetti认为,随着嵌入式设备软件内容的增加,应用程序开发工具、支持工具和其他专用工具需要在开放的集成开发环境中协同工作。最近重组的Eclipse Foundation就是这样一个开放框架的例子。

专家们一致认为,随着关键控制和安全相关应用嵌入更多软件,测试和可靠性将得到更多关注。

在线额外控制工程2004年4月文章,“嵌入式控制软件”

IBM Rational还指出了通用应用程序和为嵌入式控制编写的软件之间的区别。“嵌入式控制软件通常必须符合更高程度的约束和功耗、时序、恢复等方面的需求,”Rational、MDD Products的技术营销经理Marc Brown说。他进一步强调,控制生命关键或安全关键设备和系统的软件需要经过美国FDA或FAA的广泛认证测试。更重要的是,嵌入式软件的缺陷会通过昂贵的设备召回而危及业务底线。

Brown继续解释说,嵌入式控制应用软件工具的最新消息包括针对开发人员和测试人员的日益复杂的“工具和工具自动化级别”。

至于可视化编程是否适合应用软件开发,他说:“可视化编程是帮助团队在更短的时间内用更少的资源开发更复杂软件的关键因素。它允许团队将复杂性抽象到可理解的层次,并可用于自动化许多繁琐的手动活动。”

Eclipse基金会

正如在主要文章中提到的,成功集成各种高级软件开发工具的基本要素是一个开放的环境。Eclipse基金会最近重组为一家非营利公司,就是提供这种环境的组织之一。

该基金会将自己描述为“一个由开放的工具提供商社区构建的工具集成开放平台”。Eclipse平台在开放源代码范例下运行,具有提供免版税源代码和全球再分发权的公共许可。这为工具开发人员提供了完全的灵活性和对软件技术的控制。
基于eclipse的工具在多供应商环境中为开发人员提供了充分的语言和平台选择。该框架使创建、集成和使用软件工具变得更加容易,其最终目标是减少开发时间和成本。Eclipse平台使用Java语言编写。它包括广泛的插件构建工具包和示例。Eclipse已经应用于Linux、QNX、Osx和基于Microsoft windows的系统等开发工作站。

更多开发工具
Metrowerks和Encirq公司最近合作了一个解决方案,以帮助开发人员在摩托罗拉16位HC(S)12微控制器环境下工作。该工具套件- metrowerks CodeWarrior Development Studio for HC(S)12, Data Expert edition -结合了Encirq的3e Data Management Suite for HC(S)12设备和CodeWarrior集成开发环境(IDE)。

据报道,经过验证的16位应用程序IDE和紧凑的嵌入式数据库的结合使开发人员可以轻松生成紧凑、可靠的应用程序。产品供应商表示,Encirq 3e Data Management Suite允许用户以内联c语言源代码的形式创建定制的、特定于应用程序的数据管理组件,这有助于自动化管理实时数据和设备的应用程序的嵌入式开发。

CodeWarrior Development Studio for HC(S)12, Data Expert Edition使用一种简单的高级标准语言直接在CodeWarrior项目环境中生成C代码。然后,代码可以与其他应用程序代码合并,并自动优化以充分利用HC(S)12特性。

CodeWarrior Development Studio for HC(S)12, Data Expert Edition现在售价为7,995美元(美元)。评估光盘可向Metrowerks索取。

CoWare公司最近宣布了其用于嵌入式处理器建模、设计和软件工具生成(基于Lisa 2.0语言)的LisaTek集成产品套件的新功能升级。嵌入式设备设计人员现在可以使用高级语言对处理器进行建模;并且还自动生成指令集模拟器以及一套完整的相关软件工具,包括它的C编译器。用于DSP和控制应用的定制处理器也可以通过自动生成可以合成的寄存器传输级别(RTL)代码来启用。CoWare在C编译器生成和RTL生成技术方面有专利申请。

LisaTek套件包括处理器设计器,用于创建处理器IP仿真模型及其软件开发工具;用于创建自定义C编译器的C编译器设计器;处理器生成器,生成处理器硬件的RTL实现代码。使用C编译器设计器,用户可以为他们的嵌入式处理器创建编译器,使用相同的Lisa 2.0处理器描述和图形界面来提供必要的输入。“设计器”显著缩短了C编译器的开发时间。

在LisaTek中使用新的和扩展的C/ c++图形调试器允许快速模拟和调试模型,以确保获得正确的功能,减少识别软件错误所花费的时间。CoWare表示,进一步的处理器优化可以通过模拟分析来了解和消除任何性能瓶颈,并实现最佳架构。

软件工具缩短了嵌入式运动控制的设计周期

电机和运动控制是一个日益发展的主流嵌入式应用。最近,The MathWorks和德州仪器(Texas Instruments)的合作进一步强化了这一形象。它采用MathWorks的新工具形式-“TI C2000的嵌入式目标”-允许工程师直接在德州仪器TMS320C24x和C28x控制器上设计,实现和验证实时控制和信号处理算法。而且它是可视化的,不需要手动编码(见图表)。

如今,运动系统设计人员正在采用先进的处理器来处理更多的计算密集型控制算法,以满足客户对更精确的位置、速度和扭矩控制的需求。同样有能力的软件工具需要有效地利用这样的处理器,例如,TI C2000,具有增强的功能,几个片上外设和高处理器速度。

The MathWorks的DSP产品经理Arun Mulpur解释说,TI C2000的嵌入式目标通过自动、高效的代码生成和Simulink的外围编程支持缩短了应用程序的设计周期。它通过Matlab Link for Code Composer Studio与TI的集成开发环境无缝协作,允许在Matlab中执行CCStudio命令进行分析、调试和自动代码验证。用户的好处包括:

设计控制多种电机拓扑的复杂算法——交流感应电机无传感器矢量控制、开关磁阻电机电流形控制和永磁同步电机伺服控制;

建模和仿真运动控制系统的性能;和

根据规范验证生成代码的性能。

TI C2000的嵌入式目标定价为4,000美元。