ARM单片机交流采样技术及应用
发布时间:2023-09-29 07:19:12 相关技术专题 作者:wangspower浏览:
要实现高精度的测量要求应该使用DSP或32位单片机,DSP的价格较高,所以最好的选择是使用32位单片机。现在的32位单片机价格已经很低,以NXP公司的LPC2132为例,价格仅为十元左右,足见其性价比之高。唯一的缺点是开发难度太大。不过32位单片机的应用是大势所趋,开发难度大只是入门的时候门槛较高,一旦入了门,以后的工作就简单多了。
LPC2132其内核为ARM7TDMI,每秒60M指令,有64KB FLASH程序存储器,16KB SRAM数据存储器,8路10位A/D转换器,片内看门狗,且FLASH程序存储器可以在应用编程相当于EEPROM,最多可达47个通用I/O口,3.3V单电源供电,LQFP64封装。
附图示出了我们的阶梯式无功补偿控制器的电压、电流采样部分。使用LPC2132作为核心控制器件。
从图中可以看出信号检测部分非常简单。交流电压与交流电流经过几个取样电阻的分压处理送至LPC2132的A/D转换输入端AD0.0和AD0.1,AD0.0和AD0.1端的信号是幅值在0~3.3V之间的脉动直流。这个输入取样电路简单至极,既没有整流也没有滤波,更没有运算放大器,因此输入电路的精度与稳定性唯一地由电阻的精度与稳定性决定,非常容易处理。不过这种电路结构对软件设计的要求非常高,需要相当复杂的软件来实现检测功能。
提到测量精度,大部分人首先想到的就是A/D转换器的精度,其实测量的精度还与采样速度与算法息息相关。对于LPC2132的10位精度A/D转换器,大部分人认为其测量的最大精度1/1024。其实只要选择足够高的采样速度和恰当的算法,完全可以实现高得多的测量精度。由于输入信号是一个叠加直流成分的交流信号,是不断变化的,如果我们将一个信号周期平均分成若干个小区间,则在每一个小区间内的信号近似为一个梯形信号。假设我们只有一个一位的A/D转换器,它的转换器输出只能是0或者1,如果在某一区间的起始处采样值为0,在区间的末尾处采样值为1,根据这两个采样值我们可以进行平均值计算确定这个区间的采样平均值为0.5。如果我们在这个区间的中心再进行一次附加采样,那么这次附加采样的值可能为0或1。如果附加采样值为0,那么这个区间的采样平均值为(0+0+1)/3=0.33。如果附加采样值为1,那么这个区间的采样平均值为(0+1+1)/3=0.67。如果我们在这个区间里一共进行了10次采样,那么这个区间的采样平均值就可能是0.1、0.2、……0.9、1.0。如果我们在这个区间里一共进行了100次采样,那么这个区间的采样平均值就可能是0.01、0.02、……0.99、1.00。由此我们可以看出,提高采样速度也是提高测量精度的有效手段。这也是由量变到质变的过程。
由于LPC2132的A/D转换器为10位二进制精度,考虑交流电的正负半周后实际的采样数值范围在-512~+512之间,只有9位二进制精度。如果选择采样时间间隔为50微妙,即相当于每个工频周期采400个样,使用有效值计算方法,计算400个样本的平方和再取平均值再开方,由于有效值与400个采样值有关,因此计算结果的精度比A/D转换器精度至少可以提高一个数量级。
根据我的实际经验,使用上述的电路结构与测量算法,可以得到1/10000的测量灵敏度,即相当于在电流互感器一次电流为1000A的情况下,可以分辨0.1A的电流变化。
注:我开发的所有控制器、检测仪等均采用交流采样技术!