一、电子人体秤的设计原理
人站在秤盘上, 装在玻璃秤盘下的小压力传感器,将重力转换为电压的模拟信号,经放大器及滤波处理后由A/D处理器转化为数字信号, 数字信号由中央处理器(单片机CPU)运算处理,去皮重,算出净重,最后由显示屏以数字的方式显示30s,然后CPU进入休眠模式。
二、硬件设计
1. 电源
采用3.3V的纽扣电池供电,CPU需要3.3V和1.8V,通过DC-DC电源芯片 LM1117-1.8V从3.3V转化获得1.8V。 根据低功耗设计原则,需要对系统电源进行合理控制和管理。 系统电源在上电状态下,当空闲时,单片机STM32F101T8进入休眠模式,当检测到需要称重时则唤醒进入工作模式。
2. 报警蜂鸣器
将其中一引脚配置PWM模式, 利用PWM控制蜂鸣器的输出,来实现报警与提示功能。
3.主控芯片
在该方案设计中使用以 Cortex -M3 为内核的STM32F101T8嵌入式单片机 ,该芯片性价比高 、速度快、功耗低、功能齐全,省去很多外围器件,其主要特性如下:
(1)ARM 32位的Cortex-M3CPU,最高工作频率为36MHz;(2) 内部有64KB Flash、10KB的SRAM;(3)支持低功耗模式:睡眠、停机和待机模式;(4)1个12位的模数转换器, 范围为0~3.6V;(5)3个定时器;(6)3个USART;(7)工作温度:-40℃~85℃。
4.A/D 转化电路
将压力传感器的电信号经放大及滤波处理后,由A/D处理器转换为数字信号,包括调零、去皮电路 (数字电位器实现),经过一定的算法计算出实际重量。
5. 显示模块
采用4位8段式液晶显示模块,工作电压为3V,接口方式:三线串行接口(/CS、CLK、DATA),并以数码形式把重量值显示出来。
三、软件设计
软件部分包括引导程序和主程序。 引导程序在程序上电时立即启动,首先检测升级标志,若有标志从片外Flash加载升级程序到片内Flash, 并跳转到新程序运行;否则仍跳转至原程序运行。
系统元件架构为典型的前后台式架构,整体采用模块化的软件设计方法,将系统功能分解为多个子模块,每个模块对应一个状态机,上电后系统在初始化完成后,即进入主循环,各个状态机依据在程序的前后位置依次获得CPU时间循环运行。
在主程序被引导后, 第一步执行软硬件初始化任务。 包括必要的软件资源,配置硬件参数,如时钟、定时器、I/O口、串口、A/D采样以及RTC等,并使用相关外设。
初始化完成后,进入主循环。 包括上电电源管理,开机显示,测试秤盘的重量,去皮重。 并实时刷新皮重,定时检测是否有人称体重,无则进入停机掉电模式,时间到唤醒掉电进行循环检测。 若有人测量体重,需重新刷新皮重,显示归零后,再称重,则进入称重程序模块,进行毛重计量,扣皮重,得出实际净重。 然后显示30s,最后闪烁显示几秒后,再次进入停机掉电模式。 每次称重误差范围为±0.1kg。