朱志清
(国营第785厂,山西太原030024)
近年来模数转换器制造技术发展十分迅速,低成本、高精度和高速度的ADC新产品不断涌现。高速度、高采样速率的12位ADC在各种数据采集系统中的应用已十分常见。随着逐次逼近式A/D技术的发展,A/D在高速高精度的数据采集应用上有更出色的表现。在伺服控制系统中伺服控制器需对采集到的电流及电压信号进行转换,再通过一定的算法来确定被控装置的位置。在这个过程中,两路信号同时采样转换对整个系统的精度有着很重要的意义。AD7864可以直接适应这个需求,它是4通道同时采样的高精度A/D转换器,高速并行输出接口与DSP芯片TMS320F2812直接相连,从而实现电流电压两路信号同时采样转换。
AD7864是一款高速低功耗四通道同步采样单5 V供电的12位模数转换器。它包含一个1.65 μs逐次逼近ADC,四采样保持放大器,2.5 V电压参考,时钟振荡器,信号调理电路和一高速并行接口,它可以同步采样四路通道的输入信号以保持四路模拟输入的相对状态信息。AD7864可以接受的输入信号范围为:AD7864-1型为±10 V,±5 V;AD7864-2型为0~2.5 V,0~5 V;AD7864-3 型为 ±2.5 V。模拟输入的过电压保护可以允许输入电压分别达到±20 V,+20 V/-1 V,+20/-5 V而对器件不产生损害或影响。通道选择可以通过软件或硬件进行选择。功耗低达90 mW,省电模式下可达20 μW。AD7864四通道同时工作时,最大采样率可以高达130 kHz。AD7864具有片内时钟、读写允许逻辑、多种通道选择方式及内部精确的2.5 V参考电压,这使得其与高速处理器的接口变得非常简单。
AD7864转换后的数据读取有两种方法,即转换中读取数据和转换后读取数据。转换中读取数据是在下一个通道转换结束之前读取前一个通道的数据。转换后读取数据是在全部通道均转换结束后,才读取数据。
转换中读取数据芯片可以达到最高的数据吞吐率。其具体工作过程如下:一次转换从转换起始信号/CONVST的上升沿开始,4个采样保持器进入保持状态,1.65 μs后,得到转换顺序中第一个通道的数据,每个通道的转换都有1.65 μs的间隔./EOC信号的下降沿便是每次转换的结束。BUSY输出信号表示所有选择通道转换都完成。每次/EOC信号变成低电平,执行一次读操作。
转换后读取数据的具体工作过程如下:当转换起始信号/CONVST上升沿时,4个采样保持器进入保持状态,开始对选择的通道采样。同时,BUSY输出信号被触发为高电平,并在转换过程中一直保持为高,当全部通道转换结束后,才变为低电平。/EOC信号在每一个通道转换结束时均有效。全部通道转换后的数据保存在AD7864内部相应的锁存器中。全部通道转换结束后,当片选信号和读信号有效时,就可以按照转换顺序从数据总线上并行读取数据。
考虑到本系统实际应用中要求的工作电压、转换速度以及系统硬件设计的便利等因素,在硬件系统中选用AD7864-2。DSP选用TI公司的TMS320F2812。
本系统用DSP扩展两路模数转换通道,分别采集工作电流与工作电压信号(0 V~5 V),经线性光隔HCNR201送入模数转换器ADS7864进行模数转换,对ADS7864的数据采用74LVC4245电平转换(5 V与3.3 V之间)后接入DSP。DSP与AD7864接口电路图见图1。
线性光隔HCNR201可较好地实现模拟量与数字量的隔离,隔离电压峰值达8 000 V;输出跟随输入变化,线性度达0.01%。
通过将/HOLDX引脚拉低并保持最少15 ns,可启动一次转换,/BUSY输出端则变成低电平,转换结束后/BUSY变高。将/RD和/CS都拉低,则在转换完成后可将数据从并行输出总线读出。
ADS7864接入8M 的外部时钟,转换时间为 1.65 μs,相应的数据采集时间为0.35 μs,可以达到最高输出速率500 kHz。
DSP采样程序设计采用C++语言编程的方式。在本系统中,采用了同时采样模式,同时采样ADCINA0和ADCINA1,当BUSY信号有效时,DSP控制A0和A1通道开始进行数据转换,转换结束后在CS和RD有效时,数据可以通过并行接口读出。
图1 DSP与AD7864接口电路图
图2 DSP读取AD7864数据的流程图
具体程序如下:
//读AD7864数据
#include"DSP28_Device.h"
extern unsigned int dy,dl;
RAD()
{
unsigned int* RADAddress= (unsigned int* )
0x002000; while(!GpioDataRegs.GPBDAT.bit.GPIOB7);
//BUSY_AD7864
GpioDataRegs.GPBDAT.bit.GPIOB3=1; //HOLD_AD7864
GpioDataRegs.GPBDAT.bit.GPIOB3=0;GpioDataRegs.GPBDAT.bit.GPIOB3=1;
while(GpioDataRegs.GPBDAT.bit.GPIOB7);
while(!GpioDataRegs.GPBDAT.bit.GPIOB7); //BUSY_AD7864
GpioDataRegs.GPBDAT.bit.GPIOB3=1; //HOLD_AD7864
GpioDataRegs.GPBDAT.bit.GPIOB3=0;
GpioDataRegs.GPBDAT.bit.GPIOB3=1;
dl=* (RADAddress+0);
dy=* (RADAddress+1);
}
在伺服控制系统中,采用高精度、高速度、低功耗的模数转换器AD7864对电流电压进行采集转换,实践证明,该电路具有良好的转换精度,运行稳定,完全能满足该系统数据采集的速度和精度要求。
[1]万山明.TMS320F281X DSP原理及应用实例[M].北京:北京航空航天大学出版社,2007.
[2]智泽英,杨晋岭,刘辉.DSP控制技术实践[M].北京:中国电力出版社,2009.
[3]4-Channel,Simultaneous Sampling,High Speed,12-Bit ADC AD7864 Analog Devices Inc[Z].2004.