控制/MCU
电子秤(英文名:electronic balance)是衡器的一种,是利用胡克定律或力的杠杆平衡原理测定物体质量的工具。按结构原理可分为机械秤、电子秤、机电结合秤三大类。
电子秤主要由承重系统(如秤盘、秤体)、传力转换系统(如杠杆传力系统、传感器)和示值系统(如刻度盘、电子显示仪表)3部分组成。
基于STM32的多功能电子秤设计
题目要求:
1、基本部分:
(1)能用键盘设置单价,称重后能同时显示重量、单价和总额;电子计价秤:最大称重为10.000公斤,重量误差不大于±0.1%;
(2)具有TFT液晶屏显示,显示重量、单价、总额等信息。
a、重量显示为5位数码,单位为公斤,最大重量显示值为99.999公斤;
b、单价金额显示为5位数码,单位为元,最大单价金额显示值值为999.99元;
c、总价金额显示为6位数码,单位为元,最大总价金额显示值值为9999.99元, 总价金额误差不大于0.01元;
(3)具有去皮功能和总额累加计算功能;
(4)能预存10种商品的单价;可以随意调出使用
(5)测量并显示环境温度,温度测量误差不大于1℃;
(6)称量0-10kg称重;
(7)语音播报测量结果
2、发挥部分:
(1)具有实时时钟显示并具有掉电保护,可显示日历时钟(年、月、日、时、分、秒);
(2)扩展高精度A/D转换器,提高电子计价秤测量精度,测量误差不大于±0.01%;
(3)能预存10种商品的名称(或代号)和商品的单价;
单元模块设计:
1、主控芯片模块
2、TFT液晶屏模块
3、称重模块
4、语音播报模块
5、24bitAD HX711转换模块
6、软件部分
在该制作中,我们采用了STM32为主控芯片,主要是考虑到HX711是24bit的AD,运算量大,且我们的制作还加设了TFT彩色液晶模块,语音播报模块等的外设,普通的MCU的刷屏和运算速度是不够的,所以我选择了STM32作为主控芯片。下面是关于芯片的主要介绍:STM32F103xC 、STM32F103xD 和STM32F103xE 增强型系列使用高性能的ARM® Cortex™-M3 32位的RISC内核,工作频率为72MHz,内置高速存储器( 高达512K字节的闪存和64K 字节的SRAM),丰富的增强I/O 端口和联接到两条APB总线的外设。所有型号的器件都包含3个12位的ADC、4个通用16位定时器和2 个PWM定时器,还包含标准和先进的通信接口:多达2 个I2C 接口、3 个SPI接口、2个I2S 接口、1个SDIO接口、5个USART接口、一个USB接口和一个CAN接口。
TFT-LCD即薄膜晶体管液晶显示器。其英文全称为:Thin Film Transistor-Liquid Crystal Display。TFT-LCD与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。TFT-LCD也被叫做真彩液晶显示器。该模块有如下特点:
1、320×240的分辨率。
2、16位真彩显示。
3、自带触摸屏,可以用来作为控制输入。
4、通用的接口,除了ALIENTEK MiniSTM32开发板,该液晶模块还可以使用在优异特、 STMSKY、红牛等开发板上。
这里在硬件上,TFTLCD模块与IO口对应关系如下:
LCD_LED对应PC10;
LCD_CS对应PC9;
LCD _RS对应PC8;
LCD _WR对应PC7;
LCD _RD对应PC6;
LCD _D[17:1]对应PB[15:0];
TFTLCD显示需要的相关设置步骤如下:
1) 设置STM32与TFTLCD模块相连接的IO。
这一步,先将我们与TFTLCD模块相连的IO口设置为输出,具体使用哪些IO口,这里需要根据连接电路以及TFTLCD模块的设置来确定。
2) 初始化TFTLCD模块。
其实这里就是上和上面OLED模块的初始化过程差不多。通过向TFTLCD写入一系列的设置,来启动TFTLCD的显示。为后续显示字符和数字做准备。
3) 通过函数将字符和数字显示到TFTLCD模块上。
触控部分:
电阻式触摸屏利用压力感应进行控制。电阻触摸屏的主要部分是一块与显示器表面非常配合的电阻薄膜屏,这是一种多层的复合薄膜,它以一层玻璃或硬塑料平板作为基层,表面涂有一层透明氧化金属(透明的导电电阻)导电层,上面再盖有一层外表面硬化处理、光滑防擦的塑料层、它的内表面也涂有一层涂层、在他们之间有许多细小的(小于1/1000英寸)的透明隔离点把两层导电层隔开绝缘。 当手指触摸屏幕时,两层导电层在触摸点位置就有了接触,电阻发生变化,在X和Y两个方向上产生信号,然后送触摸屏控制器。控制器侦测到这一接触并计算出(X,Y)的位置,再根据获得的位置模拟鼠标的方式运作。这就是电阻技术触摸屏的最基本的原理。
电阻屏的特点有:
1)是一种对外界完全隔离的工作环境,不怕灰尘、水汽和油污。
2)可以用任何物体来触摸,可以用来写字画画,这是它们比较大的优势。
3)电阻触摸屏的精度只取决于A/D转换的精度,因此都能轻松达到4096*4096。
满量程输出电压=激励电压x灵敏度2.0mv/v
例如:供电电压是5v乘以灵敏度2.0mv/v=满量程10mv
接线:红线输入电压+,黑线输入电压-,绿线输出信号+,白线输出信号- 安装方式:悬臂梁安装方式
WT588D 语音芯片是一款功能强大的可重复擦除烧写的语音单片机芯片。WT588D 让语音芯片不再为控制方式而寻找合适的外围单片机电路,高度集成的单片机技术足于取代复杂的外围控制电路。配套 WT588D VoiceChip 上位机操作软件可随意更换 WT588D语音单片机芯片的任何一种控制模式,把信息下载到 SPI-Flash 上即可。软件操作方式简洁易懂,撮合了语音组合技术,大大减少了语音编辑的时间。完全支持在线下载,即便是 WT588D 通电的情况下,一样可以通过下载器给关联的 SPI-Flash 下载信息,给 WT588D语音芯片电路复位一下,就能更新到刚下载进来的控制模式
本作品的语音播报模块使用了一线串口控制模式,可通过发码端控制语音播放、停止、循环播放和音量大小,或者直接触发 0~219 地址位的任意语音,发码速度 600us~2000us; 有两种输出方式:PWM 和 DAC ,PWM 输出可直接推动 0.5W/8Ω的扬声器,DAC 输出外接功放,音质好。由于本作品对音质没有过高要求,所以使用PWM输出方式。
使用WT588D语音播报模块时需要使用语音合成软件合成语音,然后通过Voice_Chip_V-B软件将语音对应特定地址编译成bin文件下载进WT588D模块中。
HX711 采用了海芯科技集成电路专利技术,是一款专为高精度电子秤而设计的 24 位 A/D 转换器芯片。与同类型其它芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。降低了电子秤的整机成本,提高了整机的性能和可靠性。
该芯片与后端 MCU 芯片的接口和编程非常简单,所有控制信号由管脚驱动,无需对芯片内部的寄存器编程。输入选择开关可任意选取通道 A 或通道 B,与其内部的低噪声可编程放大器相连。通道 A 的可编程增益为 128 或 64,对应的满额度差分输入信号幅值分别为±20mV或±40mV。通道 B 则为固定的 64 增益,用于系统参数检测。芯片内提供的稳压电源可以直接向外部传感器和芯片内的 A/D 转换器提供电源,系统板上无需另外的模拟电源。芯片内的时钟振荡器不需要任何外接器件。上电自动复位功能简化了开机的初始化过程。 特点:
• 两路可选择差分输入
• 片内低噪声可编程放大器,可选增益为 64 和128
• 片内稳压电路可直接向外部传感器和芯片内A/D 转换器提供电源
• 片内时钟振荡器无需任何外接器件,必要时也可使用外接晶振或时钟
• 上电自动复位电路
• 简单的数字控制和串口通讯:所有控制由管脚输入,芯片内寄存器无需编程
• 可选择 10Hz 或 80Hz 的输出数据速率 • 同步抑制 50Hz 和 60Hz 的电源干扰
• 耗电量(含稳压电源电路): 典型工作电流:《 1.7mA, 断电电流:《 1µA • 工作电压范围:2.6~ 5.5V
• 工作温度范围:-20~ +85℃ • 16 管脚的 SOP-16 封装
void LCD_WR_REG(u8 data) 写寄存器函数
u16 LCD_ReadReg(u8 LCD_Reg) 读寄存器
void LCD_WriteRAM_Prepare(void) 开始写GRAM
u16 LCD_ReadPoint(u16 x,u16 y) 读取个某点的颜色值
void LCD_DisplayOn(void) //LCD开启显示/ void LCD_Clear(u16 Color) 清屏函数
void LCD_Init(void) 初始化lcd
void LCD_DrawPoint(u16 x,u16 y) 画点
void LCD_Fill(u16 xsta,u16 ysta,u16 xend,u16 yend,u16 color) 在指定区域内填充指定颜色
void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2) 画线
void LCD_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2) 画矩形
void Draw_Circle(u16 x0,u16 y0,u8 r) 在指定位置画一个指定大小的圆
void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode) 在指定位置显示一个字符
void LCD_ShowNum(u16 x,u16 y,u32 num,u8 len,u8 size) 显示数字
void LCD_Show2Num(u16 x, u16 y, u16 num, u8 len,u8 size,u8 mode) 显示2个数字
void LCD_ShowString(u16 x,u16 y,const u8 *p) 显示字符串
WT588D部分:
void wt588d_init(void) WT588D初始化
void send_dat(u8 addr) 以一线串口方式发送数据到WT588D
void pronounce_num(u16 t) 整数部分数字发音 范围(0~9999)
void pronounce_point3num(u16 t) 小数部分数字发音范围(0~0.999)
void pronounce_point2num(u8 t) 小数部分数字发音范围(0~0.99) HX711部分:
u32 Read_HX711(void) 该函数读取HX711采集回来的经过放大以后的值
u32 Sampling(void) 该函数将AD采样回来的值算术平均数字滤波,去掉最低和最高后的平均值
main.c部分:
void UI(void) 设置界面
main函数中整合各个模块的函数实现电子秤称重功能,TFT显示功能等等。
本设计采用STM32F103RBT6作为主控芯片,通过TFT液晶屏幕显示数据,以触控方式操作电子秤,DS18B20作为温度传感器采集实时温度,播报重量、价格、商品名等语音信息使用Flash芯片存储配合语音芯片WT588D发音,采用电阻应变片桥式连接的称重传感器采集重量,以24位的HX711作为A/D转换芯片。系统结构框图如图2-1。
架构为Cortex-M3的STM32F103RBT6工作频率为72MHz,16位并行连接TFT液晶屏,能实现快速刷屏,显示效果良好,通过SPI通讯方式连接触控芯片XPT2046,以触控方式操作电子秤,以单总线方式连接DS18B20采集实时温度,主控芯片以一线串口模式控制语音芯片WT588D播报重量、价格、商品名等信息,以上模块对速度都有苛刻的要求,普通的51单片机达不到要求,所以采用了工作频率为72MHz的STM32F103RBT6,它内部的单周期乘法和硬件除法方便了价格计算和累计,采用型号为YZC-1B的电阻应变片式电桥结构的称重传感器,以24位的电子秤专用A/D芯片HX711作为A/D转换芯片。
1、系统基本功能及其性能指标
本论文设计的电子秤测量系统包括重量测量、液晶屏显示、触摸控制、语音播报、实时时钟、实时温度、单价存储、自动计价、价格累计、去皮、超重报警等功能,主要技术指标如表2-1。
2、称重传感器要求及选择
称重传感器是将非电量(质量或重量)转换成电量的转换元件,它把重量变换成电信号或其它形式适合计量的信号以方便数字处理器处理。称重传感器一般由敏感元件、转换元件以及后续处理部分组成。
按照称重传感器的结构形式不同,可分为应变式传感器(电阻应变式、声表面谐振式)和直接位移式传感器(电位计式、电容式、电感式、空腔谐振器式、振弦式等)或是利用压电、压阻和磁弹性等物理特性的传感器。考虑到本设计的产品应用在市场、工厂和户外等环境比较恶劣潮湿的场合,使用直接位移传感器和物理效应的传感器容易受到外界干扰,综合各方面因素选择电阻应变式传感器。
本设计对称重传感器的要求主要有:输入的重量与输出的电量应该保持一一对应,即具有良好的线性关系;具有较高的灵敏度;能在恶劣的条件下工作;对被称物体的状态的影响要小;具有较好的频率响应特性;具有重现性;稳定可靠。就以上要求本设计所使用的称重传感器为YZC-1B型传感器,该传感器是10kg量程的电阻应变片式传感器,在激励电压为5V的条件下输出,满量程时输出为10mV,该称重传感器的实物如图2-2。
其结构为由电阻应变片搭接的惠更斯全臂电桥贴于铝块载体上。应变片是镍铬丝或康铜丝绕成栅状(或使用薄金属箔腐蚀成栅状)夹在两层绝缘的薄片中制成。YZC-1B称重传感器上表面镶嵌两片应变片,同时下表面也有两个同样的应变片,上下连接形成全臂电桥,当应变片不受外力时,输出的电压为零,当受外力作用时,上表面的应变片电阻变大,下表面的应变片电阻变小,使电桥不平衡,由于相同的电阻丝其电阻的变化量相同,所以输出的电压与电阻的变化量成线性关系,再经相应的测量电路把这一电阻变化转换为电压信号,此过程完成了将外力转换为电信号的过程,这样就测量出重量的大小。
外接的5根线分别是一根屏蔽线,两根输出线,两根供电线。当未载物时传感器内部电桥桥臂上的电阻满足这样的条件:R1*R3=R2*R4,电桥平衡,输出的电压为零;载物时铝块发生微小形变,致使贴在上面的电阻应变片也发生形变,从而导致应变片电阻发生变化,破坏电桥平衡,使电桥输出微弱电压,其输出的电压与电阻的变化量(外力变化量)成近似的线性变化,线性度小,这极大地方便了后续软件根据A/D值计算处理得到重量。
3、质量的计算
由于本设计所选的YZC-1B型电阻应变片式电桥结构的称重传感器具有良好的线性度,所以为后续数据处理带来了很大方便。本设计使用线性拟合软件CurveExpert 1.3来拟合A/D值与实际重量之间的函数关系。主控芯片内部的单周期乘法和硬件除法为重量的快速计算提供硬件支持。随着质量的增大,称重传感器的线性度下降,再配以人工补偿,以保证精度。在校正精度时,选用了M1等级的高精度不锈钢砝码以确保电子秤的精度。
1、A/D采集的电路设计
对于电子秤的设计,核心问题是A/D转换。只有正确的选择A/D转换芯片的类型才能才能做出高精度的电子秤。
本论文设计的电子秤使用一款24位的Σ-Δ(Sigma-Delta)型A/D转换芯片HX711。
在电子秤的实际使用中,由于人们对重量测量速度的要求不高,所以使用这款高分辨率的慢速A/D转换芯片。
Σ-Δ型的A/D芯片是由1位A/D转换器、数字滤波器、积分器和比较器等组成[8]。在原理上近似于积分型A/D,将输入电压量变换成脉冲宽度(即时间信号)信号,经过数字滤波器的处理之后得到数字量[9]。电路的数字部分容易做到单片化,因此极易做到高分辨率。由于输出的数字量与模拟输入量之间有较长的延时,所以这类A/D芯片适用于那些模拟信号近似直流或变化很慢的应用场合,如温度测量、流量测量和压力测量等。
HX711与同类型其它A/D芯片相比,其内部集成其它同类型芯片所需要的外围电路,如内部时钟振荡器和稳压电源等,具有集成度高、抗干扰性强、响应速度较快等优点,使用该芯片设计的电子秤既能降低了整机成本又提高了电子秤的可靠性和抗干扰性。
该芯片与主控芯片的连接电路非常简单,只有DATA和SCLK两条线连接与主控芯片连接,两个控制信号由管脚驱动,且无需对芯片内部的寄存器编程。在输入指定的脉冲数可任意选取通道A或通道B以及增益,通道A的可编程增益为128和64,对应满额度的差分输入信号幅值分别为±40mV和±20mV,通道B则为固定为64增益。芯片内部的稳压电源可以直接向外部传感器供电,系统板上无需另外提供电源,可以保证传感器的准确度。HX711的工作温度范围为-20~ +85℃,工作电压范围为2.6~5.5V,可同步抑制50Hz和60Hz的电源干扰,典型工作电流:《1.7mA(含稳压电源电路),断电电流:《1µA,可见该芯片是功耗极低的,适合运用于充电的便携式设备中,较大的工作温度范围和宽电压决定了该芯片能应用在较恶劣的场合。 HX711的硬件电路如图3-1。
图中E+和E-分别连接5V和地线,为芯片供电,S+和S-连接称重传感器的输出端。本设计使用HX711内部时钟振荡器(引脚XI接地),10Hz的输出数据速率(引脚RATE接地)。芯片供电电压取用5V,片内稳压电源电路通过片外三级管8550和滑动变阻器R11向传感器提供稳定的低噪声模拟电源(图中E+和E-)。在程序设计中选用通道A,所以INNA和INPA与传感器相连,通道B接地。
2.1、STM32F103RBT6的最小系统硬件设计
本设计采用STM32F103RBT6作为主控芯片。该芯片使用Cortex-M3架构,支持Thumb-2指令集,最高支持72MHz工作频率,在存储器的0等待周期访问时可达1.25DMips/MHz,而且具备单周期乘法和硬件除法。在存储器方面,该片有128K字节的闪存程序存储器和高达20K字节的SRAM。片内的带校准功能的32kHz RTC振荡器和后备供电VBAT,可为实时时钟提供精确的定时和掉电不掉时提供支持[1][2]。2.0~3.6V的供电电压和睡眠、停机和待机模式可为电子秤的低功耗提供硬件支持。该芯片还拥有多达51个快速I/O端口,并且所有I/O口可以映像到16个外部中断,几乎所有端口均可容忍5V信号,即兼容5V数字电平。STM32F103RBT6的引脚图如图3-2。
主控芯片外接8MHz和32.768kHz的石英晶振,最高工作频率达72MHz,其中,32.768kHz的晶振作为RTC的输入频率,为实时时钟提供精确的频率[14]。外接晶振的硬件电路如图3-3。
图3-3为主控芯片的复位电路和后备电源电路。当系统上电时,电容C1充电,此时RESET为0电位,芯片复位,C1充满电后,电路相当于断路,RESET为高电平,进入工作状态。当按键KP1按下时,RESET接地,使RESET为0电位,产生复位,一般低电平持续20us之后,可实现有效复位[15]。后备电池BAT1通过二极管D2连接到主控芯片的VBAT脚,实现系统“掉电不掉时”的功能,如图3-4。
2.2、TFT液晶屏的硬件电路设计
TFT-LCD(Thin Film Transistor-Liquid Crystal Display)即薄膜晶体管液晶显示器。TFT-LCD与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。实物如图3-5。
本设计使用的TFT-LCD液晶屏使用的控制芯片为ILI9320,屏幕尺寸为2.8寸,320*250像素,26万真彩,通过16位并行方式连接主控芯片。该液晶刷频速度快,显示效果能满足实际需求。该液晶模块中还整合了触控芯片XPT2046,通过SPI通讯和主控芯片连接,以实现快速触摸识别。该液晶模块和主控芯片的硬件连接图3-6。
2.3 WT588D语音模块的硬件电路设计
本设计的语音功能采用WT588D语音模块来实现。这是带32Mbit的SPI-Flash存储器、内嵌DSP高速音频处理器、13Bit的DA转换器和12Bit的PWM输出的DIP28封装的语音模块。DSP高速音频处理器让该模块有较快的音频处理速度,12Bit的PWM输出让该快具有良好的音质,可直接驱动0.5W/8Ω扬声器,推挽电流充沛。该模块可以通过专业的上位机软件VoiceChip V-B建立语音工程,可随意组合语音块、插入10ms~25min的静音,插入的静音不占用内存的容量,一个已加载语音可重复调用到多个地址,语音工程编译之后用USB下载方式下载到模块中,支持在线下载和脱机下载,在WT588D语音芯片通电的情况下,也一样可以正常下载数据到模块中。语音块支持WAV格式的6K~22KHz采样率的音频。该模块的BUSY引脚能输出语音播放状态信号,为编程提供方便。该模块的工作电压为直流2.8V~5.5V,在语音播放停止时会马上进入休眠模式,芯片转为完全停止状态,静态休眠电流小于10uA,这些都决定了该模块是一个低功耗的模块。WT588D语音模块的结构如图3-7。
WT588D与主控芯片的硬件连接如图3-8。
图中P2为0.5W/8Ω的扬声器,与模块的正负PWM输出连接,该模块的复位引脚连接主控芯片的IO口PA3,由于该模块与主控芯片为一线串口通讯模式,所以只需使用模块的P03引脚即可,这里我们连接主控芯片的PA2口。该模块的VDD供电为DC2.8~5.5V,VCC为DC2.8~3.6V。采用DC3.3V供电时,可以直接短接VDD跟VCC,但考虑到使用环境声音嘈杂,故VDD供5V以提供较大的音量。BUSY连接发光二级管指示模块的工作状态,当模块发音时二极管亮,不发音时不亮。
2.4 电源模块的硬件电路设计
本设计的主控芯片和TFT触控液晶模块需要3.3V电压,WT588D语音模块、HX711芯片和蜂鸣器需要5V电压。考虑到本设计产品的功耗较低和方便携带的问题,使用9V层积电池作为主电源供电,具体电路如图3-9。
如图使用9V层积电池为主电源,通过稳压芯片AMS1117-3.3得到3.3V的电压,供主控芯片和TFT触控液晶模块使用,通过稳压芯片LM7805得到5V的电压,供WT588D语音模块、HX711芯片和蜂鸣器使用。
全部0条评论
快来发表一下你的评论吧 !