XC-1203 12位16路A/D 12位4路D/A
16路开关量输入 16路开关量输出
多功能综合板说明书
一、概述
XC-1203板是为PC104工业计算机设计的一种多功能综合接口板。板上有12位单端16路模拟量输入A/D、4路12位独立模拟量电压输出D/A、16路TTL电平开关量输入、16路TTL电平开关量输出等多项功能。本板适用于各种工业现场的数据测量及控制,集成度高,功能强大,可靠性好,数据采集稳定,且价格低廉,深受用户欢迎。符合PC104总线标准,占用连续8个I/O地址。A/D转换芯片采用高性能的AD774芯片,D/A芯片采用BB7625。A/D D/A有多量程输入输出, 给用户使用带来极大的方便。板卡采用4层印制板,表贴芯片,从而进一步提高了可靠性。模拟量芯片采用系统电源,用户无须外接电源。
XC-1203模拟量输入输出及脉冲信号由J1 26芯IDC型头接入接出,通过改变跳线器就可选择A/D D/A不同的电压输入输出范围。16路开关量输入输出信号由J2 40 芯IDC接头与现场连接,输入输出为TTL电平。本板占用8个I/O端口地址。
XC-1203具有极高的性能价格比,深受用户欢迎。出厂时提供DOS下的测试程序和源程序代码(TC3)。并提供两年的质保服务。
要求用户从PC104总线上提供+5V、±12V系统电源。
二、技术指标
1、A/D
▪ 输入通道:单端16路
▪ 转换时间:10μS/100KHz
▪ A/D转换分辨率:12位,AD774
▪ 输入量程:
单极性:0~5V,0~10V*
双极性:±2.5V,±5V,±10V
▪ 输入阻抗:>10MΩ
▪ 转换误差:<0.20%
▪ 输出码制:
单极性为二进制原码
双极性为二进制偏移码
▪ 工作方式:软件查询
▪ 最大差动输入值:20V
▪ 由J1 26芯IDC型头接入
▪ I/O地址:190H~191H *
2、D/A
▪ 输出通道:独立4 路
▪ 输出信号范围:0~5V;0~10V*;±5V;±10V
▪ 输出阻抗:≤2Ω
▪ D/A转换器件:DAC7625
▪ D/A转换分辨率:12位
▪ D/A转换码制:二进制原码(单极性)
二进制偏移码(双极性)
▪ D/A转换时间:≤1uS
▪ D/A转换综合误差:
电压方式:≤0.2﹪ FSR
电流方式:≤1﹪ FSR
▪ 电压输出方式负载能力:5mA/每路
▪ 由J1 26芯IDC型头接出
▪ I/O地址:194~197H*
3、DI/DO
▪ 16路TTL电平开关量输入,输入范围:0~5V
▪ 16路TTL电平开关量输出,输出范围:0~5V
▪ 输出带锁存,输出电流≤2mA
▪ 由J2 40芯IDC插座接入接出
▪ I/O地址:192~193H*
4.尺寸大小:符合标准的PC104总线尺寸
5.功耗:≤350mA,系统电源供电,要求有:+5V,±12V
注:打“*”为出厂配制
三、工作原理
1、工作原理简述
XC-1203板主要由A/D、D/A转换、开关量输入/输出、地址译码及逻辑控制等几大部分组成。
(1)A/D 转换
▪ 16路输入信号由DG506(多选数据开关)进行通道切换
▪ 通道选择由数据位D0~D3来决定
▪ 通道选通地址是:BASE+0(BASE:板选基地址,以下同)
▪ 运算放大器OP07接收来自DG506的电压信号
▪ A/D转换工作由AD774完成,转换时间为10μS
▪ 启动A/D转换地址是:BASE+1
▪ 零点和增益由电位器P1、P1、P2调整
▪ 输入模拟量为单端共地电压信号
▪ A/D输出的12位数据格式为:
LSB:低八位数据
HSB:高4位数据
表1 A/D转换数据格式(X为有效位)
▪ 读A/D转换高4位数据地址和转换状态是:BASE+1
▪ 读A/D转换低8位数据和转换状态地址是:BASE+0
▪ 在启动AD774进行转换后,可用下列方式之一判断
AD774转换是否结束。
①由于AD774转换时间基本上是固定的,所以用程序空循环等待10μS后,便可读取A/D的数据
②当启动AD774转换后,读取基地址+1 的数据,判断HSB STA位是否为零,为1(其它位为上次数据值)表示AD774正在转换;为0表示AD774转换结束。可先读取本次转换的低8位数据,后读取高4位数据。
▪ A/D占用连续2个I/O端口地址
▪ A/D输入信号由J1 26芯IDC型插座接入
(2)D/A转换
XC-1203 板上有1片 DAC7625,该芯片转换时间短,工作稳定,可靠性高。DAC7625 内含有 4 路独立D/A,芯片内部具有上电自动清零电路,可实现单极性清零。控制电路选中哪路D/A,该 D/A 即从数据线上读取数据并启动D/A开始转换,经过运放输出。
XC-1203 电压输出方式较多,每一路D/A转换之后都有输出方式选择电路,这样每一个通道可以同时或分别输出不同或相同的模拟量值(电压或电流),且保持到下次转换之前。电压输出时,不需要外接电源。电压出量程由跳线器JP4~JP10来选择。D/A占用4个连续地址(BASE+4~+7)。读操作为启动D/A转换,写操作为输出数据。
D/A 12位数据格式为:
HSB:高四位数据
LSB:低八位数据
表2 D/A转换数据格式(X为有效位)
(3)16路TTL开关量输入/输出(DI/DO)
16路TTL开关量输入DI,16路开关量输出DO由J2 40芯IDC接头输入/输出,输出带锁存。读写操作地址BASE+2~BASE+3H。DI/DO八位数据格式是:
表3 DI/O数据格式(X为有效位)
(4)地址译码、逻辑控制
本板连续占用8个I/O地址口,其中地址线 A0~A2由板上的GAL译码器占用,产生板上所需控制口地址,其余地址线 A3~A9 提供给 688 芯片,通过板上拨码开关SW,用户可以在地址 00H~3F0H 之间自由选择本板的8个I/O基地址,以避开和其它I/O设备的地址冲突。出厂为 190-197H。数据输入输出由 74LS245 总控。
2.工作原理框图:(图1)
图1:逻辑方框图
四、使用方法
1.板基地址选择
板基地址由地址线A3~A9决定,通过跳线开关SW进行选择,当短接时,相应位为0,断开时对应位为1。
表4 SW跳线开关设定表(出厂地址:190~197H)
2.I/O端口地址定义
XC-1203 占用8个I/O端口地址(XC-1203板卡的基地址,可自由设定。出厂时定义 Base =190H),各端口功能定义
如表5:
表5 I /O端口地址功能分配表
3.接口插座定义
J1是26芯IDC型插座,它是16路A/D输入信号、4路D/A输出信号的插座,见表6;J2 为40芯双列直插IDC插座,它是16路DI/DO信号插座,见表7。
J1 管脚说明:
1)A/D单端信号正端接AD0~AD15,负端接AGND上。
2)D/A四路电压输出定义为DA0~DA3。
4.跳线器定义
本板由于功能强大,跳线器较多,请用户注意。JP4~JP10跳线器:关于D/A转换;JP1~JP3跳线器:关于A/D转换
(1)A/D转换跳线器:JP1~JP3
XC-1203提供多种输入量程选择,有单极性的0~5V, 0~10V;双极性的±2.5V,±5V,±10V。不同量程的选择由板上跳线器JP1-JP3的决定。JP3为两针跳线器,如下表:
表10:模拟信号输入量程的设置
(2)D/A转换跳线器:JP4~JP10
D/A输出电压(0~5V;0~10V;±5V;±10V),由JP4-JP10选择不同的电压输出。其中JP5、JP6为三针跳线器,JP4、JP7-JP10为两针跳线器,具体的使用如下:
表11:模拟信号输出量程的设置
5.A/D转换
▪ 通道选择(写BASE+0)
板上的通道选择由写基地址+0给出,使用数据线的D0~D3位,单端为0~15,16路,相应的数据对应相应通道号。
OUT (BASE+0),N;选通第N通道,N为0-15
▪ 启动A/D转换(写BASE+1)
向地址BASE+1写操作,启动A/D转换
OUT (BASE+1),0
▪ 读数据高4位,并判断A/D转换是否完成(读BASE+1)
IN AH,(BASE+1)
AH八位二进制数据中,第八位判断A/D转换是否完成:
=0:A/D转换完成;=1:A/D转换未完成。
第一至第四位是A/D转换的高四位数据。
▪ 读A/D转换低八位数据(读BASE+0)
IN AL,(BASE+0)
AL中是A/D转换的高八位数据
▪ A/D转换码制及对应关系
A/D的电压量程为单极性,其对应关系为:
0~5V: 模拟电压值=数码(12位) × 5 / 4095 (V)
0~10V:模拟电压值=数码(12位) × 10 / 4095 (V)
A/D的电压量程为双极性,对应关系为:
±2.5V:模拟电压值=数码(12位) ×5 / 4095 - 2.5(V)
±5V: 模拟电压值=数码(12位) ×10 / 4095 - 5 (V)
±10V: 模拟电压值=数码(12位) ×20 / 4095 -10(V)
▪ 零点及增益调节
电位器P2、P3用于调整双极性和单极性增益,P1用于调整零点,调整顺序是先调零点,后调增益。每次改变量程后应重新调整零点和增益。
▪ 双极性调节
先调零点:将输入信号正负端接地,运行采集程序,调节P1,使输出结果在07FEH-0801H之间。再调增益:将输入信号接上一个稳定的电压信号(如干电池),运行采集程序,调节P2使输入信号电压值与对应的显示结果相吻合。建议选择3/4满度或常出现的电压区间内的点来调整增益。
▪ 单极性调节
调零点:将输入信号端接地,运行采集程序,调节P1,显示结果在0000H-0002H之间。调增益P3:方法与双极性调增益方法相同。应注意的是输入信号必须接在正端,负端都接地。单端输入信号为16路,信号的正端接在AD(00~15)上,所有信号的负端接在AGND上。
注:未用的A/D通道不可悬空,应接地。
6.D/A转换
▪ 零点及增益调节
本板出厂前,已按照单极性0~10V输出调整好,一般情况下用户不需要进行调节。如果用户改变了工作方式及范围,可按本节所述方法进行调整。调整时应开机3分钟左右,待各部分电路处于稳定工作状态之后再调整,并选择4 ½位以上的数字万用表。
各电位器功能说明:
P12 为-2.5V基准源输出精度调节;
P4 为D/A0零点调节;P5 为D/A0满度调节;
P6 为D/A1零点调节;P7 为D/A1满度调节;
P8 为D/A2零点调节;P9 为D/A2满度调节;
P10 为D/A3零点调节;P11 为D/A3满度调节;
▪ 模出调整
凡改变模出的工作方式和量程范围后,如果输出结果误差加大时,需对模出进行调整。调整时需要注意,一般情况下不需要调整零点,应该首先进行满度调整。尤其是由0~10V方式改变为0~5V方式时,更应该进行此项调整。待满度调整零点完毕后在观察零点情况并决定是否进行调整。具体调整方式如下:
a.基准源的调整:LM336 基准是为双极性电压方式提供偏移基准的。如果用户采用±5V或±10V方式输出时,可用电压表测量OP07的OUT端(第六脚),调节P12使该脚等于-2.5V。
b.零点调整:在单极性方式或双极性输出方式时,分别测量调整P4、P6、P8、P10使其偏差最小。
c. 电压输出方式满度调整:在零点调整正常情况下,如果满度偏差较大,可分别调整P5、P7、P9、P11,使满度符合要求。
▪ 写D/A转换数据格式
D/A转换二进制写数据格式见下表(‘×’代表任意值)
端口地址D7D6D5D4D3D2D1D0定义
BASE+4DB7DB6DB5DB4DB3DB2DB1DB0低八位数据
BASE+5XXXXDB11DB10DB9DB8高四位数据
▪ D/A转换码制及对应关系
A.单极性方式工作时,写12位数码为二进制原码。其数码与模拟量电压值的对应关系为:
模拟电压值=数码(12位)×RANGE(V)/4095 (V)
说明:0~10V量程时RANGE等于10;
0~5V量程时RANGE等于5V
B.双极性方式工作时,写12位数据时,数码为二进制偏移码。此时12位数码的最高位为符号位,‘0’表示负,‘1’表示正。其数码与模拟电压值之间的对应关系为:
模拟电压值=数码(12位)×RANGE1(V)/4095-RANGE2(V)
说明:-10~10V量程时RANGE1=20 RANGE2=10;
-5~5V量程时RANGE1=10 RANGE2=5;
五、windows软件(面向对象编程)
XC-1203的软件包括XC-1203驱动程序,动态连接库及调用例程。
5.1、驱动安装
双击运行批处理win.bat(路径均为:光盘\XC1203\driver),安装非常简单,安装完成后请重启计算机。如果在同一台机器插有我方的两块或多块板卡,驱动也只需要安装一次。但要确保各板卡的地址不要冲突。
5.2、驱动的卸载
双击运行批处理winunstall.bat(路径均为:光盘\XC1203\driver),卸载非常简单,完成后请重启计算机。
5.3、测试程序
提供测试程序为VB编写,可对XC-1203卡的所有功能进行测试。用户可参照例程自行编程。
5.4、函数调用说明
提供动态链接库作为调用接口,它所封装的函数可以在应用程序运行时调用。任意一种可以调用DLL 链接库的编程工具均可进行编程。下列函数为 DLL函数原型,请注意数据格式的匹配及函数的返回类型。
5.5.1 设备操作部分
初始化设备:
函数:int WINAPI xc1203init()
功能:初始化XC1203卡
参数:无
返回值: +1 返回+1,表示初始化设备成功
-1 返回-1,表示初始化设备失败
关闭设备:
函数:void WINAPI xc1203close()
功能:关闭XC1203卡
参数:无
返回值:无
5.5.2、AD转换函数
函数:int WINAPI xc1203ad(int port,UCHAR adch);//port为首地址
功能:AD转换
参数:port首地址。
参数:adch通道(0-15)。
返回值:0-4095
5.5.3、DA转换函数
函数:void WINAPI xc1203da(int port,int dadata,UCHAR dach)
功能:DA转换
参数:port首地址。
参数:dadata 要送的数据。
参数:dach通道(0-3)。
无返回值
5.5.4、数字量输入函数
函数:int WINAPI xc1203di(int port,UCHAR dich)
功能:数字量输入
参数:port首地址。
参数:dich通道(0-1)。
返回值:0-255
5.5.5、数字量输出函数
函数:void WINAPI xc1203do(int port,int dodata,UCHAR doch)
功能:数字量输出
参数:port首地址。
参数:dodata 要送的数据。
参数:doch通道(0-1)。
无返回值
5.5.6、微秒延时函数
函数:void WINAPI DelayUs(int dly)//微秒延时函数
功能:微秒延时
参数:dly 指定需要延时的微秒数。
无返回值
5.5.7、获得DLL版本号函数
函数:double WINAPI xc_GetVersion( )
//功能:获得DLL版本号,
//返回版本号
5.5.7 直接读写函数
int WINAPI xcpcread(int port)
void WINAPI xcpcwrite(int port,int data)
参数意义同上。高级用户可利用这两个函数直接对XC1203进行I/O操作!使用之前也需要先初始化板卡,使用后也要调用关闭函数关闭板卡。
5.8、函数调用注意事项
调用函数的正确顺序为:
1.初始化,注册设备。
2.对板卡进行访问,可进行D/A输出操作。
3.关闭设备。
4. DLL函数全部是WINAPI调用约定的,即__stdcall接口
在使用各种编程语言时应注意选择,
Visual C++/C++ Builder/Delphi
可以使用两种类型的调用约定。要在函数定义中明确指出__stdcall 还是__cdecl;
Visual Basic/PowerBuilder等语言
应该使用__stdcall调用接口。
六、维修服务
6.1 产品完整性
XC1203产品应包括以下内容,请检查其完整性
1.XC1203卡一块。(贴有出厂日期)
2.40芯、26芯IDC压线头各1个。
3.软件光盘一张(含驱动软件及说明书)。
6.2 维修
本产品自售出之日起两年内,凡用户正确使用下,出现产品质量问题的,免费维修。(出厂日期的贴条撕毁无效)因违反操作规定和要求而造成损坏的,收取元器件成本费和维修费。
6.3 服务
当您购买XC1203之后,软、硬件及其它技术上使用问题均可通过电话或E-mail与我们联系,我们将提供令您满意的服务。
七、PC机端口分布图