所以,我们将如何继续应对未来的复杂性呢?
一种方法是建立良好的策略和流程,保持测试套件和文档的全流程管理。现有的软件工程方式已成功构建了大型测试系统。
另外软件架构同样可以通过组织和限制设计遵循帮助认证过的Patterns,例如,LabVIEW中的Project templates和Actor framework就是这种方法。
当然,工具和开发环境的改进也有帮助。例如,通过LabVIEW NXG与DAQmx驱动程序和DAQ硬件的集成更加紧密,使交互式探索和自动化测量变得更加容易。
此外,专用工具可以通过减少定制开发的需求来处理整体流程的复杂性。像TestStand这样的专用工具可以处理应用程序的标准部分,而只开发您需要的自定义测试步骤。
通过NI提供的专用工具,加速软件开发和实施周期
第二种方法则是提高我们用于设计系统的抽象级别。对于目前复杂的系统,我们可以利用人工智能等方式提高抽象级别,可以减少人为的复杂性。想象一下你的车,如果您想要加速,使用自动变速箱等更高级别的抽象比标准变速箱更简单,因为标准变速箱还需要额外的手脚配合进行离合换挡。
两年前,我们在LabVIEW中引入了Channel Wire,提高了通信并行处理设计的抽象级别。相比低级语言设计起来更容易,更明显也更易于理解。实际上还有更多的工作可以进一步提高LabVIEW的抽象级别。
采用Channel Wire,上位机与FPGA之间的通信只需要简单的连线即可实现
从历史上看,我们的开发理念都是首先着眼于使难题成为可能,然后再让它们变得更容易。NI已经创建了跨越处理器和FPGA的测量应用程序,现在是时候考虑提高抽象级别以增加便捷性了。
假设我们可以在LabVIEW中将FPGA表示为一个盒子。内部的图表代表部署到FPGA中,外部的图表表示在处理器上运行。它们之间的通道表示通信路径,编译器使用底层的FIFO和DMA资源来实现连接。
Target软件体系结构对于简化cRIO应用和FlexRIO点对点通信应用程序,甚至对于分布式应用程序来说显示出巨大的前景。
这是我们为提高抽象级别而进行的一个例子,如果我们能够真正实现它,它将成为最先进的技术进步。
如图所示,未来可在一个软件系统开发框架内,实现上位机与FPGA的共同开发
让我来尝试描述我们一项正在进行的研究工作,它可以通过更加模糊且更高级的处理方式加速我们的设计流程。以一个麦克风测量系统来举例。
最开始,我们勾勒出设计理念,包括展示要测试的麦克风,提供激励信号的扬声器,驱动扬声器的波形发生器,测量响应信号的数字化仪器以及设置增益与频率。这种草图经常需要改进,例如,当我们为了获得更高的精准性,需要测量激励信号。
如果我们可以在LabVIEW中放置一个抽象设计节点并编辑它的图标来表示麦克风,用另一个图标来表示扬声器,为声波添加一些剪贴画,我们可以快速生成一个草图。
作为项目的一部分,它需要一些文档,但同样提高系统层级的话,我们就可以把它当做实施整个系统的启动点。
如果我们可以注释导线以显示激励信号,作为连续步进频率波形,并且对采集输出进行注释以显示要分析的波形流,这将使抽象算法更为清晰。我们还可以显示将采集到的信号流分成时间间隔信息。我们可以标记这个抽象级别,并通过将生成节点扩展为波形计算和波形输出来继续改进设计。并将采集节点扩展为模拟输入,将节点分割成块。
现在我们意识到,只有当我们有相同的时间参考时,这才会起作用,因此我们引入了一个开始时间,于是开始生成和采集同步。