EDN China > 设计实例 > 嵌入式系统 > 开发工具 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

基于NI VlSA的仪器驱动设计

来源:电子技术 王凡 潘克修等?? 2007年04月20日 ?? 收藏0

?????? 驱动设计

  仪器驱动是用来控制可编程仪器的一组函数的集合,包含对仪器的各种操作:配置,读出、写入和触发等。仪器驱动函数的工作流程是:读取前面板上对仪器的控制命令一把命令格式化为仪器能够解析的命令字符串→读取仪器返回的响应结果→根据读取的结果更新前面板上的显示。仪器驱动已具有交互性,可编程性和通用性。仪器驱动一般通用于某一类的仪器。对于某个仪器的特殊的性能,则另外编写相应的函数。

  仪器驱动包含两大类的VIs,一类是组件VIs(componentVIs),一个函数控制仪器的一个特定的功能,另一类是高级的应用函数VIs(Application vIs),一个函数由多个组件vIs组合而成,实现仪器的一个基本的测试或测量操作。其设计模型如图1所示。

设计模型

  应用函数VI

位于仪器驱动层次的最高级,通过调用组件级的VI来实现一般的仪器配置和测试操作。用户只调用这些高级应用VIs就可以实现单一的面向测量的仪器接口。

  组件vIs是较低级的仪器驱动函数。组件VIs是模块化的VIs,它们包含了仪器所有的配置和测量功能,共分为六类:初始化(Initialize),配置(Configuration),操作和状态(Action/Status), 数据(data),功能(Utilitv)和结束(Close)。组件VIs与仪器的具体功能有关。在设计仪器驱动时,根据仪器的功能将相应的指令归类。

  要对逻辑分析仪1673G编写仪器驱动,首先熟练仪器的操作,研究其指令系统,然后确定要实现的VIs。表l给出了选件003示波器要实现的vIs。

  1673G的指令包括普通的SCPI命令,系统级的设置和配置命令,以及针对各个选件 (逻辑分析仪,示波器和码型产生器)的命令。文中的驱动主要针对逻辑分析仪和示波器进行编写,预达到可以对逻辑分析仪和示波器进行仪器控制,并且可以得到逻辑分析仪和示波器的采集数据,可以得到示波器的测量数据。

  以实现初始化函数AGl673GInitialize.vi为例, 先用VISAOPEN节点打开一个仪器的Session,然后调用propertv nodtj识  别仪器的接口类型,建立计算机与仪器之间的通信。然后调用VIsA write向仪器发出%IDN?命令,接着调用vIsA 0PEN读取仪器的响应结果,对读取到的字符串进行分析,与仪器的标识符进行比较,若结果正确就输出dupVIsA Session供以后的函数节点调用。程序调试成功后把程序制作成sutVI以备调用。具体流程如图2所示。

具体流程

  然后根据表1的命令分类,依据各种命令的功能,组合成各种(20mponent VIs和ApplicatioVIs功能,然后同上的方法调用VISA节点和LahvIEw对字符串和数据、数组之间转换的节点(VI模板)编写所有的驱动VI,并且在最后形成一个VI树。VI树中应包含仪器驱动所有的V!,如图3所示。

要实在的vis

  基于VISA仪器驱动的设计基本步骤:熟悉仪器的操作,熟悉仪器的变成指令,确定要实现的VIs,形成仪器驱动的设计框架;调用VISA节点实现组件VIs,并在组件VIs的基础上实现需要的应用VIs;把仪器驱动中的VI制作成subVI以方便用户调用;描述各个VI的功能和连接线用法。

  文中的仪器驱动成功实现了计算机对安捷伦1673G的控制,并且可以把仪器采集到的数据读人计算机中,利用LabVIEW强大的分析功能进行数据分析。而且文中使用的驱动制作方法适用于其他支持的VISA的仪器。


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

NI VlSA? 驱动?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈