劉錚,陳拓
(中國科學院 西安網絡中心,西安 710043)
新一代Sensirion溫濕度傳感器SHT2x,采用適于回流焊的雙列扁平無引腳DFN無鉛封裝,底面3mm×3 mm,高度1.1mm,具有超小型的體積,特別適合移動測量設備。傳感器輸出經過標定的數字信號,是標準的I2C總線格式。SHT2x配有一個全新設計的4C代CMOSens芯片、一個經過改進的電容式濕度傳感元件和一個標準的能隙溫度傳感元件,內置放大器、A/D轉換器、OTP內存和數字處理單元,能同時檢測溫度和濕度。SHT2x的性能和可靠性,特別是在高濕環境下的穩定性,相對于前一代傳感器SHT1x和SHT7x有很大提升,而數據傳輸操作更為簡單。每一個傳感器都經過校準和測試,在芯片內存儲了電子識別碼,可以通過輸入命令讀出這些識別碼。此外,SHT2x的分辨率可以通過輸入命令進行改變,傳感器可以檢測到電池低電量狀態,有極低功耗的節能模式,具有優異的長期穩定性。SHT2x系列中最高精度的SHT25的相對濕度測量精度達到1.8%,溫度測量精度為0.2。
SHT2x使用了6引腳封裝中的4個引腳,分別是電源VDD、地VSS、雙向串行時鐘SCL和雙向串行數據SDA。SHT2x供電范圍為2.1~3.6V,推薦電壓為3.0V。SCK用于微處理器與SHT1x之間的通信同步。
SDA引腳用于傳感器的數據輸入和輸出。當向傳感器發送命令時,SDA在串行時鐘SCL的上升沿有效,且當SCL為高電平時,SDA必須保持穩定。在SCL下降沿之后,SDA值可被改變。為確保通信安全,SDA的有效時間在SCL上升沿之前和下降沿之后應該分別延長至tSU和tHD,數字輸入/輸出端時序如圖1所示。當從傳感器讀取數據時,SDA在SCL變低以后有效tVD時長,且維持到下一個SCL的下降沿。圖1中的縮略語在表1中解釋。圖1中DATA OUT SDA由傳感器控制,DATA IN SDA由MCU控制。SDA有效讀取時間由前一個轉換的下降沿觸發。

圖1 數字輸入/輸出端的時序圖

表1 I 2 C總線快速模式數字輸入/輸出端的時序特性
SHT2x采用標準的I2C總線協議進行通信,所有傳感器都被設置為相同的7位I2C總線地址1000 000。
1.2.1 傳感器的啟動與停止時序
上電后,傳感器需要15ms時間以達到空閑狀態,即準備接收由主機(MCU)發送的命令,此時SCL為高電平。每個傳輸序列都以啟動傳輸狀態(S)作為開始,并以停止傳輸狀態(P)作為結束。圖2是啟動傳輸狀態的時序圖。

圖2 啟動傳輸狀態時序圖
當SCL為高電平時,SDA由高電平轉換為低電平。開始狀態是由主機控制的一種特殊的總線狀態,指示從機傳輸開始,啟動之后,總線處于占線狀態。圖3是停止傳輸狀態的時序圖。

圖3 停止傳輸狀態時序圖
當SCL高電平時,SDA由低電平轉換為高電平。停止狀態是由主機控制的一種特殊的總線狀態,指示從機傳輸結束,停止之后,總線處于閑置狀態。
1.2.2 發送命令和接收數據
在啟動傳輸后,隨后傳輸的首字節包括7位的I2C總線設備地址和一個SDA方向位,讀為“1”,寫為“0”。在第8個SCL時鐘下降沿之后,通過拉低SDA引腳(ACK位),指示傳感器數據接收正常。在發出測量命令之后主機必須等待測量完成。基本的命令在表2中進行說明,有兩種不同的方式可選——主機模式或非主機模式。

表2 基本命令集
MCU與傳感器之間的通信有兩種不同的工作模式:主機模式和非主機模式。在主機模式下,在測量的過程中,SCL線被封鎖(由傳感器進行控制);在非主機模式下,當傳感器在執行測量任務時,SCL線仍然保持開放狀態,可進行其他通信。非主機模式允許傳感器進行測量時在總線上處理其他I2C總線通信任務。本文只涉及主機模式,其時序如圖4所示。

圖4 主機通信模式時序
在主機模式下測量時,SHT2x將SCL拉低,強制主機進入等待狀態。通過釋放SCL線,表示傳感器內部處理工作結束,進而可以繼續數據傳送。
圖4中灰色部分由SHT2x控制。如果要省略校驗和(CRC)傳輸,可將第45位改為NACK,之后接一個傳輸停止時序。
由于測量的最大分辨率為14位,第2個字節SDA上的后兩位LSB,即第43和44位用來傳輸相關的狀態信息,第43位表示測量的類型,“0”表示測量溫度,“1”表示測量濕度,第0位當前沒有使用。
在圖4中,傳感器輸出為0110 0011 0101 0010。在進行物理換算時,后兩位狀態位應置0。
所需最長測量時間取決于測量類型和分辨率,最高分辨率14位的測量時間最大值為85ms,測量時間的最大值由MCU控制。
傳感器內部設置的默認分辨率是最高分辨率,即相對濕度12位、溫度14位。SDA的輸出數據被轉換成兩個字節的數據包,高字節 MSB在前,低字節LSB在后,左對齊。每個字節后面都跟隨兩個狀態位和一個應答位。兩個狀態位,即LSB的后兩位在進行物理計算前須置0。這樣在圖4的示例中,所傳輸的16位相對濕度數據為SRH=0110 0011 0101 0000=25 424。
相對濕度RH可以根據SDA輸出的相對濕度信號SRH通過下面的公式計算,單位以%RH表示。

對于圖4的例子,相對濕度的計算結果為42.5%RH。RH物理值對應于世界氣象組織(WMO)所規定的基于液態水的相對濕度。
溫度T可以通過SDA溫度輸出信號ST代入到下面的公式計算得到,單位以℃表示。

相對濕度和溫度轉換公式對所有分辨率都適用。
用溫度和濕度可以計算露點,相關公式見參考文獻[3]。
電路設計中,PCB布局、布線,組裝工藝對器件的精度影響很大,為保證器件和系統的精度,硬件設計需考慮多方因素。圖5是某個多點無線數據采集應用中與SHT2x相關部分的電路圖。MCU采用STC11L16XE,STC11系列MCU的唯一ID號在識別多個傳感器節點時很方便,其掉電自喚醒功能以極低的功耗延長電池壽命,I/O引腳模式可控的強推挽輸出可以用作SHT2x的可控電源。另外,STC11系列的低電壓中斷可用于電池電壓監測,超大的EEPROM可以用于數據存儲。

圖5 SHT2x應用電路圖
電路中包括了上拉電阻R1、R2和VDD與GND之間的去耦電容。布局時,電容的位置應盡量靠近傳感器。
將P3.5引腳設置為強推挽,輸出電流可達20mA,而SHT2x的最大工作電流為330μA。I/O口高電平電壓約為3V,這是SHT2x的推薦工作電壓。用MCU的一個引腳提供可控電源,可以將SHT2x的靜態電流減小到0。
SHT2x是一種混合信號IC,需要低噪聲供電。通過MCU的引腳供電,易受MCU電源的數字噪聲的影響。因此,要在MCU的供電引腳加一個RC濾波器,圖5中的R1和C1構成了一個RC濾波器。
在布線時,如果SCL和SDA信號線相互平行并且非常接近,有可能導致信號串擾和通信失敗。解決方法是在兩個信號線之間放置GND,將信號線隔開。
可以使用標準的回流焊爐對SHT2x進行焊接。回流焊接后,需將傳感器在>75%RH的環境下存放至少12小時,以保證聚合物的重新水合,否則將導致傳感器讀數的漂移。也可以將傳感器放置在自然環境(>40%RH)下5天以上,使其重新水合。
無論是手動焊接還是回流焊接,在焊接后都不允許沖洗電路板。建議使用“免洗”型焊錫膏。
如果將傳感器應用于腐蝕性氣體中或有冷凝水產生(如高濕環境),引腳焊盤與PCB都需要密封以避免接觸不良或短路。
如果傳感器與易發熱的電子元件在同一個印刷線路板上,在設計電路時應采取措施,盡可能將熱傳遞的影響減小到最小。SHT2x與印刷電路板其他部分的銅鍍層應盡可能最小,或在兩者之間開一道縫隙。
在軟件中需控制測量頻率,當測量頻率過高時,傳感器的自身溫度會升高,從而影響測量精度。如果要保證它的自身溫升低于0.1℃,SHT2x的激活時間不應超過測量時間的10%。例如在12位測量時,每s測量次數最多不超過2次。
編譯器使用Keil C51,基于STC11系列MCU的采集SHT2x的主要程序和注釋略——編者注。
SHT2x濕溫度傳感器比其上一代產品SHT1x有更高的精度,體積更小,測量范圍更寬,MCU對其控制和操作更加方便。本文介紹的應用系統在掉電休眠時實測電流為15μA。采用LQFP-44封裝的STC11系列MCU作為控制器與SHT2x組成的溫濕度采集系統具有體積小、功耗低、多點ID識別的優點,加上無線數據傳輸單元可以構成很適合電池供電的小型無線溫濕度數據采集節點。
編者注:本文為期刊縮略版,全文見本刊網站www.mesnet.com.cn。
[1] Sensirion Company.SHT25Datasheet[EB/OL].[2010-10].http://www.sensirion.com.
[2] Sensirion Company.Sample Code for SHT21[EB/OL].[2010-02].http://www.sensirion.com.
[3] Sensirion Company.Humidity at a Glance[EB/OL].[2008-08].http://www.sensirion.com.
[4] 朱艷麗,陳拓.TSic系列高精度溫度傳感器的應用[J].單片機與嵌入式系統應用,2012(3):44-46.