PCI采集卡原理和程序.docx

上传人:b****5 文档编号:6337248 上传时间:2023-01-05 格式:DOCX 页数:17 大小:68.39KB
下载 相关 举报
PCI采集卡原理和程序.docx_第1页
第1页 / 共17页
PCI采集卡原理和程序.docx_第2页
第2页 / 共17页
PCI采集卡原理和程序.docx_第3页
第3页 / 共17页
PCI采集卡原理和程序.docx_第4页
第4页 / 共17页
PCI采集卡原理和程序.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

PCI采集卡原理和程序.docx

《PCI采集卡原理和程序.docx》由会员分享,可在线阅读,更多相关《PCI采集卡原理和程序.docx(17页珍藏版)》请在冰豆网上搜索。

PCI采集卡原理和程序.docx

PCI采集卡原理和程序

PM-512高精度模入接口卡技术说明书

1.概述

PM-512高精度模入接口卡适用于提供了PC104总线的嵌入式微机。

其操作系统可选用经典的MS-DOS或目前流行的Windows系列等多种操作系统。

PM-512高精度模入接口卡安装使用简便、功能齐全。

其A/D转换启动方式可以选用程控频率触发、程控单步触发、外部TTL信号触发以及外部时钟同步触发等多种方式。

A/D转换后的数据结果通过先进先出存储器(FIFO)缓存后由PC104总线读出。

为方便用户,本卡还提供了符合TTL电平的8路数字量输入和8路数字量输出信号通道。

2.主要技术参数

2.1模入部分(标*为出厂标准状态,下同)

2.1.1输入通道数:

单端16路*/双端8路

2.1.2输入信号范围:

0~10V*;0~5V;±5V;±10V

2.1.3输入阻抗:

≥10MΩ

2.1.4输入通道选择方式:

单通道程序指定/多通道自动扫描

2.1.5A/D转换分辩率:

16位

2.1.6A/D最高转换速率:

100KHz

2.1.7A/D采样程控频率:

1KHz/5KHz/10KHz/50KHz/100KHz/外部时钟

2.1.8A/D启动方式:

程控频率触发/程控单步触发/外部TTL信号触发

2.1.9A/D转换输出码制:

单极性原码*/双极性偏移码

2.1.10FIFO存储器容量:

8K×16bit(全满)/4K×16bit(半满)

2.1.11数据读取识别方式:

FIFO半满查询/FIFO非空查询/FIFO半满中断

2.1.12系统综合误差:

≤0.02%F.S

2.2开关量部分

2.2.1输入路数:

8路TTL电平

2.2.2输出路数:

8路TTL电平

2.3电源功耗:

+5V(±10%)≤500mA

2.4环境要求:

工作温度:

10℃~40℃

相对湿度:

40%~80%

存贮温度:

-55℃~+85℃

2.5外型尺寸:

长×高=90mm×96mm

3.工作原理

工作原理简介

PM-512高精度模入接口卡主要由高速多路模拟开关选通电路、高速高精度放大电路、高精度模数转换电路、先进先出(FIFO)缓冲存储器电路、开关量输入输出电路和接口控制逻辑电路等部分组成。

3.1高速多路模拟开关选通电路

本电路由2片ADG408高速多路模拟开关(或同类产品)及跨接选择器KJ1、KJ2组成,用以从16路单端信号或8路双端信号中选择其中一路,送入后端的放大器电路处理。

3.2高速高精度放大电路

本电路由4个高速高精度放大器、基准源、阻容件及跨接选择器KJ3组成,用以对通道开关选中的模拟信号进行变换处理,以提供模数转换电路所需要的信号。

 

3.3高精度模数转换电路

本电路由高速模数转换芯片ADS7805(或AD976)及调整电位器W1、W2、和W3组成,用以将模拟信号转换为数字信号。

W1用于偏移调整,W2用于零点调整,W3用于满量程增益调整。

3.4先进先出(FIFO)缓冲存储器电路

本电路用于将A/D转换的数据结果进行缓冲存储。

并相应的给出“空”,“半满”和“全满”的标志信号。

用户在使用过程中可以随时根据这些标志信号的状态以单次或批量的方式读出A/D转换的结果。

3.5开关量输入输出电路:

本卡还提供了各8路的开关量输入输出信号通道。

使用中需注意对这些信号应严格符合TTL电平规范。

3.6接口控制逻辑电路

接口控制逻辑电路用来将PC104总线控制逻辑转换成与各种操作相关的控制信号。

4.安装及使用注意

本卡的安装十分简便,在关电情况下,将本卡上的P1总线连接器正确的插入主机或其它功能板卡的总线连接器中并轻轻压紧。

为避免两层板卡上的元器件互相接触造成不可预计的后果,应正确选用适当高度的支柱并在本卡安装完成后将其紧固。

本卡采用的模拟开关是COMS电路,容易因静电击穿或过流造成损坏,所以在安装或用手触摸本卡时,应事先将人体所带静电荷对地放掉,同时应避免直接用手接触器件管脚,以免损坏器件。

禁止带电插拔本接口卡。

本卡跨接选择器较多,使用中应严格按照说明书进行设置操作。

设置接口卡开关、跨接套和安装接口带缆时均应在关电状态下进行。

当模入通道不全部使用时,应将不使用的通道就近对地短接,不要使其悬空,以避免造成通道间串扰和损坏通道。

为保证安全及采集精度,应确保系统地线(计算机及外接仪器机壳)接地良好。

特别是使用双端输入方式时,为防止外界较大的共模干扰,应注意对信号线进行屏蔽处理。

5.使用与操作

5.1主要可调整元件见图1。

图1主要可调整元件位置图

 

5.2I/O基地址选择:

I/O基地址的选择是通过DIP开关K1进行的,开关拨至“OFF”处为1,反之为0。

初始地址的选择范围一般为100H~370H之间。

用户应根据主机硬件手册给出的可用范围及是否插入其它功能卡来决定本卡的I/O基地址。

出厂时本卡的基地址设为300H,并从基地址开始占用连续8个地址。

现举例说明见图2。

A9A8A7A6A5A4A9A8A7A6A5A4

(a)100H(b)310H

图2I/O基地址选择举例

5.3输入输出插座接口定义

5.3.1模入部分

J1为模拟信号输入插座,其信号定义见表1。

用户可根据需要选择连接信号线(单端)或信号线组(双端)。

为减少信号杂波串扰和保护通道开关,凡不使用的信号端应就近与模拟地短接,这一点在小信号采样时尤其重要。

表1J1模拟输入信号端口定义(括号内表示双端方式)

插座引脚号

信号定义

插座引脚号

信号定义

1

模拟地

2

模拟地

3

CH1(CH1+)

4

CH2(CH2+)

5

CH3(CH3+)

6

CH4(CH4+)

7

CH5(CH5+)

8

CH6(CH6+)

9

CH7(CH7+)

10

CH8(CH8+)

11

CH9(CH1-)

12

CH10(CH2-)

13

CH11(CH3-)

14

CH12(CH4-)

15

CH13(CH5-)

16

CH14(CH6-)

17

CH15(CH7-)

18

CH16(CH8-)

19

模拟地

20

模拟地

5.3.2开关量部分

J2为开关量输入输出插座,其信号定义见表2。

表2J2开关量输入输出信号端口定义

插座引脚号

信号定义

插座引脚号

信号定义

1

+5V电源输出

2

+5V电源输出

3

DI1

4

DI2

5

DI3

6

DI4

7

DI5

8

DI6

9

DI7

10

DI8

11

数字地

12

数字地

13

DO1

14

DO2

15

DO3

16

D04

17

DO5

18

D06

19

DO7

20

DO8

21

数字地

22

数字地

23

EC/T

24

NC

25

数字地

26

数字地

注:

EC/T为外触发启动信号/外同步时钟信号共用输入端。

5.4跨接器的使用

5.4.1单端/双端方式选择

KJ1、KJ2为单端/双端输入方式选择插座,其使用方法见图3。

a.单端输入方式b.双端输入方式

图3单/双端输入方式选择

5.4.2A/D量程选择

KJ3为A/D量程选择插座,其使用方法见图4。

a.0~10V输入b.0~5V输入c.±5V输入d.±10V输入

图4A/D量程选择

5.5控制端口与数据格式

5.5.1各控制端口的地址与功能见表3

表3端口地址与功能表(16位操作)

端口地址

操作命令

功能

基地址+0

写状态控制字

基地址+0

清空FIFO,除I/O外各功能复位

基地址+2

置工作允许/停止,DO=1允许,DO=0禁止

基地址+2

查询FIFO状态

基地址+4

单步采样,写任意数值

基地址+4

从FIFO中读出A/D转换结果

基地址+6

写8路DO开关量数据

基地址+6

读8路DI开关量数据

下面分别就表3中的各项功能进行详细说明

1.状态控制字格式和定义

状态控制字用来确定本卡的各种工作方式,每次采样前应根据需要加以确定,其格式及定义见表4。

表4状态控制字格式及定义表(X为保留,暂无定义)

D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

D0

F

E1

E0

X

X

D2

D1

D0

C

B

X

X

A3

A2

A1

A0

A3A2A1A0为通道代码。

当本卡工作在单通道程序指定方式时,这些通道代码即为程序指定的某一通道。

当本卡工作在多通道自动扫描方式时,这里的通道代码为指定的末通道(一定大于0),本卡将自动从0通道开始,逐次加一选择通道,直到指定的末通道为止,且周而复始。

B为触发启动方式选择。

B=0时为程控触发启动方式,B=1时为外部TTL信号触发启动方式。

C为单通道程序指定/多通道自动扫描选择。

C=0时为单通道程序指定方式。

C=1时为多通道自动扫描方式。

D2D1D0为A/D采样程控频率选择。

其定义如下:

D2D1D0

程控频率

000

1KHz

001

5KHz

010

10KHz

011

50KHz

100

100KHz

101

保留

110

外同步时钟方式

111

单步方式

E1E0为中断信号通道选择。

本选择应与F位配合使用,其定义如下:

E1E0

中断信号通道

00

IRQ5

01

IRQ7

10

IRQ12

11

无效

F为中断允许选择。

F=0禁止中断,F=1允许中断。

当允许中断时,FIFO存储器的“半满”信号就将产生中断申请,以便本卡在中断方式下开始读取A/D转换结果。

2.清空FIFO

本操作用于清空FIFO并使除I/O以外的各种已进行过的操作恢复到初始状态,同时将FIFO的状态标志置为“空”。

本操作应在每次A/D采集之前进行。

3.置工作允许/停止

当状态控制字填写完毕后,本卡还不能开始工作。

只有在基地址+2写1才能允许工作。

此时,如果状态控制字选择的是程控触发启动方式,则本卡将按照选定的程控频率开始工作。

如果状态控制字选择的是外部TTL信号触发启动方式,则本卡将等待外部TTL信号的上升沿(从低电平到高电平),然后按照选定的程控频率开始工作。

采样过程中,在基地址+2写0将停止本卡的A/D转换工作,直到重新写1允许。

4.查询FIFO状态

FIFO状态在工作过程中可以随时查询,以判断FIFO存储器中A/D转换结果的存储情况。

其状态标志定义如下:

 

D15……………………D3

D2D1D0

定义

0

000

FIFO空

0

XX1

FIFO非空

0

X0X

FIFO非半满

0

X11

FIFO半满

0

0XX

FIFO非全满

0

111

FIFO全满

一般情况下,如果本卡工作在低速或单步方式时,可以用过查询判断FIFO是否为“空”进行数据的读取。

而在高速工作方式时,应该通过查询判断FIFO是否为“半满”进行数据的批量读取。

“全满”状态一般不要使用,因为出现了“全满”就意味着可能有数据溢出丢失。

5.单步采样

在状态控制字设为单步方式,且置为工作允许后,再对基地址+4进行一次写操作(写出数据无关),本卡就进行一次采样。

如果本卡同时还置为多通道自动扫描方式,则同时切换到下一个通道等待继续操作。

由于单步采样是一个程序可控的进程,所以只要执行完一次单步采样并且判断FIFO中“不空”,即可从FIFO中读出A/D转换的结果。

6.从FIFO中读出A/D转换结果

执行此操作可以从FIFO中读出经过缓存的A/D转换结果,此结果由16位数据组成,具体格式及定义参见5.5.3。

7.读/写8位DI/DO开关量数据

执行上述读/写操作可以读入或写出数字开关量。

注意此类操作均为16位操作,但只有低8位有效。

其中每一位对应一路数字开关量,且数字开关量均为TTL电平标准。

具体数据格式参见5.5.4。

5.5.2模入通道代码数据格式见表5(端口地址为基地址+0)

表5模入通道代码数据格式

通道号

十进制代码

十六进制代码

输入方式

通道号

十进制代码

十六进制代码

输入方式

1

0

00H

单/双

9

8

08H

2

1

01H

单/双

10

9

09H

3

2

02H

单/双

11

10

0AH

4

3

03H

单/双

12

11

0BH

5

4

04H

单/双

13

12

0CH

6

5

05H

单/双

14

13

0DH

7

6

06H

单/双

15

14

0EH

8

7

07H

单/双

16

15

0FH

5.5.3A/D转换结果的数据格式见表6(端口地址为基地址+4)

表6A/D转换结果数据格式

D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

D0

DB15

DB14

DB13

DB12

DB11

DB10

DB9

DB8

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

注:

双极性时DB15为符号位。

 

5.5.4开关量输入输出信号的数据格式见表7(端口地址为基地址+6)

表7开关量输入输出信号数据格式

操作命令

D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

D0

0

0

0

0

0

0

0

0

DI8

DI7

DI6

DI5

DI4

DI3

DI2

DI1

0

0

0

0

0

0

0

0

DO8

DO7

DO6

DO5

DO4

DO3

DO2

DO1

5.6模入码制以及数据与模拟量的对应关系

5.6.1本接口卡在单极性方式工作,且输入的模拟量为0~10V时,转换后的16位数码为二进制原码。

此16位数码表示一个正数码,其数码与模拟电压值的对应关系为:

模拟电压值=数码(16位)×10(V)/65536(V)

即:

1LSB=0.1526mV

5.6.2本接口卡在单极性方式工作,且输入的模拟量为0~5V时,转换后的16位数码为二进制原码。

此16位数码表示一个正数码,其数码与模拟电压值的对应关系为:

模拟电压值=数码(16位)×5(V)/65536(V)

即:

1LSB=0.0763mV

5.6.3本接口卡在双极性方式工作,且输入的模拟量为±5V时,转换后的16位数码为二进制偏移码。

此16位数码的最高位(DB15)为符号位,“0”表示负,1”表示正。

偏移码与补码仅在符号位上定义不同,此时数码与模拟电压值的对应关系为:

模拟电压值=数码(16位)×10(V)/65536-5(V)

即:

1LSB=0.1526mV

5.6.4本接口卡在双极性方式工作,且输入的模拟量为±10V时,转换后的16位数码为二进制偏移码。

此16位数码的最高位(DB15)为符号位,“0”表示负,1”表示正。

偏移码与补码仅在符号位上定义不同,此时数码与模拟电压值的对应关系为:

模拟电压值=数码(16位)×20(V)/65536-10(V)

即:

1LSB=0.3052mV

5.7外触发启动信号的使用说明

本卡的A/D采样可以在外触发方式下启动工作。

在本卡设置好状态控制字(外部TTL信号触发启动方式,程控频率为除单步方式以外的任一频率方式),清空FIFO并允许工作后,当外触发启动信号有一个上升沿(从低电平到高电平的变化),本卡即开始正常采样。

此时只要检测FIFO的状态标志即可知道是否开始采样并按需要读出A/D转换结果。

使用中需注意外启动信号应符合TTL电平标准。

5.8外同步时钟信号的使用说明

外同步时钟信号的使用要求与外触发启动信号类似,应符合TTL电平标准。

其时钟频率应不超过100KHz。

5.9外同步时钟信号与外触发启动信号同时使用的说明

本卡的A/D采样还可以采用外同步时钟信号与外触发启动信号同时使用的方式。

在本卡设置好状态控制字(外部TTL信号触发启动方式,程控频率为外同步时钟方式),清空FIFO并允许工作后,当外同步时钟信号有一个上升沿(从低电平到高电平的变化),本卡即开始按照外同步时钟频率正常采样。

5.10调整与校准

本卡出厂时已进行了调整与校准,如无必要,请不要进行此项工作。

如果长期使用后发现零点或满度偏移,请按下述方法进行调校。

5.10.1零点校准

将任一通道对模拟地短接(单端单极性方式时)同时对该通道进行A/D转换,调整W2电位器,使其转换结果为“0”或接近“0”。

5.10.2满度校准

在任一通道接入一接近正满度的稳定正电压信号,运行程序对该通道采样。

调整W3使A/D转换读数值等于或接近外加信号电压。

上述零点和满度的校准过程应反复进行,最终使其满足使用要求。

5.10.3双极性校准

如果测量双极性信号时偏差较大,应在零点和满度已校准好的基础上分别加入正、负信号并反复调整W1使其符合要求。

6.软件编程举例:

6.1输入信号为0~10V,对通道1连续采样100次,板基地址为300H,程序单步启动和查询FIFO“非空”后读出A/D采样数据。

本程序可用于A/D部分调校。

#include

#include

#include

#include

main()

{

inta,b,c,d,base;/*定义过程变量*/

unsignedinti;

floatj;/*定义数据变量*/

clrscr();/*清屏*/

base=0x300;/*基地址=300H*/

a=inport(base+0);/*清空FIFO,除I/O外各功能复位*/

outport(base+0,0x0700);/*写状态控制字:

非中断方式;程控单步启动;*/

/*单通道指定模式;通道代码=0*/

outport(base+2,1);/*置工作允许*/

for(b=0;b<100;b++)/*采样次数=100次*/

{

outport(base+4,1);/*启动A/D转换一次*/

do{

;/*判断FIFO中是否为“空”,为“空”等待*/

}while(inport(base+2)<1);

i=inport(base+4);/*FIFO中“非空”,读取A/D转换结果*/

j=(float)(i*10.0/65536.0);/*将结果转换成十进制(注)*/

printf("%f",j);/*显示*/

printf("\n");

for(c=0;c<2000;c++)/*为使显示看的清楚,延时一段再循环采样*/

{

for(d=0;d<2000;d++);

}

}

outport(base+2,0);/*置工作停止*/

}

注:

如果输入信号为0~5V,则该语句为:

j=(float)(i*5.0/65536.0);

如果输入信号为±5V,则该语句为:

j=(float)(i*10.0/65536.0-5.0);

如果输入信号为±10V,则该语句为:

j=(float)(i*20.0/65536.0-10.0);

6.2对16个通道连续循环采样至“半满”(共4096个数据),板基地址为100H,100KHz采样频率,查询FIFO“半满”后读出A/D采样数据。

#include

#include

#include

#include

main()

{

inta,b,c,base;/*定义过程变量*/

unsignedinti;

floatj;/*定义数据变量*/

clrscr();/*清屏*/

base=0x100;/*基地址=100H*/

a=inport(base+0);/*清空FIFO,除I/O外各功能复位*/

outport(base+0,0x048f);/*写状态控制字:

非中断方式;100KHz采样频率;*/

/*多通道自动扫描模式;末通道代码=F(16通道)*/

outport(base+2,1);/*置工作允许*/

do{

;/*判断FIFO中是否为“半满”,非“半满”等待*/

}while(inport(base+2)<3);

outport(base+2,0);/*FIFO中“半满”,置工作停止*/

do{

i=inport(base+4);/*读取A/D转换结果*/

j=(float)(i*10.0/65535.0);/*将结果转换成十进制*/

printf("%f",j);/*显示*/

printf("\n");

for(b=0;b<2000;b++)/*为使显示看的清楚,延时一段再循环显示*/

{

for(c=0;c<2000;c++);

}

}while(inport(base+2)>0);/*判断FIFO中是否为“空”,非“空”继续读数据*/

/*FIFO中已读“空”,结束程序*/

}

6.3I/O操作,板基地址为300H。

注意读/写均为16位操作,但只有低8位有效。

#include

#include

#include

#include

main()

{

intdo,di,base;

clrscr();

base=0x300;

do=0x00**

outport(base+6,do);

di=inport(base+6);

printf("%d",di);

}

附A.名词注释

1.单端输入方式:

各路输入信号共用一个参考电位,即各路输入信号共地,这是最常用的接线方式。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1