如何为仪器控制系统选择合适的驱动软件
概览
在开发 仪器 控制系统时,驱动软件常常被忽视。驱动软件是处理仪器和应用软件之间的通信层。尽管硬件的性能指标很重要,但若使用了较差的驱动软件会对整个系统的开发时间和性能产生很大的影响。可以使用两种不同的方式控制仪器:通过直接I/O命令,或者使用仪器驱动。
在选择一个用于与仪器通信的驱动软件时,需要注意如下5个方面:
我该使用直接I/O命令还是仪器驱动来控制仪器?
该仪器驱动是否与我的操作系统兼容?
该驱动与我们的应用软件能否很好地兼容?
该驱动是否有详尽的文档?
该驱动是否包含启动或诊断工具?
1. 我该使用直接I/O命令还是仪器驱动来控制仪器?
您可以使用两种不同的方式控制仪器:通过直接I/O命令,或者使用仪器驱动。通常,大家会选择仪器驱动的方式,因为这样效率更高,节省时间。
直接I/O命令
如果您无法找到某个特定仪器的驱动,或者不需要使用仪器驱动,那么您可以使用交互式工具进行直接I/O控制和通讯。如下所示为不选择使用仪器驱动的理由:
您只需向仪器发送少量的命令;
该仪器不存在驱动;
您不需要将仪器命令发布给其他***;
仪器驱动
仪器驱动是一个函数库,包含用于控制特定仪器或者仪器家族的高层函数。它们对于快速开发测试和测量应用至关重要。通过提供高层的模块化函数库,可以很容易地进行编程,无需学习复杂的底层编程协议(底层协议可能只适用于某个特定仪器)。仪器驱动是一组软件程序的集合,通常用于编程控制时所需的针对仪器进行配置、读取、写入,以及触发等操作。此外,对应于同一类设备的仪器驱动通常具有一个通用的架构和API。因此,当您使用过一个仪器的驱动之后,也可以很容易地将其用于另一个仪器。通常,针对各种仪器控制和测试应用的仪器驱动分为两种类型:
即插即用的仪器驱动,采用适合于所有驱动的标准编程模式,因此易于使用,大大简化了仪器的控制和通信操作。即插即用的仪器驱动提供了内置的源代码,能够与软件编程环境轻易集成,而且它与硬件的交互方式比其它的仪器驱动技术更加简单。
IVI仪器驱动 的性能更高、更加灵活,适用于需要可互换性、状态缓冲,以及仪器仿真的复杂测试应用。
2. 该仪器驱动是否与我的操作系统兼容?
操作系统的种类繁多,包括Windows、Mac 操作系统,以及Linux等;这些操作系统各有所长,适用于不同类型的任务和操作。每种操作系统也会包含不同的版本、发布方式以及针对特定处理器的特殊设计。例如,Windows操作系统家族包括Windows XP、Windows Vista以及Windows 7等,且针对32位和64位处理器都有不同的适用版本。由于Linux系统是开源的,因此其变种多达数百个。每个类型、发布或版本的操作系统的功能都会有所差异,且操作系统之间可能相互兼容,也可能不兼容。
对于即插即用的仪器驱动, 是专门针对一个特定的应用开发环境(ADE)而设计,可用于此ADE所支持的所有操作系统。
IVI仪器驱动 仅支持Windows操作系统。
3. 该驱动与我们的应用软件能否很好地兼容?
仪器驱动与应用软件的兼容程度不尽相同。每个仪器驱动的核心都是一个函数库(DLL),用于管理与仪器的通信。正常情况下,厂商会提供针对此函数库的说明文档;而在某些情况下,厂商会提供此函数库针对各种编程语言环境的封装。这些封装是一些简短的代码,将函数库内的函数翻译成兼容于特定编程语言的接口。有时,可能没有针对您期望的某个编程语言的封装,或者根本就没有任何封装;此时,你可以使用直接I/O命令与应用软件进行交互。
如果该仪器驱动与你的应用软件本身就是集成在一起的,那就再好不过了。在这种无缝的集成关系下,驱动中的函数和文档都内置于应用软件中,总体性能更好。
即插即用的仪器驱动 提供源自某个应用开发环境(ADE)的源代码。有了源代码,你就可以对仪器驱动进行修改、自定义、优化、调试和增加功能。源代码还可以让即插即用的驱动得以跨平台兼容,因此你可以在该ADE所支持的任意一个操作系统内使用该驱动。
IVI仪器驱动是基于两种不同的架构开发出来的驱动,包括:基于ANSI C的IVI-C驱动和基于Microsoft 组件对象模型(COM)技术的IVI-COM驱动。两种架构的设计初衷就是并存发展,不相互排斥。
4. 该驱动是否有详尽的文档?
仪器驱动通常会包含各种形式的文档,包括用户手册、函数参考、版本发布注意事项、已发现的问题以及范例代码等等。如果你所参考的文档杂乱、不完整,那么就会非常浪费时间。如果一个驱动的编程接口相关的文档不够详尽,那么你就需要通过反复试错的方式确定其功能,这样会非常耗时、且令人沮丧。虽然反复试错是一种学习驱动的功能和句法的有效方式,但是你仍需在必要时找到手册以便查询。因此,如果驱动的文档能够编排合理、内容详尽,可以给你带来极大帮助。
良好的驱动软件相关文档应该内容完整、便于浏览、易于遵循。比较理想的情况下,还应该对你所熟悉的编程语言提供范例代码,并提供详细的、包含有用信息的错误消息。你应该事先了解驱动软件的文档情况,避免在后续使用中遇到麻烦。
5. 该驱动是否包含启动或诊断工具?
除了相关文档以外,驱动的启动和诊断工具可以帮助你快速地安装和运行驱动,而且可以对错误进行诊断。你应该充分利用大多应用开发环境所提供的交互式直接I/O功能
![](/Content/images/news/yzcode.jpg)