PC6332.docx
《PC6332.docx》由会员分享,可在线阅读,更多相关《PC6332.docx(20页珍藏版)》请在冰点文库上搜索。
PC6332
PC-6332模入模出接口卡技术说明书
1.概述:
PC-6332模入模出接口卡适用在具有ISA总线的PC系列微机上使用,具有很好的兼容性,CPU从目前广泛使用的64位处理器直到早期的16位处理器均可适用,操作系统可选用经典的MS-DOS,目前流行的Windows系列,高稳定性的Unix等多种操作系统以及专业数据采集分析系统LabVIEW等软件环境。
在硬件的安装上也非常简单,使用时只需将接口卡插入机内的任何一个ISA总线插槽中并用固定螺丝压紧。
其信号电缆从机箱外部直接接入。
本接口卡的模拟量输入通道为16路,允许用户采用单端输入方式或双端输入方式、用以测量单极性信号或双极性信号。
本接口卡的模出通道为1路,有电压或电流两种输出方式、共6种量程供用户选择。
其A/D转换和D/A转换均为12位。
2.主要技术参数:
(标*为出厂标准状态,下同)
2.1模入部分:
2.1.1输入通道数:
单端16路*;双端8路
2.1.2输入信号范围:
0V~10V*;-5V~+5V
2.1.3放大器增益:
硬件设置×1*;×2;×5;×10(倍)
2.1.4输入阻抗:
≥10MΩ
2.1.5A/D转换器件:
AD1674
2.1.6A/D转换分辨率:
12位
2.1.7A/D转换速度:
10μS
2.1.8A/D启动方式:
程序启动
2.1.9A/D转换非线性误差:
±1LSB
2.1.10A/D转换输出码制:
单极性原码*/双极性偏移码
2.1.11系统综合误差:
≤0.1%F.S
2.2模出部分:
2.2.1输出通道数:
1路
2.2.2输出范围:
电压方式:
0~5V;0~10V*;-5V~+5V;
电流方式:
0~10mA;4~20mA(共阴方式)
2.2.3输出阻抗:
≤2Ω(电压方式)
2.2.4D/A转换器件:
AD7948
2.2.5D/A转换分辨率:
12位
2.2.6D/A转换输入码制:
单极性原码*;双极性偏移码
2.2.7D/A转换综合误差:
电压方式:
≤0.2%F.S;
电流方式:
≤1%F.S
2.3电源功耗:
+5V(±10%)≤400mA;
+12V(±10%)≤100mA;
-5V(±10%)≤10mA
2.4使用环境:
工作温度:
10℃~40℃
相对湿度:
40%~80%
存贮温度:
-55℃~+85℃
2.5外型尺寸:
(不含档板)
长×高=139.7mm×106.7mm(5.5英寸×4.2英寸)
3.工作原理:
PC-6332模入模出接口卡主要由模拟多路开关电路、差分放大器电路、模数转换电路、数模转换电路及接口控制逻辑电路组成。
3.1本卡工作原理框图见图1。
图1工作原理图
3.2模拟多路开关电路:
模拟通道开关由2片CD4051及跨接器KJ1、KJ2组成,可以从16路单端信号或8路双端信号中任选一路,送入差分放大器。
3.3差分放大器电路:
差分放大器由4个运算放大器以及相关的电阻、电位器、跨接器KJ3组成,改变跨接套的位置可以选择不同的放大增益,位置1为×1,位置2为×2,位置3为×5,位置4为×10。
电位器W1用于放大器部分的零点调整,W2用于放大器部分的信号满度调整。
3.4模数转换电路:
12位逐次逼近式A/D转换器AD1674片内自带精密基准源,并经激光修调,具有较高的转换速率和转换精度,其转换时间仅为10μS。
A/D转换器由程序启动,其方法为在基地址+1的端口地址上任写一数。
转换状态可由程序查询读出。
A/D转换后的输出代码形式由跨接器KJ4选择,可分别输出二进制原码或双极性偏移二进制码。
电位器W3用于A/D转换满量程增益调节,W4用于双极性偏移调节。
3.5数模转换电路:
本接口卡的模拟量输出部分由AD7948D/A转换器件和有关的基准源、运放、阻容件和跨接选择器组成。
依靠改变跨接套的连接方式,可分别选择电压或电流输出方式。
当采用电流输出方式时,本卡可直接外接Ⅱ型执行器。
3.6接口控制逻辑电路:
接口控制逻辑电路用来产生与各种操作有关的控制信号。
4.安装及使用注意:
本卡的安装十分简便,只要将主机机壳打开,在关电情况下,将本卡插入主机的任何一个空余扩展槽中,再将档板固定螺丝压紧即可。
25芯D型插头可从主机后面引出并与外设连接。
本卡采用的器件可能会因静电击穿或过流造成损坏,所以在安装或用手触摸本卡时,应事先将人体所带静电荷对地放掉,同时应避免直接用手接触器件管脚,以免损坏器件。
禁止带电插拔本接口卡。
设置接口卡开关、跨接套和安装接口带缆均应在关电状态下进行。
当模入通道不全部使用时,应将不使用的通道就近对地短接,不要使其悬空,以避免造成通道间串扰和损坏通道。
本卡跨接选择器较多,使用中应严格按照说明书进行设置操作。
为保证安全及采集精度,应确保系统地线(计算机及外接仪器机壳)接地良好。
特别是使用双端输入方式时,为防止外界较大的共模干扰,应注意对信号线进行屏蔽处理。
5.使用与操作:
5.1主要可调整元件位置见图2
图2主要可调整元件位置图
5.2输入输出插座接口定义:
输入输出插座CZ1接口定义(括号内表示双端输入方式时通道组成)见表1。
表1输入输出插座接口定义表
插座引脚号
信号定义
插座引脚号
信号定义
1
CH1(CH1+)
14
CH9(CH1-)
2
CH2(CH2+)
15
CH10(CH2-)
3
CH3(CH3+)
16
CH11(CH3-)
4
CH4(CH4+)
17
CH12(CH4-)
5
CH5(CH5+)
18
CH13(CH5-)
6
CH6(CH6+)
19
CH14(CH6-)
7
CH7(CH7+)
20
CH15(CH7-)
8
CH8(CH8+)
21
CH16(CH8-)
9
NC
22
NC
10
NC
23
D/A-V
11
NC
24
D/A-I
12
模拟地
25
模拟地
13
模拟地
5.3I/O基地址选择:
本卡的初始I/O地址由地址总线A3~A9决定,用户可根据需要通过开关K来确定本卡的初始基地址。
开关拨至“ON”处为0,反之为1。
初始地址的选择范围一般为0100H~0378H之间。
用户应根据主机硬件手册给出的可用范围以及是否插入其它功能卡来决定本卡的I/O基地址。
出厂时本卡的基地址设为0100H,并从初始地址开始占用连续8个地址。
现举例说明见图3。
ONON
A3~A9A3~A9
(a)100H(b)318H
图3I/O基地址选择举例
5.4跨接插座的用法:
5.4.1A/D部分跨接插座的使用:
a.输入单/双端方式选择:
KJ1、KJ2为单/双端输入方式选择,其使用方法见图4。
KJ2KJ1KJ2KJ1
a.单端输入方式b.双端输入方式
图4单/双端输入方式选择
b.转换码制选择:
KJ4为转换码制选择插座。
用户应根据输入信号的极性进行选择,选择方法见图5。
KJ4KJ4
a.单极性原码b.双极性偏移码
图5转换码制选择
c.KJ3为放大器增益选择:
其位置对应放大倍数如下:
1:
×1;2:
×2;3:
×5;4:
×10
使用中应注意不要全部开路或同时短接两路以上。
5.4.2D/A输出方式及范围选择:
KJ5为D/A输出量程选择插座,插座的使用方法见图6。
a.0~10Vb.±5V
c.0~5Vd.0~10mA
e.1~5Vf.4~20mA
图6D/A输出方式及范围选择
5.4.3中断工作方式:
本卡的A/D转换结束信号可以采用中断方式通知CPU进行处理。
改变KJ6的位置可以选用IRQ3~IRQ7之一,用户在使用中断方式时,应对主机系统的中断管理器进行初始化并编制中断处理程序。
当A/D转换结束时,本卡会向中断管理器发出一个高电平的中断申请,CPU接到中断请求后转向中断处理程序运行读数操作。
KJ6
12345
其中:
1=IRQ3;2=IRQ4;3=IRQ5;4=IRQ6;5=IRQ7
图7中断方式选择
5.5控制端口地址与有关数据格式:
5.5.1各个控制端的操作地址与功能见表2:
表2端口地址与功能表
操作地址
操作命令
功能
基地址+0
写
写通道代码
基地址+0
读
启动D/A转换
基地址+1
写
启动A/D转换(任意值),清中断标志
基地址+2
读
查询A/D转换状态,读高4位转换结果
基地址+3
读
读A/D低8位转换结果
基地址+4
写
写D/A高8位数据
基地址+5
写
写D/A低4位数据
5.5.2通道代码数据格式见表3:
表3通道代码数据格式(基地址+0)
通道号
通道代码
输入方式
通道号
通道代码
输入方式
1
00H
单/双
9
08H
单
2
01H
单/双
10
09H
单
3
02H
单/双
11
0AH
单
4
03H
单/双
12
0BH
单
5
04H
单/双
13
0CH
单
6
05H
单/双
14
0DH
单
7
06H
单/双
15
0EH
单
8
07H
单/双
16
0FH
单
5.5.3查询A/D转换状态数据格式:
查询A/D转换状态时的数据格式见表4(地址为基地址+2):
表4A/D转换状态数据格式(X表示任意)
操作命令
D7
D6
D5
D4
D3
D2
D1
D0
A/D转换状态
读
1
×
×
×
×
×
×
×
正在转换
读
0
×
×
×
×
×
×
×
转换结束
5.5.4A/D转换结果数据格式:
A/D转换结果数据格式见表5:
表5A/D转换结果数据格式(X表示任意)
端口地址
操作命令
D7
D6
D5
D4
D3
D2
D1
D0
意义
基地址+2
读
0
0
0
0
DB11
DB10
DB9
DB8
高4位数据
基地址+3
读
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
低8位数据
5.5.5D/A转换数据格式:
12位D/A转换数据格式见表6:
表6D/A转换数据格式(X表示任意)
端口地址
操作命令
D7
D6
D5
D4
D3
D2
D1
D0
意义
基地址+4
写
DB11
DB10
DB9
DB8
DB7
DB6
DB5
DB4
高8位数据
基地址+5
写
DB3
DB2
DB1
DB0
x
x
x
x
低4位数据
5.6模入模出码制以及数据与模拟量的对应关系:
5.6.1本接口卡在单极性方式工作,即模入模出的模拟量为0~10V时,转换后和写出的12位数码为二进制原码。
此12位数码表示一个正数码,其数码与模拟电压值的对应关系为:
模拟电压值=数码(12位)×10(V)/4096(V)
即:
1LSB=2.44mV
5.6.2本接口卡在双极性方式工作,即模入模出的模拟量为-5V~+5V时,转换后和写出的12位数码为二进制偏移码。
此时12位数码的最高位(DB11)为符号位,“0”表示负,“1”表示正。
其数码与模拟电压值的对应关系为:
模拟电压值=数码×10(V)/4096-5(V)
即:
1LSB=2.44mV
5.7电流输出方式的使用:
本卡模出部分可以选择电流输出方式以直接驱动Ⅱ型执行仪表。
当需要使用电流输出方式时,应该先按图6的要求设置好KJ5。
然后将输入输出插座的D/A-I端外接执行设备的正端,外接执行设备的负端接在本卡的模拟地端。
使用电流输出方式时应注意下列要求:
a.外接设备的负载电阻为250Ω。
b.电压输出和电流输出不可以同时使用。
c.改变KJ5的设置后应注意重新校准。
5.8调整与校准:
产品出厂前本卡的模入模出部分均已按照单极性0~10V调整好,一般情况下用户不需进行调节,如果用户改变了工作模式及范围,可按本节所述方法进行调整。
调整时应开机预热20分钟以上后进行,并准备一块4位半以上的数字万用表。
5.8.2各电位器功能说明:
W1为输入放大器零点调节。
W2为用于信号满度调节。
W3为A/D转换器满度调节。
W4为A/D转换器双极性偏移调节。
W5为D/A零点调节。
W6为D/A满度调节。
5.8.3模入部分调整:
凡改变模入工作方式,如果采样结果偏差大于20mV以上的,需要对模入部分进行调整。
①零点调整:
使任一通道与模拟地短接,并按实际需要设置好通道代码运行程序对该通道采样。
用电压表测量OP-37运放的第6脚,调整W1使电压表读数小于100μV。
②A/D转换满度调整:
在任一通道接入一正量程85%~90%的电压信号(要求电压稳定度好,噪声小),运行程序对该通道采样,调整电位器W2使AD1674的第13脚等于输入的电压值。
调整W3使A/D转换读数值等于或接近外信号电压。
如果使用双极性信号还需按上述方法给定一个负电压信号并测量,如果负信号偏差较,可调整电位器W4使其偏移。
5.8.4模出部分调整:
凡改变模出部分的方式和量程后,如果输出结果误差较大,需要对模出部分进行调整。
①零点调整:
在单极性方式时调整W5使其偏差最小。
②满度调整:
在零点调整正常情况下,如果满度偏差较大,可通过调整W6使满度符合要求。
6.驱动程序简介:
PC-6000系列演示程序及驱动程序是为PC-6000系列多功能工控采集板配制的工作在中西文Windows95,98NT环境下的一组驱动程序以及使用该驱动程序组建的一个演示程序,可以方便地使用户在中西文Windows环境下检测硬件的工作状态以及帮助软件开发人员在常用的C\C++,VisualBasic,Delphi,BorlandC++Builder,BorlandPascalforwindows等开发环境中使用PC-6000系列工控采集板进行数据采集和过程控制等工作.驱动程序是一个标准动态链接库(DLL文件)。
它的输出函数可以被其它应用程序在运行时直接调用。
用户的应用程序可以用任何一种可以使用DLL链接库的编程工具来编写。
每种板卡依据其自身功能的不同具有不同的输出函数和参数定义。
驱动程序输出函数定义:
所列函数的说明格式为C++应用程序中调用DLL库函数时的常用格式,无论使用哪一种开发工具,务必请注意数据格式的匹配及函数的返回类型,本说明中所使用的数据类型定义如下:
int-32位带符号数
unsignedlong-32位无符号数
unsignedchar-8位无符号数
*函数:
int__import_stdcallAI6332Init(intnAdd,intnInputRange,intnTrigger)
功能∶初始化模入部分,定义所有通道电压输入范围。
参数∶nAdd基地址。
nInputRange电压输入范围∶0表示0-+10V;
1表示-5-+5V。
nTrigger触发方式∶0软件触发
返回∶成功返回1;失败返回0,可能是基地址设置错造成。
说明∶此函数应在进行模拟量数据采集之前调用一次。
*函数∶int__import_stdcallAI6332Single(intnAdd,intnCha)
功能∶进行某一通道的模拟量数据采集。
参数∶nAdd基地址。
nCha通道号0–15(单端)或0–7(双端)。
返回∶成功返回电压值,单位为毫伏;失败返回20000。
说明∶此函数立即返回一个采集到的值。
如有需要使用Windows系列及LabVIEW驱动程序的用户可向本公司索取,请注明所使用的操作系统和开发软件。
7.编程举例:
7.1对通道1连续采样100次,程序启动和查询。
本程序可用于A/D部分调校。
BASIC语言:
10CLS;清屏
20ADD=&H100;板基地址设为0100H
30CH=0;对通道1采样
40OUT(ADD+0),CH;送通道代码
50FORT=0TO99;设采样次数
60OUT(ADD+1),0;启动A/D,所送数值无关
70IFINP(ADD+2)>=128THEN70;查询A/D转换状态
80H=INP(ADD+2);转换结束,读高4位结果
90L=INP(ADD+3);读低8位结果
100V=(H×256+L)×10000/4096;将结果转换为十进制数据
110PRINTV;“mV”;显示结果,用“mV”表示
120NEXTT;循环100次
130END
注:
如果是双极性信号,则100句改为:
V=(H×256+L)×10000/4096-5000
7.1.1使D/A通道分别输出0V、10V、3.333V、6.666V、2.000V、8.000V。
D/A工作方式为单极性0~10V。
本程序可用于D/A部分的调校。
BASIC语言:
10CLS;清屏
20ADD=&H100;板基地址设为0100H
30DAH=ADD+4:
DAL=ADD+5;设D/A高、低字节端口地址
40FORI=1TO6;设数据指针长度
50READA;取低字节数据
60OUTDAH,A;送出
70READA;取高字节数据
80OUTDAL,A;送出
90READB;取显示用数据
100D=INP(ADD+0),0;启动D/A转换,读出的数据无关
110PRINT"TESTD/A";DA;;
"OUT";B;"V";显示
120IFINKEY$=""THEN120;等待,按任一键继续
130NEXTI;循环送6组数据
140DATA0,0,0,255,240,10.000,85,80,3.333,;
170,16,6.666,51,48,2.000,204,192,8.000;
150END;
-7.2对通道1连续采样100次,程序启动和查询。
C语言程序:
#include"stdio.h"
#include"dos.h"
#include"conio.h"
main()
{
intch;/*定义通道变量*/
floatvalue[100]/*定义数组变量*/
intdl,dh,i,j,base;/*定义过程变量*/
clrscr();/*清屏*/
base=0x300;/*设板基地址=300H*/
printf("Inputchannlenumber:
");/*输入通道号*/
scanf("%d",&ch);
outportb(base,ch);/*送通道代码*/
for(j=0;j<100;j++){/*设采样次数*/
for(i=0;i<100;i++);/*延时,常数由机型决定*/
outportb(base+1,0);/*启动A/D,所送数值无关*/
do{/*查询A/D转换状态*/
}while(inportb(base+2)>=128);
dh=inportb(base+2);/*读高4位结果*/
dl=inportb(base+3);/*读低8位结果*/
value[j]=(dh*256+dl)*10.0/4096.0;/*将结果转换为*/
/*十进制数据*/
}
for(j=0;j<100;j++)/*显示结果*/
printf("%f",value[j]);
}
7.2.1循环采集A/D16通道,程序启动和查询。
C语言程序:
#include"stdio.h"
#include"dos.h"
#include"conio.h"
main()
{
intch;/*定义通道变量*/
floatvalue[16];/*定义数组变量*/
intdl,dh,i,base;/*定义过程变量*/
clrscr();/*清屏*/
for(ch=0;ch<=16;ch++){/*定义循环通道数*/
base=0x300;/*设板基地址=300H*/
outportb(base,ch);/*送通道代码*/
for(i=0;i<1000;i++);/*延时,常数由机型决定*/
outportb(base+1,0);/*启动A/D,所送数值无关*/
do{/*查询A/D转换状态*/
}while(inportb(base+2)>=128);
dh=inportb(base+2);/*转换结束,读高4位结果*/
dl=inportb(base+3);/*读低8位结果*/
value[ch]=(dh*256+dl)*10.0/4096.0;/*将结果转换为*/
/*十进制数据*/
}
for(ch=0;ch<=16;ch++)/*下一个通道*/
printf("%f",value[ch]);/*显示结果*/
}
7.3在Windows95/98/NT环境下,使用MicroSoftVisualBasic5.0开发环境,采用调用驱动程序的输出函数的方法循环采集A/D16个通道。
注意:
在VB5.0中,数据类型Integer为16位带符号整数,Long为32位带符号整数。
首先创建一个窗口,名为Form。
设置一个定时器,名为Timer1。
一个Label数组,ValLabel[]。
PrivateDeclareFunctionAI6331InitLib"PC6330-6360-95.DLL"_(ByValnAddAsLong,ByValnInputAsLong,ByValnTrigerAsLong)AsLong
PrivateDeclareFuncti