SDH误码仪MP1570A的自动化
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的自动化的更多相关文章
- Memory及其controller芯片整体测试方案(下篇)
{ 第三部分 } DDR总线的设计.调试和验证 在计算机架构中,DDR作为程序运算的动态存储器,面对如高性能计算.图形计算.移动计算.工业应用等领域的要求,发展出DDR4,以及用于图形计算的G ...
- PCIE 3.0中使用的动态均衡概念
一.PCIE 3.0中使用的动态均衡概念 因为PCIE 3.0信号的速率可以达到8Gb/s,而且链路通道走线也可能会很长,这可能会导致高速信号衰减过大,在接收端无法得到张开的眼图.因此在PCIE 3. ...
- Java生鲜电商平台-生鲜售后系统的退款架构设计与代码分享
Java生鲜电商平台-生鲜售后系统的退款架构设计与代码分享 说明:任何一个电商行业都涉及到退货与退款的问题,但是生鲜电商行业还设有一个显著的特点,那就是换货.在人性面前,各种各样的退货,退款,换货的售 ...
- Auty自动化测试框架第五篇——框架内部的调用支持、自动化安装库与配置说明
[本文出自天外归云的博客园] 本次对Auty自动化测试框架做些收尾工作,由于在scripts文件夹中的脚本会需要调用其他包结构文件夹中的脚本,所以这里需要添加一下框架对于内部脚本间互相调用的支持,这里 ...
- 转载:python + requests实现的接口自动化框架详细教程
转自https://my.oschina.net/u/3041656/blog/820023 摘要: python + requests实现的接口自动化框架详细教程 前段时间由于公司测试方向的转型,由 ...
- UTF-8,Unicode,GBK,希腊字母读法,ASCII码表,HTTP错误码,URL编码表,HTML特殊字符,汉字编码简明对照表
UNICODE,GBK,UTF-8区别 UNICODE,GBK,UTF-8区别 简单来说,unicode,gbk和大五码就是编码的值,而utf-8,uft-16之类就是这个值的表现形式.而前面那 ...
- python + requests实现的接口自动化框架详细教程
前段时间由于公司测试方向的转型,由原来的web页面功能测试转变成接口测试,之前大多都是手工进行,利用postman和jmeter进行的接口测试,后来,组内有人讲原先web自动化的测试框架移驾成接口的自 ...
- 网络损伤仪细分市场:eCPRI网络损伤的技术要求
关于“网络损伤仪”的叫法 网络损伤仪,也称作为广域网仿真仪,广域网损伤仪,WAN Emulation,Network Impairment Emulator. 为什么会带WAN广域网这个限定词? 应该 ...
- 国产网络损伤仪SandStorm -- 只需要上下拖拽能调整链路规则顺序
国产网络损伤仪SandStorm(弱网络测试)可以模拟出带宽限制.时延.时延抖动.丢包.乱序.重复报文.误码.拥塞等网络状况,在实验室条件下准确可靠地测试出网络应用在真实网络环境中的性能,以帮助应用程 ...
随机推荐
- Unity3D入门
Unity3D是一款应用广泛的3D游戏引擎,本文主要介绍unity3D的简单应用,安装过程略过. 在游戏的整个开发过程中,游戏界面设计占据非常重要的地位.因为游戏启动后,第一个映入眼帘的就是整个游戏U ...
- Arcgis Server 10.2默认服务端口号修改方法
本人安装Arcgis Server 10.2之后发布了一个地图服务,该服务默认使用的端口号是6080,本人使用的是教育网,使用教育网均能正常使用该服务,但是使用电信或者移动网络均不能正常访问该网站. ...
- Ubuntu 16.04 风扇特别响解决办法
主要原因是显卡驱动的问题,选择驱动专有,tested.
- DE2-115开发板学习(1_时钟信号引脚分配与复位信号的产生)
1.DE2-115开发板资源 Altera EPCS64 Configuration Device 64MB SDRAM (两片) 50MHz Oscillator EP4CE115F29C7(4PL ...
- MyBatis入门学习教程-Mybatis3.x与Spring4.x整合
一.搭建开发环境 1.1.使用Maven创建Web项目 执行如下命令: mvn archetype:create -DgroupId=me.gacl -DartifactId=spring4-myba ...
- Mysql无法创建外键的原因
在Mysql中创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因. 1. 两个字段的类型或者大小不严格匹配.例如,如果一个 ...
- React JSX语法说明
原文:http://my.oschina.net/leogao0816/blog/379487 什么是JSX? 在用React写组件的时候,通常会用到JSX语法,粗看上去,像是在Javascript代 ...
- 在Eclipse中使用JUnit4进行单元测试(初级篇)
首先,我们来一个傻瓜式速成教程,不要问为什么,Follow Me,先来体验一下单元测试的快感! 首先新建一个项目叫JUnit_Test,我们编写一个Calculator类,这是一个能够简单实现加减乘除 ...
- iptables删除规则
查看nat规则: iptables -t nat -nL --line-number 添加规则是-A和-I,-A是添加到末尾,-I是添加到指定位置,默认添加到最前面.删除使用-D,也就是原来“ipta ...
- 大规模IP地址黑名单高性能查询实现
嗯……前阵子接了个活儿,需要做一个基于IP地址黑名单的分流网关.刚接到的时候心想iptables不就行了么,没想到一看客户给的IP黑名单规模……我擦……上亿个…… 黑名单到了这个规模,就不得不考虑下优 ...