当前位置:首页 > EDA > 电子设计自动化
[导读] 摘要: 针对在自动控制系统设计领域和通信领域中有着广泛运用的AD7862芯片, 介绍了一种基于FPGA 的驱动接口电路的设计。阐述了AD7862的特点及基本功能, 以及基于这些功能特点的驱动时序, 并以此时序为基础在FPGA 芯

   摘要: 针对在自动控制系统设计领域和通信领域中有着广泛运用的AD7862芯片, 介绍了一种基于FPGA 的驱动接口电路的设计。阐述了AD7862的特点及基本功能, 以及基于这些功能特点的驱动时序, 并以此时序为基础在FPGA 芯片中实现了AD7862 的驱动电路。给出了主要的VHDL代码以及最终的仿真测试结果, 实现了对AD7862芯片的稳定可靠驱动, 同时也验证了所设计驱动电路的正确性。

0、引言

在自动控制的很多应用场合, 都需要实时对信号进行采样分析, 然后由DSP来进行运算控制。AD芯片是采样中最常用的芯片, 本文主要对ADI 公司的AD7862芯片进行介绍, 同时为它设计了驱动接口电路。由于AD7862不能自动工作, 需要给它提供相关的驱动信号才能触发它进行转换,本文用FPGA 芯片给它做一个接口驱动电路, 并详细的介绍了驱动电路程序的设计, 设计的电路为AD7862提供了非常好的驱动作用, 并在实际运用中能使其稳定的工作。

1、AD7862芯片简介

AD7862是美国AD I公司出品的12 bit高速, 低功耗转换器, 单电源5伏供电。共有4 个模拟输入端, 被分为两个通道( A& B), 通过输入端A0来进行选择。每一个通道有两个输入端( VA1& VA2或者VB1&VB2) 。能够接受的模拟信号的输入范围为正负10伏。不过模拟信号的输入端的过压保护允许输入电压达到正负17 伏。原理框图如图1所示。

AD7862原理框图

图1 AD7862原理框图。

AD7862芯片具有以下特点:

( 1) 对每一个通道而言, 从启动转换到转换完成需要3. 6 s的时间。

( 2) 芯片由5 V 单电源供电, 功耗低, 工作时典型值为60 mW。具有自动休眠模式, 当一次转换完成后自动进入休眠模式, 节省电能。当下一个转换周期来临时在自动苏醒。

( 3) 提供一个高速并行接口, 和微处理器、微控制器以及数字信号处理器的连接变得容易。

( 4) AD7862系列共有三个版本分别针对三种不同的输入范围。其中AD7862—10针对标准工业级输入范围正负10伏; AD7862—3 主要针对普通信号输入范围正负2. 5 V。

AD7862—2被用于单极0 到2. 5 V 的输入范围。对AD7862—10和AD7862-3来说, 转换输出的12位为二进制补码, 对于AD7862-2来说, 输出的为12位的原码。

2、接口电路程序设计

在本设计中用的是AD7862??10, 采用高速转换模式, 典型转换时序如图2所示。

高速转换模式时序图

图2高速转换模式时序图。

图2中对应的时间参数的要求如下表1所示。

表1高速采样模式时序参数表。

高速采样模式时序参数表

从图2的时序图可以看出AD7862 通过输入脉冲信号CONVST启动转换。在CONVST 信号的下降沿, 片上的两个track /ho ld都同时的被设置为ho ld状态, 两个通道开始进行转换。转换时钟由内置的晶振提供。BUSY 信号指示转换结束, 同时两个通道的转换结果可以被读出。由A0 的值来决定第一次读取的值是VA1 或者VB1, 第二次读取的是VA2或者VB2。当CS信号和RD信号为低时, 数据被从12位的并行数据线上读取。在高速转换模式下, AD7862 的转换时间为3. 6 us, track /ho ld收集时间为0. 3 us。为了保证最佳转换效果, 在转换期间和下一次转换开始前300 ns不能进行读取操作。

上述的时序图对应为先读取VA1和VA2, 然后在读取VB1和VB2, 对应的信号A0首先被设为低电平, 然后被拉为高电平。在设计驱动电路的过程中, 一定要保证设计的时序满足上述时序参数的要求 , 不然就有可能发生采样不准, 出错。

结合AD7862的转换速度, FPGA选择10MH z的处理时钟。对于整个转换过程的控制用一个状态机来完成, 状态机分为12 个状态( idle, convert1, busy1, reada1, w ait1, reada2,sw apchna,l convert2, busy2, readb1, w ait2, readb2), 其中idle状态为空闲等待转换状态; convert1指示第一次转换启动状态;busy1指示第一次转换状态; reada1状态下读取VA1; wait1状态为读取VA1和VA2之间的等待状态; reada2状态下读取VA2; sw apchnal状态指示交换到另一个通道进行转换;convert2指示第二次转换启动状态; 剩余状态和前面的类似,只不过是针对VB1 和VB2 而言。设计代码如下( 只描述VA1和VA2的部分, 剩下的类似):

process( clkdiv4, nrst)

beg in

if nrst = ‘0’ then

adc_state < = id le;

e lsif( r ising _edge( clkd iv4) ) then

case adc_state is

when  idle= >

ada0< = '0' ;

adconv< = '1';

adncs< = '1';

adnrd< = '1';

clkcnt< = 0;

if( start= ‘1’) then

adc_state< = convert1;

end if;

w hen  convert1= >

ada0< = '0';

adconv< = '0' ;

if( adbusy= '1') then

adc_state< = busy1;

end if;

w hen  busy1= >

adconv< = '1';

if( adbusy= '0') then

adc_state< = reada1;

end if;

when  reada1= >

if ( c lkcnt= 2) then

addataa1< = 0000 & adda tain;

end if;

if( c lkcnt= 4) then

adc_state< = w a it1;

adncs< = '1';

adnrd< = '1';

clkcnt< = 0;

else

clkcnt< = c lkcnt+ 1;

adncs< = '0';

adnrd< = '0';

end if;

when  wait1= >

adc_state< = reada2;

when reada2= >

if ( c lkcnt= 2) then

addataa2< = 0001 & adda tain;

end if;

3设计电路的仿真验证

最终设计用Quartus 2 软件编译综合后在板上测试,FPGA 接口电路接受到的转换数据传给DSP芯片, 然后将DSP受到的数据用实时监控软件显示。图3是给AD 输入端加50 H z的正弦波信号(同时对其中三个输入端加信号), 监控软件显示的波形。

软件显示波形图

图3 软件显示波形图。

从图3波形图可以看出, 接口驱动电路成功的控制了AD7862芯片的采样过程, 从而验证了驱动电路设计的正确性。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

最近为什么越来越多的研究开始利用FPGA作为CNN加速器?FPGA与CNN的相遇究竟能带来什么神奇效果呢?原来,FPGA拥有大量的可编程逻辑资源,相对于GPU,它的可重构性以及高功耗能效比的优点,是GPU无法比拟的;同时...

关键字: FPGA 可编程逻辑资源 GPU

FPGA的应用领域包罗万象,我们今天来看看在音乐科技领域及医疗照护的智能巧思。

关键字: FPGA 科技领域 智能

强大的产品可降低信号噪音并提高分辨率与动态

关键字: Spectrum仪器 数字化仪 FPGA

最近某项目采用以太网通信,实践起来有些奇怪,好像设计成只能应答某类计算机的ICMP(ping)命令, 某类计算机指的是Windows特定系统,其他系统发送ping都不能正确识别。

关键字: 嵌入式Linux FPGA 协议

近两年,国外厂商的FPGA芯片价格飙升,由于价格,货期,出口管制等多方面因素的影响,很多公司都在寻找FPGA国产化替代方案。我工作中正在使用的几款芯片也面临停产的风险,用一片少一片,了解到国产FPGA发展的也不错,完全自...

关键字: FPGA 芯片 EDA

本篇是FPGA之旅设计的第十二例,在前面的例程中,完成了DS18B20温度传感器数据的采集,并且将采集到的数据显示在数码管上。由于本例将对温湿度传感器DHT11进行采集,而且两者的数据采集过程类似,所以可以参考一下前面的...

关键字: FPGA DS18B20温度传感器

这是FPGA之旅设计的第十三例啦,本例是一个综合性的例程,基于OLED屏幕显示,和DHT11温湿度采集,将DHT11采集到的温湿度显示到OLED屏幕上。

关键字: FPGA OLED屏幕

第八例啦,本例将介绍如何通过FPGA采集DS18B20传感器的温度值。

关键字: FPGA DS18B20传感器

这是FPGA之旅设计的第九例啦!!!本例将介绍如何使用FPGA驱动OLED屏幕,并在接下来的几例中,配合其它模块,进行一些有趣的综合实验。由于使用的OLED屏是IIC接口的,对IIC接口不是很清楚的,可以参考第五例的设计...

关键字: FPGA OLED屏幕

这是FPGA之旅设计的第十例啦,在上一例中,已经成功驱动了OLED屏幕,本例将结合上一例,以及第四例多bytes串口通信做一个有趣的例程。

关键字: FPGA OLED屏 串口

电子设计自动化

21191 篇文章

关注

发布文章

编辑精选

技术子站

关闭