新聞中心

EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > DS1620實(shí)現(xiàn)高分辨率溫度測量

DS1620實(shí)現(xiàn)高分辨率溫度測量

作者: 時間:2006-05-07 來源:網(wǎng)絡(luò) 收藏

DS1620是DALLAS半導(dǎo)體公司的溫度傳感器家庭成員之一,是新型數(shù)字式溫度傳感器。其測溫范圍寬(-55℃~+125℃),感應(yīng)能力精確,不需A/D轉(zhuǎn)換電路,直接將溫度值轉(zhuǎn)換成數(shù)字量。其外圍電路簡單,可以不需要PC機(jī)和單片機(jī)等的支持,獨(dú)立進(jìn)行工作??蓮V泛應(yīng)用于溫度控制,溫度測量,工作系統(tǒng)及任何熱敏感系統(tǒng)中。

本文引用地址:http://butianyuan.cn/article/255670.htm

DS1620為8引腳DIP或SOIC封裝,其引腳符號及功能見表1。

1

引腳號 符 號 功 能
1 DQ 3線數(shù)據(jù)輸入/輸出端
2 CLK/CONV 3線時鐘輸入端/獨(dú)立工作端
3 RST 3線箝位輸入端(低電平復(fù)位)
4 GND 接地端
5 THIGH 高溫觸發(fā)端
6 TLOW 低溫觸發(fā)端
7 TCOM 高溫/低溫結(jié)合觸發(fā)端
8 VDD +5V 電源端



測溫原理

DS1620通過專有的片載溫度測量技術(shù)進(jìn)行溫度測量。其測溫原理如圖1所示。

計數(shù)器和溫度寄存器預(yù)選設(shè)置為-55℃的基值,計數(shù)器對流經(jīng)低溫系數(shù)振蕩器的脈沖進(jìn)行計數(shù),計數(shù)脈沖的周期由高溫系數(shù)振蕩器決定。如果計數(shù)器在高溫系數(shù)振蕩器發(fā)出結(jié)束信號之前到達(dá)0,則溫度寄存器開始增值,表示溫度值在-55℃之上。同時,計數(shù)器預(yù)設(shè)一個數(shù)值,此數(shù)值由非線性補(bǔ)償累加器決定,以補(bǔ)償振蕩器測溫過程中的拋物線性,即非線性。然后計數(shù)器重復(fù)進(jìn)行計數(shù)。如此循環(huán),最終溫度寄存器中的數(shù)字量即為所測溫度值。

溫度值的換算在DS1620內(nèi)部進(jìn)行,分辨率為0.5℃。DS1620的溫度值以1/2℃LSB(最低有效位)表示,9位數(shù)據(jù)格式如下:(T=25.5℃)

0 0 0 1 1 0 0 1 1

非線性補(bǔ)償累加器的作用為補(bǔ)償測溫振蕩器的非線性誤差,改變每℃增值的計數(shù)器數(shù)值。若得知計數(shù)器中的數(shù)值和在補(bǔ)測溫度下每℃的計數(shù)(非線性補(bǔ)償累加器中的值),便可以實(shí)現(xiàn)高分辨率溫度測量。

DS1620在正常測溫情況下分辨率為0.5℃,根據(jù)其測溫工作原理,可以將其分辨率提高到0.1℃~0.05℃,以適應(yīng)需要精確溫度值的工業(yè)測量及控制系統(tǒng)。

大多數(shù)Dallas數(shù)字式溫度傳感器都能通過將最低有效位(LSB)置位或清零,以確保0.5℃的分辨率。傳感的誤差范圍由不同數(shù)值的LSB數(shù)字化決定。例如25℃至26℃之間的溫度值可參考表2。

表2

實(shí)際溫度值 置位/清零LSB 直接讀數(shù)
25 清零 25
25.1 清零 25
25.2 清零 25
25.3 置位 25.5
25.4 置位 25.5
25.5 置位 25.5
25.6 置位 25.5
25.7 置位 25.5
25.8 清零 26
25.9 清零 26
26 清零 26

由表可知,對于每一次讀入的溫度值,都以1/2LSB為單位進(jìn)行四舍五入計算,DS1620的1/2LSB為0.25℃,它在進(jìn)行高分辨率測量的計算中必須考慮在內(nèi)。

DS1620讀進(jìn)的原始數(shù)據(jù)為9位,對所讀數(shù)據(jù)減去最低有效位,使可得到高分辨率值。計算過程為:將讀入的溫度可存器二進(jìn)制數(shù)字量轉(zhuǎn)化成帶符號整數(shù),即temp read;然后對DS1620執(zhí)行特定的控制指令,使可得到保留在計數(shù)器中的數(shù)值,即轉(zhuǎn)換停止后的計數(shù)器保留數(shù)cont remain:以另一特定控制指令或指令集讀出非線性累加器中的數(shù)值,即在此溫度下每℃的計數(shù)值count per degree,得知這些參數(shù)后,通過如下公式:

實(shí)際值=temp read 1/2LSB+(count per degree count remain)/count per degree

實(shí)際的精確溫度值便可計算出來,分辨率高達(dá)0.1℃。

DS1620的工作方式及狀態(tài)檢測位由設(shè)置寄存器決定,在進(jìn)行溫度轉(zhuǎn)換之前首先要對其初始化,由PC機(jī)或單片機(jī)設(shè)定設(shè)置寄存器的相應(yīng)位。設(shè)置寄存器格式如下:

DONE THF TLF * * * CPU ISHOT

DONE(D7)位為1時表示溫度轉(zhuǎn)換已經(jīng)完成,為0時表示轉(zhuǎn)換正在進(jìn)行。注意此位只在單次轉(zhuǎn)換方式時有效。

THF(D6)TLF(D5)位分別為高于高溫極限值或低于低溫極限值時置位。

ISHOT(D0)位為1時表示以溫度單次轉(zhuǎn)換方式運(yùn)行,為0時表示連續(xù)方式。

CPU(D1)位為1時表示DS1620以3線串行接口與PC機(jī)或單片機(jī)通信,為0時表示獨(dú)立工作方式。

*表示無關(guān)位。

在DS1620以CPU方式工作時,PC機(jī)或單片機(jī)的程序流程如圖2所示。

在實(shí)現(xiàn)過程中注意下面問題:

1.實(shí)現(xiàn)過程中必須用到兩條特殊指令:讀計數(shù)器指令(A0H)和裝載計數(shù)器指令(41H),這兩條指令在DS1620使用手冊上查不到。前一條指令的作用為讀出計數(shù)器中的數(shù)值,后一條指令的作用為將非線性累加器中的數(shù)值裝入計數(shù)器。

2.在數(shù)據(jù)傳輸過程中,DQ線上數(shù)據(jù)的傳輸順序?yàn)長SB(最低有效位)在先,MSB(最高有效位)在最后。例如設(shè)置寄存器狀態(tài)字節(jié)的傳送,第一位ISHOT位(D0),其次為CPU位(D1),依次下去,第八位為DONE位(D7)。

3.從DQ引腳上讀取數(shù)據(jù)時,設(shè)置寄存器的狀態(tài)為8位數(shù)據(jù),而溫度數(shù)據(jù)為9位,這在編程時要加以區(qū)別??梢跃幾x取8位數(shù)據(jù)和9位數(shù)據(jù)的子函數(shù)分別調(diào)用,也可只編讀取9位的程序,但在判斷設(shè)置寄存器狀態(tài)時只取前8位。

4.注意在常溫下,每次寫入DS1620存儲器都需要近10ms,所以在寫指令之后不能立即對DS1620進(jìn)行讀寫訪問,通常加10ms的延時。

5.DS1620是以STOP(RST=0)作為一次數(shù)據(jù)通信的結(jié)束。因此在每次設(shè)置操作結(jié)束或讀取8位溫度數(shù)據(jù)后,都要將RST引腳復(fù)位為低電平,然后置為高電平重新開始工作。

6.以在溫度單次轉(zhuǎn)換方式工作時,每次轉(zhuǎn)換完成并讀取溫度值之后,都要重新發(fā)送開始溫度轉(zhuǎn)換指令(EE H)。而在連續(xù)轉(zhuǎn)換方式只需開始發(fā)送轉(zhuǎn)換指令,DS1620會在一次溫度轉(zhuǎn)換完成后,繼續(xù)進(jìn)行一睛次轉(zhuǎn)換,時間間隔為1秒。此時停止轉(zhuǎn)換指令(22H)將暫停溫度轉(zhuǎn)換,開始轉(zhuǎn)換指令會重新開始轉(zhuǎn)換。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉