李小龙 郭佑民 陈鹏 马超
【摘要】通过对目前电子秤特点及发展趋势进行分析,从高精度的三个关键技术出发,设计了一种以STM32作为主处理器的电子称,对电子秤的工作原理以及系统结构框图进行了重点阐述。一些重要电路进行了设计,该设计采用内部集成24位A/D转换器和放大器的称重传感器专用芯片HX711对称重传感器输出的小信号进行处理,提高了电路的稳定性。为了降低了电路的复杂程度,得到准确稳定的测量结果,采用了中位值平均滤波法。
【关键词】高精度;电子称;STM32;HX711
Design of a high precision electronic balance
Lan Zhou Jiao Tong University Mechanical and electrical technology research institute LI Xiao-Long GUO You-Min CHEN Peng MA Chao
Abstract:Based on the analysis of electronic scale characteristics and its development trend and three key technologies of the high-precision,an electronics balance is designed with a STM32 host processor,while the work principle and block diagram of the system of electronic scales are highlighted.As well,some important circuits are designed.In this design,the stability of circuits is improved by using HX711 which integrates a 24 bit A/D converter and an amplifier.In order to reduce the complexity of the circuit and to have an accurate and stable measurement results,a median average filtering method is used.
Key words:high precision;Electronic Balance;STM32;HX711
1.引言
电子秤总的发展趋势是小型化、模块化、集成化、智能化;其技术性能趋向是速率高、准确度高、稳定性高、可靠性高;其功能趋向是称重计量的控制信息和非控制信息并重的“智能化”功能;其应用性能趋向于综合性和组合性[1]。
目前,国内生产的电子秤,电路集成度低,大部分都采用分离的A/D转换器加放大器的电路,并采用模拟电路实现非线性修正和温度补偿,存在电路复杂、准确度低、可靠性差等一系列问题。国外生产的一些电子秤能够达到较高的准确度和可靠性,但他们使用的称重传感器的成本都非常高,这样就使得整机的成本过高。
由于这些不足之处的存在,本研究设计一种高精度、低成本的电子秤。该设计采用HX711芯片对传感器输出的信号进行放大和模数转换,采用中位值平均滤波法进行滤波。
2.电子秤工作原理
当物体放在秤盘上时,压力施加于称重传感器,称重传感器就会发生形变,从而使阻抗发生变化,同时激励电压也发生变化,输出一个变化的模拟信号。由于该模拟信号比较弱,因此要经放大电路放大后输出到模数转换器,转换成便于处理的数字信号输出到主控制器,主控制器根据键盘命令以及相应的程序将这种结果进行处理并输出到显示器[2]。
图1 系统结构图
系统设计结构图如图1所示。
HX711是一款专为高精度电子秤而设计的24位A/D转换器芯片,降低了电子秤的整机成本,提高了整机的性能和可靠性。芯片内提供的稳压电源可以直接向外部传感器和芯片内的A/D转换器提供电源,因此,系统上无需另外的模拟电源。
MAX7219是一种集成化的串行输入\输出共阴极显示驱动器,它连接微处理器与8位数字的7段数码管的LED显示,整个设备包含一个150μA的低功耗关闭模式,模拟和数字亮度控制,一个扫描限制寄存器允许用户显示1-8位数据,还有一个让所有LED发光的检测模式[3]。
3.高精度电子秤的实现技术
实现高精度电子秤的主要技术有三个方面:准确采集信号、准确量化和低噪准确的供电系统。
3.1 信号采集
称重传感器作为电子秤主要的部件之一,其性能直接决定了电子秤的准确性和稳定性。电子秤采用电阻应变式称重传感器作为物体质量的电信号转换器。电阻应变式传感器将四个电阻应变片贴在弹性敏感元件,然后以适当的方式组成惠思登桥式电路,当称重传感器不受载荷时,弹性敏感元件不发生应变,贴在其上的应变片不发生形变,应变片的电阻不变,电桥平衡,输出电压为零;反之,传感器输出与被测载荷重量成比例的电压信号[4]。
称重传感器属于力敏感传感器的范畴,电量的大小在变形体结构类型和材料确定的前提下,仅与材料受力的大小有关,从而实现力和电量之间的转换。由电桥电路原理,得出应变片电压输出e0的大小是与外界所加电压E、应变片系数k0及应变量大小ε成正比的,即e0=Ek0ε/2。直接测量当重物放到衡器上时,传感器输出响应的模拟电压信号。
3.2 信号量化
由于传感器输出的模拟信号比较微弱,因此必须通过一个模拟放大电路对其进行放大,才能满足A/D转换器对输入信号电平的要求。目前的电子秤多采用分离的A/D转换器以及放大器组成相关电路,分别对传感器输出的模拟信号进行处理。这样,不但增加了电路的复杂程度,从而使得电路的稳定性降低,并且容易受到外界环境的干扰。对于精度要求高的电子秤来说,这种由于电路复杂度造成的不稳定性会更加明显。
图2
为了避免以上问题,本文采用了一款专为高精度电子秤而设计的24位A/D转换器HX711芯片。与其他芯片相比,该芯片集成了放大器、稳压电源和片内时钟振荡器等其它同类型芯片所需要的外围电路,具有响应速度快、抗干扰性强等优点,降低了电子秤的制作成本和电路的复杂度,提高了测量结果的可靠性。其原理图如图2所示。
该方案使用内部时钟振荡器(XI=0),10Hz的输出数据速率(RATE=0)。电源(2.7~5.5V)直接取用与MCU芯片相同的供电电源。片内稳压电源电路通过片外PNP管S8550和分压电阻R1、R2向传感器和A/D转换器提供稳定的低噪声模拟电源。稳压电源的输出电压值(VAVDD)由外部分压电阻R1、R2和芯片的输出参考电压VBG决定,VAVDD=VBG(R1+R2)/R2[5]。
3.3 低噪稳定的供电系统
低噪声稳定的电源系统是高精度电子秤必不可少的,低噪声电源系统是实现以上两个关键技术的基础。可以采用AMS1117系列芯片及外围电路来实现,如些图3所示:
图3
AMS1117是一个低漏失电压调整器,它的稳压调整管是由一个PNP驱动的NPN管组成的,漏失电压定义为:VDROP=VBE+VSAT。片内过热切断电路提供了过载和过热保护,以防环境温度造成过高的温结[6]。
3.4 其他一些关键技术
3.4.1 高时钟频率低功耗的单片机STM32
需要称重的物体经过传感器得出的模拟电压信号经过A/D转换后得到数字量并不是重物的实际重量值,实际重量值需要由数字量在显示器内部经过一系列的运算才能得到。这一系列的运算是由装在电子秤中的主控制器来完成的;电子秤的整个工作过程也都是在主控制器的控制下进行。
目前的电子秤多采用51单片机这类功能较简单、时钟频率较低的单片机,这样,就存在称量速度慢、不易扩展复杂功能的弊端,为此,该设计采用目前面上使用广泛的以ARM Cortex-M3为内核的STM32单片机作主控制器。
该设计采用的STM32F103系列单片机,该芯片有高性能的ARM Cortex-M3 32位的RISC内核,工作频率为72MHz,内置高速存储器,丰富的增强I/O端口和联接到两条APB总线的外设。供电电压2.0V至3.6V,一系列的省电模式保证低功耗应用的要求[7]。
实验结果表明,采用STM32为主控制器的电子秤,称量速度快,充分预热后,10s左右即可达到稳定读数。
3.4.2 中位值平均滤波法
传感器输出的信号不但微弱,而且往往具有各种无益的杂波。因此,在传感器输出与放大电路之间往往采用滤波电路或者一些电抗元件来改善脉动成分。为了改善电路复杂度,降低功耗,提高电路稳定性,没有采用硬件滤波的方法,而是将A/D转换器输出的模拟信号直接转换成数字信号,再进行数字滤波的方法,从而降低了电路复杂度,提高了设计的稳定性。此外,该设计采用的是中位值平均滤波法。
中位值平均滤波法又叫防脉冲干扰平均滤波法,相当于“中位值滤波法”+“算术平均滤波法”,连续采样N个数据,去掉一个最大值和一个最小值,然后计算N-2个数据的算术平均值,N值的选取:3~14。滤波公式为:
式中:—滤波后的结果,—第i次的A/D转换结果,MAX—N个数据中的最大值,MIN—N个数据中的最小值。
中位值平均滤波算法融合了两种滤波法的优点,即能有效克服因偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差;适用于对一般具有随机干扰的信号进行滤波,这种滤波的特点是有一个平均值,信号在这一数值范围附近上下波动[8]。
具体滤波程序代码如下:
#define N 12
char filter()
{
char count,i,j;
char value_buf[N];
intsum=0;
for (count=0;count { value_buf[count]= get_ad(); delay(); } for (j=0;j { for (i=0;i { if (value_buf[i]>value_buf[i+1]) { temp=value_buf[i]; value_buf[i]=value_b uf[i+1]; value_buf[i+1]=temp; } } } for(count=1;count sum += value[count]; return (char)(sum/(N-2)); } 为了观察滤波效果,编写了STM32的串口通信程序,并用串口连接到电脑,通过串口调试助手显示单片机从芯片HX711转换得到的数据。对传感器突然施加一个压力,模拟脉冲干扰后,可得到转换器转换后的读数,没有滤波算法的读数如图4所示,有滤波算法的读数如图5所示。 在图4、图5中,总共读数50个,每过1000ms读一次,在第2行第1个数据时,突然加一个压力在称重传感器上,然后,马上撤去压力,以此来模拟脉冲干扰。 从上图中的数据可以看出,当不加滤波算法时,在有外界脉冲压力干扰时,第2行第1个读数,突然变大为10253361,当外界脉冲压力后,经过连续读入几个数据后慢慢恢复到以前的稳定读数。可见,在没有滤波算法进行滤波时,读数的变化是陡变的。而在有滤波算法时,几乎没有变化。有滤波算法时,在外界脉冲压力干扰的整个过程中数据的波动范围不超过384,比没有滤波算法的波动范围4068143小了很多。而且,在有滤波算法时,数据变化缓慢,对读数几乎没有影响。可见,中位值平均滤波算法有很好的抑制脉冲干扰的作用。 4.实验结果 为了验证电子秤的准确性,对载荷为150g的砝码进行10次重复检定,电子秤重复性检定结果如表1所示。由表1可见,最大误差为0.04g,满足设计要求。 表1 重复性检定实验结果 序号 载荷/g 示值/g 序号 载荷/g 示值/g 1 150.00 149.98 6 150.00 149.96 2 150.00 150.02 7 150.00 149.98 3 150.00 150.04 8 150.00 150.01 4 150.00 150.02 9 150.00 149.98 5 150.00 149.97 10 150.00 150.02 电子秤示值误差检定结果如表3所示。本研究选取了0g、5g、10g、20g、50g、100g、150g、200g等8个不同的测量点。实验方法是:载荷从零开始,逐渐地往上加载,直至加到最大砝码,然后逐渐地卸下载荷,直到零载荷为止。由表2可见,电子秤的最大示值误差为0.04g,满足设计要求。 表2 示值误差检定实验结果 序号 载荷/g 加载时示值/g 卸载时示值/g 误差/g 1 0.00 0.00 0.00 0.00 2 5.00 5.02 5.00 0.02 3 10.00 9.98 10.01 -0.02 4 20.00 20.03 20.04 0.04 5 50.00 50.01 50.01 0.01 6 100.00 99.96 99.99 -0.04 7 150.00 150.01 150.03 0.03 8 200.00 199.98. 200.00 -0.02 5.结束语 本研究对电子秤的基本工作原理进行了深入学习研究,并且通过查找资料发现目前市的电子秤精度较低、成本较高等问题。为此,本文设计了一种基于STM32的高精度、低成本的电子秤,并且应用了专为高精度电子秤而设计的24位A/D转换器HX711芯片和中位值平均数字滤波算法,简化了电路连接,提高了电路的稳定性。通过实验结果表明,该电子秤反应灵敏,10s左右即可达到稳定读数,而且性能稳定、重复性好、准确度高。 参考文献 [1]马元群.智能型、大量程、精密电子天平设计[J].2009. [2]赵总社.关于电子秤的工作原理及应用[J].黑龙江:哈尔滨市计量检定测试所,2007. [3]郭怀天,李宝华.基于电阻应变式称重传感器的电子天平的研制[D].长春:吉林大学电子科学与工程学院,2006. [4]潘佑华,林盛鑫.基于51单片机的多功能电子秤设计研究[J].广东:东莞理工学院,2012. [5]罗及红.一种高精度电子秤的设计[J].计算机测量与控制,2012. [6]潘学军.应变式非平衡电桥与电子称[J].四川师范大学学报,2000. [7]严芳芳.基于单片机控制的电子秤设计[J].山西:太原大学计算机系,2013. [8]许晓彤.基于单片机的电子秤设计[J]河北:承德承申自动化计量仪器有限责任公司,2012. 作者简介: 李小龙(1988—),男,甘肃平凉人,硕士研究生,研究方向:机电设备控制人与检测技术。 郭佑民(1968—),男,兰州交通大学教授,硕士生导师,主要研究方向:嵌入式系统与设备控制。 陈鹏(1991—),男,甘肃陇西人,硕士研究生,主要研究方向:企业信息化。 马超(1988—)男,河北石家庄人,硕士研究生,主要研究方向:物流信息调度优化。