微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 基于单片机的高精度智能交直流电压数据采集系统设计

基于单片机的高精度智能交直流电压数据采集系统设计

时间:07-06 来源:互联网 点击:

准确度为±(0.25 mV+0.05%RDG).允许测量有效值200 mV、频率最高达600 kHz的输入信号以及有效值1 V 以上、频率最高达8 MHz的输入信号。AD637K 的最高满量程范围是有效值7 V,由于有效值2V满量程范围能够为峰值输入(高波峰因素信号)提供更大的动态余量,所以衰减放大电路输出信号U1应控制在此范围内。电路中平均电容C1 用来设置均值时间,同时决定低频精度、输出纹波大小和稳定时间。电位器RW1和RW2分别用来对输出调零和调幅,以使输出更准确。

  2.3 A/D转换电路

  A/D转换电路如图4所示, 其中运放U8和电阻R14~R16构成同相放大电路,对前端输出的直流电压U2f≤2 v)2倍放大,将输入电压Uin的测量分辨率提高了一倍。MAX187是串行12位逐次逼近式A/D转换芯片,采用单+5 V 电源工作,内部含有片内时钟和采样/保持器,采样速率达75 kHz。其通过高速3线串行接口与单片机的I/O 口线P2.0~P2.2进行连接,接口与SPI、QSPI和Microwire总线协议兼容。SHDN接高电平,REF端对地接4.7 F的电容,这是其使用内部4.096 V 基准电压方式,AIN端输入模拟信号的电压在0~4.096 V范围内。

  

  图4 A/D转换电路图

  2.4 LCD 显示电路

  本系统采用NOKIA公司生产的5ll0液晶显示器(LCD)模块作为显示单元,完成显示当前电压值与电压类型(交流或直流)的功能,电路如图5所示。NOKIA 5110与单片机只有5根信号线连接,接口电路简单。它的通信协议是一个没有MISO 只有MOSI的SPI协议,传输速率高达4 Mb/s, 可全速写入显示数据而无等待时间,可以采用单片机软件程序模拟。SPI接15写数据/命令时序(传送1 B)如图6所示。

  

  图5 LCD显示电路图

  

  图6 NOKIA5110串行总线协议

  3 系统软件设计

  3.1系统软件总体流程

  系统软件总体流程图如图7所示,为便于程序的移植、调用和调试,采用了模块化程序设计思想对不同特定功能的模块分别进行编程。单片机上电先进行程序初始化,完成对 K1~K5继电器、MAX187和NOKIA5110的硬件设置,以及单片机内部系统中断和系统变量的初始化。接着选择最高量程(将PI.4~P1.0 口线状态置为011l1),启动A/D转换对待测信号进行采样和作数据处理计算,并判断量程是否合适。超量程阈值和欠量程阈值分别取为4000和400,对应ADC输入电压分别为4V和0.4V。若当前量程合适,则对处理后的数字量作标度变换和误差校准后得到被测电压值,并在LCD上显示电压类型、有效值和单位等信息。反之,则进行量程切换,找到一个新的最佳量程,下次测量就在新选择的量程下进行。在判决时,若量程为最低档时仍为欠量程,则维持原量程不变化;若量程为最高档时仍为超量程,则必须采取相应的过载处置措施。

  

  图 7 系玩软件总体流程图

  3.2 采样数据的数字滤波

  对 A/D采样后数据进行处理时,先后运用了程序判断滤波法和滑动平均滤波法,前者用来剔除掉因随机干扰、误检测或系统不稳定等偶然因素引起的尖脉冲干扰信号,后者用以抑制数据中可能出现的周期性干扰成分如无线电波引起的高频干扰。程序判断滤波算法是根据实践经验判断,确定出相邻采样允许的最大偏差值DT(这里取值为8),当每次检测到新值时判断:如果本次值与前次值之差的绝对值小于或等于DT,则本次采样值有效;相反则放弃本次值,取前次值代替本次值。如下式所示:

  

  在排除脉冲干扰后,利用滑动平均滤波算法对数据作进一步处理。其把连续N个采样值(这里,N=10)看成一个长度为N的队列,每采样到一个新值放入队尾,并扔掉原来队首的一个数据,然后对队列中的N个数据作算术平均运算,获得新的滤波结果,此数据用来阈值甄别和作标度变换。

  3.3 系统误差的校准算法

  由于系统电路的基准误差、放大器的零点漂移与偏移、增益误差和非线性等非理想特性会引起系统误差,为了提高测量精度,采取了以下算法进行误差校准和补偿。设等精度测量得到 组电压样本数据(Xi,Yi),其中:i = l,… ,M ,Xi和Yi 分别为标度变换后电压值(测量值)和实际值(由高精度电压基准源产生)。利用最小二乘法把测j导数据作Y=aX+b 线性拟合,根据样本数据偏差的加权平方和最小原则,得系数a、b的数学表达式如下:

  

将各校正点数据(Xi,Yi) (这里M 取值为6)代入上两式得到系数a、b的值,并存人单片机的内存单元中。在正式测量时,根据测量值 和误差校正方程Y=aX+b求出校正值Y,从而消除系统误差。由于量程不同时系统误差也不一样, 因此需要在各量程分别进行上面的处理,以获得不同量程的最

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top