FPGA数据采集

FPGA数据采集

ID:37920141

大小:300.50 KB

页数:12页

时间:2019-06-02

FPGA数据采集_第1页
FPGA数据采集_第2页
FPGA数据采集_第3页
FPGA数据采集_第4页
FPGA数据采集_第5页
资源描述:

《FPGA数据采集》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、ADC0809数据采集及显示系统董文来通信0702引言随着半导体技术和EDA技术的发展,传统的系统设计方法有了飞跃性的进步。可编程技术被广泛应用到器件设计上,给数字系统设计带来很大的灵活性。现在构成数字系统仅需要微处理器、存储器和可编程逻辑器件。由于器件可以进行编程,则硬件的设计便可以像设计软件那样方便。高速数据采集系统是多种测量与控制系统的前端单元,其采集速度、精度、稳定性等直接影响整个系统的性能。本课题就是利用FPGA以ADC0809为基础设计数据采集及显示系统,控制高速、高精度的A/D转换器ADC0809实现高速采集并显示在LED灯上。

2、数据采集的应用十分广泛。比如水文、地震、火灾等方面的监测,生产的自动控制,雷达、声纳信号处理等。系统框架的分析与设计ADC0809是8位逐次逼近型A/D转换器,带8个模拟量输入通道,芯片内带通道地址译码锁存器,输出带三态数据锁存器。ADC0809内部没有时钟电路,故时钟需要由外部输入,允许范围为10KHZ~1280KHZ,典型值为640KHZ,每一通道的转换需要66~73个时钟周期。当地址所存允许信号ALE有效时,将转换器转换输出。输出端具有三态输出锁存缓冲器,收输出允许信号OE的控制,当该信号为高电平时,打开输出缓冲器三态门,转换结果输出到

3、数据总线上;当该信号为低电平时,输出数据线呈高阻态。根据要求可以将系统分为四个模块:采样时钟产生模块.采样控制模块.数据转换模块.译码显示模块。如图1所示各个模块的设计1.采样时钟产生模块由输入输出的比例关系可知可以由256分频器来实现。分频器是对某个给定较高频率的信号进行分频操作,以期得到所需的较低频率信号的电路。本课题需要是分频系数为256的分频器,我们可以采用我们熟悉的设计数字分频器的原理来实现,先通过待分频计数器计数;然后将计数器的相应位直接赋给分频器的输出信号。这种方法可以避免毛刺现象的发生。其部分代码如下,其中clk为原来时钟,f

4、out为256分频后的时钟:SIGNALFULL:STD_LOGIC;BEGINP_REG:PROCESS(CLK,RST)VARIABLECNT8:STD_LOGIC_VECTOR(7DOWNTO0);BEGINIFCLK'EVENTANDCLK='1'ANDRST='0'THENIFCNT8="01111111"THENCNT8:="00000000";FULL<='1';ELSECNT8:=CNT8+1;FULL<='0';ENDIF;ENDIF;ENDPROCESSP_REG;P_DIV:PROCESS(FULL)VARIABLECN

5、T2:STD_LOGIC;BEGINIFFULL'EVENTANDFULL='1'THENCNT2:=NOTCNT2;IFCNT2='1'THENFOUT<='1';ELSEFOUT<='0';ENDIF;ENDIF;ENDPROCESSP_DIV;END;其仿真波形图如下所示2.采样控制模块ADC0809时序图如图所示。当地址锁存信号ALE=1期间,通道选择地址存入地址锁存器;在ALE=0时,地址锁存。启动信号START上升沿复位ADC0809,下降沿启动A/D转换。EOC为输出的转换结束信号,正在转换时为0,转换结束时为1。一旦EOC为高

6、,即可将OE置为1,打开输出三态门,从ADC0809输出本次转换结果。这里我们采用状态机的方法来设计ADC0809采样控制器。第一步,根据系统要求建立状态转移图。观察ADC0809的工作时序图可知,控制A/D转换的状态机中英设置8个状态ST0~ST7;状态机有一个输入信号EOC,5个输出信号ALE.START.OE.ICLK和ST(因为本状态机采用的是双进程有限状态机的设计方法,为了便于观察,在这里还设置了状态机的状态输出端ST),其中ICLK是输出数据锁存信号。这些输出信号仅与状态机所处的状态有关,故采用Moore型的状态机,状态转移如图所

7、示,输出信号按照ALE.START.OE.ICLK和ST的次序排列。ST0ST1ST7ST2ST6ST3ST4ST5第二步,按照状态转移图编写状态机的VHDL程序代码。在用VHDL语言对ADC0809采样控制器状态转移图进行描述时,可以用枚举类型定义状态机中的所有状态,每一个状态对应着CASE-WHEN语句中的一条WHEN语句,状态的转移通过IF-THEN-ELSE语句实现,现态和输入信号可以作为状态机进程的敏感信号。另外为了消除毛刺,代码中还增加了数据对象,SIGNAL:ALEO,START0,ICLK0,OE0。其代码如下所示TYPEST

8、ATEIS(ST0,ST1,ST2,ST3,ST4,ST5,ST6,ST7);SIGNALCST,NST:STATE:=ST0;SIGNALALE0,START0,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。