码迷,mamicode.com
首页 > 其他好文 > 详细

SDH误码仪MP1570A的自动化

时间:2016-07-17 13:21:43      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:

MP1570A是日本安立公司的用于SDH测试的误码仪。

1.MP1570A的自动化测试场景和原理

      任意测试PC--(telnet)-->测试PC(Tcl Interrupt)-->SIG_Teq_Sdh.tcl-->(GPIB线)-->MP1570A chassis 

      MP1570A的情况很独特,首先它的chassis内部的软件架构使用的是VISA虚拟仪器软件架构。所以它的chassis没有IP地址,PC无法通过以太网线连接到chassis,只能通过GPIB线连接上去。chassis内部命令使用的是SCPI可编程仪器标准命令。安捷伦的仪表使用的好像都是这一套。

      因为我以前都是搞的都是以太网,写这个库真的是从头学习,很费事。虽然工作要求AT的功能不是很复杂,花的时间比前面的多。不过也学习了一个新的领域。收尾原理搞懂以后,以后再扩展就容易的多。

      VISA:
         虚拟仪器软件架构,是VPP统一制定的I/O接口软件标准和相关规范的总称,这个I/O函数库叫VISA库(用于仪器编程的标准I/O函数库),放置在PC目录下,是PC与仪器之间的标准软件通信接口,实现PC对仪器的控制.它实现了对使用GPIB,VXI,PXI,串口(RS232/485),以太网,USB,IEEE1394等各种接口的仪器进行配置和编程.
         VISA大致上分为2种:NI-VISA  Agilent-VISA
         MP1570A用的是安捷伦的Agilent-VISA驱动 

      GPIB:
         GPIB 通用接口总线,很多外设如一些仪表内置GPIB控制芯片和控制卡.通过GPIB线和GPIB口和control pc连接.比串口的传输速率更高.并且是可编程的
         GPIB 同时是HP提出的国际通用的工程控制用协议,IEEE488.为PC机与可编程仪器之间的连接系统定义了电气、机械、功能和软件特性

      SCPI:
         SCPI(可编程仪器标准指令集,由ASCII字符组成),可用于多种接口如GPIB,VXI,LAN,USB,串口RS232...

         它是一个独立于硬件的纯粹软件标准,是一种建立在现有标准IEEE488.1 和 IEEE 488.2 基础上,并遵循了IEEE754 标准中浮点运算规则、ISO646 信息交换7 位编码符号(相当于ASCll编程)等多种标准的标准化仪器编程语言。

         具体的SCPI指令集另外介绍,这里就略过了。

      总的来说MP1570A的自动化原理类似于Xena,只不过与chassis之间不是通过socket连接,而是通过GPIB线路连接到chassis的VISA地址,下发SCPI命令来操作硬件,并且它没有直观的返回结果和报告,AT的效果不是特别好。

 

2.MP1570A的AT注意事项

   (1)测试PC需要安装Agilent Connection Expect_(安捷伦连接专家安装包),安装agilent Library完毕后,C:/Program Files/目录下会出现Agilent,VISA两个目录。

   (2)需要用到Tcl的两个第三方库msgcat.tcl,tcom.tcl&tcom.dll,可以放到自己的包下单独的Library目录下方便移植。包的pkgIndex.tcl文件里写入下面两句:

        package ifneeded tcom 3.9 [list load [file join "$dir/Library/tcom" tcom.dll]]\n[list source [file join "$dir/Library/tcom" tcom.tcl]]
        package ifneeded msgcat 1.4.1 [list source [file join "$dir/Library/msgcat1.4.1" msgcat.tcl]]

   (3)编写的库文件里还要使用tcom库::tcom::import从GlobMgr.dll加载Agilent-VISA库,代码如下:

           set AgilentLib "C:/Program Files/VISA/VisaCom/GlobMgr.dll"
        # tcom包的::tcom::import命令从.dll类型库里创建新的命令,返回的是namespace名称,也就是该类型库名称
        # ::tcom::import $agilentLib 加载agilent库, 执行成功返回: VisaComLib
           if {[catch {set ret [::tcom::import $AgilentLib]} rst]} {
                puts stderr "$rst:Couldn‘t read file $AgilentLib for SDH TEQ "
           } else {
        #VISA中也是使用句柄来作为资源唯一逻辑标识符,长度4个字节
           set rm [::VisaComLib::ResourceManager]    ;#执行成功返回:   ::tcom::handle0x0231F770     建立资源管理器实例
           set fmio [::VisaComLib::FormattedIO488]   ;#执行成功返回:   ::tcom::handle0x0231F6F0     建立设备实例
           } 

 

SDH误码仪MP1570A的自动化

标签:

原文地址:http://www.cnblogs.com/elliotjiang/p/5677631.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!