通用计算机平台上IEEE-488兼容仪器的设计.pdfVIP

通用计算机平台上IEEE-488兼容仪器的设计.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
通用计算机平台上IEEE-488兼容仪器的设计

通用计算机平台上 IEEE-488 兼容仪器的设计 武汉理工大学信息工程学院,吕锋,陈园 通用计算机系统具有强大的处理能力以及丰富的软件资源,正在被越来越多的现代仪器所采用。在仪 器的设计过程中,往往需要提供 GPIB 接口以及相应的指令集以方便用户组成自动测试系统。针对这一需求, 本文提出了一个通用计算机平台上 IEEE-488 兼容仪器的设计方案:通过使用 GPIB 接口卡和编写相应的仪 器端程序,使得基于计算机的仪器能够模拟一个或者多个 GPIB 仪器。 1 IEEE-488 仪器简介 IEEE-488仪器模型如图1所示。仪器提供GPIB接口以及相应的指令集,指令集由以下几部分组成[1-2]: (1)IEEE-488.2 公用命令集,如:*IDN?,*STB?,*CLS 等。 (2)SCPI 标准规定的 STATus 和 SYSTem 子系统,主要用来报告仪器状态和进行系统设置。 (3)仪器特定测量功能指令。 其中,(1)和 (2)是仪器必备指令,(3)的选取与仪器的实际功能有关。用户只需要将 PC 机与带有 GPIB 接 口的仪器连接,通过调用仪器控制软件如 NI-488.2 和 VISA 等提供的 I /O 库向仪器写入指令,就能实现对 仪器的控制。 2 系统设计 2.1 系统组成 根据图 1 所示的模型,在通用计算机平台上设计的 IEEE-488 兼容仪器软硬件组成如图 2 所示。 仪器运行在 Windows 操作系统下,其各部分的功能如下: (1)PCI-GPIB 是NI 公司提供的GPIB接口卡。通过安装设备端软件NI-Device,使GPIB接口卡完成Talker /Listener 功能。 (2)模块函数和必备函数与 IEEE-488 仪器模型中的仪器函数相对应:模块函数是模块制造商提供的 API, 大部分用来处理仪器特定测量功能指令;必备函数通过访问状态报告模型和调用某些模块函数处理 IEEE-488.2 与 SCPI 标准规定的必备指令。 (3)状态报告模型由若干状态寄存器组构成,用来描述仪器的状态。大部分仪器函数都会访问此模型。 (4)仪器端程序采用 C++编写,主要负责接收主控计算机发送的指令,然后找到对应的仪器函数进行处 理。如果接收的是查询指令,还负责将仪器函数的响应结果返回给主控计算机。 系统的核心是仪器端程序和状态报告模型的设计,以下将对这两部分进行详细说明。 2.2 仪器端程序设计 仪器端的程序完成图 1 中除仪器函数以外的所有功能。其中,总线的消息处理即图 1 中GPIB 总线、I /O 组件、输出队列、消息交换组件、输入队列部分的功能通过调用 NI-Device 提供的 API 完成,其余部分 由设计者自行完成。 2.2.1 总线消息处理 总线上的消息处理主要通过调用 NI-Device 提供的 API 完成。NI-Device 是 NI 公司推出的一款面向仪 器制造商的设备端软件,可以为仪器开发人员处理绝大部分的 IEEE-488 协议要求,并且支持面向对象的 C++ 语言接口[3]。IEEE-488 兼容仪器主要使用以下几个类: (1)C4882Device:是一个抽象类,是所有设备类的基类,它定义了设备类与总线接口方式。当总线上发 生某个事件时,就调用相应的事件处理函数。此外,C4882Device 类还负责输入输出队列管理和状态字节报 告等。 (2)CGpibDevice:使用 GPIB 总线的设备类都必须是 CGpibDevice 类的派生类,它负责处理 GPIB 总线协 议。 (3)C4882MsgBuffer:输入和输出队列使用这个类来存储指令。 NI-Device 采用事件驱动的方式处理总线上的消息。仪器端程序只需要从 CGpibDevice 类派生出自定 义的仪器类,然后重载基类 C4882Device 的 InputQueueEventHandler、OutputQueueEventHandler、 DeviceClearEventHandler 事件响应函数,最

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档