劉剛
(上海衡偉信息技術有限公司 上海 201203)
在工業領域、科學研究中,尤其是戶外復雜的工作環境中,經常需要高精度測量環境溫度、氣壓。但是傳統的專門的氣壓和溫度測量儀器存在不便攜帶,精度不高的缺點,另外工業控制環境和戶外惡劣環境下對氣壓和溫度測量儀器的影響不可忽略,甚至有時會嚴重影響測量結果。電子測量儀器的微型化合低功耗的發展趨勢,迫切需要具有高穩定性、高靈敏度、高分辨率、低功耗、寬溫度范圍的微型便攜式的氣壓和溫度測量儀器的出現。MS5540C是瑞士Intersema公司推出的基于MEMS技術的數字壓力傳感器,在微型化低功耗高分辨率方面,以及高穩定性和可靠性方面具有獨特的優勢。本文介紹了基于MS5540C的的微型氣壓傳感器的硬件和軟件相關設計以及數據補償等問題。
MS5540C是SMD混合器件,集成包括精確壓阻式壓力傳感器,電阻式溫度傳感器,16位ADC和數字濾波器及SPI數字接口電路等,尺寸 6.2×6.4 mm,工作溫度為-40~+85 °C,工作電流僅為5 μA,符合歐洲ROHS認證要求,廣泛應用于便攜式氣壓計高度計,天氣控制系統,GPS接收機等方面[1]。
圖1是MS5540C的框圖結構。它具有引腳少接口簡單的特點。MS5540C供電電壓為2.2~3.6 V,與處理器的通訊接口為SPI串行接口,另外還需要一個32.768 kHz的時鐘輸入到MCLK引腳。

圖1 MS5540C的結構框圖Fig.1 Structure diagram of MS5540C
MS5540C可以非常方便地連接到微處理器,特別是帶有SPI接口的處理器,不過微處理器也要選擇-40~85℃工作范圍的工業級MCU以適應復雜的野外環境。為了提高穩定性和可靠性,我們推薦如圖2所示的電路設計。
對于32.768 kHz的時鐘,不推薦使用晶體或MCU來提供,原因是這種晶體或MCU提高的時鐘在寬范圍溫度條件下并不能保證穩定。圖中使用工作范圍為-40~85℃的有源晶振。時鐘晶振的電源與MS5540C相同,并且需要1~10 μF之間的濾波電容及1個0.01~0.1 nF之間的去耦電容,并且通過磁珠消除高頻噪聲。晶振輸出端最好加10~33 Ω的匹配電阻。M5540C的電源端必須認真處理,如圖2所示,通過增加磁珠消除高頻噪聲,1 μF和0.01 μF電容實現濾波和去耦。PCB布局時,0.01 μF電容盡量靠近VDD引腳。
MS5540C的SPI接口與MCU的連接如圖2所示,DIN和DOUT加10 kΩ的上拉電阻,并且在靠近MS5540C的SCLK端加一個15 pF的高頻濾波電容,這對于野外惡劣環境下消除干擾非常有效。

圖2 MS5540C的硬件電路Fig.2 Hardware circuit of MS5540C
M5540C是超低功耗器件,采樣轉換期間的功耗也僅為1 mA。
MS5540C包括一個壓阻式的傳感器和傳感器接口電路。它的主要功能是將壓力傳感器輸出的未補償的模擬電壓轉換成16位數字值,通過接口電路可以將16位數字值輸出。共有2個16位數字值需要輸出,分別是用于氣壓和溫度測量結果計算的D1和D2。這兩個16位數據結果是非常粗糙的,必須通過外部處理器進行補償計算,才能得到比較精確的結果。
每個模塊都會在兩個溫度和兩個氣壓值下進行工廠校準,得到 6個補償系數 C1~C6,這6個補償系數共 64 bit,以 4個16 bit的字形式儲存在模塊內的PROM中。因此,在進行補償計算前,必須先讀出這6個補償系數。關于補償系數在4個16位字中的排列方式,請參看文獻[1]的圖4。
使用帶有SPI接口的MCU與MS5540C接口,將會使程序設計變得簡單。我們以帶有SPI接口的51單片機STC12LE5A60S2為例來介紹MS5540C的軟件編程。
由前所述,4個16位的補償數據及2個分別為氣壓和溫度傳感器轉換而來的16位結果數據都需要通過SPI來讀取。關于這些數據的讀取,Intersema規定了一套簡單的通訊協議[2],協議要求處理要先發命令數據,然后才能讀取16位數據。命令數據包括起始位,設置位和停止位,各個數據有不同的設置位,另外為了復位MS5540C,Intersema還提供了一個用于reset模塊的命令,關于具體的通訊協議,請參考文獻[1]。
數據定義:


在程序中調用上述的函數,編程非常方便。讀出的2個16位數據經過文獻1提供的校準公式進行校準后,得到溫度和氣壓的較為精確的測量結果,其中溫度的結果精確到0.1℃,氣壓精確到0.1 mbar。
因為MS5540C的ADC為16位,溫度測量分辨率可以到0.01℃,對于-40~85℃之間的測量范圍,我們可以將文獻[1]中溫度校準公式:

修改為

這樣得到的結果可以使分辨率達到0.01℃。
程序設計需要注意兩點:
1)MCU發送命令和讀取數據時SPI工作方式是不一樣的,主要是SCLK采樣沿的設置不同,具體參考文獻[1];
2)由于在發送采樣溫度和氣壓的命令之后,需要等大約35 ms左右,才能讀取到采樣數據,所以在發送命令后,需要等待之后再讀取。
為了獲得更加準確的結果,需要對上面的計算結果進行溫度補償[4]。溫度補償的計算公式如圖3,在溫度20℃以下及45℃以上都需要對溫度和氣壓計算數據進行二級補償。圖3中TEMP是精確到0.1℃的結果。

圖3 最優化溫度壓力計算Fig.3 Flow chart for calculating the temperature and pressure to the optimum accuracy
另外供電電壓對測量結果也有影響。供電電壓僅在3.0 V時測量結果沒有誤差,而大部分情況下MS5540C的電壓可能為3.3 V,這時測量結果就需進行誤差補償。由圖4中的曲線[1]可知,在3.3 V供電時,溫度誤差很小,可以忽略不計。但對于800 mbar以上的氣壓的結果誤差在0.1~0.2之間,故我們建議對于結果500 mbar以下的氣壓不需補償,500 mbar以上的氣壓結果需要減去0.1 mbar以進行補償。

圖4 MS5540C的氣壓與電壓的關系Fig.4 Temperature error vs supply voltage
由于氣壓與海拔有非常密切的關系,所以用MS5540C也可以做成高度計(海拔計)[5]。根據以下美國大氣1976的公式

可知測量只要出p,就可以算出高度h了。這個公式考慮了溫度的影響,計算結果分辨率可以達到幾個厘米[6]。
文中介紹了微型數字傳感器MS5540C的特性和主要功能,并給出了硬件連接電路和注意事項,對于軟件的處理和結果的補償也進行了討論,具有較大的實用參考價值。實踐證明,筆者設計的電路和軟件在戶外的惡劣環境下也能很好地正常工作,并且測量結果也是相當精確的。
[1]Intersema Sensoric.MS5540C[EB/OL].2011.http://www.measspec.com/downloads/MS5540C.pdf.
[2]Intersema Sensoric.An501:Using SPI protocol with pressure sensor modules.[EB/OL].2011.http://www.meas-spec.com/downloads/Using_SPI_Protocol_with_Pressure_Sensor_Modules.pdf.
[3]Intersema Sensoric.AN516:Min,Max Values for the MS5540-C.[EB/OL].2008.http://www.meas-spec.com/downloads/Min,Max_Valu-es_for_the_MS5540-C.pdf.
[4]倪秀輝,馬慶鋒,王芳.基于MS5534B的微功耗氣壓數據采集模塊[J].電子設計工程,2008(6):49-51.
NI Xiu-hui,MA Qing-feng,WANG Fang.Low power air pressure data acquisition module based on MS5534B[J].Electronic Design Engineering,2008(6):49-51.
[5]張勇,張杰,金保華.基于MS5534的無人機用高度傳感器[J].儀表技術與傳感器,2006(4):42-43.
ZHANG Yong,ZHANG Jie,JIN Bao-hua.Altitude sensor on unmanned aviation vehicle based on MS5534[J].Instrument Technique and Sensor,2006(4):42-43.
[6]王志剛,唐飛,王曉浩,等.基于MS5534B的氣壓高度計系統的設計[J].微納電子技術,2008(6):351-355.
WANG Zhi-gang,TANG Fei,WANG Xiao-hao,et al.Design of altimeter system based on MS5534B[J].MEMS Device&Technology, 2008(6):351-355.