基于CH32高精度称重数据采集系统的设计与实现
2023-06-12甘辉吕美妮王奎奎倪茂森
甘辉 吕美妮 王奎奎 倪茂森
关键词:CH32;称重数据;温度采集;数字滤波;Qt上位机
0 引言
随着科技的快速发展,传感器技术[1]、单片机技术给人们的生活带来了越来越多的便利,称重系统在日常生活中已经成为人们不可缺少的一部分[2]。因此人们对称重采集系统的需求也越来越高,要求更高的精度和稳定性。影响称重系统精度的因素有很多,比如温度变化、湿度变化、蠕变、侧载荷和偏心荷、传感器的安装[3]等。因此设计一个高精度称重数据采集系统具有非常重要的意义。本设计通过下位机同步采集环境温度和称重重量数据,采用自定义传输协议发送数据到电脑Qt编写的软件系统,完成高精度称重数据采集。
1 方案设计
本系统由下位机和上位机组成:系统组成框架如图1所示。1) 下位机称重数据采集:称重传感器采用单点压力C3精度的传感器,称重范围最大为3kg。2)放大转换电路:其核心是具有差分通道输入内部自带128倍增益的24位模数转换器TM7711芯片。3) 主控采用32位单片机CH32,为了保证数据有效传输,CH32通过串行通信协议获取TM7711转换完成后的24位数字电压数据。4) 下位机温度数据采集:温度传感器采用DS18B02。5) 下位机和上位机数据传输:采用串行通信的方式,以自定义数据传输协议打包传输称重、温度数据。6) 上位機软件系统:实现数据显示、功能控制、数据存储等功能。
2 硬件设计
系统整体电路如图2所示:1) 电源电路采用直流5V电源输入,通过500mA保险丝,经C1电源滤波给系统供电。5V电压经三端线性稳压管U1 CE6219输出3.3V 电压给主控电路供电。2) 主控芯片采用CH32V103C8T6,该芯片是基于RISC-V[4]内核的32位通用控制器。系统时钟倍频到72MHz,可满足系统需求。3) 通信及程序下载电路采用CH340E芯片设计,可以实现USB供电、数据通信、一键下载功能。4) 称重传感器内部是由4个250欧姆电阻组成的电桥[5,6],电桥采用模拟电源5V供电。其两路差分信号一路输入TM7711的AIN+引脚,一路输入AIN-引脚。5V数字电源电压经过1mH的电感滤波后作为5V的模拟电源,给TM7711供电和基准电压,其DOUT、PD_SCK引脚分别连接CH32单片机的PA3、PA4引脚实现数据通信。数字电源地与模拟电源地用0欧姆电阻R8隔离[7]。5) 温度采集电路核心是DS18B20温度传感器,其工作温度从-55℃至+125℃,精度为正负0.5℃[8],通过单总线协议与CH32单片机进行数据交互。
3 软件设计
系统运行主要是称重数据采集、数据传输格式、上位机系统功能及逻辑实现。
1) 称重数据采集:其核心是CH32如何与TM7711数据交互。首先TM7711的数据读取需要根据以下图3时序进行完成。将CH32连接的DOUT引脚首先作为输入引脚,检测引脚是否为高电平,若为高电平则说明数据没有转换完成,反之数据转换完成,然后通过PD_SCK上升沿触发TM7711从MSB至LSB依次输出24位AD转换数据,给够25个脉冲确保下次转换为差分通道输入、增益为128倍,数据输出频率为10Hz。
2) 数据传输格式
数据传输格式是上下位机数据交互的核心,数据传输采用串口通信,波特率设置为115200、8位数据、无奇偶校验、一个停止位[9]。因传输浮点型时会随着数据变动使得每次传输的字符串长度改变,给发送、接收数据增加难度,降低传输效率。为了提高数据传输效率经分析传输数据:称重数据实际占用内存为24位,温度数据为16位,可用共用体的方式拆解成8位,且符合串口一次发送8位数据的方式,以此可每次固定发送6个字节的数据,上位机再用共用体的方式还原出有效的24位称重数据,16位温度数据。数据通信格式如表1所示。
3) 上位机软件系统:上位机操作界面由Qt软件开发,主要完成与下位机的数据通信及相关功能操作如图4所示。①显示功能:显示实时的重量AD数据、转换后的实际重量、标零时刻的重量数据、实时系统环境温度。②标零:点击“零点标定”设置重量为0g时刻系统重量AD数据。③标定:手动放置标准砝码称重后输入砝码重量并点击“砝码标定”;④存储:实时将系统数据存储至Excel表格中。⑤去皮:将当前秤盘上所放的重量认定为0g,取消去皮则将皮重物品重量重新统计。⑥其他功能:手动读取、定时读取、显示数据等功能。
4 测试与分析
系统在21.6℃环境下,以2 000g砝码进行标定。由于系统在温度快速变化的过程中,采集到的数据正负波动较大,为了能够获有效数据,将其放置于稳定温度环境下,并对标准砝码重量进行采样。采样数据如表2、表3所示。
根据表2的数据可知,系统最大误差达在空盘8℃时为1.311g,在21.6℃、21.9℃时为0.05g,35.5℃时为1.261g。由上可知:系统在标定温度附近时,称重误差较小;系统与标定温度相差较大时,称重误差较大。根据表3的数据可知,系统最大称重误差在6℃时为0.5g,21.9℃时为0.05g,35.1℃时为0.02g。由此可知与表2所得结论一致。
分析表2、表3系统称重重量不同时,温度对系统的影响可知:当称重物品重量较重时,称重误差受到温度影响较小。原因分析:称重传感器在此状态下形变量较大,温度变化对其影响比重变小,所以误差小。当被称量物品重量较轻时,受到温度影响较大。误差较大原因分析:称重传感器此状态下形变量较小,温度变化对其影响比重变大,导致误差变大。所以称量较轻物品时,为了确保称重的精度,如温度与标定时温度相差较大,应该对系统重新标定。
根据表4的数据可知,系统在运行30分钟时,最大误差为0.05g,在系统运行120分钟后,最大误差为0.10g,运行160分钟后最大误差为0.2g。由此可知系统在运行时间较短的情况下空盘和2 000g误差精度能达到0.05g,在运行较长时间后误差为0.2g。误差分析:为传感器蠕变引起。此时应系统最好重新标定或重启。
实验表明系统采用一阶RC阶滤波算法与滑动均值滤波算法相结合的称重效果良好,结合软件系统,数据采集的精度较高、稳定性较好。
5 结束语
本设计是基于CH32的高精度称重数据采集系统,通过对硬件采集电路、系统采集软件的设计,实现了自定义数据传输格式高效温度、重量数据采集,经过数据分析各种条件下的称重误差,结合软件系统采取不同的有效措施,最终实验数据表明,称重系统的精度和稳定性得到了有效提高。