ADI图形界面设计工具加速嵌入式系统的开发
——
当今的大多数嵌入式处理应用中,控制和实时编程都是通过C/C++和优化的汇编代码库联合实现的。在开源端,一旦为给定的体系结构写好了底层的驱动程序,所有的操作系统内核上层的其它代码都能自动“继承”。在购买部分或完整的解决方案(例如嵌入式VoIP参考设计)时,大部分基础工作已经完成,剩下的需要处理的只是整个系统的一小部分。比如,设计工程师可能只要在已有的核心解决方案中增加一些用户接口调整和机构增强就行了。
现在使用的另一种省时的方法是基于图形界面的嵌入式设计。它也是建立在软件驱动程序的代码基础上,但是编程的模式变成可视系统设计。通过在系统层编程,比较低层的功能被抽象成多层以简化系统设计。在图形编辑器下工作时,允许工程师可以从框图层开始建立一个应用程序。
过去,这种方法适于在PC机或工作站上的原型制作,因为将算法移植到嵌入式环境之前要确保其有效。它也是控制工业流和仪器的非常有用的方法。然而在早期,这种图形化方法不能生成足够的有效代码在开箱即用的嵌入式系统上运行(例如,重新写入的重要部分不能允许按照算法实时运行)。另外,几乎没有支持实际数据流实时输入输出系统的集成外设。
因此,最近的问题已经比较突出地集中在简化基于PC机的设计过程提高传输到嵌入式处理器的效率。这个问题包含以下三个方面:
1. 生成在目标处理器上运行的有效代码
2. 无缝地集成外围设备
3. 在处理器的图形化工具设备和原生工具设备之间有效地转换
这三个方面非常重要,因为他们使得新的一类程序员接触到嵌入式处理器。比如,有更多科学背景的工程师能用直觉的方法编程并调试“数据流程序” 。我们不要求成为了解某一具体结构特性或外围设备怎样工作的专家。当然,经验丰富的程序员也喜欢采用带图形界面的直观设计方法。
上述第三点值得更进一步的讨论。抽象体系结构和外围设备层很重要,但不完全关闭访问也很重要。在工具设备之间的变换能力需要进一步的优化、系统的调试和确认。
为适应嵌入式系统对图形界面设计工具的需求,美国国家仪器(NI)去年就宣布开始研究。特别是为ADI公司的Blackfin处理器设计的LabVIEW嵌入式处理模块为嵌入式设计工程师提供了一套完整的图形界面开发方法。ADI公司和NI公司强强联合,将两家公司各自的优势融合在一起。由此开发的产品无缝集成NI LabVIEW与ADI VisualDSP++开发环境。
传统的嵌入式编程方法是在文本编辑器中输入代码,而Labview使用一组“pallets”构成系统。所有我们熟悉的编程结构(分支语句、循环等)仍可提供。另外,操作数也可用,不过使用LabVIEW真正的好处在于扩展了对信号处理和分析库的支持。
从NI公司的角度来看,这项工作扩展了用于嵌入式开发的LabVIEW图形界面系统设计。使用常用工具进行传统设计和制造测试,同时在半导体上编程,所以能够真正缩短了产品上市时间。
从ADI公司的角度来看,LabVIEW嵌入式系统为Blackfin处理器开发商提供了数百种数学和信号处理功能位于集成的I/O库顶层。它还允许使用利用VisualDSP++开发的库中已有的代码。另外,使用一种称作设备驱动程序的常用应用编程接口(API)体系结构,很容易对常用器件驱动程序〔例如模数转换器(ADC)、数模转换器(DAC)以及音频和视频编解码器〕进行设置。
LabVIEW嵌入式系统建立其自己的一套设备驱动程序用于将多种外围设备连接到应用设备。可提供多种驱动程序用于覆盖多种应用。即使某种设备不在LabVIEW pallet的备选范围内,仍然为原生外围设备提供基本的设备驱动程序。这样在合适的LabVIEW 系统内,很容易增加用户指定的设备驱动程序。
LabVIEW嵌入式系统还包括一个由VisualDSP++支持的实时内核(VDK)。NI公司使用了一套虚拟仪器(VI),建立连接目标体系结构的接口。现在我们可提供多种应用实例,包括连接到CMOS传感器的基于视觉的系统、音频实例以及连接到教室机器人应用的“Handy Board”控制卡(见下面的链接)。
在每项应用中,都使用LabVIEW嵌入式系统构建流程。当用户想要做一些修改以匹配他们的应用时,几乎所有的修改都是在VI层上进行的(例如滤波器长度,匹配模式特性等)。通过运行"under the hood"将这些修改自动传播生成C代码。
该系统除了基本的系统设计工具,还有许多高级调试能力,这正是VisualDSP++工具非常宝贵之处。工程师能将工具与要调试的硬件直接连接起来,以迅速检查出处理器和隔离问题。
LabVIEW嵌入式模块还为Blackfin处理器提供了一个评估平台,其中包括NI公司的“虚拟仪器教学套件(ELVIS)”连接器。这种连接器能用来与提供连接到各种NI数据采集卡和不同种类硬件产品的专用适配器连用。
评论