- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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 事件响应函数,最
您可能关注的文档
最近下载
- 《城市轨道交通工程设计概算编制办法》(建标[2017]89号).pdf
- 建设工程技术支持方案(3篇).docx VIP
- 饲料企业生产成本控制.ppt VIP
- 首航加油加气站LNG加气项目职业病防护设施设计专篇资料性附件.pdf VIP
- 截渗墙工程施工方案(3篇).docx
- 数据资产入表全流程指南(92页 PPT).pptx VIP
- 新项目方法验证能力确认报告(固定污染源废气-烟气参数的测定HJT-397-2007).docx VIP
- 外国影视音乐 星球大战 课件高中音乐人音版(2019)必修 音乐鉴赏.pptx VIP
- 部编版八年级语文上册古诗文理解性默写练习.docx VIP
- 时间管理写ppt关于时间管理 内容.ppt VIP
原创力文档


文档评论(0)