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