單芯片便攜電子秤重系統(tǒng)實(shí)現(xiàn)方案
引言
傳統(tǒng)上,設(shè)計(jì)秤重、測(cè)力、轉(zhuǎn)矩及壓力測(cè)量系統(tǒng)時(shí),廣泛采用全橋接電阻傳感器的方法。大多數(shù)橋接傳感器都要求較高的激勵(lì)電壓(通常為10
v),同時(shí)輸出較低的滿量程差動(dòng)電壓,約為2 mv/v。傳感器的輸出通常由儀表放大器加以放大,經(jīng)過(guò)發(fā)大后的信號(hào),再由高精度模數(shù)轉(zhuǎn)換器
(adc) 進(jìn)行數(shù)字化,最后再用一個(gè)通用的mcu作進(jìn)一步處理與顯示。通常情況下,adc并不集成在mcu中。這種方法雖然可以實(shí)現(xiàn)滿量程的adc輸入電壓,但橋接傳感器的激勵(lì)電壓高達(dá)10
v,功耗較大,而且使用的芯片數(shù)量也較多,加大了電源管理的復(fù)雜度。
現(xiàn)在,通過(guò)在msp430f42x芯片中集成帶有差動(dòng)輸入的16位 - adc和增益高達(dá)32的可編程增益放大器(pga),實(shí)現(xiàn)了單芯片秤重系統(tǒng)。整個(gè)系統(tǒng)只需用3 v電池供電,不但能效高,且成本低。此外系統(tǒng)還提供lcd驅(qū)動(dòng)器及掉電保護(hù)功能。
硬件描述
msp430f42x系列是基于快速閃存的超低功耗微控制器,片上集成了三個(gè)16位 - adc(sd16),這些adc還帶有pga,能夠?qū)魉蛠?lái)的信號(hào)放大最高32倍。橋接傳感器可以直接連接到微控制器上,圖1給出了該系統(tǒng)的電路圖。
將全橋接傳感器負(fù)激勵(lì)信號(hào)連接至終端x1-1,正激勵(lì)信號(hào)連接至終端x1-4,由msp430的端口引腳p2.0與p2.1供電。這樣,在測(cè)量期間或在電子秤工作于待機(jī)狀態(tài)的情況下,就可以不用電橋激勵(lì)電壓,從而降低功耗。傳感器的電橋電阻為1 200 (典型值),電源電壓為3 v,激勵(lì)狀態(tài)下耗電2.5 ma。將橋接傳感器的輸出信號(hào)連接至x1-2與x1-3,通過(guò)兩個(gè)低通濾波器之后輸入sd16的輸入通道a0。當(dāng)最大負(fù)載為10 kg時(shí),全橋接傳感器具有2 mv/v的額定滿量程差動(dòng)輸出電壓。要使傳感器信號(hào)能夠?qū)崿F(xiàn)1 g的精度,總共需要1萬(wàn)次計(jì)數(shù),并顯示在lcd顯示屏上。如果橋接傳感器獲得3 v的激勵(lì)電壓,則滿量程輸出電壓為:3 v x 2 mv/v = 6 mv。也就是說(shuō),1 g的重量轉(zhuǎn)換為電壓形式可等效為:6 mv / 10 kg x 1g = 0.6 v。為了實(shí)現(xiàn)1 g的測(cè)量精度,所用adc的lsb電壓應(yīng)比上述小四倍,即 0.6 v / 4 = 0.15 v。
sd16可用內(nèi)置的1.2 v參考電壓工作,也可用外部連接的參考電壓工作。圖1中給出的是用外部電阻分壓器來(lái)提供參考電壓。由于橋接傳感器由相同電壓的電源供電,這樣做的好處是能夠?qū)崿F(xiàn)獨(dú)立于激勵(lì)電壓(vcc)的比例輸出原則。如果橋接傳感器由vcc供電而sd16模塊采用內(nèi)部參考電壓,那么測(cè)量結(jié)果就會(huì)隨vcc在電池使用壽命中的變動(dòng)而發(fā)生差異。當(dāng)電源電壓為3v時(shí),使用圖1中所示的外部電阻分壓器得到的參考電壓為:
該lsb值經(jīng)過(guò)最大增益為32的pga后,電壓值可降至0.605 v。但該值比設(shè)計(jì)目標(biāo)值0.15 v仍然高出大約四倍,為此還需要將該值進(jìn)一步放大。為了不添加外部組件,可以采用更多的 sd16輸出位。sd16模塊內(nèi)部數(shù)字抽取濾波器能夠提供總共24位的訪問(wèn)??蓪?shù)字濾波器輸出的額外兩位添加給16位轉(zhuǎn)換結(jié)果,并將18位輸出信號(hào)進(jìn)行低通過(guò)濾(如進(jìn)行多結(jié)果平均),這樣adc的lsb電壓就可降至0.151 v。
msp430f427的片上lcd驅(qū)動(dòng)器可直接采用接口與一般的 lcd 模塊連接。在本應(yīng)用中采用了 softbaugh公司的4-mu 7.1數(shù)碼lcd—sblcda4。電阻器r5、r7與r8提供了lcd驅(qū)動(dòng)器模塊所用的電壓階梯。采用32 khz的晶振作為系統(tǒng)時(shí)鐘參考,用于驅(qū)動(dòng)lcd并在應(yīng)用工作過(guò)程中周期性地從低功耗模式喚醒。此外,系統(tǒng)還為電子秤操作提供了連接至p1.0的按鈕(sw1)。
軟件描述
msp430f427 單芯片秤重軟件有c語(yǔ)言(f42x_weigh_ scale.c)與匯編語(yǔ)言(f42x_weigh_scale.s43)兩種版本。兩種源代碼功能相同,但匯編語(yǔ)言版本更小。上電復(fù)位時(shí),msp430首先進(jìn)行外設(shè)初始化,包括禁用看門(mén)狗定時(shí)器,配置lfxt1振蕩器負(fù)載電容用于外部晶振,初始化lcd控制器、基本定時(shí)器及sd16轉(zhuǎn)換器模塊。sd16的0通道經(jīng)過(guò)配置,采用雙輸入通道(channel
pair)a0,并用sd16模塊內(nèi)部pga放大信號(hào)達(dá)32倍增益。轉(zhuǎn)換器由smclk計(jì)時(shí),頻率為1 048 567 hz,并啟用連續(xù)轉(zhuǎn)換模式。關(guān)于sd16操作的詳細(xì)信息可參考msp430x4xx系列用戶指南(slau056)。圖2為軟件主流程圖。
在源代碼中,將兩個(gè)32位字calmin與calmax分配到msp430閃存段a以便保存校驗(yàn)數(shù)據(jù)。上電后,軟件檢查上述常量是否具備有效值。如果兩個(gè)位置都包含相同的值(如設(shè)備編程后的 0xffffffff),校驗(yàn)?zāi)J絼t被激活,否則進(jìn)入測(cè)量模式。變量programmode用于跟蹤當(dāng)前程序狀態(tài)(測(cè)量模式、校驗(yàn)?zāi)J?、斷電模式)并作出相?yīng)設(shè)置。
隨后,msp430進(jìn)入低功耗模式lpm0,啟用中斷。lpm0作為smclk驅(qū)動(dòng)sd16,在應(yīng)用有效運(yùn)行且采集adc數(shù)據(jù)時(shí)不得關(guān)閉。此后,整個(gè)程序流程由中斷驅(qū)動(dòng),共啟用三個(gè)中斷源?;居?jì)時(shí)器isr每0.5秒執(zhí)行一次,主要用于觸發(fā)測(cè)量進(jìn)程的啟動(dòng)(見(jiàn)圖3),端口1
isr用于處理按鈕事件,每次 a/d 轉(zhuǎn)換后,調(diào)用sd16 isr來(lái)處理結(jié)果(見(jiàn)圖4)。
在校驗(yàn)?zāi)J街锌色@得兩個(gè)數(shù)據(jù)點(diǎn)。變量calmin用于存儲(chǔ)a/d結(jié)果,其顯示值等于0 g,而calmax存儲(chǔ)的a/d結(jié)果顯示值為10
000 g。cal lo或cal hi顯示出的數(shù)據(jù)用來(lái)說(shuō)明哪個(gè)校驗(yàn)數(shù)據(jù)點(diǎn)正被處理。按下按鈕sw1后,當(dāng)前sd16的轉(zhuǎn)換結(jié)果被讀取并存儲(chǔ)到臨時(shí)變量中。校驗(yàn)結(jié)束后,系統(tǒng)內(nèi)的自動(dòng)編程將這兩個(gè)數(shù)據(jù)點(diǎn)編入infoa快閃信息存儲(chǔ)器段,這時(shí)軟件進(jìn)入測(cè)量模式。
至此,sd16轉(zhuǎn)換進(jìn)程每0.5秒啟動(dòng)一次,由基本定時(shí)器isr定時(shí)。轉(zhuǎn)換中,橋接傳感器上電,dco 啟用。這時(shí)msp430在lpm0模式下運(yùn)行。為了實(shí)現(xiàn)所需的精度,軟件采用低通濾波器,采集多個(gè)18位a/d轉(zhuǎn)換結(jié)果,并進(jìn)行累加。每次轉(zhuǎn)換后,sd16 isr按照sd16采樣率(4 khz)執(zhí)行。在采集實(shí)際數(shù)據(jù)前,反變量voltagesettlectr逐漸減小為0,這就使電壓能在橋接傳感器上電后12毫秒內(nèi)達(dá)到穩(wěn)定。sd16 isr采集了256個(gè)結(jié)果之后,用累加和除以256,得到最后的18位結(jié)果。上述過(guò)程也可形容為采樣數(shù)據(jù)由256到1的抽選。包括電壓穩(wěn)定時(shí)間在內(nèi),sd16模塊每0.5秒鐘運(yùn)行約75毫秒。
隨后,將該18位的計(jì)算結(jié)果與此前的值進(jìn)行比較。僅當(dāng)值變化時(shí)才計(jì)算新的顯示值并更新顯示。這就能夠避免不必要的32位整數(shù)乘法及除法。
為了將 a/d的測(cè)量結(jié)果轉(zhuǎn)換為實(shí)際的物理重量值,系統(tǒng)使用了兩點(diǎn)校驗(yàn)機(jī)制。顯示值根據(jù)以下公式計(jì)算:
從calmax到calmin的范圍反映到從0到cal_min_max_span的范圍。cal_min_max_span 默認(rèn)設(shè)置為10 000,等于橋接傳感器的最大機(jī)械負(fù)載10 kg。需注意:由于施加給sd16模塊的差動(dòng)信號(hào)的緣故,18位a/d轉(zhuǎn)換結(jié)果是帶符號(hào)的,整個(gè)程序中都使用帶符號(hào)的代數(shù)算法。這樣,也可顯示出負(fù)的重量值。測(cè)量結(jié)束之后,sd16模塊禁用,dco在退出時(shí)進(jìn)入lpm3關(guān)閉模式,而橋接傳感器則斷電以降低電流消耗。
只要按下按鈕sw1會(huì)立即使轉(zhuǎn)換失效,關(guān)閉lcd顯示屏并進(jìn)入lpm3模式。在這種模式下,應(yīng)用電路吸收的電流不到1 a,而32 khz的振蕩器仍然運(yùn)行。如果需要的話,也可進(jìn)入lpm4模式來(lái)進(jìn)一步降低電流消耗。再次按下按鈕sw1,應(yīng)用便恢復(fù)正常的工作。在這種模式下,sd16模塊每0.5秒鐘約運(yùn)行75毫秒,得出新的計(jì)算結(jié)果后,顯示屏也隨之更新。在此期間,msp430消耗的電流約1 ma。橋接傳感器的激勵(lì)及參考電壓的生成在此期間還需要3 ma的額外電流。在測(cè)量間隙內(nèi),msp430消耗電流約3 a,其中包括了lcd驅(qū)動(dòng)器用于顯示計(jì)算結(jié)果的電流。因此,總的平均應(yīng)用電流消耗量在正常工作期間為600 a。若想在任何時(shí)間內(nèi)重新進(jìn)入校驗(yàn)?zāi)J剑恍璋聪掳粹osw1至少5秒鐘即可實(shí)現(xiàn)。
評(píng)論