一、電子人體秤的設(shè)計(jì)原理
人站在秤盤上, 裝在玻璃秤盤下的小壓力傳感器,將重力轉(zhuǎn)換為電壓的模擬信號(hào),經(jīng)放大器及濾波處理后由A/D處理器轉(zhuǎn)化為數(shù)字信號(hào), 數(shù)字信號(hào)由中央處理器(單片機(jī)CPU)運(yùn)算處理,去皮重,算出凈重,最后由顯示屏以數(shù)字的方式顯示30s,然后CPU進(jìn)入休眠模式。
二、硬件設(shè)計(jì)
1. 電源
采用3.3V的紐扣電池供電,CPU需要3.3V和1.8V,通過(guò)DC-DC電源芯片 LM1117-1.8V從3.3V轉(zhuǎn)化獲得1.8V。 根據(jù)低功耗設(shè)計(jì)原則,需要對(duì)系統(tǒng)電源進(jìn)行合理控制和管理。 系統(tǒng)電源在上電狀態(tài)下,當(dāng)空閑時(shí),單片機(jī)STM32F101T8進(jìn)入休眠模式,當(dāng)檢測(cè)到需要稱重時(shí)則喚醒進(jìn)入工作模式。
2. 報(bào)警蜂鳴器
將其中一引腳配置PWM模式, 利用PWM控制蜂鳴器的輸出,來(lái)實(shí)現(xiàn)報(bào)警與提示功能。
3.主控芯片
在該方案設(shè)計(jì)中使用以 Cortex -M3 為內(nèi)核的STM32F101T8嵌入式單片機(jī) ,該芯片性價(jià)比高 、速度快、功耗低、功能齊全,省去很多外圍器件,其主要特性如下:
(1)ARM 32位的Cortex-M3CPU,最高工作頻率為36MHz;(2) 內(nèi)部有64KB Flash、10KB的SRAM;(3)支持低功耗模式:睡眠、停機(jī)和待機(jī)模式;(4)1個(gè)12位的模數(shù)轉(zhuǎn)換器, 范圍為0~3.6V;(5)3個(gè)定時(shí)器;(6)3個(gè)USART;(7)工作溫度:-40℃~85℃。
4.A/D 轉(zhuǎn)化電路
將壓力傳感器的電信號(hào)經(jīng)放大及濾波處理后,由A/D處理器轉(zhuǎn)換為數(shù)字信號(hào),包括調(diào)零、去皮電路 (數(shù)字電位器實(shí)現(xiàn)),經(jīng)過(guò)一定的算法計(jì)算出實(shí)際重量。
5. 顯示模塊
采用4位8段式液晶顯示模塊,工作電壓為3V,接口方式:三線串行接口(/CS、CLK、DATA),并以數(shù)碼形式把重量值顯示出來(lái)。
三、軟件設(shè)計(jì)
軟件部分包括引導(dǎo)程序和主程序。 引導(dǎo)程序在程序上電時(shí)立即啟動(dòng),首先檢測(cè)升級(jí)標(biāo)志,若有標(biāo)志從片外Flash加載升級(jí)程序到片內(nèi)Flash, 并跳轉(zhuǎn)到新程序運(yùn)行;否則仍跳轉(zhuǎn)至原程序運(yùn)行。
系統(tǒng)元件架構(gòu)為典型的前后臺(tái)式架構(gòu),整體采用模塊化的軟件設(shè)計(jì)方法,將系統(tǒng)功能分解為多個(gè)子模塊,每個(gè)模塊對(duì)應(yīng)一個(gè)狀態(tài)機(jī),上電后系統(tǒng)在初始化完成后,即進(jìn)入主循環(huán),各個(gè)狀態(tài)機(jī)依據(jù)在程序的前后位置依次獲得CPU時(shí)間循環(huán)運(yùn)行。
在主程序被引導(dǎo)后, 第一步執(zhí)行軟硬件初始化任務(wù)。 包括必要的軟件資源,配置硬件參數(shù),如時(shí)鐘、定時(shí)器、I/O口、串口、A/D采樣以及RTC等,并使用相關(guān)外設(shè)。
初始化完成后,進(jìn)入主循環(huán)。 包括上電電源管理,開(kāi)機(jī)顯示,測(cè)試秤盤的重量,去皮重。 并實(shí)時(shí)刷新皮重,定時(shí)檢測(cè)是否有人稱體重,無(wú)則進(jìn)入停機(jī)掉電模式,時(shí)間到喚醒掉電進(jìn)行循環(huán)檢測(cè)。 若有人測(cè)量體重,需重新刷新皮重,顯示歸零后,再稱重,則進(jìn)入稱重程序模塊,進(jìn)行毛重計(jì)量,扣皮重,得出實(shí)際凈重。 然后顯示30s,最后閃爍顯示幾秒后,再次進(jìn)入停機(jī)掉電模式。 每次稱重誤差范圍為±0.1kg。