基于12C總線接口的智能溫度傳感器TMPl01
TMPl01是TI公司生產(chǎn)的基于I2C串行總線接口的低功耗、高精度智能溫度傳感器,其內(nèi)部集成有溫度傳感器、A/D轉(zhuǎn)換器、I2C串行總線接口等。寬泛的溫度測(cè)量范圍和較高的分辨率使其廣泛應(yīng)用于多領(lǐng)域的溫度測(cè)量系統(tǒng)、多路溫度測(cè)控系統(tǒng)以及
各種恒溫控制裝置。TMPl01具有以下性能特點(diǎn):
1)帶有I2C總線,通過(guò)串行接口(SDA,SCI)實(shí)現(xiàn)與單片機(jī)的通信,其I2C總線上可掛接3個(gè)TMPl01器件,構(gòu)成多點(diǎn)溫度測(cè)控系統(tǒng)。
2)溫度測(cè)量范圍為-55%~125℃,9~12位A/D轉(zhuǎn)換精度,12位A/D轉(zhuǎn)換的分辨率達(dá)0.0625~C。被測(cè)溫度值以符號(hào)擴(kuò)展的16位數(shù)字量方式串行輸出。
3)電源電壓范圍寬(+2.7 V~+5.5 V),靜態(tài)電流小(待機(jī)狀態(tài)下僅為O.1μA)。
4)內(nèi)部具有可編程的溫度上、下限寄存器及報(bào)警(中斷)輸出功能,內(nèi)部的故障排隊(duì)功能可防止因噪聲干擾引起的誤觸發(fā),從而提高溫控系統(tǒng)的可靠性。
2 TMPl01引腳功能和內(nèi)部結(jié)構(gòu)
2.1 TMPl01引腳功能
TMPl01硬件連接簡(jiǎn)便,運(yùn)行時(shí)除了SDA、SCI.和ALERT線上需要加上拉電阻外不需外接器件.TMPl01采用SOT23-6封裝,引腳排列如圖1所示,引腳功能如下:
SCL:串行時(shí)鐘輸入端;
GND:接地端;
ALERT:總線報(bào)警(中斷)輸出端,漏極開路輸出;
V+:電源端;
ADD0:I2C總線的地址選擇端;
SDA:串行數(shù)據(jù)輸入/輸出端。電源與接地端之間接有一只0.1μF的耦合電容。
2.2 TMPl01內(nèi)部結(jié)構(gòu)
TMP101內(nèi)部結(jié)構(gòu)框圖如圖2所示,TMP101內(nèi)部含有二極管溫度傳感器、△-∑型A/D轉(zhuǎn)換器、時(shí)鐘振蕩器、控制邏輯、配置寄存器、溫度寄存器以及故障排隊(duì)計(jì)數(shù)器。TMP101首先通過(guò)內(nèi)部溫度傳感器產(chǎn)生一個(gè)與被測(cè)溫度成正比的電壓信號(hào),再通過(guò)12位△-∑型A/D轉(zhuǎn)換器將電壓信號(hào)轉(zhuǎn)換為與攝氏溫度成正比的數(shù)字量并存儲(chǔ)在內(nèi)部的溫度寄存器中。該器件根據(jù)用戶在溫度上下限寄存器中設(shè)定的THIGH和TLOW,通過(guò)溫度窗口比較器決定是否啟動(dòng)報(bào)警輸出。系統(tǒng)上電后器件處于缺省狀態(tài),其溫度報(bào)警缺省閾值為:上限溫度THIGH=80℃溫度TLOW=75℃。
3 TMP101工作原理
TMPl01的I2C總線串行數(shù)據(jù)接口線SDA和串行時(shí)鐘接口線SDA由主控制器控制.主控制器作為主機(jī),TMP101作為從機(jī)并支持12C總線協(xié)議的讀/寫操作命令。首先通過(guò)主控制器對(duì)其進(jìn)行地址設(shè)定。使主控制器對(duì)掛接在總線上的TMP1O1進(jìn)行地址識(shí)別。為了能夠正確獲取TMP101內(nèi)部溫度寄存器中的溫度值數(shù)據(jù),要通過(guò)I2C總線對(duì)TMP101內(nèi)部相關(guān)寄存器寫相應(yīng)的數(shù)據(jù),設(shè)定溫度轉(zhuǎn)換結(jié)果的分辨率、轉(zhuǎn)換時(shí)間、報(bào)警輸出的上、下限溫度值以及工作方式等.也就是對(duì)TMPl01內(nèi)部的配置寄存器、上限溫度寄存器和下限溫度寄存器進(jìn)行初始化設(shè)置。
3.1 TMP1O1的地址設(shè)置
根據(jù)12C串行總線規(guī)范,TMP1O1有一個(gè)7位的從器件地址碼,其有效位為"10010",其余兩位根據(jù)引腳ADD0接地、懸空和接電源端的不同分別設(shè)置為"00"、"01"、"10"。一條I2C總線上可掛接3個(gè)TMPl01器件。
3.2 TMP101內(nèi)部寄存器
TMP101的功能實(shí)現(xiàn)和工作方式主要是由內(nèi)部5個(gè)寄存器確定,如圖3所示,這些寄存器分別是地址指針寄存器、溫度寄存器、配置寄存器、上限溫度(TL)寄存器和下限溫度(TH)寄存器。后4個(gè)寄存器均屬于數(shù)據(jù)寄存器。
地址指針寄存器為8位可讀/寫寄存器,內(nèi)部存儲(chǔ)了要讀寫的其余4個(gè)數(shù)據(jù)寄存器的地址,在讀寫操作中。通過(guò)設(shè)定地址指針寄存器的內(nèi)容確定要訪問的寄存器。在8位數(shù)據(jù)字節(jié)中,前6位全部設(shè)置為0,后2位用于選擇寄存器,后2位P0、P1的值與選擇的寄存器關(guān)系如表l所列。
配置寄存器為8位可讀/寫寄存器,數(shù)據(jù)格式如表2所列。通過(guò)配置寄存器設(shè)置器件的工作方式。Rl/R0為溫度傳感器轉(zhuǎn)換分辨率配置位,可以設(shè)定內(nèi)部.A/D轉(zhuǎn)換器的分辨率及轉(zhuǎn)換時(shí)間:F1/F0為故障排隊(duì)次數(shù)配置位,當(dāng)被測(cè)溫度連續(xù)超過(guò)n次(通過(guò)設(shè)置Fl/F0位),就會(huì)有報(bào)警輸出;POL為ALERT極性位,通過(guò)POL的設(shè)置,可以使控制器和ALERT輸出的極性一致:SD用來(lái)設(shè)置器件是否工作在關(guān)斷模式:在關(guān)斷模式下,向OS/ALERT位寫l可以開啟一次溫度轉(zhuǎn)換,在溫度比較模式下,該數(shù)據(jù)位可提供比較模式的狀態(tài)。
4 與PICl8F458單片機(jī)的接口
TMP101以高精度的測(cè)量結(jié)果和超小型貼片封裝廣泛應(yīng)用于各種溫度測(cè)量系統(tǒng)、電源管理系統(tǒng)、溫度監(jiān)控裝置以及恒溫控制裝置中,通過(guò)其串行數(shù)據(jù)接口線SDA和串行時(shí)鐘接口線SCL可方便地與微控制器相連接,構(gòu)成一個(gè)溫度測(cè)量系統(tǒng)。圖4所示為PIC18F458單片機(jī)與TMP101的連接應(yīng)用電路。
4.1 PICl8F458簡(jiǎn)介
PICl8F458是美國(guó)Microchip公司生產(chǎn)的單片機(jī)。片內(nèi)集成了A/D轉(zhuǎn)換器、EEPROM存儲(chǔ)器、比較輸出、捕捉輸入、PWM輸出、I2C和SPI接口、異步串行通信(USART)接口電路、CAN總線接口電路、Flash程序存儲(chǔ)器等,功能強(qiáng)大,設(shè)計(jì)電路簡(jiǎn)單可靠。
4.2 TMP101初始化設(shè)置
要獲取TMP101中的溫度值數(shù)據(jù),首先應(yīng)通過(guò)PICl8F458單片機(jī)對(duì)TMP101內(nèi)部的配置寄存器、上限溫度寄存器和下限溫度寄存器進(jìn)行初始化設(shè)置。其過(guò)程為:PICl8F458單片機(jī)對(duì)TMP101寫地址,然后寫配置寄存器地址到指針寄存器,最后寫入數(shù)據(jù)到配置寄存器。PICl8F458單片機(jī)對(duì)TMP101配置寄存器寫操作的時(shí)序如圖5所示,上、下限溫度寄存器的寫時(shí)序和配置寄存器的寫時(shí)序同理。
4.3 TMP101讀數(shù)據(jù)
讀取TMP101內(nèi)部溫度寄存器當(dāng)前值的過(guò)程是:首先寫入要讀的TMP101,然后寫入要讀的TMP101內(nèi)部溫度寄存器,向I2C總線上發(fā)送一個(gè)"重啟動(dòng)信號(hào)",并將TMP101地址字節(jié)也重發(fā)一次,改變數(shù)據(jù)的傳輸方向,從而再進(jìn)行讀取溫度寄存器的操作。單片機(jī)對(duì)TMPl01溫度寄存器讀操作的時(shí)序如圖6所示。
圖6可以解釋為:在串行數(shù)據(jù)線SDA和串行時(shí)鐘線SCL的時(shí)序配合下,將PICl8F458單片機(jī)的啟動(dòng)使能位SEN置位建立啟動(dòng)信號(hào)時(shí)序,緊接著單片機(jī)將要讀的TMP101地址字節(jié)寫入緩沖器,并通過(guò)單片機(jī)內(nèi)部移位寄存器將字節(jié)移送至SDA引腳,8位地址字節(jié)的前7位是TMP101的受控地址,后l位為讀/寫控制位(為"O"時(shí)表示寫操作)。寫地址字節(jié)完成后,在第9個(gè)時(shí)鐘脈沖周期內(nèi),單片機(jī)釋放SDA,以便TMP101在地址匹配后,能夠反饋一個(gè)有效應(yīng)答信號(hào)供單片機(jī)檢測(cè)接收。第9個(gè)時(shí)鐘脈沖之后,SCL引腳保持為低電平,SDA引腳電平保持不變,直到下一個(gè)數(shù)據(jù)字節(jié)被送入緩沖器為止。然后再寫入要讀的TMP101內(nèi)部溫度寄存器地址字節(jié),其過(guò)程與TMPl01地址字節(jié)的寫操作同理。通過(guò)向總線上發(fā)送"重啟動(dòng)信號(hào)",改變數(shù)據(jù)的傳輸方向,此時(shí)尋址字節(jié)也要重發(fā)一次,但對(duì)TMP101的地址字節(jié)已變?yōu)樽x操作,再讀取TMP101內(nèi)部溫度寄存器的地址字節(jié),最后讀出TMP101內(nèi)部溫度寄存器中的溫度值數(shù)據(jù)字節(jié),被測(cè)溫度值以符號(hào)擴(kuò)展的16位數(shù)字量方式串行輸出。單片機(jī)每接收一個(gè)字節(jié)都要反饋一個(gè)應(yīng)答信號(hào),此時(shí)要注意單片機(jī)反饋的應(yīng)答信號(hào)和TMP101反饋的應(yīng)答信號(hào)是不同的,最后通過(guò)設(shè)置停止使能位,發(fā)送一個(gè)停止信號(hào)時(shí)序到總線上,表明此次通信終止。
5 結(jié)束語(yǔ)
介紹了基于I2C串行總線接口的數(shù)字智能溫度傳感器TMP101的性能、結(jié)構(gòu)和工作原理,以及與PICl8F458單片機(jī)的實(shí)際應(yīng)用,并成功地運(yùn)用到"基于單片機(jī)的智能教室控制系統(tǒng)"中,該系統(tǒng)能顯示教室內(nèi)實(shí)際檢測(cè)到的溫度值,并通過(guò)RS-485通訊數(shù)據(jù)線傳輸?shù)缴衔粰C(jī)進(jìn)行實(shí)時(shí)顯示,測(cè)量結(jié)果精度高,系統(tǒng)運(yùn)行穩(wěn)定。
評(píng)論