摘 要:本文介绍了20位串行A/D芯片LTC2420的特点及使用,并以其在DCS系统中应用为例,介绍其设计实现,给出了关键点的电路设计图,对实际使用的一些关键点和使用技巧都做了
较详尽的叙述。使用LTC2420来设计模拟量采集电路,完全满足工业控制现场对精度和速度等指标的要求,并且使用灵活,易于功能升级,具有较好的应用前景。
关键词:LTC2420; A/D;串行数据;时钟;采样速度
引言
在工业现场,大量需要控制和监测的物理量都属于模拟量。因此,在工业控制系统中,模拟量信号的采集占据重用地位。
LINEAR公司推出的20位ADC芯片LTC2420,采用delta-sigma结构,内部集成有采样-保持电路和数字滤波器,可以实现从-12.5%~+112.5%量程信号的采集。芯片采用SO8封装,占用面积小,使用单电源供电,共模抑制能力达110dB,适合应用于有较高要求的工业现场控制,实现对模拟电压或电流信号的采集。同时,LTC2420的使用非常灵活,可以适应不同控制场合的不同要求。下面以LTC2420在DCS系统中的使用为例,介绍其设计和应用。
主要指标及引脚功能
LTC2420的主要技术指标如下:
⑴单电源+2.7~+5.5V供电,典型供电电流200 A,在睡眠状态下仅20 A;
⑵三线串行接口,兼容SPI和MICROWIRE;
⑶24位串行数据输出,包括四位状态数据和20位A/D转换数据;
⑷0.5ppm的漂移和4ppm的满量程误码;
⑸使用内置时钟电路或外接时钟输入,采样频率可选择;
⑹内置数字滤波器,截止频率可选择设置;
⑺内置上电复位电路,保证芯片上电即可可靠的工作;
⑻与24位A/D芯片LTC2400管脚完全兼容,可方便升级设计指标。
LTC2420的引脚排列见图1。各管脚主要功能介绍如下:
⑴VCC :正电源引脚,允许范围+2.7~+5.5V;
⑵VREF :参考电源输入端,允许范围为0.1V~VCC;
⑶VIN :模拟信号输入端,允许范围为-0.125VREF~+1.125 VREF;
⑷GND:模拟、数字和参考电源、输入信号的公共接地点;
⑸/CS :片选信号,低电平有效。/CS信号由低变高则禁止串行数据输出,同时启动一次新的转换;当/CS信号保持为高电平时,一次转换结束后,芯片自动进入睡眠状态;/CS信号变为低电平将唤醒芯片,同时允许SDO端的串行数据输出。
⑹SDO:三态串行数据输出端。在一次A/D转换过程中和睡眠状态下,SDO脚输出A/D转换状态供系统查询,当/CS为高电平时,SDO为高阻态。
⑺SCLK:串行时钟信号输入/输出脚。在系统上电和/CS信号的下降沿时,如果SCLK脚接高电平,则SCLK作为内部移位时钟的输出脚,如果SCLK脚为低电平,则芯片被置为外部SCK模式,SCLK脚作为外部移位脉冲的输入脚。芯片内部的一个弱上拉会自动将芯片设置为内部时钟方式。
⑻F0 :频率控制脚。当F0= VCC或GND时,芯片使用内部时钟电路,且数字滤波器的截止频率设定为50Hz或60Hz;当F0接外部时钟(频率为f外)时,则A/D转换器采用该时钟信号,且数字滤波器的截止频率设定为f外/2560。
图1 LTC2420管脚排列(略)
在使用内部振荡电路的典型应用中,LTC2420的采样频率为7.5次/秒。外接时钟输入时,采样频率的计算公式为:采样频率= f外/20480。当采样频率达到50次/秒时,它的总失调误差优于16位。当采样频率达到100次/秒时,如果参考电源小于2.5V,其总失调误差优于15位。由以上介绍可以看出,通过对芯片的不同设置,LTC2420可以灵活的满足不同应用场合的要求。
串行数据格式及移位操作
LTC2420输出24位串行数据,其中前四位为数据状态位,后20位为A/D转换数据,高位在前。各数据位定义介绍如下:
Bit23:转换状态指示位(EOC)。当/CS变为低电平时,EOC位总是出现在SDO脚。在一次A/D转换过程中,EOC总为高,在转换结束后EOC变为低。
Bit22:DMY位,总为低。
Bit21:SIG位。如果输入信号小于0则SIG为低,如果输入信号大于0则SIG为高。SIG位在转换结果全为0时改变状态。
Bit20:EXR位。如果输入信号值在正常范围内,即0≤VIN≤VREF,则EXR为低;否则EXR为高。
Bit19-0:20位A/D转换结果。
24位串行数据的各种组合可见表1。
表1:LTC2420输出数据格式(略)
由以上介绍可知,通过状态位和20位数据位的组合,即可判断输入信号的量程情况,并将串行数据转换为需要的形式,不需附加任何电路,即可方便的实现超量程报警,这对于工业控制有非常重要的实际意义。
串行数据从SDO脚输出,由SLK信号控制。当/CS为高时,SDO为高阻态,此时SCK信号不起作用。当/CS变为低,Bit23(EOC位)即出现在SDO脚,且可以在第一个SCK脉冲的上升沿被锁存,供CPU读取;在第一个SCK信号的下降沿Bit22移位到SDO脚,在第23个SCK信号的下降沿Bit0(最低位)移位到SDO脚,并在第24个SCLK信号的上升沿被锁存,在第24个SCLK信号的下降沿SDO脚变为高阻态,芯片开始下一个转换周期。
LTC2420采用3线串行接口与CPU通讯,兼容SPI和MICROWIRE两种接口方式。但是,它也可以采用两线控制方式来工作,以减少系统的接口连线,此时A/D转换数据的输出移位只能由外部SCK信号控制,/CS信号接地。由于/CS信号始终为低电平,EOC位将一直输出在SDO脚,EOC=0表明芯片已经完成一次A/D转换,并随即进入睡眠状态。外部SCK信号的第一个上升沿可以唤醒芯片,在每一个SCK信号的下降沿转换数据移位到SDO脚输出,在SCK的上升沿允许外部电路锁存输出数据。最后一个SCK信号的下降沿使SDO脚变为高阻并立即启动一次新的A/D转换。
图2 输出数据时序(略)
LTC2420的输出时序见图2。在两线串行接口方式,/CS信号始终为低,可以不予考虑,A/D转换的启动等控制均由SCK信号来实现。
LTC2420与CPU的接口非常简单,这里不再赘述。需要指出的是,它允许的SCK信号频率低于2MHz即可。因此,可使用标准串行口作为接口,又可使用标准I/O口来模拟生成SCK信号,使用非常方便。同时,在实际应用中,对于多通道信号的采集,可以通过一个多路开关切换扫描,实现一个CPU对多路输入信号的采集。
工程实践
下面以在一个DCS控制系统中,使用一个51单片机控制16个LTC2420芯片,实现的16通道,精度优于0.1%的模拟量信号采集单元为例,介绍其具体应用。
系统框图见图3。
图3 现场采集单元框图(略)
在实际设计中,CPU选用89C55芯片,该芯片内置32K程序存储器,只需外扩一片数据存储器和简单的译码电路,即可实现整个控制功能。同时用C51软件编制程序,使用简单且调试、修改都非常方便。使用两片74LS273来锁存输出16路SCK信号,分别控制16路A/D芯片。16路SDO信号经两片74LS251的切换,输出到CPU的I/O口来实现转换数据的读取。
在一般的A/D转换电路设计中,都要特别注意参考电源的选择,参考电源的精度直接决定了A/D转换的精度情况。但由于LTC2420在全量程范围内有极好的线性,因此只需选用温度特性较好的稳压管即可,对精度可以不做很高要求。同时,LTC2420在参考电源为+2.5V附近有最小的总失调误差,因此实际设计中选用2.5V稳压管LM385,它的输出电压精度为
3%,温度特性为 20ppm/℃。转换数据经过修正完全可以满足精度要求。精度校正按以下步骤进行:
1、输入标准满量程信号(本实例中为+2.5V)得到转换数据DATAMAX;
2、计算校正系数:如满量程数据超量程上限(SIG=1,EXR=1),则校正系数=FFFFF/(100000H+DATAMAX);如满量程为量程内正常数据(SIG=1,EXR=0),则校正系数=FFFFF/DATAMAX。
3、校正系数验证:给通道输入某几个量程点的标准信号,比如零量程、半量程和满量程等,将实际采集数据乘以校正系数,即得所需数据,以验证校正系数的有效性。在实际应用中,可以进行多次校正,以各校正系数的算术平均值为最终校正系数,可以得到更好得校正效果。
为保存各通道的校正系数,在设计中增加一片EEPROM芯片AT24C01。对以上校正过程,可以编制专门的校正软件,在校正操作完成后做相应的校正正常或异常指示,即可实现采集单元的自动校正。AT24C01为两线串口操作,如果在实际软件设计中增加精度校正部分内容,输入标准信号,即可实现现场随时校正。
由于一般工业控制场所的模拟量信号均为温度、流量等缓慢变化的物理量,对采集速度的要求不高,因此设置LTC2420采样频率为7.5次/秒,16个通道的数据采集采用循环扫描方式。首先检查该通道EOC位状态,如果EOC=0,表明该通道已经转换完毕,将该通道的SDO信号切换至CPU的I/O口,读取转换数据并处理;如果EOC=1,表明该通道尚未转换完成,则继续扫描下一个通道。由于16个通道数据采集、处理的时间总和小于100ms,可以保证各通道每秒7.5次的采集速度。
在实际的软件设计中,为提高数据采集处理速度,充分利用了51系列芯片的位寻址功能,使用以下方法进行变量定义:
BYTE bdata AD_Data[4];
sbit d23 = AD_Data[0]^3
sbit d22 = AD_Data[0]^2;
sbit d21 = AD_Data[0]^1;
sbit d20 = AD_Data[0]^0;
sbit d19 = AD_Data[1]^7;
sbit d18 = AD_Data[1]^6;
… …
sbit d1 = AD_Data[3]^1;
sbit d0 = AD_Data[3]^0;
说明如下:首先定义一个含四个元素的字节型数组,存放于可位寻址区,用于保存读取的20位A/D转换数据和四个状态位,再定义24个位变量对应该数组中元素的每一位。这样在读取SDO的输出数据时,只对位变量进行操作即可,数据读取完成后,根据状态位提供的信息,将三字节的A/D转换数据组合后,赋值给临时变量进行数据转换和精度校正等操作,可以使程序处理时间降到最少。同时,对于由输出口模拟的SCLK信号和SDO切换控制信号的处理,均按同样的方式进行变量定义和操作,充分发挥51单片机的优势,提高软件处理速度。
经过精度校正,该采集单元的实际采集精度在常温和45℃老化温度下,达到了优于0.08%的精度,完成了设计要求。同时,如果对输入的信号使用分压网络处理或转换电路,则可以实现对其他范围的电压信号或电流信号的采集。
结束语
工业控制中的很多场合都希望控制部分与现场之间及各采集通道间能够实现完全的电气隔离,以提高整个系统的可靠性。在上面的设计实例中,如果对每个通道的采集部分使用隔离电源供电,同时将SCK和SDO信号用光耦进行隔离,即可实现此要求。同时,LTC2420是LTC24XX系列芯片的一种,LTC2400为24为A/D转换芯片,它们的管脚完全兼容。不用对硬件设计进行任何修改,只需调整软件的数据采集处理部分,即可通过更换芯片,来适应更高的控制要求,使系统设计具有良好的可升级性。
|