基于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板子相连,对矩阵键盘进行控制。连接如下图所示:
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
其原理如下图:
数控衰减器原理框图
衰减器的控制接口为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衰减矩阵。
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 设计界面及程序
根据具体要求通过编程,设计出控制界面。
软件界面如下图所示:
部分代码如下:
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衰减矩阵。通过软件编程设计界面来发送指令控制衰减矩阵。通过设计基本实现了用户的相关要求,但还有待于进一步的完善和优化。