ADC采样控制电路的实现(共6页).docx
精选优质文档-倾情为你奉上ADC0809采样控制电路的实现作者:莫如溪水流长专业:电子信息科学与技术年级:08级物理与电子工程学院论文摘要本文论述了用状态机实现对A/D转换器ADC0809的采样控制。状态机及其设计技术是实现数字系统设计中的重要组成部分,也是实现高效率高可靠逻辑控制的重要途径。利用VHDL可以设计不同类型有限状态机从而实现许多重点关注的问题,如优化、毛刺克服、速度控制以及编码方式等问题。ABSTRACT This paper discusses the use of state machine to implement A/D converter AD0809sampling control.State machine and its design technology is implemented digitalsystem design,also be the important conponent of highly efficient high reliabilitylogic control of important ways.Using VHDL can desigh diferent tUsing VHDL candesigh diferent types of finite state machine so as to realize the many focus onproblems,such as optimizing,burrs,overcome and speed control and coding modes ,etc. 论文关键词:状态机,ADC0809,Moore,采样控制引言有限状态机在其具体的设计技术和实现方法上对先进的EDA工具、日益发展的大规模集成电路技术和强大的VHDL灯硬件描述语言又有了新的内容。利用VHDL设计的逻辑系统中,有许多是可以利用有限状态机的设计方案来描述和实现的。无论与基于VHDL的其他设计方案相比,还是与可完成相似功能的CPU相比,在许多方面,有限状态机都有其难以超越的优越性。1.概述有限状态机广泛应用于硬件控制电路设计,也是软件商常用的一种处理方法。它可以把复杂的控制逻辑分解成有限个稳定状态,在每个状态上判断事件,变连续处理为为离散数字处理,符合计算机的工作特点。同时,因为有限状态机具有有限个转台所以可以再实际的工程上实现。它在许多方面具有很大的优越性,主要表现在一下几方面:1) 状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点。2) 由于状态机的构建相对简单,设计方案相对固定,特别是可以定义符号化类型的状态,这一切都为VHDL综合器尽可能发挥其强大的优化功能提供了有利条件。而且,性能良好的综合器都具备许多可控或自动的优化状态机的功能。3) 状态机容易构成性能良好的同步时序逻辑模块,这对于对付大规模逻辑电路设中令人深感棘手的竞争冒险现象无疑是一个上佳的选择。此外为了消除电路中的毛刺现象,在状态机设计中有多种设计方案可供选择。4) 与VHDL的其他描述方式相比,状态机的VHDL表述丰富多彩,程序层次分明,结构清晰,易读易懂;在排错、修改和模块移植方面也有其独到的好处。5) 在高速运算和控制方面,状态机更有其巨大的优势。6) 高可靠性。首先状态机是由硬件电路构成,它的运行不依赖软件指令的逐条执行,因此不存在CPU运行软件过程中许多固有的缺陷;其次是由于状态机的设计中能使用各种完整的容错技术;再次是当状态机进入非法状态并从中跳出,进入正常状态所耗的时间十分短暂,通常只有两三个时钟周期,尚不足以对系统的运行构成损害;而CPU通过复位方式从非法运行方式中恢复过来,耗时十分漫长,这对于高速可靠系统显然是无法容忍的。2.Moore型状态机控制A/D转换器AD0809的采样控制 用状态机对0809进行采样控制首先必须了解其工作时序,然后据此作出状态图,最后写出相应的VHDL代码。图1和图2分别是0809的的引脚图、A/D转换时序和采样控制状态图。时序图中,START位转换启动控制信号,高电平有效,状态信号EOC即变为低电平,表示进入转换状态,转换时间为100us。转换结束后,EOC将变为高电平,此后外部控制可以使OE由低电平变为高电平,此时,0809的输出数据总线D【7.0】从原来的高阻态变为输出数据有效。有状态图也可以看出,在状态st2中需要对0809工作状态信号EOC进行测试,如果低电平,表示转换没有结束,仍需要停留在st2状态中等待,直到变成高电平后才说明转换结束,在下一时钟脉冲到来时转向状态st3。在状态st3,由状态机向0809发出转换好的八位数据输出允许命令,这一状态周期同时可作为数据输出稳定周期,以便能在下一状态中向锁存器中锁入可靠的数据。在状态st4,由状态机向FPGA中的锁存器发出锁存信号,将0809输出的数据进行锁存。 图1 ADC0809工作时序 图2 控制ADC0809采样状态图图3 采样状态机结构框图0809采样控制器的程序结构可以用图3的框图描述,程序含三个进程。REG进程是时序进程,它在时钟信号CLK的驱动下,不断将nest_state中的内容赋给current_state,并由此信号将状态变量传给组合进程COM。组合进程COM有两个主要功能:状态译码,根据从current_state信号中获得的状态变量,以及来自0809的状态线信号EOC,决定下一状态的转移方向,即确定次态的状态变量;采样控制功能,即根据current_state中的状态变量确定对0809的控制信号ALE、START、OE等输出相应的控制信号,当采样结束后还要通过LOCK向锁存器进程LATCH1发出锁存信号,以便将由0809的D【7.0】数据输出口输出的八位转换数据锁存起来。-0809采样控制器的程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY ADCINT IS PORT(D: IN STD_LOGIC_VECTOR(7 DOWNTO 0);-来自0809转换好的8位数据 CLK:IN STD_LOGIC; -状态机工作时钟 EOC:IN STD_LOGIC; -转换状态指示,低电平表示正在转换 ALE:OUT STD_LOGIC; -8个模拟信号通道地址锁存信号 START:OUT STD_LOGIC; -转换开始信号 OE:OUT STD_LOGIC; -数据输出三态控制信号 ADDA:OUT STD_LOGIC; -信号通道最低为控制信号 LOCK0:OUT STD_LOGIC; -观察数据锁存时钟 Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -8位数据输出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' -当ADDA<=0,模拟信号进入通道IN0;当ADDA<=1,则进入通道IN1 Q<=REGL;LOCK0<=LOCK; COM:PROCESS(current_state,EOC)BEGIN 定义各状态转换方式 CASE current_state IS WHEN st0=>ALE<='0'START<='0'LOCK<='0'OE<='0' next_state<=st1; -0809初始化 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; -EOC=1表明转换结束 ELSE next_state<=st2;END IF; -转换未结束,继续等待 WHEN st3=>ALE<='0'START<='0'LOCK<='0'OE<='1' next_state<=s4; -开启OE,输出转换好的数据 WHEN st4=>ALE<='0'START<='0'LOCK<='1'OE<='1'next_state <=st0; WHEN OTHERS=>next_state <=st0; END CASE;END PROCESS COM; REG:PROCESS(CLK) BEGIN IF (CLK'EVENT AND CLK='1') THEN current_state<=next_state; END IF; END PROCESS REG; -由信号current_state将当前状态值带出此进程:REGLATCH1:PROCESS(LOCK) -此进程中,在LOCK的上升沿,将转换好的数据锁入 BEGIN IF LOCK='1' AND LOCK'EVENT THEN REGL<=D;END IF ; END PROCESS LATCH1;END behav;图4是这个状态机的仿真波形图,上面显示了三个采样周期。以第二个采样周期为例,图中,状态机在状态为1时,由START、ALE发出启动采样和地址选通的控制信号。之后,EOC由高电平变为低电平,0809的八位数据输出端呈高阻态“ZZ”,在此,一个“Z”表示4位二进制数。在状态2,等待了数个时钟周期,之后EOC变为高电平,表示转换结束。进入状态3,输出允许OE变为高电平,0809的数据输出端D【7.0】输出已经转换好的数据13;在状态4,LOCK0发出一个脉冲,其上升沿即将D端口的13锁入REGL中。图4 0809采样控制器仿真波形图通过QUARTUS软件可得到0809采样控制器的电路,如图5所示。图5 0809采样控制器的RTL电路3.结束语使用状态机来控制A/D转换器AD0809采样控制,包括将采得的数据存入RAM(FPGA内部RAM存储器),整个采样周期短,速度快。利用状态机与EDA工具和强大的VHDL等硬件描述语言想结合可实现可靠逻辑控制。使状态机及其设计技术成为数字系统设计中的重要组成部分。 参考文献【1】潘松,黄继业.EDA技术实用教程.第三版.科学出版社,2006.9.【2】曾智泰,刑建平.VHDL程序设计教程.第三版.清华大学出版社,2005.11. 【3】朱偰.采样控制系统的分析与综合.第一版.凤凰出版传媒集团,2008.1. 【4】柳春锋.电子自动化EDA教程.第一版.北京理工大学出版社.2005.8. 【5】夏路易.基于EDA的电子技术课程设计.第一版.电子工业出版社.2009.1. 【6】李国洪.EDA技术与实验.第一版.机械工业出版社.2009.1. 【7】张丽荣.基于Quartus的数字逻辑实验教程.第一版.清华大学出版社.2009.8. 【8】(美)里格·萨托瑞.可编程逻辑控制器.第一版.电子工业出版社.2008.8. 专心-专注-专业