100Ksps12位32通道ADWord格式文档下载.docx
《100Ksps12位32通道ADWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《100Ksps12位32通道ADWord格式文档下载.docx(16页珍藏版)》请在冰点文库上搜索。
●中断源:
定时器中断
●触发方式:
PC机软件触发
DA的性能指标:
●通道数:
4路独立输出
●输出方式:
电压输出,-5V-+5V或0-10V
●精度:
接口:
●总线方式:
32位PCI总线
●接头方式:
DB37(针式)
开关量指标:
●24路数字量输入
●8路数字量输出,复位清零功能
●2路脉冲计数功能
●工作温度:
0-70℃
三、AD板工作原理简介
信号从模拟量输入接头J2输入,然后经过阻容元件、多路开关进入仪器放大器,经过仪器放大器实现阻抗匹配和干扰抑制,再送到程控放大器,然后送到A/D芯片。
PC机首先选通相应的通道,然后触发A/D,A/D完成后,读取A/D结果。
DA芯片采样AD公司的12位独立DA转换器,实现两路DA的独立输出。
由于有复位控制功能,当计算机复位或计算机重新启动时,DA输出自动降到最低电压,能够保证系统的安全,这在很多工控项目中都非常重要。
板上的定时器定时给计算机发出中断,软件通过响应中断,实现实时控制功能。
一般信号采集直接采用单端即可,将信号的地线与本板的模拟地线相接,将信号线接本板的通道线。
由于本板有很强的共模噪声抑制能力,将信号直接接采集板能够保证有很高的采集精度。
对于噪声特别严重的信号,可以采用双端的方式输入,首先将板配置成双端采集模式,然后将信号的两端接通道的两端。
本板出库时,设置为单端方式。
阻容元件是根据用户需要,可以灵活配置的元件,接线如图1所示。
图1阻容元件接线
●滤波:
当阻容元件是电容式,该元件起滤波作用
●下拉:
当阻容元件为大电阻,如10K欧,则表示将信号下拉,当外部接线断路时,数据采集的结果仍然为0,这在一些控制系统中非常有用。
●电流探测:
当采用精密的电阻,用以检测电流时,由于本板的输入阻抗非常大,因此信号源的电流大部分都流经探测电阻,电阻两端的电压可以由采集板检测,从而根据与电流的关系,计算出电流的大小。
本板的阻容元件出库时空接,用户可以根据自己的需要焊接,元件的规格是表面贴元件0805系列。
四、硬件使用方法
1、操作元件布置
本板的操作元件布置如图3所示。
JP2和JP3联合控制单端与双端的选择。
JP4用于程控放大器设置,当没有程控放大器时,JP4的1、2短接;
当有程控放大器时,JP4的2、3短接。
出库时不带程控放大器,JP2的1、2短接。
J2是AD模拟信号的输入和DA的模拟信号输出。
W2用于选择AD输入的模拟信号类型,当W2的1,2短接时,输入的信号为单极性信号,输入的AD信号范围是从0V到10V,当W2的2,3短接时,输入的信号为双极性信号,输入的AD信号范围是从-5V到+5V;
WR2用于AD信号的调零,WR3用于AD信号的增益调整。
W2用于选择AD输入信号极性,当1、2闭合时,输入0-10伏,当2、3闭合时,输入-5伏到+5伏。
JP4用于选择是否带程控放大器,当不带程控放大器时,1、2闭合、当带程控放大2、3闭合时。
WR4、WR5用于DA0的增益、零点调整。
WR7、WR6用于DA1的增益、零点调整。
WR8、WR9用于DA2的增益、零点调整。
WR11、WR10用于DA3的增益、零点调整。
2、口地址与中断
PCI总线板卡的口地址与中断由系统自动分配,一般用户可以非常方便地使用,做到即插即用。
对于工控领域的应用,需要得到板卡的物理地址,或是多块板卡同时工作,需要得到各个板卡物理地址,可以参照下文软件所述的方法实现对板卡的物理寻址。
地址分配是:
假设基地址=IOBase
定时器82C54的地址是:
IOBase0-IOBase+3,可读,可写
ADL:
采集结果低8位地址,IOBase+4
ADH:
采集结果高8位地址IOBase+5
采集完成状态:
读IOBase+6的D1
开关量输入DI0-DI7:
IOBase+7
开关量输入DI8-DI15:
IOBase+8
开关量输入DI16-DI23:
IOBase+9
DAL(DA输出的低8位):
DAH(DA输出的高4位给通道选择位):
DACS,DA输出控制字节:
IOBase+10
通道及增益设置:
IOBase+11,低5位选择32通道中的一个通道,D5,D6确定增益
启动A/D命令,写IOBase+12
开关量输出命令:
IOBase+13
3、AD的单端与双端输入方式选择
通过短接器JP2和JP3实现单端与双端的转换。
单端方式:
JP2的1、2短接,4、5短接;
JP3的1、2短接,4、5短接。
双端方式:
JP2的2、3短接、5、6短接;
JP3的2、3短接,5、6短接。
出库时,设置成单端方式。
4、AD的增益调整与零点调整
WR2用于信号的零点调整。
零点调整时,首先将信号输入线接地,然后观察采集软件的采集结果,直到输出为零。
WR3用于信号的增益调整。
增益调整时,请使用新电池接在输入信号线上,然后用4位半的万用表量出电池的电压,作为标准电压,然后观察采集软件的采集结果,直到采集的结果为标准电压。
5、AD模拟输入量程的选择
W2用于选择AD输入信号的量程,当W2的1、2短接时,输入范围是0-10V,当W2的2、3短接时,输入范围是-5V至+5V。
6、AD电压信号与AD输出数码的关系
输出采用偏移码方式。
当输入为-5V至+5V:
输入-5.000v时,对应的数码是0H;
当输入是0电压时,输出的数码为800H;
当输入的电压为+5.000v时,输出的数码为FFFH;
当输入为0V至+10V:
输入0v时,对应的数码是0H;
当输入是5V电压时,输出的数码为800H;
当输入的电压为+10.000v时,输出的数码为FFFH。
7、控放大器的设置
本板可以接程控放大器,程控放大器可以是PGA204、PGA205或PGA206。
当选择PGA204时,4种放大倍数是1、10、100、1000。
当选择程控放大器PGA205时,4种放大倍数是1、2、4、8。
当选择程控放大器PGA206时,4种放大倍数是1、2、5、10。
程控放大器由两个控制端A0和A1控制,当A1A0为二进制的00、01、10、11时,分别选择4种放大倍数1、10、100、1000或1、2、4、8或1、2、5、10。
假设采集板的口地址的基地址是IOBase,程控放大器的控制端A0、A1对应的控制位是:
IOBase+9控制字节的Bit5和Bit6。
当不接程控放大器时,应该将JP4的1、2短接,当接有程控放大器,并且使用程控放大器时,应该将JP4的2、3短接。
8、接线插座的信号定义
J2是37芯的D形接头,如图2所示,模拟量输入与模拟量输出接口针脚的定义是:
1、20、2、21、3、22、4、23、5、24、6、25、7、26、8、27对应模拟输入通道0-15。
11、30、12、31、13、32、14、33、15、34、16、35、17、36、18,37对应模拟输入通道0-15。
19针是模拟地线。
针9、28、10、29对应DA输出的通道0、通道1、通道2、通道3。
当采用单端时,针脚1至8对应通道0/2/4/6/8/10/12/14,针脚20至27对应通道1/3/5/7/9/11/13/15,针脚11至18对应通道16/18/20/22/24/26/28/30,针脚30至37对应通道17/19/21/23/25/27/29/31。
当采用双端时,针脚1/20/2/21/3/22/4/23/5/24/6/25/7/26/8/27对应通道0至15的高端,针脚11/30/12/31/13/32/14/33/15/34/16/35/17/36/18/37对应通道0至15通道的低端。
图2模拟量接线
图3数字量接线
图3是数字量的接线示意图。
39是+5伏输出,40针是地线。
DOO是开关量输出的第一路,DO1、DO2、DO3、DO4、DO5、DO6、DO7分别是开关量输出的第2、3、4、5、6、7、8路。
DI0、DI1、DI2、…、DI23对应开关量输入的0-23,共计24路开关量输入。
CLK1,OUT1,G1是定时器1的时钟、输出与门控;
CLK2,OUT2,G2是定时器2的时钟、输出与门控。
五、软件使用说明
pci总线有即插即用的特点,为用户使用本卡提供了很多方便,对于大多少用户,可以直接采用本公司提供的驱动软件,可以实现数据采集功能。
在工业控制中,往往需要软件独立控制硬件,并且需要了解硬件的物理地址,以便于实现可靠的控制和采集功能。
有些用户的软件在Dos下编制,也需要了解板卡的起始地址和中断号,因此,这里介绍获取板卡口地址和中断号的方法。
以下为了说明方便,设定口地址为IOBase。
并用C语言介绍。
1、口地址与中断的获取
本公司提供两个软件,帮助用户实现对板卡口地址与中断的查询及编程工作:
intSetCardNoByOrder(0,WORDNewCardNo);
该函数的功能是设定一个板的卡号,该卡号记录在板上的EEProm中,该卡号是这块板的标识号,在一台计算机中,这中卡号应该是唯一的。
设定卡号时,应该只有一块板插在计算机的PCI槽中,通过运行本软件,就可以在卡上设定该卡的卡号。
相当于ISA总线中设定基地址。
在用户软件中,就是通过该卡号来查询卡的基地址与中断号。
intGetIOBaseByCardNo(WORDCardNo,WORD*IOBase,WORD*IRQNum);
这个函数的作用是得到对应卡号的卡的基地址和中断号。
该函数返回的结果是0时,表示失败,返回的结果是1时,表示返回的结果成功。
产生IOBase是返回的口地址,IRQNum是中断号。
例如:
假设用户有3块PCI卡,分别是AD板AD7201、开关量板IO701和功率驱动板IO702,工控项目中需要软件明确了解3块卡的基地址,并且可能的插入的PCI槽是不确定的,那么就可以通过以下方法实现口地址的查询:
首先关闭计算机,将计算机中的瑞博华公司的板卡从计算机中拔出,然后插入AD7201板卡,运行本公司提供的工具,设置板卡的卡号为1;
依据相同道理,可以设置开关量板IO701的卡号为1、功率驱动板IO702的卡号为2。
然后将所有的板卡都插入计算机。
再运行GetIOBaseByCardNo函数功能,输入板卡号,就可以得到各个板的口地址与中断。
2、定时器的使用
定时器的作用是向PC发出定时中断,用户软件在定时中断中采集数据,由于采用硬件定时中中断,所以可以保证相邻两次采样时刻非常准确。
定时器采用82C54,占用IOBase+3和IOBase这两个地址,并且只有写有效。
写IOBase+3为写控制字节,控制字节为0x34。
写IOBase为写定时器分频数,该数16位,分两次写入,首先写入低8位,然后写入高8位。
定时器的输入时钟为500KHz。
例如设置定时器输出频率为50的程序如下:
outportb(IOBase+3,0x34);
outportb(IOBase,(10000&
0xff));
//500,000/10000=50,送低8位
outportb(IOBase,(10000>
>
8));
//送高8位
3、通道号设置
通道号设置:
写IOBase+11,D0-D4确定通道号
4、程控放大器设置
程控放大器有两种类型可以选择,一种是PGA204,增益分别是1、10、100、1000;
另一种是PGA205,放大倍数分别是1、2、4、8。
两种放大器的放大倍数由控制端A0、A1控制,当A1A0分别是00、01、10、11时,对应的放大倍数为1、10、100、1000或1、2、4、8。
IOBase+11的D5位=A0;
IOBase+11的D6位=A1;
特别要注意的是,IOBase+11的低5位D0、D1、D2、D3、D4是控制通道号。
5、软件触发启动A/D的方法
outportb(IOBase+12,0);
//立即启动AD
6、A/D完成的查询方法
while(!
(inportb(IOBase+6)&
0x2));
//等待bit1==1,表明A/D芯片正在工作,当为高电平时,表明A/D完成。
7、读取A/D结果的方法
inportb(IOBase+4)//读取结果低8位
(inportb(IOBase+5)//读取结果高4位;
8、AD综合编程实例
假设程控放大器是PGA205,设定增益=2,那么A1A0=01;
intControlByte;
//控制字节,对应的地址是IoBase+11。
其D0-D4是通道号,D5是PGA的A0,D6是PGA的A1。
ControlByte=0;
//控制字节初始化
ControlByte=ControlByte&
0xBF;
//A1=D6=0;
ControlByte=ControlByte|0x20;
//A0=D5=1;
outportb(IOBase+11,ControlByte);
//使程控放大器的A0=0A0=1
ControlByte=ControlByte&
0xE0;
//选择通道0
//设置定时器
outportb(IOBase+3,0x36);
//设置定时器的控制字
i=MainFreq/FrqSamp0;
outportb(IOBase,i&
0xff);
//送控制字节
outportb(IOBase,(i>
8)&
0xff);
for(i=0;
i<
NumChn+1;
i++){//采集所有通道的信号
outportb(IOBase+12,0);
ControlByte=ControlByte|((i+1)&
0x1f);
//选择下一个通道
//等待bit1==1,
if(i>
=1)//跳过第一次转换
TmpADBuff[i-1]=inportb(IOBase+4)+//读取结果
((inportb(IOBase+5)&
0xf)<
<
8);
}
ControlByte=ControlByte&
0xe0;
outportb(IOBase+11,ControlByte);
//设置到通道0
9、开关量输入编程说明
24路开关量输入的口地址是IOBase+7、IOBase+8、IOBase+9。
对应的D0-D7是8路开关量输入的电平状态,当对应的针是高电平时,读入的是1,当对应的针脚是低电平时,输入的是0。
DI0-DI23对应0-23这24个通道。
对应的输入针的定义是:
DIO-DI7对应J1的9、10、11、12、13、14、15、16。
DI8-DI5对应J1的17、18、19、20、21、22、23、24。
DI16-DI23对应J1的25、26、27、28、29、30、31、32。
J1的40是地线,39是高电平输出。
10、开关量输出编程说明
8路开关量输出的口地址是IOBase+13。
对应的D0-D7是8路开关量输出的电平状态,当对应的位输出1时,当对应的针是高电平时,当对应的位输出0时,对应的针脚输出低电平。
对应的针脚是J1的1至8。
11、DA编程说明
DAL是DA输出的低8位,其口地址是IOBase+8。
DAH的低4位是DA输出的高4位,与DAL共同合成12位DA输出。
DAH的D4,D5决定DA输出的通道号。
DAH的口地址是:
IOBase+9。
当为DA0通道时,D4=0,56=0;
当DA1通道时,D4=1,D5=0;
当DA2通道时,D4=0,56=1;
当DA3通道时,D4=1,D5=1。
当设定了对应通道的DA值后,要使该值生效,必须运行以下生效命令:
Outportb(IOBase+10,0);
例如,设定DA1为中间电压输出,DA2为最大电压输出的程序如下:
outportb(IOBase+8,0xff);
//送DA1的低8位
outportb(IOBase+9,0x17);
//送DA1的高4位,并选中通道1
//使设定值生效
//送DA2的低8位
outportb(IOBase+9,0x2f);
//送DA2的高4位
outportb(IOBase+10,0);
二>
WINDODW95下的软件说明
本板提供了很完善的WIN98/2000/NT/XP驱动程序,采用动态链接库的方式,用户使用方便、快捷,所提供的DEMO软件,能满足大量的实际需要,如实时控制、波形显示、波形记录等。
在Windows下编程,有两种编程方式,一种是采用查询方式,可以实时读取当前信号的幅值,以及开关量状态,这种方式特别适合于工业现场的实时控制;
另一种方式是采用硬件定时采集的方式,通过调用本公司提供的动态连接库,可以实现在Windows下高速、实时、连续采集信号。
查询方式的采集主要依靠以下函数实现。
开关量采集子程序
只要运行本程序,就可以采集采集板的开关量输入,以及脉冲量的输入
其中:
IOChn=9,是一个固定数
IOV()是一个数组
IOV(0):
是第一个8路开关量输入,每位对应1位,当该位=0,表明输入低电平,=1表明输入高电平
IOV
(1):
是第二个8路开关量输入,每位对应1位,当该位=0,表明输入低电平,=1表明输入高电平
IOV
(2):
是第三个8路开关量输入,每位对应1位,当该位=0,表明输入低电平,=1表明输入高电平
函数成功返回TRUE,失败返回FALSE
DeclareFunctionDllRbh_DILib"
adcard.dll"
Alias"
_Rbh_DI@8"
(ByValIOChnAsInteger,ByRefIOVAsInteger)AsInteger
模拟量采集子程序
只要运行本程序,就可以采集采集板的模拟量输入
adchn:
是模拟通道数,从1开始,如4通道,则该数就是4
采集的结果放置在数组ADResult()数组中,该数据是全局变量,在模块中定义,定义类型是长整型数
采集结果存放的通道对应是0-31通道,对应数组元素ADResult(0)-ADResult(31)
数据编码方式:
采用偏移二进制码,如12位的A/D,最大值是4095,最小值是0
DeclareFunctionDllRbh_ADResultLib"
_Rbh_ADResult@8"
(ByValadchnAsInteger,ByRefADVAsInteger)AsInteger
初始化程序
只要运行本程序,就可以设置模拟采集的通道数,采集的起始通道号,程控放大器的放大倍数
ADNumChn:
ADBegChn:
是起始通道号,从0开始,如第二通道,则ADBegChn=1
ADAmpGain:
程控增益控制数,该数有4档,对应0,1,2,3.分别对应程控放大倍数1/2/4/8或1/10/100/1000
DeclareFunctionDllRbh_InitLib"
_Rbh_Init@12"
(ByValADNumChnAsInteger,ByValADBegChnAsInteger,ByValADAmpGainAsInteger)AsInteger
开关量输出控制程序
只要运行本程序,就可以从开关量输出端输出开关量
DONum=1,是一个固定常数
DOV是数组:
DOV(0)是要输出的开关量字节,8位输出,每位对应J3的1个输出端,当输出0时,输出低电平,当输出1时,对应端输出高电平
DeclareFunctionDllRbh_DOLib"
_Rbh_DO@8"
(ByValDONumAsInteger,ByRefDOVAsInteger)AsInteger
模拟量输出控制程序
只要运行本程序,就可以控制模拟量输出
DAChn:
是模拟通道号,从0开始,如2通道,则该数就是1
DAValue:
DA输出量,采样偏移二进制编码,最大值是4095,最小值是0
DeclareFunctionDllRbh_DALib"
_Rbh_DA@8"
(ByValDAValueAsInteger,ByValDAChnAsInteger)AsInteger
脉冲量输出控制程序
只要运行本程序,就可以设置脉冲量的输出
TC:
对应通道的控制字节
CTValueL:
初始值的低8位
CTValueH:
初始值的高8位
CTChn:
对应的通道号,从0开始,如第二通道时,值=1
脉冲计数芯片采用8254-2芯片,建议用户先熟悉该芯片的功能及使用方法
DeclareFunctionDllRbh_CounterOutLib"
_Rbh_CounterOut@16"
(ByV