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