电子工程师的网站
首 页 |  新闻资讯 | 最新产品 | 解决方案 | 技术参数
设计应用
电路图 | 技术资料 | 芯片资料 | 技术论坛
  现在位置: 首页 > 设计应用 > EDA/PLD > 详细信息
EDA/PLD:基于DSP与CPLD的ADS7805多通道数据采集
来源: 金健 林梅香   时间: 2007-9-26 15:47:35    
  摘要  设计了利用TMS320LF2407A与EPM3032A控制的ADS7805多通道采集系统的逻辑结构,介绍了系统的工作原理,详细描述了ADS7805、DSP及CPLD之间接口的硬件与软件设计。
关键词  DSP;CPLD;ADS7805

0 引言

       用于实时控制的嵌入式系统有多路模拟量输入,要求对多路输入进行连续扫描并进行高速高精度处理,具有16位16路差分输入通道的ADS7805能够满足系统通道数量及精度的要求。通道的快速切换及系统关键控制信号的产生成为制约系统性能的瓶颈,利用TMS320LF2407A丰富的I/O接口及高频时钟,配合EPM3032A灵活的译码功能,则可以控制ADS7805进行多个通道的高精度高速数据采集,由于采用了DSP与CPLD等可编程器件,系统可操作性得到了保证,也极大地简化了硬件电路。

1 系统结构设计

      系统以DSP与CPLD为核心构建,模拟信号从多路复用器接入,利用CPLD使能或禁止其输出,DSP的I/O引脚控制通道的选择,当选通一路时,多路复用器输出差分再经过运放转为单端信号作为ADC的输入,ADC片选由DSP的I/O引脚控制,启动由CPLD控制,当片选有效时启动ADC,并按照规定的时序控制片选信号,ADC开始工作,转换结果输出到CPLD译码得到的地址。ADC与DSP之间的缓冲器件用来做电平匹配,利用CPLD将其锁定在选通状态。ADC在转换完成时发起一个外部中断到DSP,请求DSP处理转换结果[1]

2 硬件设计

  模拟信号输入到多路复用器ADG726(ADI公司产品),1.8~5.5V电源供电,由引脚VDD输入;接受16路差分或32路单端模拟信号输入(引脚S1A~S16A,S1B~S16B)。DA,DB为差分信号输出引脚;A0~A3是通道选择控制引脚。片选引脚CSA、CSB低电平有效。引脚EN、WR分别为芯片使能和写使能,EN低有效,WR上的有效电平波形如图2所示。

  信号从DA,DB引脚输出之后,在到达ADC之前先转成单端信号,这里采用ADI公司易用型运放AD620,±12V模拟电源供电。

  ADI公司生产的低功耗16位模数转换器ADS7805为逐次逼近型结构,+5V单电源供电,标准±10V输入,最小采样率100KSPS。REF引脚接内部或者外部参考电压,用于设定模拟输入电压范围,与模拟地之间连接一个2.2μF的钽电容,本设计采用内部参考;VANA引脚是+5V模拟电源输入端,并联一个0.1μF和一个10μF的钽电容接到模拟地上;VDIG为数字电源输入端,直接连到VANA上。AGND1和AGND2是模拟地;CAP引脚为参考缓冲电容,与模拟地之间接一个2.2μF钽电容;DGND是数字地;BYTE引脚电平决定转换结果的字节位置,低电平时引脚6到13输出结果的高8位,引脚15到22输出结果的低8位,高电平时正好相反。当启动引脚R//C为低时,片选CS的下降沿激活一次转换。BUSY在转换时保持低电平,转换完成时变高。转换结果由16个引脚并行输出,经过缓冲74LVTH16245A做5V到3.3V的电平转换到DSP,输出引脚为三态驱动。

  系统的主控制器采用TI(德州仪器)公司的TMS320LF2407A,3.3V静态CMOS工艺,40MIPS,具有16位地址总线,16位数据总线,3个独立的存储空间,包括可用的64K字程序空间,35.5K字数据空间以及64K字I/O空间。访问不同的存储空间时,DSP有相应的引脚作为选通信号,即PS对应程序空间,DS对应数据空间,IS对应I/O空间,均为低电平有效。本设计将ADC映射到I/O空间。TMS320LF2407A具有丰富的通用数字I/O口,利用其中一个对ADS7805进行启动控制。通道选择也由数字I/O实现,利用DSP 4个I/O引脚作为ADG726的4-16译码输入可选择系统的16路差分。设计将ADC的BUSY引脚接到DSP的外部中断引脚XINT1上,当BUSY上升沿到来时,将触发DSP外部中断,中断的极性、优先级均可软件设定。EMP3032A是ALTERA公司推出的高性价比CPLD,在系统中用来控制ADC的引脚CS,配合引脚R//C来激活ADC,对CS的控制同时也将ADC映射在了DSP的I/O空间,因为使CS变为有效的控制逻辑来自于CPLD对DSP的4根地址线(A15到A12)及IS的译码。多路复用器的写使能由CPLD控制,即ADG726也被映射在DSP的I/O空间,这样设计的优点是对映射地址执行一个读操作就能得到需要的时序,虽然利用DSP的数字I/O引脚也能实现,但是需要在软件中模拟信号的时序,实现由高到低、延时并上跳变的过程,相对较复杂[2-4]

3 软件设计

  首先编写CPLD程序对ADG726及ADS7805进行地址译码,然后对CPLD在线编程生成译码电路。

/*--adc mux--*/

assign mux_wr=~((addr==4'h3)&(~is)&(~dsp_wr));//ADG726映射到I/O空间的地址0x3000~0x3FFF,得到写使能信号

assign mux_en=0;//ADG726的使能引脚始终有效

/*--adc--*/

assign buffer_cs=(~(addr==4'h0))|is;//ADC映射到I/O空间的地址0x0000~0x0FFF,得到缓冲器的片选信号

assign adc_cs=~((addr==4'h0)&(~is)&dsp_rdwr);//得到ADC的片选信号

  在DSP程序中,对0x3000~0x3FFF的任意地址执行一个读操作,由DSP选择的通道就被选通,信号由ADG726输出到运放AD620,差分转单端后输出到ADC。通过写数字I/O的控制寄存器,先将R//C拉低,再对I/O空间的0x0000~0x0FFF执行一个读操作,然后将R//C拉高,就启动了ADC。读0x0000~0x0FFF 其中任一个地址产生低电平的CS信号,该信号保持的时间由访问I/O空间的等待时间决定,通过设置等待状态寄存器来保证获得有效的延时时间。

  /*--设置等待状态寄存器--*/

WSGR = 0x01C0;//bit8-6=111,访问I/O空间时插入7个等待状态

ADC转换完成置BUSY为高电平,向DSP申请中断,相应中断被使能之后DSP开始处理中断服务程序,完成数据的读取与其他处理。

  /*--初始化ADC字程序--*/

*MCRA &= 0xFC3F;//配置4个I/O引脚bit9-6为通用功能用于ADG726通道选择

*MCRB &= 0xFF7F;//bit7对应的I/O引脚控制R//C  

*PADATDIR |= 0xC000;//bit7-6配置为输出,对应通道选择的两个引脚

*PBDATDIR |= 0x0300;//bit1-0配置为输出,对应通道选择的另两个引脚

*PCDATDIR |= 0xC000;//bit6配置为输出,对应R//C

*XINT1CR |= 0x7;//上升沿有效,低优先级,使能外部中断

*IMR |= 0x20;//使能内核对应的中断  

/*--声明ADG726,ADC映射到的存储单元--*/

#define     AD_Output   port0000

volatile    ioport      unsigned int    port0000;

#define     mux_ad      port3000

volatile    ioport      unsigned int    port3000;

/*--ADG726通道选择函数--*/

*PADATDIR &= 0xFF3F;//bit7,bit6清0

*PBDATDIR &= 0xFFFC;//bit1,bit0 清0

*PADATDIR |= ( nChlNum & 0x3 ) << 6;//设置bit7,bit6

*PBDATDIR |= ( nChlNum & 0xC ) >> 2;//设置bit1,bit0

mux_ad = 0;//产生写使能信号

/*--主程序--*/

int temp;

……
AD_Init();//初始化

ADC_MUX(13);//选择通道13

/*--启动ADC--*/

*PCDATDIR &= 0xFF7F;//使AD_R/C*变低

temp=AD_Output;//产生有效的AD_CS*

*PCDATDIR |= 0x80;// 使AD_R/C*变高 

for(;;);//等待ADC中断

......

/*--中断服务程序--*/
int     AD_result;

*IFR = 0x20; //清除中断标志位,以响应后续中断

AD_result = AD_Output;//读转换结果

asm(“  clrc INTM”);//重新使能中断,因为一进服务程序中断就被禁止了

4 结束语

  本文设计了基于TMS320LF2407A与EPM3032A的ADS7805多通道采集系统,介绍了系统的工作原理,详细描述了ADS7805、DSP及CPLD之间接口的硬件与软件设计,该方案已在笔者参与研制的嵌入式实时控制系统中得到了成功应用。

相关信息
发表评论
打印本页 关闭本页
AMD嵌入式系列新增三款低功耗Athlon 64处理器
    AMD在近期举行的嵌入式系统会议中宣布,其嵌入式系列产品线将新增三款低功耗AMD Athlon 64处理器。新款处理器能让嵌入式系统研发人员在8瓦的散热规格下,发挥AMD64技术的各项优势。这些兼容于AM2插槽的单核处理器,将带来更多的产品选择,帮助研发人员把AMD64技术应用在各种嵌入式系统。 AMD嵌入式运算解决方案部门总监Buddy Broeker表示:“这些新产品除拥有符合嵌入式市场需求的...
>>详细内容
Freescale 推出12款高性能ColdFire微处理器
    致力于继续扩大其ControllerContinuum内性价比选件范围的飞思卡尔半导体近日推出了ColdFire®微控制器系列,旨在支持运行Linux®操作系统(OS)的低功率、高性能嵌入式系统。这些最新款的ColdFire微处理器在大约380mW的功率上提供了410DhrystoneMIPS(DMIPS)的内核性能,能够轻松满足开发人员的系统功率预算,同时实现卓越的系统级性能。   飞思卡尔的MCF5445x系列包括12款...
>>详细内容
国半推出LMP7731单组装与LMP7732双组装高精度运算放大器
    国国家半导体公司(National Semiconductor Corporation)日前宣布推出两款全新的高精度运算放大器。其特点是具有很低的输入电压噪声和较高的准确度,因此适用于以低频及低供电电压操作的系统,例如工业和科研重量计、压力传感器以及其他低电阻传感器。   作为美国国家半导体LMP高精度放大器系列中的新成员,最新推出的LMP7731单组装与LMP7732双组装高精度运算放大器的输入电压噪声...
>>详细内容
恩智浦 扩展LPC2900系列微控制器产品线
    恩智浦半导体(NXPSemiconductors)(由飞利浦创建的独立半导体公司)发布了LPC2900系列微控制器,进一步扩展了其ARM7™和ARM9™微控制器业界最广泛的生产线。恩智浦LPC2900基于广受欢迎的、高性能的ARM968E-S™处理器,针对工业、医疗、发动机控制和汽车电子行业内的应用,为设计师提供一个具有高成本效益、灵活的、低功耗的解决方案。恩智浦此次工发布了三款ARM9微...
>>详细内容
RAMTRON 推出2KB铁电存储器微控制器
    RamtronInternationalCorporation宣布推出带2KB非易失性F-RAM以8051为基础的微控制器(MCU)--VRS51L3072。Ramtron将F-RAM添加到其快速灵活的Versa8501产品中,以进行快速可靠的非易失性数据存储与处理系统,而这是存储系统状态、数据记录及在多种应用的非易失性变量的理想选择,包括从传感器与计量仪表到工业控制、仪表与医疗设备等应用。   F-RAM能够消除Flash数据存储器相关的先头...
>>详细内容
恩智浦 推出先进UHF智能标签IC
    由飞利浦成立的独立半导体公司恩智浦半导体(NXPSemiconductors)日前宣布推出下一代智能标签ICUCODEG2XM和UCODEG2XL,为整个超高频(UHF)应用带来突破性性能。新型UCODERFID芯片可以在极其广泛的读取范围内以及读卡器密集的环境下稳定运行。   UCODEG2XM和UCODEG2XL可将RFID技术应用于要求不同EPC编码的多种应用环境并存储额外应用数据,并支持高达240位的可扩展EPC编码,具有无...
>>详细内容
已有(
)位对此新闻感兴趣的网发发表了看法 >>更多评论
内 容:
     
 
热点新闻
一周排行
关于我们 | 服务项目 | 付款方式 | 广告服务 | 联系我们 | 友情链接 | 投诉 建议 合作 | 网站地图 | 加入收藏
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