8013卡控制衰减矩阵的系统设计

基于MFC的衰减矩阵的设计

摘  要  本文主要介绍了使用ICS公司8013卡控制衰减矩阵的系统设计。该卡是Ethernet 转128 TTL电平的卡,即16个Byte,每个Byte有8个Bit,正好可以对应控制16只衰减器。本文先介绍其硬件组成及工作原理,然后通过软件编程设计界面进行控制。

关键词  8013,MFC,VS2005,衰减矩阵

1 引言

MFC(MicrosoftFoundation Classes),是一个微软公司提供的类库,以C++类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。通过它,程序员可以高效的开发出基于Windows操作系统的各种应用程序。本文控制界面采用C++语言编写,开发环境是Visual Studio 2005。

2 硬件设备介绍

2.1概述

本系统通过PC机通过以太口与8013板子相连,对矩阵键盘进行控制。连接如下图所示:

8013卡控制衰减矩阵的系统设计_第1张图片

2.28013 IO CARD 介绍

8013卡英文全称是“MODEL8003/==8013 Ethernet—Parallel Interface”,可译为“8003/8013 以太网板卡---并行接口”。 8003/8013是Agilen公司的一个最新产品,8003/8013卡上有接线头,通过导线连接到电源表上,通过电源表供电。通过以太网,用网线使之连接至电脑网口或者局域网内,在windows下可对其进行开发。板卡上有8个提示灯,功能分别如下PWR:Indicates power on ;LAN :Indicates tht the unit is ready and is connectedto an active LAN; ACT:Indicates message are being transferred between unit andLAN;RDY:Indicate the unit has passed self test;Talk:indicates the unit was senda device_read command;LSTN: indicates the unit was send a device_write command

该卡为Ethernet接口,转成TTL电平,分成16个Byte,每个Byte含8个Bit, 共计128路TTL;

该卡出厂默认IP为192.168.0.254。

我们现在主要使用它的两种命令进行控制和读取:

BOn xxx    *对Byten进行控制*

xxx为10进制数字,范围为“0~255”

BOn?   *询问Byten当前的状态*

2.3数控衰减器原理

本设备内所用的数控衰减器的为步进式衰减器;

它内部原理是利用PIN管形成的多级单刀双掷开关组合;

每个组合内一个通道直通,另一个通道串上固定衰减器;

每一级当对应控制电平为低电平时,直通;为高电平时,则加上固定衰减;

 

 

 

该数控衰减器为1dB步进127dB动态范围,所以就需要7级单刀双掷组合,即:

第一级:1dB, 第二级:2dB, 第三级:4dB,

第四级:8dB, 第五级:16dB, 第六级:32dB, 第七级:64dB

其原理如下图:

8013卡控制衰减矩阵的系统设计_第2张图片

数控衰减器原理框图

  衰减器的控制接口为IDC10,即10芯排线插座,其控制关系表如下:

PIN

1

2

3

4

5

6

7

8

9

10

定义

1 dB

2 dB

4 dB

8 dB

16 dB

32 dB

64 dB

NA

+5V

GND

2.48013 与数控衰减器连接关系

如下图,本设备中有16台衰减器,而8013中有16个Byte,所以它们可以形成一一对应的关系,即每个Byte的bit0,bit1,bit2……bit6对应于衰减器的1dB,2dB,4dB ……64dB,而bit7不使用;该使用方法是目前的默认连接方式。

其内部8台一分四功分器和16台数控衰减器通过相互连接形成4*4衰减矩阵。

8013卡控制衰减矩阵的系统设计_第3张图片

4*4衰减矩阵原理图

3 控制界面软件设计

3.1软件运行环境

Visual Studio 2005

3.2编程工具

 VC++ 

3.3界面具体实现功能

3.3.1 连接

输入IP,进行连接,成功后,该IP地址自动存储,方便下次操作时,不用重复输入。

连接成功后,”connect”按钮转换成“ disconnect”。

有一个状态栏,显示连接成功,并显示设备ID;如果不成功,状态栏也要显示“connection failed!”。

若再按“disconnect”,成功后,状态栏将显示”Disconnectsuccessful!”

3.3.2 控制

连接成功后,有四种控制方式:(以下均以4*4为例)

1>     复位,加小字说明“Setall attenuators to max.”

2>     两个选择项目:“All”,“selected”

3>     第一个功能:“Configuringmanually I” 一个按键 “Confirm”;

4>     第二个功能:“Configuringmanually II”

第一行为Step的设定

第二行为两个按键“+”和“-”,

5>     第三个功能:“AutomaticallyI” 

 根据已选择的,或者全选的形成以下表格

 

Start (dB)

Stop (dB)

Step(dB)

Time(ms)

Loop

IN1/OUT1

1

35

1

500

10

IN2/OUT1

2

40

2

500

10

IN3/OUT1

5

60

5

500

10

IN4/OUT1

1

31

2

500

10

IN5/OUT2

1

35

2

500

10

IN6/OUT2

1

35

1

500

10

IN7/OUT2

1

35

1

500

10

IN8/OUT2

1

35

1

500

10

 如上表,即设定好的起始值,终止值,步进值,延时,循环次数,然后有一个“Done”按键,来执行表中的设定。

循环:即如Start:1dB, Stop:16dB,Step:2dB,那么执行后,衰减值变化为

1,3,5,7,9,11,13,15,16,14,12,10,8,6,4,2,1 这样为一个循环,即如果不能被整除的情况下,最后一步为余数。

需要强调的是,所有循环是同时开始进行的,由于设定的次数和时间不一样,它们可以不同时结束。

6>     第四个功能:“AutomaticallyII”

即按照EXCEL,或CSV文档执行控制

   建议是:现有一个“import”键,选择好文件后,输入循环次数;然后执行,同时显示进度;

LOAD

 

LOOP

 

DONE

**%

调取的文件格式是按照用户提供的格式,并且如果调取的不是指定的格式要能够够报错。

7> 以上四个功能,为避免误操作,所以当执行一个功能时,其他三种都要被屏蔽;

3.3.3 显示

连接成功后,根据ID中的关键字符,如“8B2”,”4B4”,”4B2”,”16B1”,”16B2”,”8T2”,”4B1”,将出现一个对应的二维列表,如4*4,则如下表:

4B4

B1

B2

B3

B4

A1

127

127

127

127

A2

127

127

127

127

A3

127

127

127

127

A4

127

127

127

127

 

该表中的数据为实时显示衰减器的衰减值;

 

4 设计界面及程序

根据具体要求通过编程,设计出控制界面。

软件界面如下图所示:

8013卡控制衰减矩阵的系统设计_第4张图片

部分代码如下:

void GetByte(CString temp1,CString commandstr)

{

       ViString  strIPinst0;

       //strIPinst0="TCPIP0::10.10.150.254::inst0::INSTR";

       CStrings1,s2,s3;

       s1="TCPIP0::";s2="::inst0::INSTR";

       s3=s1+tempIP+s2;

       strIPinst0=s3.GetBuffer(0);

 

       ViSessiondefaultRM,vi; 

       charbuf[256]={0};

       viOpenDefaultRM(&defaultRM);

       viOpen(defaultRM,strIPinst0,VI_NULL,VI_NULL,&vi);

 

       ViStringstrCommand;

       CStringss1,ss2;

       ss1=commandstr;

       ss2=ss1+"\n";

       strCommand=ss2.GetBuffer(0);

 

       viPrintf(vi,strCommand);

       viScanf(vi,"%t",buf);

       //     MessageBox(str1);

       viClose(vi);

       viClose(defaultRM);      

       temp1=buf;

       //MessageBox()

       //GetDlgItem(IDC_EDIT1)->GetWindowText(temp1);

}

5. 结束语

本文提出了利用8013卡控制衰减矩阵的系统设计。8013卡为Ethernet接口,转成TTL电平,分成16个Byte,每个Byte含8个Bit, 共计128路TTL;内部8台一分四功分器和16台数控衰减器通过相互连接形成4*4衰减矩阵。通过软件编程设计界面来发送指令控制衰减矩阵。通过设计基本实现了用户的相关要求,但还有待于进一步的完善和优化。

 

 

你可能感兴趣的:(sql,C++,2005,Visual,Studio,Visual,agilent,仪表控制)