数据采集与监控系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据采集与监控系统

一、设计要求

用AD对所有通道循环检测,当测出有规定数值时,进行声光报警。

二、设计思路

系统主要实现以下功能:首先对ADC0809的八路通道的数值进行循环检测,并显示每路的当前采样值。当检测到有任何一路的值大于预设值的时候就进行报警,并显示出所超出规定值的通道数。如无任何通道的输出超出预设值时,就由主控器控制进行通道0到通道7的循环检测,当需要对数据进行处理时,通过切换键将控制单元的功能转换到数据处理功能(暂时只包括将采样信号放大到2倍、缩小到1/2和保持采样信号不变这三种基本功能)。在数据处理完之后,将数据输出给DAC0832,再将数字信号转换为模拟量输出。

数据采集系统的设计主要包括数据输入单元、数据处理及监控和数据输出单元。数据输入单元的设计主要是通过ADC0809的常规应用来实现的。ADC0809的CLOCK信号是由外部接入的,没有固定的数值要求,只要足够高就可以了。但是START信号的频率不宜过高,要小于1khz。数据处理及监控单元主要是通过软件来实现,主要包括循环检测与监控模块和数据处理模块。循环检测及监控模块主要实现对输入电压值进行循环检测,将检测值与设定值进行比较。当检测到超出设定电压值时,产生报警信号,并通过数码管显示出当前通道数;数据处理模块主要实现将信号放大2倍、缩小到1/2和保持不变三种处理方式。数据输出单元主要功能就是将处理后的数字信号经过DAC0832再转换为模拟量输出。

图1 数据采集系统设计的基本框架

在设计中,采用多进程描述的方法来进行程序设计,通过使用进程可以把整体的功能局部化、分块设计。多个进程通过进程间通信机制互相配合、达到设计要求。当进程比较多的时候,它们之间的配合问题就比较复杂,因此在设计之前应该合理规划安排。

编译和仿真时要选择合适的芯片,不同的芯片其速度等级是不一样的。选择速度等级高的芯片,仿真时延就小,这样便于分析时序波形。否则,将给时序分析带来一些不必要的麻烦。编译结束时,要注意认真分析芯片资源的利用情况,这其中主要包括芯片管脚和逻辑单元的利用率,如果没有充分利用资源就要重新

选择芯片,争取实现性价比的最大化。

所以大致流程是先进行主程序的输入/输出模块,数据处理及监控模块的设计。然后对各程序进行修改、编译、仿真,并对出现问题的程序进行程序修改和调试。

三、设计内容

A、数据输入模块

(一)数据输入单元的设计

数据输入单元的设计是通过ADC0809的常规应用来实现的,其具体的实现如图所示。其中ADC0809的CLOCK信号是由外部输入的。此信号的输入没有固定的要求,只要足够高就可以了,通常信号频率为640KHZ、750KHZ等。ADC0809的START信号也是由外部接入的,但是此信号的频率不宜过高,要小于1KHZ。将ADC0809的输出作为CPLD的输入。

ADC0809是一种比较典型的8位8通道逐次逼近式A/D转换器CMOS 工艺,可以实现8路模拟信号的分时采集,片内有8路模拟选通开关,以及相应的通道地址锁存用译码电路,其转换时间为1us左右,采用双排28引脚封装.ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。其引脚说明如下:

IN0~IN7:8路模拟量输入通道

ADDA~ADDC:地址线用于选择模拟量输入通道

ALE:地址锁存允许信号

START:转换启动信号

D0~D7:数据输出线

OE:输出允许信号,低电平允许转换结果输出

CLOCK:时钟信号输入引脚,通常使用500KHZ

EOC:转换结束信号,为0代表正在转换,l代表转换结束

Vcc:+5V电压

(二)模块功能实现

此系统是用ADC0809对模拟信号进行采样,转换为数字信号,由可编程逻辑器件读入,再送到DAC0832,将数字信号转换为模拟信号。用可编程逻辑器件实现对ADC0809的控制,由于采用查询信号EOC的方式,所以可达到ADC0809的最高速度(注:ADC0809和DAC0832都不能对负电压进行操作)。主要包括分频模块和ADC控制模块。总体框图如图所示:图中OE为输出允许信号,高电平允许转换结果输出;EOC为转换结束信号,为0代表正在转换,1代表转换结束;DIN [7..0]为8路模拟量输入通道;DOUT[7..0]为转换后的8路数字信号输出通道

图3 总体框图

1、分频模块FEN如图4所示。它是一个八分频模块,其中CLK为输入时一钟信号,q为实现分频后的输出信号,变量cnt可取整数值0-3。

图4 分频模块FEN

(1)原理程序如下:

library ieee;

use ieee.std_logic_1164.all;

entity fen is

port (CLK: in std_logic;

Q: out std_logic);

end entity ;

architecture bhv of fen is

begin

process(CLK)

variable cnt :integer range 0 to 3;

variable x:std_logic;

begin

if clk'EVENT and clk='1' then

if cnt<3 then cnt:=cnt+1;

else cnt:=0;

x:= not x;

end if;

相关文档
最新文档