AD-1602
AD-1602
指导价
2,000.00
总线系列
PC104总线
产品特性

模拟量输入

功能参数

16位单端16路/差分8路100K AD,16路DI,16路DO

驱动下载
产品详情
参数
型号
AD-1602
配套线缆

XCL-20126\XCL-20140

总线系列
PC104总线
应用领域

轨道衡

产品特性

模拟量输入

竞品型号
功能参数

16位单端16路/差分8路100K AD,16路DI,16路DO

指导价
2,000.00
AD同步or异步

异步

配套端子板

S8-5\P-505

备注

AD-1602  100KHz  16位16路A/D

开关量16路DI/DO接口板

用户手册


版权所有(C)北京新超仁达科技有限公司 2013

在无北京新超仁达科技有限公司优先书面授权书前提下,此出版物任何一个部分不可通过任何形式进行复制、修改和翻译。对于非法复制、修改和翻译商业行为,将根据国家知识产权相关法律追求其法律责任。

从此文件发布日期起,在此发表的是当前或者拟定的信息。由于我们会不断对产品进行改进和增加特征,此出版物中的信息如有变动恕不另行通知。



一、概述


AD-1602 是面向工业过程而设计的16位16路A/D、16路开关量TTL电平输入、16路开关量TTL电平输出接口板,符合PC104总线标准。本板具有高分辨率、高精度及采样速度快的特点。模拟量输入通道采用单端或差分(双端)模式。 

AD-1602的模拟部分采用高质量16位A/D转换芯片(AD676)及多种噪音处理方式,具有很高的稳定度及分辨率,特别适合模拟信号的测量及分析。可广泛应用于多路振动、压力、流量测量和其它要求高分辨率高精度场合的数据采集。

AD-1602 模拟量输入采用IDC26连接器,可采用8路差分或16路单端两种输入(跳线器选择)方式,出厂为单端方式。AD-1602 采用100KHz  16位的 AD转换芯片AD676,转换时间是10微秒,分辨率为16BIT ±1LSB 。输入电压为:0~±10V 或0~±5V,出厂为0~±10V。

AD-1602 16路开关量输入输出是通过J2  40芯扁平电缆器与现场连接的,输入输出均为TTL电平,输出带锁存。

AD-1602 板上占用 4 条地址线(A0~A3),占用16个I/O端口地址(实用8个),操作I/O地址范围100H~3F0H,出厂时定为210H~21FH。

AD-1602 具有很高的性价比,深受用户欢迎。本板出厂时免费提供DOS下的测试程序及源程序(TC3)、Windows下测试程序和动态链接库(DLL)及其调用格式。



二、性能特点


2.1、模拟输入部分A/D

▪ 输入连接器:IDC26头J1

▪ 输入路数:8路差分或16路单端

▪ A/D芯片: 16BIT A/D -AD676

▪ A/D转换时间:100KHz,10微秒

▪ 分辨率:16位,±1LSB

▪ 输入噪音最大:3LSB(峰值)

▪ 精度>±0.02%

▪ 输入电压:0~±10V,提供大于85dB的动态范围,

  输入共模电压小于±15V,差分输入共模抑制比大于80分贝

▪ 最大无损坏输入(过压):±15V

▪ 模拟建立时间:小于20微秒

▪ 温度系数:小于10ppm/度

▪ 输入共模抑制比:大于80dB

▪ 输入阻抗:大于100M欧姆

▪ 最小采样时间:10微秒,孔径延时:6ns,孔径抖动:100ps


2.2、采样控制部分 

▪ A/D转换结束判断方式:查询

▪ A/D启动方式:软件启动

▪ A/D读数为两次8位I/O操作,A/D输出为二进       

  制补码格式  

▪ A/D在线实时校正功能。用户可以实时的对AD-1602

  的A/D 进行实时自校正,校正一次需要的时间为20

  毫秒左右


2.3、数字DI/DO 

▪ 十六路TTL输入电平(0~5V),开关量数字输入

▪ 十六路TTL输出,电平输出(0~5V),带锁存

▪ 40芯扁平电缆连接器J2输入输出


2.4、其它

▪ 板上占用8个I/O端口地址线,出厂:210H~217H

▪ 工作温度:-20℃~60℃,符合PC104总线标准


2.5、电源

▪ 占用系统电源:+5V。±12V电源需从本板J3接入



三、工作原理


AD-1602板是由多选开关、A/D转换器、数字量输入输出﹑地址译码及数据缓冲等几部分组成。

 3.1、通道选择

板上有2片DG508八选一模拟量开关芯片,现场16路模拟信号经过J1 进入本板后,经过限流电阻进入多选开关,由通道选择地址PORT+0控制某一路(0~15)模拟量进行A/D转换。单端方式可输入16路共地模拟量,差分方式可输入8路不共地模拟量,由跳线开关选择模拟量输入方式。


 3.2、A/D 转换

A/D转换芯片选用AD公司高性能的AD676芯片,其转换速率达100KHz(10μS)。外部模拟信号经过多选开关选通后,经过运算放大器送入AD676进行转换,其转换状态的结果可用程序查询方式读出,读取数据地址是PORT+2, +3。A/D输入量程由AD587/586决定。AD587:±10V,AD586:±5V,出厂为±10V。


 3.3、数字量输入输出

板上16路开关量输入16路开关量输出是通过J2  40芯扁平电缆器与现场连接的,输入输出均为TTL电平,输入为0.2mA的电流吸入,输出带锁存,有10mA下拉能力。


 3.4、地址译码与数据缓冲 

系统地址信号A4~A9参与LS688、SW  6位跳线开关比较器译码,地址A0~A3直接参与译码,本板占16个I/O地址,其有效8个I/O地址控制通道选择、A/D转换、开关量输入输出、并总控数据缓冲器74LS245工作方向。本板出厂基地址首址为210H,连续占用16个I/O地址,即:210~21FH,有用地址为210~217H。如需改变基地址,改变跳线开关的相应位即可,I/O地址可在0~3FFH任选16个,但不能占用计算机系统的I/O地址。I/O端口地址定义见本章第3节。


 3.5、电源

AD-1602板占用系统电源,要求电源+5V,±12V须完整提供。特别提醒:有些主板没有±12V电源提供,请用户注意外接±12V电源至本板的J3处。



四、基地址设置与端口分配


AD-1602 板上占用4条系统地址线(A0~A3),首址称为基地(BASE),余下的6条地址(A4~A9),参与LS688地址译码,由SW 六位跳线器开关选择。其1~6号位置对应选择地址A4~A9,地址按二进制方式排列。定义余下:

AD-1602


说明:“OFF”表示跳线器为空;    “ON”表示跳线器短路。

出厂时设定为210H~21FH,见上图。


4.1、I/O端口地址功能说明

AD-1602


4.2、A/D数据格式及控制字

4.2.1、写BASE+0操作

AD-1602


功能:送A/D通道号

D0~D3 的数值表示通道号(0~15)。即0000 ~

1111 。D4~D7 无效,通常为零。

例:outportb(0x210,0);       //选择0通道


4.2.2、读BASE+0操作

AD-1602


功能:判断A/D或校正操作是否结束

校正操作: 即判断D0是否为0,D0=0 时结束

A/D 转换:启动转换后,判断D0是否为0,D0=0,转换结束。

例:do{

I=inportb(0x210)&0x01;

  }while(I!=0);


4.2.3、BASE+1操作

功能:启动A/D 转换

向BASE+1 写入一任意数值都可以完成启动A/D,通常写“0”。

例:outportb(0x211,0);


4.2.4、写BASE+2操作

功能:对A/D进行校正操作

校正操作通常在PC机上电后进行一次即可以。如果长时间工作,温度变化范围比较大,可以对A/D每隔一定时间进行一次校正操作,一次校正操作的时间为:20毫秒左右。方法对BASE+2 H口进行一次写操作。然后判断STATE(BASE+0H读)的D0为是否为0。例:

int I;

outportb(0x212,0); //   启动校正操作

do{

I=inportb(0x210)&1;

}while(I!=0);   // 判断校正操作是否结束


4.2.5、BASE+2H   BASE+3H读操作

功能:读A/D转换结果的低8位(BASE+2)

及高8位(BASE+3)数据

例:intdatal,datah,data;

datal=inportb(0x212);//读低八位数据

datah=inportb(0x213);//读高八位数据

data=datah*256+datal; 

A/D的高8位与低8位一起构成16位AD转换结果DATA,DATA为16位有符号数(补码),定义如下:

DATA=DATAL+DATAH*256

DATAL:低8位AD转换结果

DATAH:高8位AD转换结果


对应电压:

AD-1602


对应电压转换公式:V=DATA*10.000/32768  (V)


4.2.6、BASE+4H   BASE+5H读(DI)操作

功能:读16路开关数字量(TTL电平)输入

例:int data1,data2;   //data1为第一组8位数字量

                                   //data2 为第二组8为数字量

data1=inportb(0x214);

data2=inportb(0x215);


4.2.7、BASE+6H   BASE+7H写(DO)操作

功能:输出16路开关数字量(TTL电平)

例:int data1,data2;   //data1为第一组8位数字量

                                   //data2 为第二组8为数字量

data1=0x55;                  

data2=0x55;

// 输出设定:0、2、4、6、8、10、12、14为高

//           1、3、5、7、9、11、13、15为低

outportb(0x216,data1);

outportb(0x217,data2);



五、接口定义及模拟量的使用


5.1、模拟量输入接口定义

外部16路模拟量由DB25 芯D型孔头J1接入,定义见下表:

AD-1602


注意:

(1)请选用质量比较好的电源以减少电源系统干扰。

(2)模拟输入连线必须采用屏蔽电缆,不使用的通道和屏蔽层应接地,否则会影响其他通道的精度。

(3)信号源的电流应限制在10mA之内。

(4)PC104机上电后采集程序应该至少进行一次校正操作。

(5)如果模拟输入信号的电压噪音比较大,可以采用对信号多次平均的方式进行软件滤波处理(中值滤波)。

(6)单端方式输入时,没有用的输入端应连接保护地线。

(7) 出厂提供的程序是按照PC104  486/100以下CPU运算速度编制的,请参照AD1602.DEF文件。若你的计算机CPU速度快,应设定更大的延时DELAY。DELAY为空循环的次数。


5.2、开关量数字DI/DO

AD-1602板有J2  40脚扁平缆线插座为开关量接口连接器,定义如下:

AD-1602


数字开关量输入输出为TTL电平:0~5V,对应GND


5.3、设置模拟信号的输入方式

AD-1602提供单端16路和双端(差分)8路两种输入方式,由跳线器JP1、JP2、JP3决定,设置如下:

AD-1602


5.4、外接电源J3定义

由J3接入+15V(+12V,右),GND(中),-15V(-12V,左)。需外接,不能由总线提供。


5.5、零点及增益调节

电位器RP1用于调节零点,RP2用于调整增益。调整顺序是先调零点,再调增益。为保证精度,电压表的精度应在4½位以上。

调零点:将输入信号端接地,运行采集程序,调节RP1,使显示的结果在7FFEH—8001H之间。

调增益:输入信号端接一稳定的信号源(如干电池),运行采集程序,调节RP2使输入值与采集值保持吻合。


5.6、A/D转换码制及对应关系

A/D的电压量程为双极性,其对应关系为:

AD-1602


转换公式:N=DATA×10.0/32768      

模拟量输入为0~±10V;A/D转换后输出数据N为补码方式,结果是:

0~+10V:0000H~7FFFH

-10V~0:8000H~FFFFH

表示N≤7FFFH(32767):输入电压V=(N*10000.0/32768.0mV

N>7FFFH(32767): 输入电压V=(N-FFFFH)*10000.0/32768.0mV

若输入为0~±5V,转换公式:N=DATA×5.0/32768。

硬件是将参考电源芯片AD587换为AD586即可。



六、编程说明


除特殊说明,以下程序中变量port 都等于首地址0x210;

以下各例程都是用TC 3.0 编写,并在486上调试通过。

A/D转换由软件启动,软件判断是否转换结束:

▪ A/D校正

▪ 设置输入通道号

▪ 延时

▪ 启动A/D转换

▪ 判断转换是否结束

▪ 读采集数据

▪ 跳转到下一通道进行采集


6.1、A/D校正

校正通常只需在PC机上电后作一次即可。如果长时间工作,温度变化较大,可以每隔一定的时间校正一次。例程:

#include

#define port  0x210;

void AD1602_CAL();

void main()

{

    AD1602_CAL();

}

void AD1602_CAL()

{

int j;

outportb(port+2,0);  //RUN CAL

do{

    j=inportb(port);

    j=j&0x01;          

 }while(j!=0);        

 }


6.2、A/D采样

功能:单端16通道循环采样,并显示采样数据。

#include

#define port 0x210               //Set Base address

int delay=1000,b=1000*10.0/32768.0;

void main()

{

  int ch,j;

  int data,datah,datal;

  double ad_value

  for(ch=0;ch<16;ch++)            //sampling from ch0 to ch15

   {

     outportb(port,ch);           //Set sampling channel

     outportb(port+1,0);          //start_up A/D sampling

     do{

       j=inportb(port);

       j=j&0x01;

     }while(j!=0);                //Judge sampling finish?

     datal=inportb(port+2);       //Read low 8 bit

     datah=inportb(port+3);       //Read high 8 bit

     data=datah*256+datal;        //Compute sampling result

     ad_value=data*b;              

     for(j=0;j

     printf(“Sampling data value=%7.5f(mV) with  channel 

           %2d”,ch,ad_data);      //Display the data.

    }

}


6.3、开关量TTL  DI/DO程序

6.3.1、设置全输出方式:

 int DATA_1,DATA_2;

 DATA_1=0xff;            //Set the first 8 bits digital

 DATA_2=0xff;            // Set the second 8 bits digital

 outportb(port+6,DATA_1);   //Out the first 8 bits

 outportb(port+7,DATA_2);   // Out the second 8 bits

6.3.2、设置全输入方式:

 int DATA_1,DATA_2;

 DATA_1= inportb(port+4);     //Input the first 8 bits digital

 DATA_2= inportb(port+5);   // Input the second 8 bits digital


6.4、A/D采样中的一些问题讨论

(1)扫描速度:由于AD-1602的通道建立时间为20微秒,转换时间10微秒,因此多路采样的最大通过率为30KHZ。单通道采样可以不记建立时间的问题,最大转换速度应小于100KHZ。

(2)信号的内阻匹配:AD-1602的输入阻抗>100兆欧,对16BIT的AD-1602,内阻应小于100兆欧/60000=1.6千欧,否则会带来采样误差。

(3)连接线:必须应用屏蔽电缆,屏蔽层需接地。

(4)噪声处理:如果前端信号的噪音很大(高频噪声),可以应用平均值的方法(中值滤波)对采样结果处理。如果是低频噪声,输入需要加入低通或带滤波器。



七、维修服务


AD-1602板自售出之日起,两年内在正确使用下,由于产品质量问题,我方将提供免费维修服务。但用户使用不当或烧坏,不在免费维修范围之列。两年后或用户使用不当或烧坏,我方将酌情只收取元器件成本费。


附录一:附磁盘文件说明

用户购买本卡时,随卡会附送软盘一张,内有配套软件及WINDOWS下的DLL一套。以下是该软盘内文件的说明

1.DOS目录:

AD1602.C       DOS下的测试程序源文件(TC3.0)

AD1602.EXE     DOS下的测试程序

2.Windows目录:

AD1602.DEF  WINDOWS 下动态库函数调用说明

AD1602.EXE  WINDOWS下的测试程序(需安装VC5.0)

AD1602.DLL         32位动态库(for VC++等)


附录二  WINDOWS下DLL的调用说明

1、VC(32位)中调用DLLs

VC中,与动态链接库的链接可以是动态的,也可以是静态的。这里建议使用动态方法进行链接。此时,请将软盘上的AD1602.dll copy 到当前WINDOWS安装的系统目录(如:C:\WINDOWS\SYSTEM\)下,设定 HINSTANCE   AD1602dll=NULL,然后定义指向动态库函数的指针,如:  typedef short(*AD)(int ChannelNO,  unsigned short port,long dly),用LoadLibrary()装载AD1602.DLL,如:用ad1602dll=LoadLibrary('  AD1602.DLL')装载AD1602板卡的动态库,并可用FreeLibrary()卸载AD1602.dll;然后用GetProcAddress()获得动态库中的函数的入口地址,如:...=(...)GetProcAddress(AD1602dll,'ad')可获得AD1602.dll动态库中的函数ad的入口地址, 如此即可调用DLL的函数。

例如:

int ChannelNO;

unsigned short AD1602_Port=0x210;

long Delay=3000;

short AD1602_Ad_Data[16];

int ReturnCalValue;

unsigned char diod[2],did[2];

……//DLLs 的声明部分;

ReturnCalValue=cal(AD1602_Port);

for(ChannelNo=0; ChannelNo<16; ChannelNo++)

{

AD1602_Ad_Data[ChannelNo]=ad(ChannelNo,

AD1602_Port,Delay);

……

}

   ……

diod[0]=0x55;  //设置输出值DO0,DO2,DO4,DO6 为高

diod[1]=0x55;  //设置输出值DO8,DO10,DO12,DO14 为高

d_out(diod,AD1602_Port,Delay);

……

d_in(did,AD1602_Port,Delay);

if(did(0)==……)   // 判断输入值,从而确定各路情况;

{

……          //情况处理;

}


2、VB(32位)调用DLLS

AD1602.dll 为动态链接库,是VC编写

2.1  与VB挂接时请将AD1602.DLL拷贝到当前WINDOWS安装的系统目录(如:C:\WINDOWS\SYSTEM\)下,  然后在工程中定义DLL的各函数如下:

'port为板口基地址

'delay为I/O操作延时

'd_out()为数字量输出函数

'diod为16路DO输出值,为一维数组指针,diod(2)

Declare Sub d_out Lib 'AD1602.dll' (ByRef diod As Byte, 

ByVal port As Integer,ByVal delay As Long)


'd_in()为数字量输入函数

'did为16路DI输入值,为一维数组指针,did(2)

Declare Sub d_in Lib 'AD1602.dll' (ByRef did As Byte, 

ByVal port As Integer,ByVal delay As Long)


'ad()为AD采集函数

'返回参数为通道ChannelNO采集的数据

'ChannelNO为采集通道号

Declare Function ad Lib 'AD1602.dll' (

ByVal ChannelNo As Integer, 

ByVal port As Integer,

ByVal delay As Long) As Integer


'cal()为校正函数

Declare Sub cal Lib 'AD1602.dll' (ByVal port As Integer) 



2.2  函数声明后即可调用。例如:

            

dim PORT as integer       '定义基地址

dim ChannelNo as integer    '定义采集通道号 0-15

dim DI_DATA(2),DO_DATA(2) as integer '定义DI/DO数据值

dim DELAY as long         '定义I/O操作延时值

dim ADDATA(16) as integer    '定义采样结果存储数组


PORT=&H210             

DO_DATA(0)=55                         

DO_DATA(1)=55          'DO0、DO2、DO4、DO6、DO8、DO10、                                   

' DO12、DO14输出为高,其余的输出为低

DELAY=1000                         

  

......   

for ChannelNo=0 to 15

ADDATA(ChannelNo)=ad(ChannelNo,PORT,DELAY)

print ADDATA(ChannelNo)

next ChannelNo

......

Call d_in(DI_DATA(0),PORT,DELAY)

......

Call d_out(DO_DATA(0),PORT,DELAY)

......


3、本公司提供的DLL(AD1602.dll)能于多种语言链接,如:VFP;C++Builder;Delphi...与其他语言链接时,请参照其他参考书。



八、PC机I/O地址图


AD-1602

相关推荐
XC-0032
光隔32路输入开关量板
XC-1616
光隔16路输入,16路输出开关量板
XC-1204
12位16路单端,8路12位DA,8路DO
XC-1203
12位16路单端,4路12位DA,16路DI,16路DO