我在NI的网站上下载了一个IVI驱动。这种特殊的驱动貌似工作正常,但是当我通过一个类驱动来使用该IVI驱动时,会报类似于“invalid attribute”的错误。为什么这种叫做IVI的驱动在一种类下工作时不是可互换的呢?
即使是一个符合IVI规范的驱动,也并不一定会具有IVI类驱动所特有的可互换虚拟仪器的特性。这是因为是“类驱动”层使得仪器具有可互换特性的。 因此,一个驱动是具有IVI驱动属性的,但并不一定是具有IVI类驱动(可互换)属性的。一些仪器驱动并不具有支持它的IVI类规范的特性。比如说,ChromaATE的 616XX 交流电源的IVI驱动具有IVI驱动的功能,但是如果没有一个专门为它编写的类驱动,它并不能够轻松的完成“可互换”的功能。
目前IVI基金会已经对一下8中驱动颁发了标准:
- IviScope
- IviDmm
- IviFgen
- IviDCPwr
- IviSwitch
- IviPwrMeter
- IviSpecAn
- IviRFSigGen
IVI驱动与典型的仪器驱动比较具有如下的特点:
- 状态缓存可以去除多余的仪器I/O
- 数据传递给仪器之前要进行范围检查
- 可以通过仪器的错误队列获得仪器的错误信息
- 内建的仿真能力
- 多线程安全的驱动
- 标准的属性模型
可互换虚拟仪器被认为是一种“类驱动”,并且具有如下附加的特点:
- 不同种类的仪器都具有软面板
- 仪器开发工具
- 仪器的可互换性
- 具有相同的驱动架构
如果想要对IVI驱动及其规范有更深入的了解,请参考如下链接。