引言
傳統(tǒng)上,設(shè)計秤重、測力、轉(zhuǎn)矩 及壓力測量系統(tǒng)時,廣泛采用全橋 接電阻傳感器的方法。大多數(shù)橋接 傳感器都要求較高的激勵電壓(通 常為10 V),同時輸出較低的滿量程 差動電壓,約為2mWV。傳感器的輸 出通常由儀表放大器加以放大,經(jīng) 過發(fā)大后的信號,再由髙精度模數(shù) 轉(zhuǎn)換器(ADC)進(jìn)行數(shù)字化,最后再 用一個通用的MCU作進(jìn)一步處理與 顯示。通常情況下,ADC并不集成在 MCU中。這種方法雖然可以實現(xiàn)滿 量程的ADC輸入電壓,但橋接傳感 器的激勵電壓髙達(dá)10 V,功耗較大, 而且使用的芯片數(shù)量也較多,加大 了電源管理的復(fù)雜度。
現(xiàn)在,通過在MSP430F42X芯片 中集成帶有差動輸入的16位A-Z ADC和增益高達(dá)32的可編程增益放 大器(PGA),實現(xiàn)了單芯片秤重系 統(tǒng)。整個系統(tǒng)只需用3 V電池供電, 不但能效高,且成本低。此外系統(tǒng)還 提供LCD驅(qū)動器及掉電保護(hù)功能。
硬件描述
MSP430F42X系列是基于快速 閃存的超低功耗微控制器,片上集 成了三個16位A-Z ADC(SD16),這些 ADC還帶有PGA,能夠?qū)魉蛠淼?/span> 信號放大最高32倍。橋接傳感器可 以直接連接到微控制器上,圖1給出 了該系統(tǒng)的電路圖。
將全橋接傳感器負(fù)激勵信號連 接至終端X1-1,正激勵信號連接至終 端X1-4,由MSP430的端口引腳P2.0 與P2.1供電。這樣,在測量期間或在 電子秤工作于待機(jī)狀態(tài)的情況下,就 可以不用電橋激勵電壓,從而降低功 耗。傳感器的電橋電阻為1200Q(典 型值),電源電壓為3 V,激勵狀態(tài)下耗電2.5mA。將橋接傳感器的輸出信號連接至X1-2與X1-3, 通過兩個低通濾波器之后輸入SD16的輸入通道A0。
當(dāng)最大負(fù)載為10 kg時,全橋接傳感器具有2 mV/V 的額定滿量程差動輸出電壓。要使傳感器信號能夠?qū)崿F(xiàn) 1 g的精度,總共需要1萬次計數(shù),并顯示在LCD顯示屏 上。如果橋接傳感器獲得3 V的激勵電壓,則滿量程輸出 電壓為:3Vx2mWV = 6mV。也就是說,1g的重量轉(zhuǎn) 換為電壓形式可等效為:6 0^/101^9 = 0.61^。為 了實現(xiàn)1 g的測量精度,所用ADC的LSB電壓應(yīng)比上述 小四倍,即 0.6 mV/4 = 0.15 mVo
SD16可用內(nèi)置的1.2 V參考電壓工作,也可用外部連接的參考電壓工作。圖1中給出的是用外部電阻分壓器來提供參考電壓。由于橋接傳感器由相同電壓的電源供電,這樣做的好處是能夠?qū)崿F(xiàn)獨立于激勵電壓(Vcc)的比例輸出原則。如果橋接傳感器由Vcc供電而SD16模塊采用內(nèi)部參考電壓,那么測量結(jié)果就會隨Vcc在電池使用壽命中的變動而發(fā)生差異。當(dāng)電源電壓為3V時,使用圖1中所示的外部電阻分壓器得到的參考電壓為:
R9與R10的分壓比(divider ratio) R9/R10的選擇使生 成的參考電壓保持在容許的V*F范圍內(nèi),這時Vcc從3 V下 降至2.7 V。SD16模塊的最小電源電壓為2.7 V。其詳細(xì) 電壓范圍及其他參數(shù),可參考MSP430F42X數(shù)據(jù)表 (SLAS421). SD16的參考電壓決定著滿量程差分輸入電 壓,即M艱12。由于數(shù)據(jù)轉(zhuǎn)換器為雙極,因此ADC的LSB電壓為:
該LSB值經(jīng)過最大增益為32的PGA后,電壓值可降至0.605 pV。但該值比設(shè)計目標(biāo)值0.15 MV仍然高出大約四倍,為此還需要將該值進(jìn)一步放大。為了不添加外部組件,可以采用更多的SD16輸出位。SD16模塊內(nèi)部數(shù)字抽取濾波器能夠提供總共24位的訪問??蓪?shù)
字濾波器輸出的額外兩位添加給16位轉(zhuǎn)換結(jié)果,并將18位輸出信號進(jìn)行低通過濾(如進(jìn)行多結(jié)果平均),這樣ADC的LSB電壓就可降至0.151 pV。
MSP430F427的片上LCD驅(qū)動器可直接采用接口 與一般的LCD模塊連接。在本應(yīng)用中采用了 SoftBaugh公司的4-mux7.1數(shù)碼LCD—SBLCDA4。電阻器R5、 R7與R8提供了 LCD驅(qū)動器模塊所用的電壓階梯。采 用32 kHz的晶振作為系統(tǒng)時鐘參考,用于驅(qū)動LCD并 在應(yīng)用工作過程中周期性地從低功耗模式喚醒。此外, 系統(tǒng)還為電子秤操作提供了連接至P1.0的按鈕(SW1)。
軟件描述
MSP430F427單芯片秤重軟件有C語言(F42x_ Weigh_ Scale.c)與匯編語言(F42x_Weigh_Scale.s43)兩 種版本。兩種源代碼功能相同,但匯編語言版本更小。上 電復(fù)位時,MSP430首先進(jìn)行外設(shè)初始化,包括禁用看門 狗定時器,配置LFXT1振蕩器負(fù)載電容用于外部晶振,初 始化LCD控制器、基本定時器及SD16轉(zhuǎn)換器模塊。SD16 的0通道經(jīng)過配置,采用雙輸入通道(channel pair) A0,并 用SD16模塊內(nèi)部PGA放大信號達(dá)32倍增益。轉(zhuǎn)換器 由SMCLK計時,頻率為1 048 567 Hz,并啟用連續(xù)轉(zhuǎn)換 模式。關(guān)于SD16操作的詳細(xì)信息可參考MSP430x4xx 系列用戶指南(SUUJ056)。圖2為軟件主流程圖。
在源代碼中,將兩個32位字CalMin與CalMax分配 到MSP430閃存段A以便保存校驗數(shù)據(jù)。上電后,軟件 檢查上述常量是否具備有效值。如果兩個位置都包含相 同的值(如設(shè)備編程后的0x_),校驗?zāi)J絼t被激活, 否則進(jìn)入測量模式。變量ProgramMode用于跟蹤當(dāng)前 程序狀態(tài)(測量模式、校驗?zāi)J?、斷電模式)并作出相?yīng) 設(shè)置。
隨后,MSP430進(jìn)入低功耗模式LPMO,啟用中斷。 LPM0作為SMCLK驅(qū)動SD16,在應(yīng)用有效運行且采集 ADC數(shù)據(jù)時不得關(guān)閉。此后,整個程序流程由中斷驅(qū)動, 共啟用三個中斷源?;居嫊r器ISR每0.5秒執(zhí)行一次, 主要用于觸發(fā)測量進(jìn)程的啟動(見圖3),端口 1 ISR用于 處理按鈕事件,每次A/D轉(zhuǎn)換后,調(diào)用SD16 ISR來處理 結(jié)果(見圖4)。
在校驗?zāi)J街锌色@得兩個數(shù)據(jù)點。變量CalMin用于 存儲A/D結(jié)果,其顯示值等于0 g,而CalMax存儲的A/D 結(jié)果顯示值為10000g。CALL0或CALHI顯示出的數(shù)據(jù) 用來說明哪個校驗數(shù)據(jù)點正被處理。按下按鈕SW1后,當(dāng) 前SD16的轉(zhuǎn)換結(jié)果被讀取并存儲到臨時變量中。校驗結(jié) 束后,系統(tǒng)內(nèi)的自動編程將這兩個數(shù)據(jù)點編入INF0A快 閃信息存儲器段,這時軟件進(jìn)入測量模式。
至此,SD16轉(zhuǎn)換進(jìn)程每0.5秒啟動一次,由基本定時 器ISR定時。轉(zhuǎn)換中,橋接傳感器上電,DC0啟用。這時 MSP430在LPM0模式下運行。為了實現(xiàn)所需的精度,軟 件采用低通濾波器,采集多個18位A/D轉(zhuǎn)換結(jié)果,并進(jìn) 行累加。每次轉(zhuǎn)換后,SD16 ISR按照SD16采樣率(4 kHz) 執(zhí)行。在采集實際數(shù)據(jù)前,反變量VoltageSettleCtr逐漸 減小為0,這就使電壓能在橋接傳感器上電后12毫秒內(nèi) 達(dá)到穩(wěn)定。SD16 ISR采集了 256個結(jié)果之后,用累加和 除以256,得到最后的18位結(jié)果。上述過程也可形容為 采樣數(shù)據(jù)由256到1的抽選。包括電壓穩(wěn)定時間在內(nèi), SD16模塊每0.5秒鐘運行約75毫秒。
隨后,將該18位的計算結(jié)果與此前的值進(jìn)行比較。僅 當(dāng)值變化時才計算新的顯示值并更新顯示。這就能夠避免 不必要的32位整數(shù)乘法及除法。
為了將A/D的測量結(jié)果轉(zhuǎn)換為實際的物理重量值,系統(tǒng)使用了兩點校驗機(jī)制。顯示值根據(jù)以下公式計算:
從CalMax到CalMin的范圍反映到從0到CAL MIN_MAX_SPAN 的范圍。CAUMIN_MAX_SPAN 默認(rèn)設(shè) 置為10 000,等于橋接傳感器的最大機(jī)械負(fù)載10kg。需 注意:由于施加給SD16模塊的差動信號的緣故,18位A/D 轉(zhuǎn)換結(jié)果是帶符號的,整個程序中都使用帶符號的代數(shù) 算法。這樣,也可顯示出負(fù)的重量值。測量結(jié)束之后, SD16模塊禁用,DC0在退出時進(jìn)入LPM3關(guān)閉模式,而 橋接傳感器則斷電以降低電流消耗。
只要按下按鈕SW1會立即使轉(zhuǎn)換失效,關(guān)閉LCD顯示屏 并進(jìn)入LPM3模式。在這種模式下,應(yīng)用電路吸收的電流不到 1 pA,而32 kHz的振蕩器憾運行。如果需要的話,也可進(jìn) 入LPM4模式來進(jìn)一步降低電流消耗。再次按下按鈕SW1, 應(yīng)用便恢復(fù)正常的工作。在這種模式下,SD16模塊每0.5秒 鐘約運行75毫秒,得出新的計算結(jié)果后,顯示屏也隨之更新。 在此期間,MSP430消耗的電流約1 mA。橋接傳感器的激勵 及參考電壓的生成在此期間還需要3 mA的額外電流。在測 量間隙內(nèi),MSP430消耗電流約3 mA,其中包括了 LCD驅(qū)動器 用于顯示計算結(jié)果的電流。因此,總的平均應(yīng)用電流消耗量 在正常工作期間為6000。若想在任何時間內(nèi)重新進(jìn)入校驗 模式,只需按下按鈕SW1至少5秒鐘即可實現(xiàn)。