GPIB:永远不会被淘汰 (转载)
发布时间:2014-07-02 来源:www.china-igbt.com
1994年5月出版的《测试与测量世界》中刊登了我冒险撰写的一篇名为《GPIB,时刻保持警惕》的文章,其中我预测风靡一时的仪器总线将被以太网和并行端口所取代。2003年4月,我又撰写了一篇名为《GPIB现仍占据主导地位》的文章,探讨形势是否已发生改变。
接下来在2006年,我发表了一篇名为《思考仪器总线的前景》的文章,之后有人就此发表评论:“我们没有合乎逻辑的理由淘汰GPIB。我们为GPIB的发展投入了那么多的人力、物力和财力,不可能轻易地就淘汰。纵观未来,那些GPIB或USB永远无法解决的应用难题会在LAN(尤其是LXI)的帮助下迎刃而解。”

图:2013年所出货的SG系列DC电源中有15%具有GPIB,和带有LAN端口的产品数量相等(资料来源:Ametek Programmable Power)。
自我发表了第一篇文章后,形势的确发生了改变。并行端口销声匿迹,取而代之的是USB,但GPIB却排除万难,继续在市场中占据一席之地。我对现在的情形也觉得很困惑,GPIB仍存在于人们的生活中。例如,吉时利仪器公司最近发布了两款用于自动化测试的电源设备。该公司甚至在其2月18日新闻稿的标题中提及了GPIB:《吉时利2200系列又添新成员—两款GPIB可编程电源》。与此相反,安捷伦最近发布的任意波形发生器使用了以太网和USB接口,没有用到GPIB。
GPIB是否仍为仪器总线界的龙头?为找出答案, 我对安捷伦、Ametek Programmable Power及美国国家仪器的相关人员进行了访谈。一般而言,GPIB现在仍广泛应用于融合多种仪器的自动化测试系统中。美国国家仪器公司仪器控制部产品营销工程师Katie Collett表示:“GPIB的地位仍是坚不可摧的。”她解释道,GPIB凭借其适用性仍被各公司视为理想之选。
尽管安捷伦在一些新仪器中弃用了GPIB,但市场营销部经理Doru PopescuGPIB:永远不会被淘汰表示,GPIB仍深受众多测试工程师的欢迎,他说道:“它(GPIB)仍然是组装测试系统时最常使用的接口。它性能稳定、可预测且速度够快,适用于大多数应用。GPIB使用起来较为方便,而新型LAN/LXI的使用也带来了一些明显的问题,如电缆/连接器易破损,涉及IT范围、动态地址及延迟等问题。新型仪器中使用了多种接口和适配器,以避免紧急迁移这一情况产生。”令人意外的是,在同时有LXI、USB和GPIB三种仪器连接方式可选时,全球一半以上的用户仍会选择使用GPIB。
由于航空航天和军事产品具有较长的寿命周期(寿命一般都长达20年),GPIB仍广受这些行业众多测试工程师的欢迎。为了将基础仪器成本降到最低,测试设备生产商更倾向于使用GPIB。
当被问到“哪种类型的仪器倾向于使用GPIB”时,Ametek ProgrammablePower营销和业务拓展事业部副总裁BillRuff回答道:“现在,我们的DC和AC系列产品仍然提供GPIB。我认为,需要提供更多时间确定性测量功能的仪器都会选择使用GP IB。LAN替代方案可能是具备IEEE 1588功能的仪器。”
从Ruff的回答中可以看出,具备IEEE1588功能的LAN似乎能够与使用硬件握手的GPIB的确定性性能相匹配。但是,仪器必须具备IEEE 1588功能。Ruff提供的图片(图),显示了Ametek公司SG系列DC电源使用GPIB、LAN及两种总线都不使用所占的比例。
尽管GPIB在自动化测试设备(ATE)的仪器总线列表上排名靠前,但在工作台故障排除方面却输给了USB。首先,USB无需使用转换器,当然,以太网接口也是如此。此外,USB操作容易,运行稳定,且每台电脑都配备有USB接口。USB通常适用于工程应用,但在生产环境中,许多工程师更倾向于使用GPIB,因为GPIB具有稳定的电缆和连接器,且不会产生延迟和IT问题。
许多仪器驱动程序会与硬件同时运行。在使用了虚拟仪器软件结构(VISA)软件层的自动化测试应用中,你仅需指定VISA使用哪根总线。高层级仪器驱动程序仅负责将指令传送至VISA,其他的事情都由VISA处理。
在台架或生产试验中,你会选用哪种仪器接口线缆?
GPIB:永远不会被淘汰 (转载)的更多相关文章
- 剖析虚幻渲染体系(11)- RDG
目录 11.1 本篇概述 11.2 RDG基础 11.2.1 RDG基础类型 11.2.2 RDG资源 11.2.3 RDG Pass 11.2.4 FRDGBuilder 11.3 RDG机制 11 ...
- Web前端理论知识记录
Web前端理论知识记录 Elena· 5 个月前 cookies,sessionStorage和localStorage的区别? sessionStorage用于本地存储一个会话(session) ...
- PIE 插件式开发小笔记__PIESDK学习体会
基于PIE.NET-SDK插件式二次开发文档笔记: PIE 插件式开发配置文件: 它里面一行如下: 理解上一行'Item'关系-> library:为插件类名(程序集名称+后缀 ...
- [WEB安全]绕过URL跳转限制的思路
0x00 简介 说起URL跳转漏洞,有些人可能会觉得,不就是单纯的跳转到某一个其他网页吗?有什么用??? 给大家一个链接,你们进去看一下就明白了: http://www.anquan.us/searc ...
- [整理] LRU 算法的实现方式
目录 概念 方法选择 实现方案(基于LinkedHashMap) 改进方案 1.LRU-K 2.Two queue 3.Multi Queue(MQ) LRU类算法对比 LRU 在 Redis 中的应 ...
- JVM知识梳理
JDK 是什么? JDK 是用于支持 Java 程序开发的最小环境. Java 程序设计语言 Java 虚拟机 Java API类库 JRE 是什么? JRE 是支持 Java 程序运行的标准环境. ...
- redis 内存管理与数据淘汰机制(转载)
原文地址:http://www.jianshu.com/p/2f14bc570563?from=jiantop.com 最大内存设置 默认情况下,在32位OS中,Redis最大使用3GB的内存,在64 ...
- 记住,永远不要在MySQL中使用“utf8”编码[转载]
记住,永远不要在MySQL中使用“utf8”编码 原创: 无明.Adam 聊聊架构 6月15日 最近工作中我遇到了一个 bug,我试着通过 Rails 在以“utf8”编码的 MariaDB 中保存一 ...
- 《Web全栈工程师的自我修养》读书笔记(转载)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/5 ...
随机推荐
- WPF-流文档元素
1.Block元素 用于分组其他元素 Paragraph是块级别元素,文本段落 Paragraph.Inlines集合内. 设置第一行缩进量Paragraph.TextIndet 2.Inline元素 ...
- 基于params,ref,out的参数问题详解
http://www.jb51.net/article/37967.htm 最近在写程序时遇到params,ref,out 参数问题.回头有自习看了看MSDN,才巩固了基础.现在和大家分享一下.par ...
- Python3.5 用 pip 安装lxml时出现 “Unable to find vcvarsall.bat ”?(转载)
来自:https://www.zhihu.com/question/26857761 解决步骤: 1. 安装wheel,命令行运行: pip install wheel 2.在这里下载对应的.whl文 ...
- 为毛无法创建文本文件COM1.txt
是的,windows系统下,右键,新建文本文件,将文件名编辑为COM1.txt,确认,保存……THEN....你会发现无论如何也无法创建一个文本文件,名为COM1.txt. 猜是COM1被作为了IO设 ...
- 利用百度云免费备份SQL数据库
我们开发了一个会员管理系统,随着使用的人越来越多,异地备份数据库就显得十分重要,万一硬盘出问题了怎么办呢.所以就着手做这个工作. 首先呢,找到了几个专门用来提供备份数据库的网站,一年好几百,好贵.放弃 ...
- ios7 ios8 cell中下划线偏移(separator Insets)处理方法
在ios7中,UITableViewCell左侧会有默认15像素的空白.这时候,设置setSeparatorInset:UIEdgeInsetsZero 能将空白去掉. 但是在ios8中,设置setS ...
- 写出形似QML的C++代码
最开始想出的标题是<Declarative C++ GUI库>,但太标题党了.只写了两行代码,连Demo都算不上,怎么能叫库呢……后来想换掉“库”这个字,但始终找不到合适词来替换.最后还是 ...
- OAF_开发系列23_实现OAF数据格式CSS和CSS库(案例)
20150716 Created By BaoXinjian
- 理解C++的inline函数
C++的inline函数就是编译器在编译代码时,将"对此函数的每一个调用"都以函数本体替换之,该过程发生在编译期间. inline函数的优点是,它可以省去函数调用所带来的额外开销, ...
- EASYUI 表单(FORM)用法
提交表单 $('#addform').form('submit', { url: '/Admin/AdminUser/AddAdminUser', onSubmit: function () { re ...