劉剛
(上海衡偉信息技術(shù)有限公司 上海 201203)
在工業(yè)領(lǐng)域、科學(xué)研究中,尤其是戶外復(fù)雜的工作環(huán)境中,經(jīng)常需要高精度測(cè)量環(huán)境溫度、氣壓。但是傳統(tǒng)的專門的氣壓和溫度測(cè)量儀器存在不便攜帶,精度不高的缺點(diǎn),另外工業(yè)控制環(huán)境和戶外惡劣環(huán)境下對(duì)氣壓和溫度測(cè)量儀器的影響不可忽略,甚至有時(shí)會(huì)嚴(yán)重影響測(cè)量結(jié)果。電子測(cè)量儀器的微型化合低功耗的發(fā)展趨勢(shì),迫切需要具有高穩(wěn)定性、高靈敏度、高分辨率、低功耗、寬溫度范圍的微型便攜式的氣壓和溫度測(cè)量儀器的出現(xiàn)。MS5540C是瑞士Intersema公司推出的基于MEMS技術(shù)的數(shù)字壓力傳感器,在微型化低功耗高分辨率方面,以及高穩(wěn)定性和可靠性方面具有獨(dú)特的優(yōu)勢(shì)。本文介紹了基于MS5540C的的微型氣壓傳感器的硬件和軟件相關(guān)設(shè)計(jì)以及數(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)用于便攜式氣壓計(jì)高度計(jì),天氣控制系統(tǒng),GPS接收機(jī)等方面[1]。
圖1是MS5540C的框圖結(jié)構(gòu)。它具有引腳少接口簡單的特點(diǎn)。MS5540C供電電壓為2.2~3.6 V,與處理器的通訊接口為SPI串行接口,另外還需要一個(gè)32.768 kHz的時(shí)鐘輸入到MCLK引腳。
圖1 MS5540C的結(jié)構(gòu)框圖Fig.1 Structure diagram of MS5540C
MS5540C可以非常方便地連接到微處理器,特別是帶有SPI接口的處理器,不過微處理器也要選擇-40~85℃工作范圍的工業(yè)級(jí)MCU以適應(yīng)復(fù)雜的野外環(huán)境。為了提高穩(wěn)定性和可靠性,我們推薦如圖2所示的電路設(shè)計(jì)。
對(duì)于32.768 kHz的時(shí)鐘,不推薦使用晶體或MCU來提供,原因是這種晶體或MCU提高的時(shí)鐘在寬范圍溫度條件下并不能保證穩(wěn)定。圖中使用工作范圍為-40~85℃的有源晶振。時(shí)鐘晶振的電源與MS5540C相同,并且需要1~10 μF之間的濾波電容及1個(gè)0.01~0.1 nF之間的去耦電容,并且通過磁珠消除高頻噪聲。晶振輸出端最好加10~33 Ω的匹配電阻。M5540C的電源端必須認(rèn)真處理,如圖2所示,通過增加磁珠消除高頻噪聲,1 μF和0.01 μF電容實(shí)現(xiàn)濾波和去耦。PCB布局時(shí),0.01 μF電容盡量靠近VDD引腳。
MS5540C的SPI接口與MCU的連接如圖2所示,DIN和DOUT加10 kΩ的上拉電阻,并且在靠近MS5540C的SCLK端加一個(gè)15 pF的高頻濾波電容,這對(duì)于野外惡劣環(huán)境下消除干擾非常有效。
圖2 MS5540C的硬件電路Fig.2 Hardware circuit of MS5540C
M5540C是超低功耗器件,采樣轉(zhuǎn)換期間的功耗也僅為1 mA。
MS5540C包括一個(gè)壓阻式的傳感器和傳感器接口電路。它的主要功能是將壓力傳感器輸出的未補(bǔ)償?shù)哪M電壓轉(zhuǎn)換成16位數(shù)字值,通過接口電路可以將16位數(shù)字值輸出。共有2個(gè)16位數(shù)字值需要輸出,分別是用于氣壓和溫度測(cè)量結(jié)果計(jì)算的D1和D2。這兩個(gè)16位數(shù)據(jù)結(jié)果是非常粗糙的,必須通過外部處理器進(jìn)行補(bǔ)償計(jì)算,才能得到比較精確的結(jié)果。
每個(gè)模塊都會(huì)在兩個(gè)溫度和兩個(gè)氣壓值下進(jìn)行工廠校準(zhǔn),得到 6個(gè)補(bǔ)償系數(shù) C1~C6,這6個(gè)補(bǔ)償系數(shù)共 64 bit,以 4個(gè)16 bit的字形式儲(chǔ)存在模塊內(nèi)的PROM中。因此,在進(jìn)行補(bǔ)償計(jì)算前,必須先讀出這6個(gè)補(bǔ)償系數(shù)。關(guān)于補(bǔ)償系數(shù)在4個(gè)16位字中的排列方式,請(qǐng)參看文獻(xiàn)[1]的圖4。
使用帶有SPI接口的MCU與MS5540C接口,將會(huì)使程序設(shè)計(jì)變得簡單。我們以帶有SPI接口的51單片機(jī)STC12LE5A60S2為例來介紹MS5540C的軟件編程。
由前所述,4個(gè)16位的補(bǔ)償數(shù)據(jù)及2個(gè)分別為氣壓和溫度傳感器轉(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è)置位和停止位,各個(gè)數(shù)據(jù)有不同的設(shè)置位,另外為了復(fù)位MS5540C,Intersema還提供了一個(gè)用于reset模塊的命令,關(guān)于具體的通訊協(xié)議,請(qǐng)參考文獻(xiàn)[1]。
數(shù)據(jù)定義:
在程序中調(diào)用上述的函數(shù),編程非常方便。讀出的2個(gè)16位數(shù)據(jù)經(jīng)過文獻(xiàn)1提供的校準(zhǔn)公式進(jìn)行校準(zhǔn)后,得到溫度和氣壓的較為精確的測(cè)量結(jié)果,其中溫度的結(jié)果精確到0.1℃,氣壓精確到0.1 mbar。
因?yàn)镸S5540C的ADC為16位,溫度測(cè)量分辨率可以到0.01℃,對(duì)于-40~85℃之間的測(cè)量范圍,我們可以將文獻(xiàn)[1]中溫度校準(zhǔn)公式:
修改為
這樣得到的結(jié)果可以使分辨率達(dá)到0.01℃。
程序設(shè)計(jì)需要注意兩點(diǎn):
1)MCU發(fā)送命令和讀取數(shù)據(jù)時(shí)SPI工作方式是不一樣的,主要是SCLK采樣沿的設(shè)置不同,具體參考文獻(xiàn)[1];
2)由于在發(fā)送采樣溫度和氣壓的命令之后,需要等大約35 ms左右,才能讀取到采樣數(shù)據(jù),所以在發(fā)送命令后,需要等待之后再讀取。
為了獲得更加準(zhǔn)確的結(jié)果,需要對(duì)上面的計(jì)算結(jié)果進(jìn)行溫度補(bǔ)償[4]。溫度補(bǔ)償?shù)挠?jì)算公式如圖3,在溫度20℃以下及45℃以上都需要對(duì)溫度和氣壓計(jì)算數(shù)據(jù)進(jìn)行二級(jí)補(bǔ)償。圖3中TEMP是精確到0.1℃的結(jié)果。
圖3 最優(yōu)化溫度壓力計(jì)算Fig.3 Flow chart for calculating the temperature and pressure to the optimum accuracy
另外供電電壓對(duì)測(cè)量結(jié)果也有影響。供電電壓僅在3.0 V時(shí)測(cè)量結(jié)果沒有誤差,而大部分情況下MS5540C的電壓可能為3.3 V,這時(shí)測(cè)量結(jié)果就需進(jìn)行誤差補(bǔ)償。由圖4中的曲線[1]可知,在3.3 V供電時(shí),溫度誤差很小,可以忽略不計(jì)。但對(duì)于800 mbar以上的氣壓的結(jié)果誤差在0.1~0.2之間,故我們建議對(duì)于結(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也可以做成高度計(jì)(海拔計(jì))[5]。根據(jù)以下美國大氣1976的公式
可知測(cè)量只要出p,就可以算出高度h了。這個(gè)公式考慮了溫度的影響,計(jì)算結(jié)果分辨率可以達(dá)到幾個(gè)厘米[6]。
文中介紹了微型數(shù)字傳感器MS5540C的特性和主要功能,并給出了硬件連接電路和注意事項(xiàng),對(duì)于軟件的處理和結(jié)果的補(bǔ)償也進(jìn)行了討論,具有較大的實(shí)用參考價(jià)值。實(shí)踐證明,筆者設(shè)計(jì)的電路和軟件在戶外的惡劣環(huán)境下也能很好地正常工作,并且測(cè)量結(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è)計(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ī)用高度傳感器[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的氣壓高度計(jì)系統(tǒng)的設(shè)計(jì)[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.