環(huán)境溫、濕度及光照三合一傳感器設(shè)計(jì)
摘要 設(shè)計(jì)了基于I2C總線(xiàn)接口的全校準(zhǔn)數(shù)字式相對(duì)濕度、溫度傳感器和環(huán)境光三合一傳感器。其具有數(shù)字式輸出、免調(diào)試、免標(biāo)定、免外圍電路,提供I2C數(shù)字接口以及8~12位溫度感測(cè)、濕度感測(cè)和22位超寬光動(dòng)態(tài)范圍的特點(diǎn)。傳感器IC設(shè)計(jì)工作在3.3 V供電,滿(mǎn)負(fù)荷工作時(shí)僅消耗20μA電流,休眠電流為0.3μA。針對(duì)傳感器的性能特點(diǎn)、接口時(shí)序與命令進(jìn)行了闡述,給出了與單片機(jī)的接口電路及相應(yīng)程序。實(shí)時(shí)監(jiān)測(cè)表明,其具有精度高、成本低、體積小、接口簡(jiǎn)單的優(yōu)點(diǎn)。
關(guān)鍵詞 數(shù)字電路;溫濕度;光傳感器;I2C總線(xiàn)
在對(duì)環(huán)境溫度、濕度和光照度進(jìn)行測(cè)量時(shí),大多使用熱敏電阻、濕敏電容和光敏器件來(lái)分別測(cè)量溫度、濕度和光照度。這種測(cè)量方法一般要設(shè)計(jì)相應(yīng)的信號(hào)調(diào)理電路,還要經(jīng)過(guò)復(fù)雜的標(biāo)定過(guò)程,測(cè)量精度難以保證。當(dāng)對(duì)兩個(gè)以上的參數(shù)進(jìn)行監(jiān)測(cè)時(shí),每一個(gè)測(cè)量點(diǎn)都必須使用獨(dú)立傳感器和獨(dú)立的信號(hào)調(diào)理電路,這不僅使得測(cè)量系統(tǒng)的成本和體積大幅提高,也在一定程度上增加了系統(tǒng)設(shè)計(jì)的復(fù)雜性。本設(shè)計(jì)采用SHT11溫濕度傳感器芯片和一款集成了ADC的環(huán)境光傳感器MAX9635,實(shí)現(xiàn)溫、濕度及光照三合一傳感器設(shè)計(jì)。
1 三合一傳感器簡(jiǎn)介
該傳感器集環(huán)境溫、濕度和光照度傳感器于一體,使測(cè)量系統(tǒng)的成本和體積大為降低,減少了系統(tǒng)設(shè)計(jì)的復(fù)雜性。
1.1 溫濕度測(cè)量
環(huán)境溫度、濕度測(cè)量采用SHT11數(shù)字溫濕度傳感器芯片。其主要特點(diǎn)有:(1)高度集成。(2)提供二線(xiàn)數(shù)字串行接口,接口簡(jiǎn)單。(3)測(cè)量精度可編程調(diào)節(jié)。(4)測(cè)量精確度高,可以提供溫度補(bǔ)償?shù)臐穸葴y(cè)量值和高質(zhì)量的露點(diǎn)計(jì)算。(5)測(cè)量和通信結(jié)束后,自動(dòng)轉(zhuǎn)入低功耗模式。(6)高可靠性,自校準(zhǔn)。
SHT11將溫度、濕度感測(cè)、A/D轉(zhuǎn)換和加熱器等功能集成到一個(gè)芯片上,該芯片分別將濕度和溫度轉(zhuǎn)換成電信號(hào),經(jīng)14位A/D轉(zhuǎn)換后;由二線(xiàn)串行數(shù)字接口輸出數(shù)字信號(hào)。在測(cè)量過(guò)程中,校準(zhǔn)系數(shù)會(huì)自動(dòng)校準(zhǔn)來(lái)自傳感器的信號(hào)。
由于將傳感器與電路部分結(jié)合在一起,因此,該傳感器具有比其他類(lèi)型濕度傳感器優(yōu)越得多的性能。首先是傳感器信號(hào)強(qiáng)度的增加增強(qiáng)了傳感器的抗干擾性能,保證了傳感器的長(zhǎng)期穩(wěn)定性。傳感器可直接通過(guò)I2C總線(xiàn)與任何類(lèi)型的微處理器、微控制器系統(tǒng)連接,從而減少了接口電路的硬件成本,簡(jiǎn)化了接口方式。
1.2 光照度測(cè)量
環(huán)境光傳感器采用集成了光電二極管和ADC,且提供I2C數(shù)字接口的光傳感器MAX9635。傳感器IC具有超低電流損耗(典型值為0.65μA)和極寬的光動(dòng)態(tài)范圍為0.045~188 000 lx。片內(nèi)自動(dòng)量程調(diào)整機(jī)制無(wú)需用戶(hù)干涉增益范圍的設(shè)置。
2 溫濕度工作時(shí)序
SHT11的I2C通訊數(shù)據(jù)格式與普通格式不兼容。
(1)傳輸開(kāi)始。在SCK為高時(shí)使SDA由高電平變?yōu)榈碗娖?,并在下一個(gè)SCK為高時(shí)將SDA升高,如圖1所示。
(2)地址與測(cè)試對(duì)象命令。該命令包含3個(gè)地址位和5個(gè)命令位,其后為應(yīng)答ACK位,表示SHT11正確收到命令。傳感器命令列表,如表2所示。
(3)溫濕度測(cè)量時(shí)序。當(dāng)發(fā)出了溫/濕度測(cè)量命令后,控制器就要等到測(cè)量完成(使用8/12/14位的分辨率測(cè)量分別需要大約11/55/210 ms)。當(dāng)測(cè)量完成后,SHT11將數(shù)據(jù)線(xiàn)拉低,然后傳送2 Byte的測(cè)量數(shù)據(jù)與1 Byte CRC校驗(yàn)和。通訊在確認(rèn)CRC數(shù)據(jù)位后停止。如果沒(méi)有用CRC校驗(yàn)和,則控制器就會(huì)在測(cè)量數(shù)據(jù)LSB后保持ACK為高來(lái)停止通訊,測(cè)量和通訊完成后會(huì)自動(dòng)返回睡眠模式。測(cè)量溫度和濕度命令所對(duì)應(yīng)的時(shí)序見(jiàn)SHT11說(shuō)明書(shū)。
(4)溫濕度寄存器配置。溫濕度傳感器中一些高級(jí)功能是通過(guò)狀態(tài)寄存器實(shí)現(xiàn)的。寄存器中各位的類(lèi)型及說(shuō)明詳見(jiàn)SHT11使用說(shuō)明書(shū)。
3 光傳感器I2C通訊格式
Start和Stop條件:主機(jī)通過(guò)發(fā)送Start條件啟動(dòng)通信,Start、Repeated Start條件如圖2所示,Stop條件如圖3所示。
從地址:寫(xiě)操作從地址0x94,讀操作0x95。
應(yīng)答:寫(xiě)操作模式下,應(yīng)答位(ACK)是第9個(gè)時(shí)鐘位,是傳感器IC對(duì)其接收的每個(gè)數(shù)據(jù)字節(jié)的握手信號(hào),如圖4所示。如果成功接收主機(jī)發(fā)送確認(rèn),若數(shù)據(jù)傳輸失敗,總線(xiàn)主機(jī)會(huì)重試通信。每次讀取字節(jié)后,主機(jī)均發(fā)送應(yīng)答信號(hào),使數(shù)據(jù)繼續(xù)傳輸。當(dāng)主機(jī)從傳感器IC讀取數(shù)據(jù)的最后Byte時(shí),發(fā)送非應(yīng)答,隨后是Stop。
寫(xiě)數(shù)據(jù)格式:圖4所示為向傳感器IC寫(xiě)入1個(gè)字節(jié)數(shù)據(jù)時(shí)的正確幀格式。
讀數(shù)據(jù)格式:圖5所示為讀1 Byte數(shù)據(jù)時(shí)的正確幀格式。
寄存器定義:0x00和0x01中斷狀態(tài)與中斷使能;0x02功能配置;0x03和0x04存放流明讀數(shù);0x05和0x06中設(shè)置流明上限和流明下限;0x07中設(shè)置適當(dāng)?shù)拈T(mén)限定時(shí)器數(shù)據(jù)。
自動(dòng)量程調(diào)整模式:自動(dòng)模式配置下,自動(dòng)量程調(diào)整電路采用兩種方法改變其靈敏度。光照超過(guò)700 lx時(shí),分流器通過(guò)除以系數(shù)8來(lái)降低光電二極管的電流。默認(rèn)設(shè)置下,分流比為1,電流直接送入A/D轉(zhuǎn)換器。當(dāng)光強(qiáng)降低時(shí),自動(dòng)量程調(diào)整電路將積分時(shí)間從100 ms提高到200 ms、400 ms或800 ms。分流器和不同積分時(shí)間相組合,可使A/D轉(zhuǎn)換范圍比其16位標(biāo)稱(chēng)范圍提高8倍,或降低8倍。從而獲得22位或略高于4 000 000:1的動(dòng)態(tài)范圍。
流明讀數(shù)的數(shù)據(jù)格式:傳感器IC提供用戶(hù)易于接收的數(shù)字輸出格式。它由4位指數(shù)和隨后的8位尾數(shù)組成。在最高靈敏度模式下,1個(gè)計(jì)數(shù)值表示0.045 lx。尾數(shù)最大值為255,指數(shù)最大值為14。所以,最大量程為255×214=4 177 920。在此模式下,最大讀數(shù)為188 000 lx,大于該值的任何讀數(shù)均被認(rèn)為是過(guò)載。
門(mén)限寄存器數(shù)據(jù)格式:傳感器IC中斷電路要求按照特定格式給出上限和下限,以便正確解析數(shù)據(jù)。寄存器0x05和0x06中的上限和下限數(shù)值必須與高字節(jié)流明格式相匹配,由4位指數(shù)和尾數(shù)的4個(gè)最高有效位組成。
4 三合一傳感器的應(yīng)用設(shè)計(jì)
微處理器采用二線(xiàn)串行數(shù)字接口和傳感器進(jìn)行通信,硬件接口非常簡(jiǎn)單;然而,通信協(xié)議是芯片廠家定義的,所以在軟件設(shè)計(jì)中,需要用微處理器通用I/O口模擬通信協(xié)議。
4.1 硬件設(shè)計(jì)
硬件連接如圖6所示。
4.2 軟件設(shè)計(jì)
由于SHT11和MAX9635的二線(xiàn)串行通信協(xié)議和I2C協(xié)議不兼容。必須使用GTIO口模擬出如圖4和圖5所示的數(shù)據(jù)格式。
基于以上宏定義,可以方便地使SCK和SDA總線(xiàn)輸出持續(xù)一定時(shí)間的高電平或低電平,從而實(shí)現(xiàn)傳感器的讀寫(xiě)。
4.3 溫度、濕度光照值的計(jì)算
4.3.1 濕度線(xiàn)性補(bǔ)償和溫度補(bǔ)償
SHT11可通過(guò)SDA數(shù)據(jù)總線(xiàn)直接輸出數(shù)字量濕度值為“相對(duì)濕度”,需要進(jìn)行線(xiàn)性補(bǔ)償和溫度補(bǔ)償后才能得到較為準(zhǔn)確的濕度值??砂词?1)修正濕度值。
式中,RHlinear為經(jīng)過(guò)線(xiàn)性補(bǔ)償后的濕度值,SORH為相對(duì)濕度測(cè)量值,C1,C2和C3為線(xiàn)性補(bǔ)償系數(shù),取值如表3所示。
由于溫度對(duì)濕度的影響十分明顯,而實(shí)際溫度和測(cè)試參考溫度25℃有所不同。補(bǔ)償公式如式(2)所示。
式中,RHtrue為經(jīng)過(guò)線(xiàn)性補(bǔ)償和溫度補(bǔ)償后的濕度值;T為測(cè)試濕度值時(shí)的溫度;t1和t2為溫度補(bǔ)償系數(shù),取值如表4所示。
4.3.2 溫度值輸出
由于SHT11具有較好的線(xiàn)性輸出。實(shí)際溫度值可由式(3)算得。
式中,d1和d2為特定系數(shù)。d1的取值與SHT11工作電壓有關(guān),d2的取值則與SHT11內(nèi)部A/D轉(zhuǎn)換器采用的分辨率有關(guān),其對(duì)應(yīng)關(guān)系分別如表5和表6所示。
5 結(jié)束語(yǔ)
該傳感器集溫度傳感器、濕度傳感器和環(huán)境光傳感器于一體,可用于對(duì)環(huán)境溫、濕度和光照度實(shí)時(shí)監(jiān)測(cè),具有精度高、成本低、體積小、接口簡(jiǎn)單等優(yōu)點(diǎn);由于芯片采用采用數(shù)字信號(hào)輸出,因此抗干擾能力比同類(lèi)芯片高。傳感器IC具有超低電流損耗、極寬的光動(dòng)態(tài)范圍、免調(diào)試和自動(dòng)量程調(diào)整的特點(diǎn),無(wú)需用戶(hù)干涉增益范圍的設(shè)置。因此,該傳感器在對(duì)溫室、汽車(chē)等環(huán)境溫濕度、光監(jiān)測(cè)和其他自動(dòng)控制等領(lǐng)域?qū)⒌玫綇V泛應(yīng)用。