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

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

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


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

修改為

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

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

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

可知測量只要出p,就可以算出高度h了。這個公式考慮了溫度的影響,計算結(jié)果分辨率可以達(dá)到幾個厘米[6]。
文中介紹了微型數(shù)字傳感器MS5540C的特性和主要功能,并給出了硬件連接電路和注意事項,對于軟件的處理和結(jié)果的補(bǔ)償也進(jìn)行了討論,具有較大的實(shí)用參考價值。實(shí)踐證明,筆者設(shè)計的電路和軟件在戶外的惡劣環(huán)境下也能很好地正常工作,并且測量結(jié)果也是相當(dāng)精確的。
[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的微功耗氣壓數(shù)據(jù)采集模塊[J].電子設(shè)計工程,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ī)用高度傳感器[J].儀表技術(shù)與傳感器,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的氣壓高度計系統(tǒng)的設(shè)計[J].微納電子技術(shù),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.