光功率计自动测试系统设计
扫描二维码
随时随地手机看文章
摘 要: 介绍了一套最新研制的光功率计自动测试系统,该系统充分利用了计算机的现有资源,具有投资省、自动化程度高等特点。对于利用计算机进行数据采样、实时通信、自动控制等应用具有一定的参考价值。
关键词: 光开关接口技术自动测试
光功率计是现代光通信中最基本的光纤测试仪器。随着宽带通信技术的快速发展,通信网络中大量使用光纤作为传输介质,因此光功率计也就越来越多地被应用于科研、生产的各个部门。对于计量检测部门而言,每年都要计量大量的光功率计,然而传统的计量方法耗时长、效率低,计量的准确性也极易受人为操作的影响。在这里我们介绍一套最新研制的光功率计自动测试系统,具有测试准确性高、投资省、自动化程度高等特点。
1 传统光功率计的测试方法
传统的光功率计测试框图如图1所示。
测试时必须注意两点:①用光纤连接光器件时,尽量旋紧光接头以避免由于接入损耗而降低测量的准确性;②为了将测试误差降至最低,在每一次光功率的测试过程中,需采用平均值测试法,即在相同光功率下进行多次的重复测试,然后去掉一个最大值和一个最小值,再将其它数值取平均即为该光功率下最终的测试数值。
采用以上方法进行实际测试时,调节光衰减器、切换光纤、记录测试数据、计算相对误差等均需手工完成,工作效率低下。在测试过程中由于不断地进行光纤的切换工作,使得接入损耗严重影响测试的准确性。虽然测试人员可以旋紧光接头以降低接入损耗,但由于光信号本身非常弱,将光纤反复多次地插入和拔出,会造成接入损耗有很大不同,直接降低测试的准确性。
经过以上分析发现,造成工作效率低下和测试准确性低的主要原因是由于所有的测试工作均需人工完成。解决这一问题的最好办法就是采用计算机进行自动化测试。新的自动测试系统框图如图2所示。2 自动测试系统硬件设计
使用计算机进行自动控制时,在满足功能的前提下应该最大限度地利用计算机现有的资源。这样,一方面可以充分发挥计算机的作用,另一方面也可以节省另外制作控制板卡所需的资金、器材、时间和人力。
在这套自动测试系统中,光衰减器带有串行接口,可直接与计算机通信。待测光功率计中,较新的带有串行接口和GPIB接口,老一些的只有GPIB接口。为了满足兼容性和自动控制的要求,增加了一块基于计算机总线的GPIB接口卡,通过该卡控制待测光功率计。标准光功率计自带串行和GPIB两种接口,可通过任意一个接口与计算机通信。由于计算机上有两个串行接口,因此可分别通过这两个接口控制光衰减器和标准光功率计。为了解决接入损耗问题,系统增加了一个1×2的光开关。光开关的作用就是在计算机的控制下,自动切换光纤,将接入损耗的影响降至最低,类似于电子开关在电路切换中所起的作用。我们利用计算机的并行接口对光开关进行控制。
光开关采用电压控制方式,需自制一块控制卡,利用计算机的并行接口进行控制。控制卡的电路如图3所示。
光开关由计算机的并口发控制信号进行驱动,即从计算机并口378H的"0"、"1"两端发送高低电平信号,使得控制电路A、B两端的电压交替变化,达到光开关自动动作的目的。当"0"端为高电位时,三极管Q3、Q4导通,Q1、Q2截止;同时"1"端为低电位,Q5、Q6导通,Q7、Q8截止,这样就构成了导通回路+12V→Q6→B→A→Q3→GND,则光开关向右运动。同理,"0"端为低电位而"1"端为高电位时,光开关向左运动。二极管D1~D4为保护二极管,可避免光开关中的感性元件在极性切换时造成反向电压而损坏功率三极管。
3 自动测试系统软件设计
自动测试系统软件由系统自检、硬件控制、测试数据记录及计算、测试结果输出等部分组成,其中最为关键的是硬件控制部分的程序。下面重点介绍一下该部分的并、串口控制程序以及GPIB接口程序的编写方法。这些程序全部采用C++ Builder(简称BCB)编写,运行在WIN9x操作系统下。
3.1 光开关控制程序设计
光开关的控制程序采用直接嵌入汇编语句的方法实现,程序如下:
void outportb unsigned short port unsigned char value //port参数为输出端口地址,value参数为输出值 asm
mov dx port //把端口port地址送到
DX寄存器中
mov al value //把value的数值送到AL
寄存器中
out dx al //把AL寄存器中的数值
送到端口
??
?
光开关的控制程序如下:
#define PC 0x378 //PC机的并口地址
void_fastcall Tform2 BitBtn_Left2RightClick TObject Sender?
?
outportb PC 0x01 // 378H的"0"端为高电位,"1"端为低电位,光开关向右运动
?
void_fastcall Tform2 BitBtn_Right2LeftClick TObject Sender?outportb PC 0x02 // 378H的"0"端为低电位 ,
"1"端为高电位,光开关向左运动
?
采用以上方式编制的程序可以非常方便地对原有的采用汇编语句编制的函数直接进行使用,不需再另外编制相应的程序。
3.2 串行接口程序设计
我们使用Microsoft的MSComm32.ocx控件来编写串行通信程序。首先要进行串口初始化,程序如下:
?
……
Mscomm1→CommPort=1? //选用COM1串行口
Mscomm1→Settings=″9600 N 8 1″?
//波特率9600,无奇偶校验位,8位数据位,1位停
止位
Mscomm1→InputLen=0 //读取接收缓冲区的全
部内容
Mscomm1→InBufferSize=1024 //设置接收缓冲区的
字节长度为1024
Mscomm1→PortOpen=True //打开串行口
……
?
串口初始化后就可以利用Input函数读取标准光功率计的读数了。通过串口1读取标准光功率计读数的程序如下:
?
double buffer 1024 //定义接收数据的缓冲区
int ByteNum //收到的字节数
int BuffPtr //接收缓冲区的指针
OleVariant RxBuff //一个用于接收的OleVariant
变量
……
if MSComm1→InBuffCount>0 //如果缓冲区有多于
一个字节的数据则接收
?
RxBuff=Communical->Input
ByteNum=RxBuff.ArrayHighBound 1 //将实际的
字节数取出
for int i=0 i<=ByteNum I++?
buffer BuffPtr++ =double RxBuff.GetElement i //将接收到数据读入缓冲区
?
……
?
光衰减器的自动控制程序与此类似,本文不再复述。
3.3 GPIB接口程序设计
GPIB接口程序是使用NI公司的ActiveX控件编制的,方法如下:
打开BCB的ActiveX控件组,将GPIB控件拖放到Form上,在"Object Inspector"表框中对通信的时间间隔、目标地址、起始位、校验位、存放数据的缓冲区大小等进行设置。
完成了以上设置后,在程序中只要加上不多的几行代码即可实现待测光功率计的自动数值采样。程序代码如下:
{
……
double number;
Form2→CWGPIB1→Configure //初始化GPIB接口卡
……
number=Form2→CWGPIB1→Read //自动读取
待测光功率计的读数
……
?}
利用以上自动测试系统测出的某一待测光功率计的计量标定参数如表1所示。
从以上测试数据来看,该待测光功率计在1.3μm测试波长下,mW、μW量程为合格,而nW量程为限用,必须重新校准后才能使用,或仅用于指示光纤中有无光功率的一般性使用。
在这套光功率计自动测试系统中,测试软件采用图形化操作界面,每一步的操作都有直观的提示,可使测试人员在很短的时间内掌握系统的使用方法。测试时,测试人员只要将整个测试系统连接起来,然后正确地使用测试软件即可,其它的操作,如光衰减器的调节、光纤的切换、测试数据的输入与计算,以及最终测试结果的输出全部由计算机完成。这使得整个测试工作的准确性和灵活性都得到了加强,工作效率大为提高,也极大地增强了测试的自动化水平和使用档次。
1 EXFO PM-1100型光功率计用户手册[M].加拿大 EXPO公司,1997
2 NI-488.2 User Manual for Windows[M]. National In-struments Corporation,1998
3 FIUCK AT900型可调谐光滤波器使用手册[M].美国 FLUCK,1999
4 徐新华. C++ Builder 4 编程指南[M]. 北京?人民邮电出版社,1997.10
5 姜 勇.微型PC机接口技术[M]. 西安?西北工业大学出版社,1996.4
来源:零八我的爱1次