基于MSP430的高精度微功耗可存取數(shù)字壓力表設(shè)計
采用MSP430F149作為總控制器,設(shè)計了高精度微功耗數(shù)字壓力表。座力傳感器采用恒流源 供電,其輸出采用AD7714進行A/D轉(zhuǎn)換,以ADR291產(chǎn)生的恒壓作為其參考電壓a采用糢塊化供電和 分時教據(jù)采集的策略降低系統(tǒng)功耗,采用自主設(shè)計的MOSFET電源開關(guān)切斷不工作模塊的電源。運用 基于變化速率的均值漶波方法對采集的壓力教據(jù)進行漶波,最后采用多點枚準(zhǔn)的方式對壓力表進行校 準(zhǔn)。采用簡化的文件系統(tǒng)實現(xiàn)實時壓力數(shù)據(jù)的存被與回放。叢力表精度達到0.25釦以上,在采用4節(jié) 5?千電池供電的情況下,正常連縷工作時間達3 000h以上。
隨著壓力測量的應(yīng)用越來越廣泛,對壓力測 童儀器的要求也越來越高。目前,在工業(yè)現(xiàn)場和 科學(xué)實驗中應(yīng)用最多的是彈性式和電子式壓力儀 表:彈性式壓力表由于發(fā)展多年,應(yīng)用廣泛、技術(shù) 成熟,但發(fā)展空間較小;隨著對測量自動化程度要 求的提高,電子式壓力表成為壓力測量的主流。 而如今信息化的高速發(fā)展又對電子式壓力表提出 了高精度的要求,再加之現(xiàn)在測量儀表都向小型 化、便攜式發(fā)展,干電池成為主要的供電方式,而干電池容量有限,這就對測童儀表的微功耗提出 了更高的要求。
1.系統(tǒng)總體設(shè)計
本系統(tǒng)旨在設(shè)計一款高精度微功耗的數(shù)字壓 力表,因此髙精度和微功耗是本設(shè)計的重點和難 點,必須從總體設(shè)計時就加以考慮。系統(tǒng)總功耗 一般包括元件級功耗和系統(tǒng)級功耗⑴,需要從這 兩方面人手才能達到系統(tǒng)微功耗的目的。
本系統(tǒng)的總體框圖如圖1所示,外圍主要包括電源管理模塊、參考電壓模塊、恒流源、壓力數(shù) 據(jù)采集模塊、液晶顯示模塊、串口通信模塊、溫度 采集模塊及按鍵電路等。
MSP430系列單片機是_種超低功耗的混合 信號處理器,這個系列的微控制器可以采用電池 供電工作,且待機時間長。靈活的時鐘源可以使 器件達到最低的功率消耗;數(shù)字控制的振蕩器 (DCO)可使器件從低功耗模式迅速喚醒,在少于 6#的時間內(nèi)激活到活躍工作方式121。考慮到本 系統(tǒng)微功耗的要求,最終采用MSP430F149作為 總控制器。壓力傳感器采用了 MEAS公司的 87N-5000,此傳感器線性好,溫度誤差小且功耗 低,滿足本系統(tǒng)設(shè)計中高精度、微功耗的要求。
2硬件設(shè)計
2.1電源管理模塊
本系統(tǒng)采用模塊化供電和時間規(guī)劃機制,某 個模塊在不工作時可以與電源斷開,以降低功耗。 采用MAX883和MAX884分別作為系統(tǒng)的5V和 3.3V電源,此兩款芯片是低壓差線性穩(wěn)壓芯片, 在最低功耗工作模式下靜態(tài)電流只有l(wèi)pA,完全 可以滿足系統(tǒng)微功耗的要求。
本系統(tǒng)采用一片MAX883和兩片MAX884分 別為系統(tǒng)各模塊供電。其中,一片MAX884產(chǎn)生 的CPU3.3V是常開狀態(tài),而其他兩路電源在壓力 表關(guān)機時,可以由單片機控制其關(guān)閉。還配合使 用N溝道和P溝道MOSFET設(shè)計了電源開關(guān),因 溫度采集模塊和串口通信模塊不常使用,因此為 這兩個模塊分別配置一個電源開關(guān),通過單片機 的I/O 口控制電源開關(guān)的通斷,以降低功耗。
另外,由于液晶背光功耗較大,因此采取電池 電壓直接供電的策略,通過MOSFET電源開關(guān)接 人不同阻值的限流電阻,可以控制液晶背光的亮 度,實現(xiàn)背光亮度的多級調(diào)節(jié),一定程度上降低了 系統(tǒng)功耗。
2.2壓力數(shù)據(jù)采集模塊
MSP430F149單片機內(nèi)部集成了 12位A/D 轉(zhuǎn)換模塊和可供選擇的1.25V和2.5V參考電壓 模塊,因此很多壓力表直接采用了單片機內(nèi)部A/ D模塊和參考電壓。這樣雖然簡化了系統(tǒng)結(jié) 構(gòu),但直接限制了壓力表的精度。本系統(tǒng)壓力數(shù) 據(jù)采集模塊包括壓力數(shù)據(jù)的采集與轉(zhuǎn)換,壓力傳 感器采用恒流源供電,其輸出由AD7714放大后進行A/D轉(zhuǎn)換,AD7714的參考電壓由外部參考 電壓電路產(chǎn)生。
2.2.1參考電壓電路
本系統(tǒng)采用的參考電壓由ADR291產(chǎn)生, ADR291是低噪聲、小功率參考電壓芯片。參考電壓 電路如圖2所示,其產(chǎn)生的2.5V參考電壓精度在0. 12%以上,滿足本系統(tǒng)高精度的要求。輸出2.5V經(jīng) 過電阻分壓后產(chǎn)生1. 25V作為A/D芯片的參考電 壓,為提高A/D芯片參考電壓的精度,圖2中的R33 和R34均采用l%o的高精密電阻。
2.2.2恒流源電路
本系統(tǒng)采用的壓力傳感器內(nèi)部的測量電路是 全橋差動電路,而電橋的供電電源可采用恒壓潭, 也可采用恒流源。為了減少溫度的影響,提髙 測量精度,本系統(tǒng)采用恒流源為壓力傳感器供電。
恒流源電路的核心芯片是OPA335,此芯片是 自動置零,單電源運算放大器。具有最大5(|^的 失調(diào)電壓,285RA的靜態(tài)電流,同時滿足了系統(tǒng)高 精度和微功耗的要求。恒流源電路如圖3所示, 利用運算放大器“虛短”和“虛斷”的特性設(shè)計,其 中電阻R29、R31和R32均采用1%的高精密電 阻,產(chǎn)生806皡的恒流源,【+和I-分別是壓力 傳感器的正、負電源輸人端。經(jīng)測試,此恒流源在 負載阻抗低于5kO時,穩(wěn)定可靠,滿足本系統(tǒng)壓 力傳感器的供電要求。
由于MSP430F149單片機內(nèi)部集成的12位A/D無法滿足本系統(tǒng)高精度的要求,考慮到本系 統(tǒng)微功耗的要求,最終選用了 24位A/D芯片 AD7714YRU0此芯片使用和-差轉(zhuǎn)換技術(shù)以實 現(xiàn)高達24位的無誤碼性能,具有0. 15%的非線 性度。另外,此芯片內(nèi)部包含了可編程放大器 (PGA),可以實現(xiàn)最大128倍的小信號放大,節(jié)省 了電路中對高精度小信號放大電路的設(shè)計,簡化 了系統(tǒng)結(jié)構(gòu)。
在設(shè)計AD7714的外圍電路時應(yīng)特別注意, 數(shù)字電源和模擬電源分開供電,數(shù)字地線經(jīng)過0£1 電阻后接地,避免了相互之間的干擾。
3.軟件設(shè)計
3.1分時數(shù)據(jù)采集
MSP430有一種活動模式和5種低功耗模式,通 過設(shè)置可以從活動模式進人相應(yīng)的低功耗模式,而 各種低功耗模式都可通過中斷的方式進人活動模 式。不同工作模式下MSP430的耗電情況差別很 大,其中低功耗模式3 (LPM3)和低功耗模式4 (LMP4)系統(tǒng)功耗相當(dāng)?shù)?基本可以忽略。
本系統(tǒng)采用分時數(shù)據(jù)采集的策略,即根據(jù)設(shè) 置的菜單情況,采集不同的數(shù)據(jù)信息,如壓力、溫 度及電池電壓等信息。以壓力數(shù)據(jù)采集為例,并 不是程序每循環(huán)一次進行一次壓力數(shù)據(jù)采集,而 是根據(jù)時間信息來采集。本系統(tǒng)程序設(shè)計為每 0.U進人一次時間中斷,在時間中斷中退出低功 耗模式3,進人活動模式,程序循環(huán)執(zhí)行一次,然 后進人低功耗模式3(LPM3)。同時,程序循環(huán)執(zhí) 行時對時間迸行判斷,如果間隔時間達到0. 4s, 讀取一次壓力數(shù)據(jù),并進行A/D轉(zhuǎn)換。系統(tǒng)總的 程序流程如圖4所示。
3.2變化速率均值濾波
實驗發(fā)現(xiàn),簡單的均值濾波方法不能滿足本 系統(tǒng)實時性和穩(wěn)定性的要求。因此,本系統(tǒng)根據(jù) 壓力數(shù)據(jù)的變化速率確定具體的濾波方法:在壓 力數(shù)據(jù)變化較快時,為了保證壓力表顯示數(shù)據(jù)的 實時性,采用的是較少點均值法濾波;在壓力數(shù)據(jù) 變化較慢時,為了保證壓力表顯示數(shù)據(jù)的穩(wěn)定性, 采用的是較多點排序后取中間部分均值法濾波。
首先采集壓力數(shù)據(jù),然后判斷連續(xù)兩次壓力 數(shù)據(jù)變化方向是否相同,若不相同,則直接返回; 若相同,則采用遞推方式將壓力數(shù)據(jù)寫人數(shù)組,隨 后判斷下式:
2 I temp2 - temp{ I > SUM (I)
? ?i
式中temp,、temp2 近兩次采集到的壓力數(shù)據(jù);
SUM——設(shè)置的判斷閾值。
若式(1)成立,則表明當(dāng)前壓力變化較快,則 求數(shù)組中M個新推人數(shù)據(jù)的平均值作為當(dāng)前壓 力值,計算式如下:
Af-l
press = X Cal\ £]/M (2)
式中Ca/[i]—存儲壓力數(shù)據(jù)的數(shù)組;
press 返回的壓力值。
若式(1)不成立,則表明當(dāng)前壓力變化較慢, 必須滿足穩(wěn)定性的要求,則將存儲當(dāng)前壓力的數(shù) 組中的數(shù)據(jù)賦值給排序數(shù)組,排序數(shù)組對數(shù)據(jù)進 行排序,然后去掉兩個最大值、兩個最小值,將剩 余數(shù)值求平均,計算式如下:
press = 5] Queue[i]/(/V-4) (3)
t=2
式中Queued]—排序數(shù)組在排序后的數(shù)值;
press 返回的壓力值;
N——排序數(shù)組中數(shù)據(jù)的個數(shù)。
實驗證明,采用本濾波方法后,壓力表既能滿 足當(dāng)前壓力實時變化的要求,又能滿足穩(wěn)定壓力 顯示穩(wěn)定的要求。
3.3多點校準(zhǔn)與線性插值
實驗發(fā)現(xiàn),一般的壓力傳感器即使采用恒流 源供電,其輸出與輸人并不是呈現(xiàn)簡單的線性關(guān)系,這就給校準(zhǔn)帶來了困難[6]。對精度要求不高 的壓力表一般采用滿量程和零點校準(zhǔn)的方式,經(jīng) 過實驗,這種校準(zhǔn)方式不能滿足本系統(tǒng)高精度的 要求。因此,本系統(tǒng)采用了多點校準(zhǔn)的方式,用多 條線段模擬逼近壓力傳感器的輸出曲線(圖5)。
本系統(tǒng)最終采用11點校準(zhǔn)的方式,即滿量程 的0%, 10%, 20%,…,100%,校準(zhǔn)完成后,將校 準(zhǔn)數(shù)據(jù)存人Flash數(shù)據(jù)存儲區(qū)。計算 當(dāng)前壓力值時,首先將得到的當(dāng)前壓力數(shù)據(jù)與校 準(zhǔn)數(shù)據(jù)比較,得到當(dāng)前壓力數(shù)據(jù)所在 的區(qū)間,采用線性插值的方法計算當(dāng)前壓力值:
pre&s_unit = (press - Cctl_Dw[i\ )/{ CalJ)iv[ t + 1] ~
Cal^Div[ e]) + range ? i/10 (4)
式中pressjinit 當(dāng)前顯不壓力值;
range 壓力表量程;
press—濾波后得到的壓力數(shù)據(jù)。
插值造成的誤差為:
= pres8_unit - Y, (5)
式中K——實際壓力值,一般取精度高1級或 更多的壓力表的測量值。
經(jīng)實驗得到滿量程和零點校準(zhǔn)方式與11點 校準(zhǔn)方式的對比數(shù)據(jù)列于表1。
從表1中可以得出,兩點校準(zhǔn)方式在靠近o 點和滿量程點時精度較高,在中間段時誤差較大, 精度較低,因此兩點校準(zhǔn)方式只適合對精度要求 較低的場合。而本系統(tǒng)采用的多點校準(zhǔn)方式,較 準(zhǔn)確地擬合了壓力傳感器輸出曲線,很大程度上 提髙了測量精度,滿足了本系統(tǒng)對壓力測量高精 度的要求。
3.4數(shù)據(jù)存儲及回放
本系統(tǒng)設(shè)計了基于MSP430內(nèi)部大容量 Flash的數(shù)據(jù)存儲機制,允許實時存儲壓力表采集 到的壓力數(shù)據(jù)和壓力校準(zhǔn)值,保證在關(guān)機或者掉 電情況下數(shù)據(jù)不丟失,并且提供數(shù)據(jù)回放功能,査 詢歷史存儲數(shù)據(jù)。
由于本系統(tǒng)采用的單片機MSP430F149內(nèi)部 有64KB的Flash,除去其內(nèi)部資源占用的,還有 60KB的代碼存儲空間和256B的A、B段信息存 儲器,完全滿足系統(tǒng)數(shù)據(jù)存儲要求。其中選用A 段信息存儲器存儲系統(tǒng)壓力校準(zhǔn)值,保證壓力表 校準(zhǔn)一次后,數(shù)據(jù)不丟失。另外從60KB代犸存 儲空間保留10KB的空間存儲實時壓力數(shù)據(jù),在 存儲機制上,編寫了簡單的文件系統(tǒng)管理存儲數(shù) 據(jù),即采用了文件組方式存儲數(shù)據(jù),由于存儲空間 的限制,本系統(tǒng)最多可以存儲40個文件,每個文 件可以存儲20個點的壓力數(shù)據(jù),同時增加了淸零 功能,在數(shù)據(jù)存滿之后可以手動淸除整個文件存 儲區(qū),保證數(shù)據(jù)存儲的持續(xù)性。經(jīng)過實際運行,該 簡化的文件系統(tǒng)滿足了數(shù)據(jù)實時存儲和查詢回放 功能,同時也可以把存儲的數(shù)據(jù)通過RS232通信 接口上傳到上位機以供査看。
4.結(jié)束語
筆者系統(tǒng)地介紹了高精度、微功耗、可存取數(shù) 字壓力表的設(shè)計思路,并分別從硬件和軟件方面 闡述了實現(xiàn)高精度、微功耗要求的方法,同時給出 了數(shù)據(jù)存儲與回放的方法,最后給出了實驗對比 數(shù)據(jù),分析了壓力表的測量誤差。經(jīng)過實驗,壓力 表的測量精度可以達到0.25知,在4節(jié)5?干電池 供電的情況下,可正常連續(xù)工作時間3 OOOh以 上。本設(shè)計必將推動便攜式、微功耗儀表的發(fā)展, 并為電子測量信息化、數(shù)字化奠定基礎(chǔ)。