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