当前位置:文档之家› 数据采集系统实验报告

数据采集系统实验报告

学院名称: 电气信息工程学院
专 业: 测控技术与仪器
班 级: 09测控1W
姓 名: 胡建兵
学 号: 09314111
指导教师姓名: 朱 雷
2012 年 11 月
JIANGSU TEACHERS UNIVERSITY OF TECHNOLOGY 数据采集系统实验报告
实验2——A/D采集模块设计
一.实验目的
学习用状态机实现对ADC0809,AD574A等A/D转换器的采样控制。

二.实验原理
图1和图2分别为ADC0809的引脚图,转换时序图和采样控制状态图。

时序图中,START为转换启动控制信号,高电平有效;ALE为模拟信号输入选通端口地址锁存信号,上升沿有效;一旦START有效后,状态信号变EOC变为低电平,表示进入状态转换,转换时间约为100us。

转换结束后,EOC将变为高电平。

此外外部控制可使OE由低电平变为高电平(输出有效),此时,ADC0809的输出数据总线D【7...0】从原来的高阻态变为输出数据有效。

由状态图也可以看到,状态st2中需要对ADC0809工作状态信号EOC进行测试,如果为低电平,表示转换没有结束,仍需要停留在st2状态中等待,直到变成高电平后才说明转换结束,在下一时钟脉冲到来时转向状态st3。

在状态st3,由状态机向ADC0809发出转换好的8位数据输出允许命令,这一状态周期同时可作为数据输出稳定周期,以便能在下一状态中向锁存器锁入可靠的数据。

在状态st4,由状态机向FPGA中的锁存器发出锁存信号(LOCK的上升沿),将ADC0809的输出数据进行锁存。

图2.1 ADC0809工作时序
图2.2 控制ADC0809采样状态图程序如图实例1所示,其结构框图如图3所示。

图2.3 采样状态机结构框图
程序实例1:
library ieee;
use ieee.std_logic_1164.all;
entity adcint is
port(D:in std_logic_vector(7 downto 0);
CLK:in std_logic;
EOC:in std_logic;
ALE:out std_logic;
START:out std_logic;
OE:out std_logic;
ADDA:out std_logic;
LOCK0:out std_logic;
Q:out std_logic_vector(7 downto 0));
end adcint;
architecture behav of adcint is
type states is (st0,st1,st2,st3,st4);
signal current_state,next_state:states:=st0;
signal REGL :Std_logic_vector(7 downto 0);
signal LOCK :Std_logic;
begin
ADDA<='1';
Q<=REGL;LOCk0<=LOCK;
COM:process(current_state,EOC,CLK) begin
if CLK'EVENT and CLK='1' then
CASE current_state IS
when st0=>ALE<='0';START<='0';LOCK<='0';OE<='0';
next_state<=st1;
when st1=>ALE<='1';START<='1';LOCK<='0';OE<='0';
next_state<=st2;
when st2=>ALE<='0';START<='0';LOCK<='0';OE<='0';
if(EOC='1') then next_state<=st3;
else next_state<=st2;
end if;
when st3=>ALE<='0';START<='0';LOCK<='0';OE<='1';
next_state<=st4;
when st4=>ALE<='0';START<='0';LOCK<='1';OE<='1';
next_state<=st0;
when others=>next_state<=st0;
end case;
end if;
end process com;
reg:process(CLK)
begin
if(CLK'EVENT and CLK='1')
then current_state<=next_state;
end if;
end process reg;
latch1:process(LOCK)
begin
if LOCK='1' and LOCK'EVENT
then REGL<=D;
end if;
end process latch1;
end behav;
三.实验内容
利用Quartus II对ADC08009程序实例进行实验并进行仿真测试,并给出仿真波形。

四.实验结果
仿真波形图
五.实验心得
通过本次实验,让我再次学习了Quartus II,更加巩固了该软件的使用方法,同时也学习了用状态机怎样实现对ADC0809,AD574A等A/D转换器的采样控制,让自己的专业知识得到了提高,特别是朱雷老师给了我很多指导,教会了我很多知识,在此特别要感谢朱雷老师。

相关主题