热度 20
2012-6-17 11:06
3201 次阅读|
5 个评论
手上有块TI的LM3S811开发板,虽然不是专业的ADC,但其包含4通道的ADC,采样率500kbps,10位分辨率,可以量程在-1.5V~1.5V或0V~3V,还有一路模拟比较器,应该足可以测量交流有效值了,就看能测量到什么程度了。我手上有个项目,需测量的信号是400Hz,最大±12V,就以此为例,怎样才能最大发挥该芯片ADC测量交流有效值的能力呢? 在航空电气、自整角机、旋转变压器中都是需要同时测量几路信号,这样先得考虑该芯片是否具有同步测量的可能性,假设其中一路信号为,可用V=Acos(wt)来表示,其中A为幅度,w就是2*pi*400Hz了。ADC量程为-1.5V~1.5V或0V~3V,10bit的分辨率,最低电压分辨率为3/1024=2.93mv,500bps的采样率对应2us,呵呵,4路通道之间的间隔就是6us,如果在6us内变化小于2.93/2=1.46mv即采集的数据的误差仅ADC的分辨率决定,对于该芯片则为同步采集。对于400Hz的信号,每个周期其幅度变化1.46mv/6us/400Hz=0.6v,而该信号的幅度才1.2v,一个周期内幅度就变化至少一半,那是不可能的事情,所以理论上可以满足同步采集的要求。 测量正弦波交流电有效值有好几种方法,一种是通过二极管、电容构成的检波电路,将交流转换成直流,但该方法对400Hz这样的低频信号误差较大,放弃。一种是通过AD736这样的专用芯片测量,精度我没查数据手册,价格不便宜,放弃。一种是直接ADC采样,可以多次采集求面积,也可以只测量最大值,这种方法测400Hz的低频交流电最好了。 开始想直接测量,LM3S811有一个模拟比较器,可以很容易地知道每周期的开始,对于400Hz的正弦波信号,可以精确在其1/4周期处采集最大值,将±12V的交流信号利用电阻分压成±1.2v,对于±1.5的量程,还留有25%的余量。但对于正弦波这样对称的波形,就浪费了一半的信息,能够测量的电压分辨率只有3V/1024=2.93mv,对应到交流信号为2.93mv*10=29.3mv。 接着想到采用多次采样求面积的方法,对于绝大部分信号可以通过多次采样提高精度,也可在软件算法上加上抗干扰措施,但对于幅度小于29.3mv的信号就无能为力了。 既然交流信号是对称的,如果只采集上半波,将上半波扩充到整个ADC量程内,精度则可提高一倍。但二极管单向导通不能以0为界限精确半波整流,需要0.7v以上才能导通,而且相对于原始信号存在0.7v的误差,呵呵,这可比上述的29.3mv严重多了。想了几天,既然不能够精确地以0v为界来划分,那可以以-0.7v乃至-1v划分,后面在软件中修正,至少ADC采集的信号要精确。 如图1,T3是电阻分压后的信号,T4是调理后的信号,虽然翻遍了LM3S811的datasheet没看到其ADC的输入电压极限值,目前也没有测试如果在设置0v~3v的情况下输入负电压会怎么样,但我想其可以测量0v~3v和-1.5v~1.5v,输入-1v~3v的电压应该没有问题,负电压要是直接当0v处理,那倒免得我在软件上修正了。该方法如果可行,测量信号的精度应该为14.6mv,对应的交流电压就是10mv了,呵呵。 图1 原理图 图2 瞬态分析图 综上所述,如果交流信号频率变化,那可以多次采样求面积。如果交流信号是频率固定的,而且频率不高,这种情况也是最常见的,利用模拟比较器可精确地算出周期,其ADC采集信号时也只需在1/4周期处测量最大值即可,这样计算也少,精度也能满足,同时认为是同步采集的,对于有效值为15/1.414=10.6v以下的信号,精度可以达到10mv,达到了10位ADC的极限,物尽其用了。