基于ADS8365的高速同步数据采集系统

  • 格式:pdf
  • 大小:526.99 KB
  • 文档页数:4

3 2008212204收到,2009202224改回33 康 伟,男,1982年生,硕士研究生,研究方向:电机与电器。

文章编号:100325850(2009)0420048204

基于ADS8365的高速同步数据采集系统

High-speedSynchronousDataAcquisitionSystembasedontheADS8365康 伟 路秀芬 詹哲军(太原理工大学电气与动力工程学院 太原 030024)【摘 要】针对TMS320F2812难以对多路信号进行同步采样,介绍了一种基于AD转换芯片ADS8365与TMS320F2812DSP芯片构成的高速、并行高精度数据采集系统,包括硬件接口电路的设计、部分关键程序代码和实现AD采样的程序流程。【关键词】TMS320F2812,ADS8365,数据采集,同步采样中图分类号:TN79文献标识码:A

ABSTRACT Aimingatthedifficultyofrealizingmulti2channelsignalssynchronizedsamplingusingTMS320F2812,thispaperintroducesahigh2speed,high2precisionsimultaneousdataacquisitionsystem,whichisbuiltbasedontwomainmodules:ADconverterofADS8365andTMS320F2812DSPchipofTI,includingthedesignofhardwareinterfacecircuits,somecriticalprogramcodeandtheflowchartofADsamplingprogram1KEYWORDS TMS320F2812,ADS8365,dataacquisition,synchromoussample

实时数据采集需要对高速连续变化的模拟信号进行同步数据采集,使采集到的数据不仅含有模拟信号的频率幅度特性,同时还要保持不同模拟信号之间的相位差异。这些都对CPU的处理速度和模数转换器(ADC)提出了更高的要求。TI公司TMS320F2812芯片内部的ADC模块,只能同时对两路信号并行采样,而在实际的控制中,要对多路电压、电流及转速信号进行实时同步采样,显然直接用F2812芯片自带的ADC模块无法保证多路信号采样的同步性,使模拟信号之间的相位差别信息丢失。本文介绍了一种由TMS320F2812DSP芯片与AD转换芯片ADS8365构成的高速同步高精度的数据采集系统及其软件编程方法,可以满足高速同步数据采集的要求。1 同步数据采集系统硬件设计111 TMS320F2812芯片介绍TMS320F2812是TI公司生产的一款高性能32位DSP芯片,它不但运行速度高,处理功能强大,并且具有丰富的片内外围设备,便于接口和模块化设计。它既具有数字信号处理能力,又具有强大的事件管理能力和嵌入式控制功能,特别适用于有大批量数据处理的测控场合,如工业自动化控制、智能化仪器仪表及电机伺服控制系统等[2]。112 ADS8365芯片介绍ADS8365是一种高速、低功耗、6通道同步采样与转换、单+5V供电的模数转换芯片。转换最大采样吞吐率可高达5MHz,并带有80dB共模抑制的全差分输入通道以及6个差分采样保持放大器。引脚内部还带有215V基准电压和高速并行接口。ADS8365的6个模拟输入通道可分为三组,分别为A、B和C组。每组都有一个保持信号(分别为HOLDA、HOLDB和HOLDC),用于启动各组的A󰃗D转换。6个通道可以进行同步并行采样和转换。当ADS8365的HOLDX保持20ns的低电平后开始转换。当转换结果被存入输出寄存器后,引脚EOC的输出将保持半个时钟周期的低电平,以提示TMS320F2812处理器进行转换结果的接收,处理器通过置RD和CS为低电平使数据通过并行输出总线读出。113 TMS320F2812和ADS8365的接口设计由于ADS8365和TMS320F2812都是TI公司生产的高速芯片,故两者在速度上能够完全匹配,可以实现芯片间的无缝连接。ADS8365的数据读出可采用直接地址读方式、FIFO读方式、循环读方式。本采集系统选择直接地址读方式,由XA[2:0]作为变换结果寄存器低位地址,

当ADS8365的CS引脚为高电平时,其数据总线处于高阻状态,当CS引脚置低电平时并口数据总线上输出当前数据。具体的连接如图1所示。ADS8365可使用单独的外部晶振,本系统使用TMS320F2812EVA的T1PWM来产生ADS8365的CLK时钟输入信号。为了实现六个通道的同步采样,

・84・(总304)基于ADS8365的高速同步数据采集系统2009年 图1 ADS8365和TMS320F2812连接图把TMS320F2812的GPIOB15引脚与ADS8365的HOLDA、HOLDB、HOLDC信号相连,控制3个ADC采样󰃗保持模块的同步。EOC连接到TMS320F2812的XINT1。本系统中,由传感器输出的电压信号范围是±5

V,而ADS8365芯片的模拟输入端能接收的信号范围是±215V,因此在ADS8365前端用功率运放电路实现信号的调理,本文采用OPA227芯片来实现。原理图如图2所示。

图2 双极性信号输入电平转换电路原理图OPA227是TI公司生产的高精度、低噪声运算放大器,可应用于信号采集和通讯设备中。图2中下面的OPA227是跟随电路,用来提供215V的参考电压;上面的OPA227用来实现电平信号的运算。图中R1、R2

分别选择2k8和10k8温漂较小的精密电阻。

2 数据采集系统软件设计本系统实现了对多路模拟信号的高速同步周期采样,图3~图5给出3种周期采样程序的流程图,不同之处主要体现在对转换结束信号EOC的处理上。图3

采用中断嵌套,程序执行效率高,适用于对实时性要求比较强或多参数数据采集系统;图4采用软件延时,可靠性比较高,多用在CPU处理任务较少的系统;图5

采用查询方式,程序设计比较简单,实时性也比较强,

是应用最多的一种方法。实际应用中可针对不同的要求灵活选择。图3~图5相同部分为:上电后由硬件复位ADS8365,初始化TMS320F2812,设置系统主频及与

采样有关的高速外设时钟频率;配置产生ADS8365时钟信号的定时器1;设置AD转换芯片用到的事件管理器的GPIO口和控制采样周期的定时器3,将T3周期中断服务程序入口地址放在对应T3PINT向量地址处;输出AD转换时钟和启动定时器T3。不同部分为:在图3中,将Adcisr()

采样中断服

务程序的入口地址放在对应EOC输入引脚XINT1

的向量地址处,并且配置成由低电平触发进入中断,最后使能系统中断,接着进入程序主循环。T3周期中断触发后,执行T3周期中断服务程序,而后启动AD转换,程序继续向下执行,当AD转换结束后触发中断,

进入XINT1中断服务程序,然后读取A󰃗D转换结果,

进行相关寄存器的处理后,返回T3PINTISR,然后执行完T3周期中断服务程序中下面的程序,最后退出中断,等待下一个采样周期的到来,即下一次T3周期中断的到来,循环往返实现了周期采样。图4中,系统初始化完成后,进入程序主循环。T3

周期中断触发后,执行T3周期中断服务程序,而后启动AD转换,程序进行空操作等待6Λs,然后读取A󰃗D

转换结果,接着执行完T3周期中断服务程序中下面的程序,最后退出中断,等待下一个采样周期的到来。图5中,程序进入T3周期中断服务程序后,启动AD转换,采取查询方式判断AD转换是否完成,若PIEIFR114=1,说明有中断被激活(否则一直查询),然后读取A󰃗D转换结果,执行完T3周期中断服务程序中下面的程序,最后退出中断,等待下一个采样周期的到来。211 ADS8365的初始化触发ADS8365的复位引脚,可以确保读指针指向第一个数据位置。作为TMS320F2812初始化的一部

・94・ 第22卷 第4期电脑开发与应用(总305

)分,由TMS320F2812的GPIOB13引脚提供复位信号给ADS8365的引脚RESET,当系统时钟稳定后RESET被触发为低电平,从而确保了从ADC输出的数据对应于通道A0、A1、B0、B1、C0、C1的排列。下面为ADS8365的复位参考程序:

voidResetADS8365(void){ GpioDataRegs1GPBCLEAR1all=0x2000;

 asm(

"RPT#100󰃜󰃜NOP

");

 GpioDataRegs1GPBSET1all=0x2000;

}212 TMS320F2812的初始化TMS320F2812的初始化包括系统的初始化、GPIO的初始化和外设中断的初始化,分别叙述如下:

①TMS320F2812系统的初始化包括看门狗的配置、系统及外设时钟的配置、片内RAM使用的配置等。关键程序如下:

SysCtrlRegs1PLLCR=0xA;SysCtrlRegs1HISPCP1all=0x0001;EvaRegs1T1PR=0x03;EvaRegs1T1CMPR=0x02;EvaRegs1T1CNT=0x0000;EvaRegs1T1CON1all=0x1042;EvaRegs1GPTCONA1bit1TCMPOE=1;EvaRegs1GPTCONA1bit1T1PIN=2;②GPIO的初始化,为了方便与ADS8365通信,

TMS320F2812把GPIOA、GPIOB和GPIOE的部分引脚配置成通用输入输出口。其中包括由EOC引脚触发的外部中断引脚和ADS8365需要的转换时钟引脚等。参考程序如下:

voidInitGpio(void){EALLOW; GpioMuxRegs1GPAMUX1all=0x00FF;

 GpioMuxRegs1GPADIR1all=0xFFFF;

 GpioMuxRegs1GPBMUX1all=0x00FF;

 GpioMuxRegs1GPBDIR1all=0xFFFF;

 GpioMuxRegs1GPEMUX1all=0x0003;

 GpioMuxRegs1GPEDIR1all=0x0003;

 EDIS;

}③外设和中断的初始化,配置可屏蔽及不可屏蔽中断,使系统的中断可以找到有效的地址。关键程序如下:

XIntruptRegs1XINT1CR1all=0x0001;PieCtrlRegs1PIEIER11bit1INTx4=1;PieCtrlRegs1PIEIER41bit1INTx4=1;IER󰃜=0x0009;EvbRegs1EVBIMRA1all=0x0080;EvbRegs1EVBIFRA1all=0x0080;EvbRegs1T3CON1all=0x1042;213 信号采样和中断服务程序在上述配置结束后,启动T1PWM输出信号给ADS8365的CLK引脚,在确认ADS8365芯片准备好的情况下启动采样信号,程序如下: