Pm511PU.docx

上传人:b****9 文档编号:23344769 上传时间:2023-05-16 格式:DOCX 页数:33 大小:592.47KB
下载 相关 举报
Pm511PU.docx_第1页
第1页 / 共33页
Pm511PU.docx_第2页
第2页 / 共33页
Pm511PU.docx_第3页
第3页 / 共33页
Pm511PU.docx_第4页
第4页 / 共33页
Pm511PU.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

Pm511PU.docx

《Pm511PU.docx》由会员分享,可在线阅读,更多相关《Pm511PU.docx(33页珍藏版)》请在冰豆网上搜索。

Pm511PU.docx

Pm511PU

多功能数据采集版PM511PU

1.概述

PM511PU是一块PC104总线的多功能数据采集板,适用于工业现场、实验室、嵌入式设备等多种场合,具有16路A/D转换通道、4路D/A通道、24路可编程开关量输入输出、3路计数通道,也可根据用户需要选配功能,节约工程成本。

 

主要技术指标

♦模入部分:

输入通道数:

单端16路,双端8路

输入信号范围:

0~10V,-5V~+5V,-10V~+10V

输入精度:

12BIT

增益范围:

1~1000硬件增益

AD频率:

AD转换时间10uS

A/D启动方式:

软件启动/定时启动/外触发

A/D转换结束识别:

查询方式/中断方式

♦模出部分:

输出通道数:

4路独立D/A

输出范围:

0~5V,-5V~+5V

输出精度:

12BIT

♦开关量部分:

使用器件:

82C55

开关通道:

24路可编程TTL电平开关量输入、输出

♦计数部分:

使用器件:

82C54

计数通道:

3路

最大计数频率:

10MHz

♦电源功耗:

+5V(±10%)@400mA

♦使用环境要求:

工作温度:

0℃~70℃或-40℃~+80℃

相对湿度:

40%~80%

存贮温度:

-40℃~+85℃

外形尺寸:

长×高=91mm×96mm

2.工作原理

PM511PU由A/D部分,D/A部分,I/O部分,计数部分等四个功能部分构成。

开关量加入上拉下拉功能,使上电状态受控。

 

2.1布局图

 

图1PM511PU布局图

2.2A/D部分

A/D采用BB公司的ADC774芯片或AD公司的AD1674芯片,实现12BIT,100KHz的数据采集,有调零调满电路和单、双极性以及单、双端选择跳线,并配有滤波电路,信号由双排插针接口J1引出。

2.3D/A部分

D/A采用BB公司的DAC7625芯片,可以实现12BIT4通道模拟量输出,通过调整跳线JP1实现各档电压输出,信号由双排插针接口J1引出。

2.4开关量输入输出部分

24路可编程开关量输入输出,由一片8255实现,信号由双排插针J3引出。

2.5脉冲计数部分

3路计数通道,由一片82C54实现,信号由双排插针J3引出。

3.操作说明

3.1跳线功能参考表

表2跳线功能对照表

JP1

JP2

JP3

JP4

JP7

JP8

JP9

D/A输出

方式选择

单双端

选择

单双极性选择

量程

选择

中断

选择

地址

选择

开关初值选择

下图为跳线参考图

JP1(D/A输出方式选择)

 

JP2(A/D单双端选择)

 

JP3、JP4

本卡由这两个跳线组合实现A/D量程及单双极性的变化。

 

JP7(中断选择)

本卡提供中断5,7,12,可以通过JP4来选择。

 

JP8(基地址选择)

基地址由跳线JP7控制,地址分配如下所示:

 

 

JP9(开关量上电状态选择)

 

开关量拉高开关量拉低

 

3.2I/O地址参照表

表1端口地址与功能表

端口操作地址

读操作

写操作

基地址+0H

启动A/D转换

A/D通道输出/单双端选择

基地址+1H

状态寄存器(详细功能见表3)

A/D转换方式与中断控制寄存器

基地址+2H

读A/D转换结果

清中断标志位

 

A/D定时启动分频系数

基地址+4H

输出D/A通道

基地址+6H

输出D/A数据

基地址+8H

82C55PA口

82C55PA口

基地址+9H

82C55PB口

82C55PB口

基地址+AH

82C55PC口

82C55PC口

基地址+BH

82C55控制字

82C55控制字

基地址+CH

82C540通道

82C540通道

基地址+DH

82C541通道

82C541通道

基地址+EH

82C542通道

82C542通道

基地址+FH

/

82C54控制字

 

3.3调节电位器说明

3.3.1A/D相关电位器

W1:

单极性零点调节

W2:

单、双极性满度调节

W3:

双极性零点调节

3.3.2D/A相关电位器

W4:

D/A输出通道一零点调节

W5:

D/A输出通道一满度调节

W6:

D/A输出通道二零点调节

W7:

D/A输出通道二满度调节

W8:

D/A输出通道三零点调节

W9:

D/A输出通道三满度调节

W10:

D/A输出通道四零点调节

W11:

D/A输出通道四满度调节

3.4A/D操作

A/D操作有四种方式:

软件启动、定时启动和外触发启动以及外触发控制定时启动。

3.4.1相关寄存器

1)控制/状态寄存器

参见表3,此寄存器为一个字节,当进行读操作时可以得到当前A/D转换的状态;当进行写操作时可以控制A/D转换方式。

 

表3控制/状态寄存器

 

端口地址

操作命令

D7

D6

D5

D4

D3

D2

D1

D0

基地址+1H

字节读/写

nch

INT3

INT2

INT1

IE

ADE

ADC

SAD

读写,1:

自动切换通道

0:

定时或者外触发时固定通道

读1:

定时中断标志位

写1:

使能定时产生中断

读1:

AD转换结束中断标志位

写1:

使能AD转换结束产生中断

读1:

外触发信号中断标志位

写1:

使能外触发信号产生中断

读写,3:

外触发信号控制定时启动有效(6)

2:

外触发信号单次启动AD转换有效(4)

1:

定时启动AD有效

(2)

0:

软件启动AD有效(0)

只读,1:

表示正在转换

0:

表示转换结束

注意:

当定时启动有效时,外触发启动无效。

2)AD通道选择/启动AD寄存器(基地址+0)

参见表4,此寄存器为一个字节,当进行写操作时选择通道;当进行读操作时启动A/D转换。

表4A/D通道选择寄存器

端口地址

命令

D7

D6

D5

D4

D3

D2

D1

D0

功能

基地址+0H

字节写

/

/

/

0

0~15

0

0

0

单端选通道

基地址+0H

字节写

/

/

/

1

0

0~7

0

1

双端选通道

基地址+0H

字节读

/

/

/

/

/

/

/

/

启动A/D转换

*此寄存器D4位选择单双端输入。

3)AD结果/分频系数/中断状态寄存器(基地址+2)

参见表5、表6,当对此寄存器进行读操作时以字方式,低12位有效,返回A/D转换结果,同时清中断标志位,使下一次中断可以产生。

当对此寄存器进行写操作时以字节方式,低5位有效,设定定时启动A/D转换时的分频系数。

表5A/D结果寄存器

端口地址

命令

D7

D6

D5

D4

D3

D2

D1

D0

基地址+2H

字读

BIT7

BIT6

BIT5

BIT4

BIT3

BIT2

BIT1

BIT0

基地址+3H

/

/

/

/

/

BIT11

BIT10

BIT9

BIT8

由此寄存器返回的码值与实际电压值有如下对应关系:

0V~10V:

实际值=(码值/4095×10)V;

-5V~+5V:

实际值=(码值/4095×10-5)V;

-10V~+10V:

实际值=(码值/4095×20-10)V;

3.4.2软件启动A/D

软件启动A/D流程如图2。

 

3.4.3定时启动A/D转换

本卡为A/D转换提供一个频率为200KHz的时钟,用户可以对其进行分频,用以定时启动AD转换。

分频系数与定时启动频率有如下关系:

定时启动频率=200KHz÷(分频系数+1)分频系数范围是1-31

定时启动A/D流程如图3:

 

3.4.4外触发启动A/D转换

注意外触发信号必须为TTL电平,否则可能损坏板卡。

外触发信号的高低电平时间均要大于100nS。

外触发启动A/D流程如图3:

 

3.4.5关于单端、双端

单端采样时,采样信号使用同一个地,双端采样时,高八路通道作为低八路通道的负端,采样信号可不共地,分别接到相应通道地正端和负端,因此双端通道数是单端通道数的一倍。

3.4.6关于中断

本卡提供两个中断源,AD转换结束中断和外触发中断,这两个中断不可以同时使用,当外触发中断有效时,AD转换结束后不再申请中断。

外触发中断信号的高低电平时间均要大于100ns。

3.5D/A操作

3.5.1相关寄存器

1)D/A通道选择寄存器

参见表7,此寄存器为一个字节,只能进行写操作以选择通道

表7D/A通道选择寄存器

端口地址

命令

D7

D6

D5

D4

D3

D2

D1

D0

功能

基地址+4H

字节写

/

/

/

/

/

/

0

0

选中通道1

基地址+4H

字节写

/

/

/

/

/

/

0

1

选中通道2

基地址+4H

字节写

/

/

/

/

/

/

1

0

选中通道3

基地址+4H

字节写

/

/

/

/

/

/

1

1

选中通道4

2)D/A输出寄存器

参见表5,此寄存器为一个字,只能进行写操作。

码值与实际电压值关系请参考A/D结果寄存器部分。

表8D/A输出寄存器

端口地址

命令

D7

D6

D5

D4

D3

D2

D1

D0

基地址+6H

字读

BIT7

BIT6

BIT5

BIT4

BIT3

BIT2

BIT1

BIT0

基地址+6H

/

/

/

/

/

BIT11

BIT10

BIT9

BIT8

其中BIT0为D/A输出的低位,BIT11为D/A输出的高位。

因此D/A输出的码值范围为0~4095

单极性时码值与实际电压关系遵照下面公式:

实际值=码值÷4095х5(V)

双极性时码值与实际电压关系遵照下面公式:

实际值=码值÷4095х10-5(V)

3.5.2操作步骤

先选择输出通道,然后输出电压。

注意输出电压操作为字操作。

3.6开关量操作

82C55内部寄存器映射到本卡上对应空间如表9所示。

表982C55映射寄存器

地址

D7

D6

D5

D4

D3

D2

D1

D0

说明

基地址+8H

D7

D6

D5

D4

D3

D2

D1

D0

82C55PA口

基地址+9H

D7

D6

D5

D4

D3

D2

D1

D0

82C55PB口

基地址+AH

D7

D6

D5

D4

D3

D2

D1

D0

82C55PC口

基地址+BH

D7

D6

D5

D4

D3

D2

D1

D0

82C55控制字

 

82C55有3种工作方式:

●方式0——基本输入输出方式

●方式1——选通输入输出方式

●方式2——双向传送方式

这3种工作方式由控制字决定。

其中以方式0最常用,当工作在方式0下时,控制字的D7=1,D6=0,D5=0,D2=0,由D4、D3、D1、D0四位决定A口、B口、C口的输入输出方式,表10标明了82C55工作在方式0下时控制字的D4、D3、D1、D0与三个端口输入输出方式的对应关系。

表1082C55方式0端口定义

D4

D3

D1

D0

A口

C口

(高四位)

B口

C口

(低四位)

0

0

0

0

输出

输出

输出

输出

0

0

0

1

输出

输出

输出

输入

0

0

1

0

输出

输出

输入

输出

0

0

1

1

输出

输出

输入

输入

0

1

0

0

输出

输入

输出

输出

0

1

0

1

输出

输入

输出

输入

0

1

1

0

输出

输入

输入

输出

0

1

1

1

输出

输入

输入

输入

1

0

0

0

输入

输出

输出

输出

1

0

0

1

输入

输出

输出

输入

1

0

1

0

输入

输出

输入

输出

1

0

1

1

输入

输出

输入

输入

1

1

0

0

输入

输入

输出

输出

1

1

0

1

输入

输入

输出

输入

1

1

1

0

输入

输入

输入

输出

1

1

1

1

输入

输入

输入

输入

详细操作请参照82C55使用手册。

3.7计数器部分

计数器由一片82C54完成,可以完成对最高频率为10M的脉冲进行计数,82C54内部寄存器映射到本卡上对应空间如表11所示。

表1182C54映射寄存器

地址

D7

D6

D5

D4

D3

D2

D1

D0

说明

基地址+CH

D7

D6

D5

D4

D3

D2

D1

D0

计数器0

基地址+DH

D7

D6

D5

D4

D3

D2

D1

D0

计数器1

基地址+EH

D7

D6

D5

D4

D3

D2

D1

D0

计数器2

基地址+FH

SC1

SC0

RL1

RL0

M2

M1

M0

BCD

控制字

82C54的全部功能是由CPU编程设定的。

CPU通过输出指令给82C54装入控制字,从而设定其功能。

各位的功能见表12~表15:

表12SC1、SC0——计数器选择

SC1SC0

选择计数器

00

选择0#

01

选择1#

10

选择2#

11

非法

表13RL1、RL0——CPU读/写操作

RL1RL0

操作类型

00

计数器封锁操作

01

读/写计数器低8位

10

读/写计数器高8位

11

先读/写低8位,后读/写高8位

表14M2、M1、M0——工作方式选择

M3M2M1

计数工作方式

000

方式0

001

方式1

010

方式2

011

方式3

100

方式4

101

方式5

表15BCD——计数方式选择

BCD

数码形式

0

十六位二进制计数

1

四位十进制(BCD)码计数

82C54的三个计数器是独立的16位减法计数器。

计数器的工作方式由工作方式寄存器确定。

计数器在编程写入初始值后,在某些方式下计数到0后自动预置,计数器连续工作。

CPU访问计数器时,必须先设定工作方式控制字中的RL1、RL0位。

计数器对CLK计数输入端的输入信号进行递减计数。

选通信号GATE控制计数工作的进行,其功能如表16所示。

表16选通信号GATE的功能

低电平或进入低电平

上升边沿

高电平

方式0

禁止计数

----

允许计数

方式1

----

1.初始化和计数

2.下一个时钟后清除输出

----

方式2

1.禁止计数

2.使输出立即变为高电平

1.重新装入计数器

2.启动计数

允许计数

方式3

1.禁止计数

2.使输出立即变为高电平

初始化和计数

允许计数

方式4

禁止计数

计数未结束时初始化和计数

允许计数

方式5

----

初始化和计数

----

82C54的三个计数器按照各工作方式寄存器中控制字的设置进行工作。

可以选择的工作方式有六种。

这六种方式是:

方式0:

计数结束时中断。

编程后自动启动,计数器减1计数,计数到终点(减至0)后输出高电平,可用于中断请求信号,GATE为低电平时停止计数,回到高电平后继续往下计数。

再次启动要重新装入计数值或重新编程。

方式1:

可编程单脉冲输出。

GATE上升沿进行初始化并开始计数。

输出低电平的宽度等于计数时间。

单脉冲输出可用GATE上升沿多次触发。

方式2:

比率发生器。

编程后重复地循环计数。

计数到终点时输出一个时钟周期宽度的低电平脉冲,自动初始化后继续计数。

用GATE的上升沿初始化,并开始计数。

GATE为低电平时停止计数。

方式3:

方波发生器。

这种方式是在编程后重复地循环计数,输出波形为方波。

如果初始计数值为偶数,每个时钟输入脉冲使计数器减2,达到计数终点时输出电平改变。

如果初始计数值为奇数,则输出高电平时第一个时钟输入脉冲使计数器减1,随后每个输入脉冲使计数器减2;输出为低电平时第一个时钟输入脉冲使计数器减3,随后每个输入脉冲使计数器减2,到达计数终点时输出电平改变,计数器自动初始化后继续计数。

用GATE的上升沿初始化并开始计数,GATE为低电平时停止计数。

方式4:

软件启动选通脉冲输出。

编程后自动启动,计数到终点后输出一个时钟周期的低电平脉冲。

用GATE的上升沿初始化并开始计数,GATE为低电平时停止计数。

方式5:

硬件启动选通脉冲输出。

编程后,等待GATE上升沿进行初始化并开始计数,计数到终点后输出一个时钟周期的低电平脉冲,计数器开始计数后不受GATE信号电平的影响,这种选通脉冲的输出可用GATE的上升沿多次触发。

在工作方式控制字中,如果设置计数器锁存操作,则该控制字中工作方式选择位M1、M0和计数方式选择位BCD无效。

即设置锁存操作时不影响计数器的工作方式,计数器锁存操作,是在计数器计数过程中,在不影响正在进行的计数操作的条件下,把当前的计数值锁存到寄存器,供CPU读取,这时在工作方式控制字中,SC1、SC0指定要锁存的计数器,RL1、RL0=00表示锁存操作,其余4位无效,计数器按原来设定的方式工作。

当本卡A/D转换选择定时器定时触发启动工作方式时,一般将82C54的工作方式设置为方式2(即比率发生器),

3.8上电状态

A/D选通的通道为0通道,D/A选通的通道为0通道,D/A4个通道输出为最小值,单极性为0V,双极性为-5V。

24路开关量全部为输入。

3.9跳线出厂设置

地址为100H,A/D输入方式为0~10V,D/A输出方式为0~5V,中断没有接。

4.接口定义

4.1模拟量输入输出接口(J1)定义

参见表20

表20模拟量接口定义表

插座引脚号

信号定义

插座引脚号

信号定义

1

A/D1(A/D1+)

2

A/D9(A/D1-)

3

A/D2(A/D2+)

4

A/D10(A/D2-)

5

A/D3(A/D3+)

6

A/D11(A/D3-)

7

A/D4(A/D4+)

8

A/D12(A/D4-)

9

A/D5(A/D5+)

10

A/D13(A/D5-)

11

A/D6(A/D6+)

12

A/D14(A/D6-)

13

A/D7(A/D7+)

14

A/D15(A/D7-)

15

A/D8(A/D8+)

16

A/D16(A/D8-)

17

GND

18

GND

19

D/A4

20

D/A3

21

D/A2

22

D/A1

23

GND

24

GND

25

GND

26

GND

 

4.2开关量及计数输入接口(J3)定义

参见表21

表21开入接口定义表

插座引脚号

信号定义

插座引脚号

信号定义

1

GND

2

GND

3

GND

4

EIN

5

PB0

6

PB1

7

PB2

8

PB3

9

PB4

10

PB5

11

PB6

12

PB7

13

PC0

14

PC1

15

PC2

16

PC3

17

PC4

18

PC5

19

PC6

20

PC7

21

PA0

22

PA1

23

PA2

24

PA3

25

PA4

26

PA5

27

PA6

28

PA7

29

GND

30

GND

31

OUT0

32

GATE0

33

CLK0

34

OUT1

35

GATE1

36

OCLK1

37

OUT2

38

GATE2

39

CLK2

40

OCLK

注:

ClK0为8253计数通道0输入端

OUT0为8253计数通道0输出端

GATE0为8253计数通道0门控端

以此类推。

EIN为外触发信号输入端

OCLK为内部时钟信号输出端

5.编程举例

5.1C语言A/D采集示例

#include"stdio.h"

#include"dos.h"

#include"conio.h"

voidmain()

{

intch;/*定义通道变量*/

floatvalue[10000];/*定义数组变量*/

intd,i,j,base;/*定义过程变量*/

intmax,min;

clrscr();/*清屏*/

base=0x100;

outportb(base+1,0);

printf("\nInputchannlenumber:

");/*输入通道号*/

scanf("%d",&ch);

outportb(base,ch);

for(j=0;j<1000;j++);/*延时等待通道切换完成*/

for(j=0;j<100;j++){/*设采样次数*/

inportb(base);/*启动A/D*/

while(inportb(base+1)&1);/*查询A/D转换状态*/

d=inport(base+2)&0xfff;/*读取转换结果,字操作*/

value[j]=d/4096.0*10;/*将结果转换为电压值*/

}

for(j=0;j<100;j++)/*显示*/

printf("%10.3f",value[j]);

printf("\npressanykeytoreturn...");

while(!

kbhit());

}

下面的的程序使用频率为20KHz的时钟定时启动,对0通道采集200次。

#include

#include

#include

intbase=0x100;/*基地址为0x100*/

voidmain()

{

intj=0;

unsignedshortd;

floatv[200];/*保存转换后的电压值*/

clrscr();

outportb(base,0);/*选择0通道*/

outportb(base+1,0x2);/*选择定时启动AD方式*/

o

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

当前位置:首页 > 人文社科 > 法律资料

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

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