高精度溫濕度傳感器SHT2x的應(yīng)用
摘要:介紹了基于STC11系列單片機(jī)和Sensirion公司新一代高精度溫濕度傳感器SHT2x的溫濕度數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)。SHT2x完全標(biāo)定,具有精度高、功耗低、穩(wěn)定度好、體積小和數(shù)字輸出等特點(diǎn),非常適合于在便攜和移動(dòng)設(shè)備中對(duì)溫度和濕度進(jìn)行監(jiān)控。
關(guān)鍵詞:濕度;溫度;傳感器;單片機(jī);SHT2x
引言
新一代Sensirion溫濕度傳感器SHT2x,采用適于回流焊的雙列扁平無(wú)引腳DFN無(wú)鉛封裝,底面3 mm×3mm,高度1.1 mm,具有超小型的體積,特別適合移動(dòng)測(cè)量設(shè)備。傳感器輸出經(jīng)過(guò)標(biāo)定的數(shù)字信號(hào),是標(biāo)準(zhǔn)的I2C總線格式。SHT2x配有一個(gè)全新設(shè)計(jì)的4C代CMOSens芯片、一個(gè)經(jīng)過(guò)改進(jìn)的電容式濕度傳感元件和一個(gè)標(biāo)準(zhǔn)的能隙溫度傳感元件,內(nèi)置放大器、A/D轉(zhuǎn)換器、OTP內(nèi)存和數(shù)字處理單元,能同時(shí)檢測(cè)溫度和濕度。SHT2x的性能和可靠性,特別是在高濕環(huán)境下的穩(wěn)定性,相對(duì)于前一代傳感器SHT1x和SHT7x有很大提升,而數(shù)據(jù)傳輸操作更為簡(jiǎn)單。每一個(gè)傳感器都經(jīng)過(guò)校準(zhǔn)和測(cè)試,在芯片內(nèi)存儲(chǔ)了電子識(shí)別碼,可以通過(guò)輸入命令讀出這些識(shí)別碼。此外,SHT2x的分辨率可以通過(guò)輸入命令進(jìn)行改變,傳感器可以檢測(cè)到電池低電量狀態(tài),有極低功耗的節(jié)能模式,具有優(yōu)異的長(zhǎng)期穩(wěn)定性。SHT2x系列中最高精度的SHT25的相對(duì)濕度測(cè)量精度達(dá)到1.8%,溫度測(cè)量精度為0.2。
1 接口和通信協(xié)議
1.1 芯片引腳、信號(hào)和時(shí)序說(shuō)明
SHT2x使用了6引腳封裝中的4個(gè)引腳,分別是電源VDD、地VSS、雙向串行時(shí)鐘SCL和雙向串行數(shù)據(jù)SDA。SHT2x供電范圍為2.1~3.6 V,推薦電壓為3.0 V。SCK用于微處理器與SHT1x之間的通信同步。
SDA引腳用于傳感器的數(shù)據(jù)輸入和輸出。當(dāng)向傳感器發(fā)送命令時(shí),SDA在串行時(shí)鐘SCL的上升沿有效,且當(dāng)SCL為高電平時(shí),SDA必須保持穩(wěn)定。在SCL下降沿之后,SDA值可被改變。為確保通信安全,SDA的有效時(shí)間在SCL上升沿之前和下降沿之后應(yīng)該分別延長(zhǎng)至tSU和tHD,數(shù)字輸入/輸出端時(shí)序如圖1所示。當(dāng)從傳感器讀取數(shù)據(jù)時(shí),SDA在SCL變低以后有效tVD時(shí)長(zhǎng),且維持到下一個(gè)SCL的下降沿。圖1中的縮略語(yǔ)在表1中解釋。圖1中DATA OUT SDA由傳感器控制,DATA IN SDA由MCU控制。SDA有效讀取時(shí)間由前一個(gè)轉(zhuǎn)換的下降沿觸發(fā)。
1.2 通信協(xié)議
SHT2x采用標(biāo)準(zhǔn)的I2C總線協(xié)議進(jìn)行通信,所有傳感器都被設(shè)置為相同的7位I2C總線地址1000 000。
1.2.1 傳感器的啟動(dòng)與停止時(shí)序
上電后,傳感器需要15 ms時(shí)間以達(dá)到空閑狀態(tài),即準(zhǔn)備接收由主機(jī)(MCU)發(fā)送的命令,此時(shí)SCL為高電平。每個(gè)傳輸序列都以啟動(dòng)傳輸狀態(tài)(S)作為開(kāi)始,并以停止傳輸狀態(tài)(P)作為結(jié)束。圖2是啟動(dòng)傳輸狀態(tài)的時(shí)序圖。
當(dāng)SCL為高電平時(shí),SDA由高電平轉(zhuǎn)換為低電平。開(kāi)始狀態(tài)是由主機(jī)控制的一種特殊的總線狀態(tài),指示從機(jī)傳輸開(kāi)始,啟動(dòng)之后,總線處于占線狀態(tài)。圖3是停止傳輸狀態(tài)的時(shí)序圖。
當(dāng)SCL高電平時(shí),SDA由低電平轉(zhuǎn)換為高電平。停止?fàn)顟B(tài)是由主機(jī)控制的一種特殊的總線狀態(tài),指示從機(jī)傳輸結(jié)束,停止之后,總線處于閑置狀態(tài)。
1.2.2 發(fā)送命令和接收數(shù)據(jù)
在啟動(dòng)傳輸后,隨后傳輸?shù)氖鬃止?jié)包括7位的I2C總線設(shè)備地址和一個(gè)SDA方向位,讀為“1”,寫(xiě)為“0”。在第8個(gè)SCL時(shí)鐘下降沿之后,通過(guò)拉低SDA引腳(ACK位),指示傳感器數(shù)據(jù)接收正常。在發(fā)出測(cè)量命令之后主機(jī)必須等待測(cè)量完成?;镜拿钤诒?中進(jìn)行說(shuō)明,有兩種不同的方式可選——主機(jī)模式或非主機(jī)模式。
MCU與傳感器之間的通信有兩種不同的工作模式:主機(jī)模式和非主機(jī)模式。在主機(jī)模式下,在測(cè)量的過(guò)程中,SCL線被封鎖(由傳感器進(jìn)行控制);在非主機(jī)模式下,當(dāng)傳感器在執(zhí)行測(cè)量任務(wù)時(shí),SCL線仍然保持開(kāi)放狀態(tài),可進(jìn)行其他通信。非主機(jī)模式允許傳感器進(jìn)行測(cè)量時(shí)在總線上處理其他I2C總線通信任務(wù)。本文只涉及主機(jī)模式,其時(shí)序如圖4所示。
在主機(jī)模式下測(cè)量時(shí),SHT2x將SCL拉低,強(qiáng)制主機(jī)進(jìn)入等待狀態(tài)。通過(guò)釋放SCL線,表示傳感器內(nèi)部處理工作結(jié)束,進(jìn)而可以繼續(xù)數(shù)據(jù)傳送。
圖4中灰色部分由SHT2x控制。如果要省略校驗(yàn)和(CRC)傳輸,可將第45位改為NACK,之后接一個(gè)傳輸停止時(shí)序。
由于測(cè)量的最大分辨率為14位,第2個(gè)字節(jié)SDA上的后兩位LSB,即第43和44位用來(lái)傳輸相關(guān)的狀態(tài)信息,第43位表示測(cè)量的類(lèi)型,“0”表示測(cè)量溫度,“1”表示測(cè)量濕度,第0位當(dāng)前沒(méi)有使用。
在圖4中,傳感器輸出為0110 0011 0101 0010。在進(jìn)行物理?yè)Q算時(shí),后兩位狀態(tài)位應(yīng)置0。
所需最長(zhǎng)測(cè)量時(shí)間取決于測(cè)量類(lèi)型和分辨率,最高分辨率14位的測(cè)量時(shí)間最大值為85 ms,測(cè)量時(shí)間的最大值由MCU控制。
2 信號(hào)轉(zhuǎn)換
傳感器內(nèi)部設(shè)置的默認(rèn)分辨率是最高分辨率,即相對(duì)濕度12位、溫度14位。SDA的輸出數(shù)據(jù)被轉(zhuǎn)換成兩個(gè)字節(jié)的數(shù)據(jù)包,高字節(jié)MSB在前,低字節(jié)LSB在后,左對(duì)齊。每個(gè)字節(jié)后面都跟隨兩個(gè)狀態(tài)位和一個(gè)應(yīng)答位。兩個(gè)狀態(tài)位,即LSB的后兩位在進(jìn)行物理計(jì)算前須置0。這樣在圖4的示例中,所傳輸?shù)?6位相對(duì)濕度數(shù)據(jù)為SRH=0110 0011 0101 0000=25 424。
2.1 相對(duì)濕度轉(zhuǎn)換公式
相對(duì)濕度RH可以根據(jù)SDA輸出的相對(duì)濕度信號(hào)SRH通過(guò)下面的公式計(jì)算,單位以%RH表示。
RH=-6+125·(SRH/216)
對(duì)于圖4的例子,相對(duì)濕度的計(jì)算結(jié)果為42.5%RH。RH物理值對(duì)應(yīng)于世界氣象組織(WMO)所規(guī)定的基于液態(tài)水的相對(duì)濕度。
2.2 溫度轉(zhuǎn)換公式
溫度T可以通過(guò)SDA溫度輸出信號(hào)ST代入到下面的公式計(jì)算得到,單位以℃表示。
T=-46.85+175.72·(ST/216)
相對(duì)濕度和溫度轉(zhuǎn)換公式對(duì)所有分辨率都適用。
用溫度和濕度可以計(jì)算露點(diǎn),相關(guān)公式見(jiàn)參考文獻(xiàn)。
3 硬件設(shè)計(jì)
電路設(shè)計(jì)中,PCB布局、布線,組裝工藝對(duì)器件的精度影響很大,為保證器件和系統(tǒng)的精度,硬件設(shè)計(jì)需考慮多方因素。圖5是某個(gè)多點(diǎn)無(wú)線數(shù)據(jù)采集應(yīng)用中與SHT2x相關(guān)部分的電路圖。MCU采用STC11L16XE,STC11系列MCU的唯一ID號(hào)在識(shí)別多個(gè)傳感器節(jié)點(diǎn)時(shí)很方便,其掉電自喚醒功能以極低的功耗延長(zhǎng)電池壽命,I/O引腳模式可控的強(qiáng)推挽輸出可以用作SHT2x的可控電源。另外,STC11系列的低電壓中斷可用于電池電壓監(jiān)測(cè),超大的EEPROM可以用于數(shù)據(jù)存儲(chǔ)。
電路中包括了上拉電阻R1、R2和VDD與GND之間的去耦電容。布局時(shí),電容的位置應(yīng)盡量靠近傳感器。
將P3.5引腳設(shè)置為強(qiáng)推挽,輸出電流可達(dá)20 mA,而SHT2x的最大工作電流為330μA。I/O口高電平電壓約為3 V,這是SHT2x的推薦工作電壓。用MCU的一個(gè)引腳提供可控電源,可以將SHT2x的靜態(tài)電流減小到0。
SHT2x是一種混合信號(hào)IC,需要低噪聲供電。通過(guò)MCU的引腳供電,易受MCU電源的數(shù)字噪聲的影響。因此,要在MCU的供電引腳加一個(gè)RC濾波器,圖5中的R1和C1構(gòu)成了一個(gè)RC濾波器。
在布線時(shí),如果SCL和SDA信號(hào)線相互平行并且非常接近,有可能導(dǎo)致信號(hào)串?dāng)_和通信失敗。解決方法是在兩個(gè)信號(hào)線之間放置GND,將信號(hào)線隔開(kāi)。
可以使用標(biāo)準(zhǔn)的回流焊爐對(duì)SHT2x進(jìn)行焊接?;亓骱附雍?,需將傳感器在>75%RH的環(huán)境下存放至少12小時(shí),以保證聚合物的重新水合,否則將導(dǎo)致傳感器讀數(shù)的漂移。也可以將傳感器放置在自然環(huán)境(>40%RH)下5天以上,使其重新水合。
無(wú)論是手動(dòng)焊接還是回流焊接,在焊接后都不允許沖洗電路板。建議使用“免洗”型焊錫膏。
如果將傳感器應(yīng)用于腐蝕性氣體中或有冷凝水產(chǎn)生(如高濕環(huán)境),引腳焊盤(pán)與PCB都需要密封以避免接觸不良或短路。
如果傳感器與易發(fā)熱的電子元件在同一個(gè)印刷線路板上,在設(shè)計(jì)電路時(shí)應(yīng)采取措施,盡可能將熱傳遞的影響減小到最小。SHT2x與印刷電路板其他部分的銅鍍層應(yīng)盡可能最小,或在兩者之間開(kāi)一道縫隙。
4 軟件設(shè)計(jì)
在軟件中需控制測(cè)量頻率,當(dāng)測(cè)量頻率過(guò)高時(shí),傳感器的自身溫度會(huì)升高,從而影響測(cè)量精度。如果要保證它的自身溫升低于0.1℃,SHT2x的激活時(shí)間不應(yīng)超過(guò)測(cè)量時(shí)間的10%。例如在12位測(cè)量時(shí),每s測(cè)量次數(shù)最多不超過(guò)2次。
編譯器使用Keil C51,基于STC11系列MCU的采集SHT2x的主要程序和注釋略——編者注。
結(jié)語(yǔ)
SHT2x濕溫度傳感器比其上一代產(chǎn)品SHT1x有更高的精度,體積更小,測(cè)量范圍更寬,MCU對(duì)其控制和操作更加方便。
本文介紹的應(yīng)用系統(tǒng)在掉電休眠時(shí)實(shí)測(cè)電流為15μA。采用LQFP-44封裝的STC11系列MCU作為控制器與SHT2x組成的溫濕度采集系統(tǒng)具有體積小、功耗低、多點(diǎn)ID識(shí)別的優(yōu)點(diǎn),加上無(wú)線數(shù)據(jù)傳輸單元可以構(gòu)成很適合電池供電的小型無(wú)線溫濕度數(shù)據(jù)采集節(jié)點(diǎn)。