#100Ksps12位32通道AD.docx
- 文档编号:24776731
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:16
- 大小:64.63KB
#100Ksps12位32通道AD.docx
《#100Ksps12位32通道AD.docx》由会员分享,可在线阅读,更多相关《#100Ksps12位32通道AD.docx(16页珍藏版)》请在冰豆网上搜索。
#100Ksps12位32通道AD
PCI总线
100Ksps/12位32通道AD
4通道DA板AD7214
24通道数字输入/8通道数字输出/2脉冲
使用说明书
北京瑞博华控制技术有限公司
二00三年一月
一、性能特点:
本板采样PCI总线接口。
本板通过采用高速高精度AD芯片、高精度的仪器放大器、精细地布线以及优良的制版工艺,实现了高速、高精度实时数据采集,具有以下性能特点:
1、AD高精度:
误差小于+/-0.5LSB。
2、DA通道数:
4通道独立锁存,精度12位,
3、AD高速度:
单通道采集速度达到100Ksps(SamplePerSecond),多通道方式也能够达到90Ksps以上,特别适合于工业控制中的数据采集。
4、程控放大器功能,可以设置放大倍数为1、2、4、8或1、10、100、1000。
5、AD硬件定时:
板上提供硬件定时器,可以根据需要发出定时中断,采集软件在定时中断程序中采集,从而保证准确地时间基准,适于大部分的工业实时控制和高速数据采集的应用,特别是在WINDOWS95/98/2000的环境下,由于PC系统很难提供高精度的定时,采用本板的定时器,能够提供高精度的定时,同时能够实现高精度的数据采集,因此,在WINDOWS环境下采用本板具有特别的优点。
6、电流监测功能:
本板只需焊接上检测电阻,就能够实现电流检测。
用户可以按要求自己焊接,也可由本公司帮助焊接。
二、功能与指标
AD的性能指标:
●AD采样精度:
12位
●AD通道数:
单端方式32通道,双端方式16通道
●AD系统数据采集实际贯通率:
100K/S
●AD芯片转换速度:
100K/S
●AD采样幅值综合误差:
+/-0.5LSB
●AD输入电压范围:
-5V到+5V或0-10V
●AD输入阻抗:
10兆欧
●中断源:
定时器中断
●触发方式:
PC机软件触发
DA的性能指标:
●通道数:
4路独立输出
●输出方式:
电压输出,-5V-+5V或0-10V
●精度:
12位
接口:
●总线方式:
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位):
IOBase+8
DAH(DA输出的高4位给通道选择位):
IOBase+9
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;
outportb(IOBase+11,ControlByte);//选择通道0
//设置定时器
outportb(IOBase+3,0x36);//设置定时器的控制字
i=MainFreq/FrqSamp0;
outportb(IOBase,i&0xff);//送控制字节
outportb(IOBase,(i>>8)&0xff);
for(i=0;i outportb(IOBase+12,0);//立即启动AD ControlByte=ControlByte|((i+1)&0x1f); outportb(IOBase+11,ControlByte);//选择下一个通道 while(! (inportb(IOBase+6)&0x2));//等待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。 J1的40是地线,39是高电平输出。 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 Outportb(IOBase+10,0);//使设定值生效 outportb(IOBase+8,0xff);//送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 函数成功返回TRUE,失败返回FALSE DeclareFunctionDllRbh_ADResultLib"adcard.dll"Alias"_Rbh_ADResult@8"(ByValadchnAsInteger,ByRefADVAsInteger)AsInteger 初始化程序 只要运行本程序,就可以设置模拟采集的通道数,采集的起始通道号,程控放大器的放大倍数 其中: ADNumChn: 是模拟通道数,从1开始,如4通道,则该数就是4 ADBegChn: 是起始通道号,从0开始,如第二通道,则ADBegChn=1 ADAmpGain: 程控增益控制数,该数有4档,对应0,1,2,3.分别对应程控放大倍数1/2/4/8或1/10/100/1000 函数成功返回TRUE,失败返回FALSE DeclareFunctionDllRbh_InitLib"adcard.dll"Alias"_Rbh_Init@12"(ByValADNumChnAsInteger,ByValADBegChnAsInteger,ByValADAmpGainAsInteger)AsInteger 开关量输出控制程序 只要运行本程序,就可以从开关量输出端输出开关量 其中: DONum=1,是一个固定常数 DOV是数组: DOV(0)是要输出的开关量字节,8位输出,每位对应J3的1个输出端,当输出0时,输出低电平,当输出1时,对应端输出高电平 函数成功返回TRUE,失败返回FALSE DeclareFunctionDllRbh_DOLib"adcard.dll"Alias"_Rbh_DO@8"(ByValDONumAsInteger,ByRefDOVAsInteger)AsInteger 模拟量输出控制程序 只要运行本程序,就可以控制模拟量输出 其中: DAChn: 是模拟通道号,从0开始,如2通道,则该数就是1 DAValue: DA输出量,采样偏移二进制编码,最大值是4095,最小值是0 函数成功返回TRUE,失败返回FALSE DeclareFunctionDllRbh_DALib"adcard.dll"Alias"_Rbh_DA@8"(ByValDAValueAsInteger,ByValDAChnAsInteger)AsInteger 脉冲量输出控制程序 只要运行本程序,就可以设置脉冲量的输出 其中: TC: 对应通道的控制字节 CTValueL: 初始值的低8位 CTValueH: 初始值的高8位 CTChn: 对应的通道号,从0开始,如第二通道时,值=1 脉冲计数芯片采用8254-2芯片,建议用户先熟悉该芯片的功能及使用方法 函数成功返回TRUE,失败返回FALSE DeclareFunctionDllRbh_CounterOutLib"adcard.dll"Alias"_Rbh_CounterOut@16"(ByValTCAsInteger,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 100 Ksps12 32 通道 AD