电子工程师的网站
首 页 |  新闻资讯 | 最新产品 | 解决方案 | 技术参数
设计应用
电路图 | 技术资料 | 芯片资料 | 技术论坛
  现在位置: 首页 > 设计应用 > EDA/PLD > 详细信息
EDA/PLD:基于DSP和CPLD技术的多路ADC系统的设计与实现
来源:   时间: 2007-12-19 1:16:10    
引言
  随着现代电子技术的应用和发展,数字信号处理的内容日益复杂,而adc是实现从模拟到数字转换的一个必然过程。针对这种情况,利用数字信号处理器和可编程逻辑器件提出了多路adc系统的设计方法,实现了对动态多路模拟输入信号的采样传输以及处理,简化了电路设计,可编程逻辑器件使得系统的通用性和可移植性得到良好的扩展。系统框图如图1所示。

系统硬件设计

  本设计所采用的adc器件是maxim公司的生产的低功耗16位模数转换器(adc)max1162。max1162采用逐次逼近型 adc结构,具有自动关断、1.1μs快速唤醒和兼容于spi/qspi/microwire的高速接口,采用+5v单模拟电源,并且具有独立的数字电源引脚,允许芯片直接和+2.7~+5.25v的数字逻辑接口。ref引脚接外部参考电压,用于设定模拟输入电压范围,与模拟地之间连接一个4.7μf的电解电容;avdd引脚是+5v电源供应输入端,与模拟地之间接一个0.1μf的电容;agnd是模拟地;cs是片选输入,低有效。当为高时,系统处于断电模式,由高变低时,激活系统到正常运行模式,同时初始化一次转换。本系统选择作为ad的使能信号;sclk是串行时钟输入,驱动模数转换进程;dout是串行数据输出,数据状态在sclk的下降沿改变;dgnd是数字地;dvdd是数字电压供应,与数字地之间接一个0.1μf的电容;ain是模拟信号输入端。

  该adc系统的中央控制单元采用ti(德州仪器)公司的浮点数字信号处理器tms320vc33-150,tms320vc33的地址总线为24位,程序寻址范围可达16m,数据总线为32位,内部具有34k×32bit的sram,可根据需要映射在程序或数据空间,拥有一路串行口,可以构成传输8、16、24、32位的数据,其传输模式可以设置为突发模式或者是连续模式。两个32位的通用定时器,能够用来按照规定的时间间隔与芯片内部通信或者是和外部通信。
使用x9241实现高分辨率的软件代码

  为了方便理解实现控制的细节,我们提供了c语言源代码(代码由xicor公司提供,我们做了一定的修改)。用户只需要自己再编写适用于不同单片机的i2c硬件接口函数(函数名称同程序中介绍一致),在应用程序中加入我们提供的源代码,简单的调用程序中介绍的5个函数,就可以方便地实现dcp的高分辨率控制。

  关于x9241实现高分辨率的软件源代码,工程师可到http://www.icbase. com/download/x9241.c去下载。
本系统考虑到主要应用在adc中,所以就直接采用tms320vc33的数据总线和地址总线,没有再附加额外的电路,使得adc的采样速度和转换精度得到良好的保证。同时还利用了int2和xf0引脚,作为dsp接收数据的中断信号和adc的使能信号。int2是外部中断引脚,由外部的数据输入触发中断;xf0即外部标志输出引脚,受软件控制,可以用来向外部器件发送信号,该引脚的状态由i/o标志寄存器决定,iof=0x22,即置xf0为通用目的输出引脚,同时该引脚输出0;若iof=0x26,则置xf0为通用目的输出引脚,同时该引脚输出为1。本系统利用软件指令对xf0进行置高置低,控制adc的启动转换和停止。

  emp7512ae基于eeprom技术,采用多电压i/o接口技术,系统内核供应电压为3.3v,而i/0引脚与2.5v、3.3v、5.0v逻辑电平相互兼容。epm7512ae有10 000个可用门、512个宏单元、32个逻辑阵列块和212个用户可用i/0引脚。cpld在系统中的主要功能是:给adc转换提供时钟信号,控制adc转换的使能和复位,由于采用的adc芯片是串行输出的,cpld还实现对串行数据的输入转为并行数据的输出,然后直接和tms320vc33的数据总线相连接。同时cpld产生脉冲信号,在adc转换完成后,数据暂存在cpld中,该脉冲向cpu申请中断,提示有数据需要接收。另外,cpld的一个关键作用就是,实现路数的动态选择,目前设计的该系统最多路数为8路。cpld和dsp及ad芯片的具体硬件连接图如图2所示。

  使用x9241实现高分辨率的软件代码



  为了方便理解实现控制的细节,我们提供了c语言源代码(代码由xicor公司提供,我们做了一定的修改)。用户只需要自己再编写适用于不同单片机的i2c硬件接口函数(函数名称同程序中介绍一致),在应用程序中加入我们提供的源代码,简单的调用程序中介绍的5个函数,就可以方便地实现dcp的高分辨率控制。



  关于x9241实现高分辨率的软件源代码,工程师可到http://www.icbase. com/download/x9241.c去下载。
  下面给出vhdl语言的主要程序部分。

begin
adcs <= synthesized_wire_12;
ada <= synthesized_wire_2;
gdfx_temp_signal_1 <= (l & l & h & h & h & l);
gdfx_temp_signal_0 <= (h & l & h & h & l);
u1 : lpm_bustri_0----三态总线缓冲器,允许采样的数据输出到dsp的数据总线上
port map(enabledt => drd,
data => ado,
tridata => d);
u2 : lpm_counter_1----计数器,把数据总线宽度改为3位
port map(sload => synthesized_wire_0,
clock => synthesized_wire_1,
aload => xfa0,
data => cmd(2 downto 0),
q => synthesized_wire_2);
u3 : lpm_dff_1---d触发器,数据总线宽度为8位,接收来自于dsp的数据
port map(clock => cmdck,
data => d(7 downto 0),
q => cmd);
u4 : lpm_compare_1---比较器,比较cmd(5..3)和cmd(2..0)的值,即轮询采样通道
port map(dataa => cmd(5 downto 3),
datab => synthesized_wire_2,
aeb => synthesized_wire_0);
synthesized_wire_1 <= not(aq(4));
nrw<= not rw;
cmdck<= not( not page3 and(not rw)and a6 and a5 and a4 and (not a3));
----通道控制地址编码
drd <= not page3 and rw and a6 and a5 and a4 and a3;----采样地址编码
clka <= not(clk);
u5 : lpm_counter_2---产生计数脉冲
port map(sload => synthesized_wire_3,
clock => hfp(5),
data => gdfx_temp_signal_0,
eq => sq,
q => aq);
u5 : lpm_dff_5---缓冲器
port map(clock => synthesized_wire_12,
data => synthesized_wire_5,
q => ado);
synthesized_wire_12 <= sq(12) or 0 or xfa0;
synthesized_wire_3 <= xfa0 or sq(14);
aden <= not(xfa0);
synthesized_wire_10 <= hfp(5) and hfp(4) and hfp(0) and synthesized_wire_6 and synthesized_wire_7 and synthesized_wire_8;
synthesized_wire_7 <= not(hfp(2));
synthesized_wire_6 <= not(hfp(3));
inta2 <= xfa0 or synthesized_wire_9;
u6 : lpm_shiftreg_1----串行数据输入转为并行数据输出
port map(shiftin => adout,
clock => hfp(5),
q => synthesized_wire_5);
u7 : lpm_counter_3---产生时钟信号
port map(sload => synthesized_wire_10,
clock => h1ck,
data => gdfx_temp_signal_1,
q => hfp);
synthesized_wire_8 <= not(hfp(1));
adsck <= not(hfp(5));
synthesized_wire_9 <= not(synthesized_wire_12);
h <= 1;
l <= 0;
end;

  把该vhdl程序写入到epm7512ae芯片中的,对数据进行采样编程就简单了许多。在.cmd文件的memory段中加入adport :org=0x00c00070,len=9。然后通过自定义数据段把数组adport[8]映射到段adport中。下面给出用c编写的采样主要程序。
main()
{
……
iof = 0x26;/*置max1162数据输出端为高阻态*/
adport[0] = 0x28;

  /*采样通道选择:0通道~5通道,总共6路;若设adport[0]=0x38,则通道为:0通道~7通道,总共8路。同理可进行其他设置*/
ie = 4;/*中断使能*/
iof = 0x22;/*启动adc*/
/* adport[0]对应地址为0x00c00070,配置寄存器有6位,0、1、2位对应起始通道,3、4、5位对应结束通道。adport[8]对应地址为0x00c00078,是控制寄存器*/
……
}
在中断服务子程序接收采样的数据,程序如下。
c_int02()
{
ad[adi++] = adport[8];/*把采集的数据十六进制数据存入数组ad中*/
if(adi>0x7ff) /*存入的数据大小为2k×16bit,根据内存大小动态改变*/
adi &= ox7ff;
}
 

结论

  经过实际验证,本adc系统在低成本的情况下的采样精度达到了13位,这在16位的adc芯片中达到很好的水平,并被应用到高精度的工业控制中。利用tms320vc33和epm7512ae,灵活方便地实现了对高精度模数转换器max1162的控制和动态多通道采样,简化了系统设计的复杂性,同时使得dsp的编程处理变得非常高效简洁。若应用在要求更加严格的场面,本系统有待做进一步的改进,把adc芯片更换为并行输出,同时把cpld芯片更换为cycloneii fpga,dsp芯片用tms320c6713,同时加入噪声抑制设计,这样整个系统性能将会显著提高。在一定的条件下,和adc模块相类似,本系统可以经过扩充,实现更多路的信号采集。

相关信息
发表评论
打印本页 关闭本页
基于TMS320VC33的速度控制系统硬件平台设计
    摘要:以磁悬浮列车速度控制系统为课题背景,介绍了以TMS320VC33为核为处理器的硬件平台的组织结构及设计过程   关键词:速度控制 DSP 硬件设计   长沙国防科大磁悬浮中心的磁悬浮铁路试验线是我国首条通过中试评审的磁悬浮线路,拥有自主的知识产权。列车的驾驶系统由S7_300系列PLC组网而成,主控PLC处理来自驾驶台的控制命令,将处理后的控制信息通过FDL网传给底层控制PLC...
>>详细内容
TMS320C6713的FLASH引导装载系统设计
  前言   DSP系统的引导装载是指在系统加电时,由DSP将一段存储在外部非易失性存储器中的代码移植到内部高速存储器单元并执行的过程。这种方式即可利用外部存储单元扩展DSP本身有限的ROM资源,又能充分发挥DSP内部资源的高速效能。因此,引导装载系统的性能直接关系到整个DSP系统的可靠性和处理速度,是DSP系统设计中必不可少的重要环节。在装载系统中,外部非易失性存储器和DSP的性能...
>>详细内容
基于TMS320VC33速度控制系统硬件平台设计
  摘要:以磁悬浮列车速度控制系统为课题背景,介绍了以TMS320VC33为核为处理器的硬件平台的组织结构及设计过程 关键词:速度控制 DSP 硬件设计 长沙国防科大磁悬浮中心的磁悬浮铁路试验线是我国首条通过中试评审的磁悬浮线路,拥有自主的知识产权。列车的驾驶系统由S7_300系列PLC组网而成,主控PLC处理来自驾驶台的控制命令,将处理后的控制信息通过FDL网传给底层控制PLC,底层控制PLC...
>>详细内容
基于TMS320C6713的电子束曝光机图形发生器的硬件设计
  摘要:提出了一套功能较为完备的新型扫描电子束曝光机图形发生器的硬件设计方案。方案采用 TMS320C6713芯片作为核心单元,并由USB2.0接口电路、存储器扩展电路、标记检测控制电路、曝光控制电路和束闸控制电路构成。方案具有数据处理能力强、速度快、接口方便等优势,克服了传统图形发生器单纯依靠软件完成、速度慢、精度低、工作不稳定的缺点。 关键词:电子束曝光机;图形发...
>>详细内容
基于DSP和CPLD技术的多路ADC系统的设计与实现(图)
  摘 要:介绍了基于DSP和CPLD技术,高精度多通道的ADC系统的设计与实现方案,利用简单的硬件电路和软件编程,采用DSP和CPLD相结合的方法,动态地设置采样通道,控制模数转换器MAX1162的数据采样及传输。关键词:DSP;CPLD;模数转换 引言---随着现代电子技术的应用和发展,数字信号处理的内容日益复杂,而ADC是实现从模拟到数字转换的一个必然过程。针对这种情况,利用数字信...
>>详细内容
基于EDMA的TMS320C6713片外Flash自举引导
    摘要:在基于DSP的系统设计中,为了保证掉电时程序不丢失,总是将程序保存在非易失性存储器中,以便系统在上电复位时可将其引导到DSP内部的RAM中执行。以TI公司的TMS320C6713浮点DSP和AMD公司的AM29LV040Flash存储器为例,通过JTAG加载来设计一个完整的自举引导方案。着重描述了引导引脚以及相关寄存器的设置,分析了采用EDMA传输方式将代码从Flash复制到DSP的过程,并对引导程序给出...
>>详细内容
已有(
)位对此新闻感兴趣的网发发表了看法 >>更多评论
内 容:
     
 
热点新闻
一周排行
关于我们 | 服务项目 | 付款方式 | 广告服务 | 联系我们 | 友情链接 | 投诉 建议 合作 | 网站地图 | 加入收藏
Copyright © 2007-2008 WEEQOO.COM Corp.All Rights Reserved. 版权所有 经营许可证编号:浙B2-20050339 法律声明
维库电子旗下网站:维库电子市场网 | ChinaICMart | 维库电子开发网 | 维库电子人才网
总部:杭州市下城区朝晖路182号国都发展大厦1号楼80A
电话:0571-85889139-8007 QQ:303939539 | MSN:zh1226@hotmail.com |  邮箱:laz8258@163.com dzsc51@163.com