一線式數(shù)字溫度計(jì)DS1822的原理及應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
關(guān)鍵詞:測(cè)溫;一線芯片;DS1822
一線總線芯片是美國(guó)Dallas Semiconductor公司推出的系列產(chǎn)品。這是一種用一根信號(hào)線與一根返回線來(lái)實(shí)現(xiàn)互連通信的集成電路芯片。采用這種芯片構(gòu)成的微型局域網(wǎng)系統(tǒng)具有建網(wǎng)速度快、成本低的特點(diǎn),非常適合現(xiàn)場(chǎng)應(yīng)用。一線數(shù)字溫度計(jì)(1-Wire Digital Thermometer)芯片DS1822就是Dallas公司推出的系列一線總線產(chǎn)品之一,它支持Dallas觸摸接口,遵循一線協(xié)議,并可以與處理器進(jìn)行雙向數(shù)字通信,同時(shí)性價(jià)比也很高,是一種使用起來(lái)非常方便的經(jīng)濟(jì)型溫度傳感器。
1 引腳功能及內(nèi)部結(jié)構(gòu)
DS1822的外形封裝如圖1所示。
其中(a)是采用3引腳TO-92的封裝形式;(b)是采用8引腳SOIC的封裝形式;(c)是采用6引腳TSOC的封裝形式;GND為電源地;VDD為外接供電電源輸入端(采用寄生電源方式時(shí)接地);DQ為數(shù)字信號(hào)輸入/輸出端;NC為空腳。
DS1822內(nèi)部電路的核心是一個(gè)直接數(shù)字輸出的溫度傳感器。它可將-55~125℃ 范圍內(nèi)的溫度值按9位、10位、11位、12位的分辨率進(jìn)行量化,且以上的分辨率都包括一個(gè)符號(hào)位,因此對(duì)應(yīng)的溫度量化值分別是0.5℃、0.25℃、0.125℃、0.0625℃,即最高分辨率為0.0625℃,工作電壓范圍為3.0~5.5V。每一片DS1822都有一個(gè)唯一的且不可改寫(xiě)的ROM ID標(biāo)識(shí)碼(電子序列號(hào)),在實(shí)際應(yīng)用中可以通過(guò)指令方便地進(jìn)行查詢。
DS1822的內(nèi)部結(jié)構(gòu)如圖2所示。
2 DS1822的基本操作指令
DS1820的操作指令分為ROM操作指令和存儲(chǔ)器操作指令。
2.1 ROM操作指令及其功能說(shuō)明
Read ROM指令(代碼為33h):如果總線上只有一片DS1822,則允許總線主機(jī)讀取DS1822的序列號(hào),若在線DS1822多于一個(gè)時(shí),它們將同時(shí)發(fā)送ID,這樣就會(huì)出現(xiàn)數(shù)據(jù)沖突。
Match ROM指令(代碼為55h):多個(gè)DS1822在線時(shí),主機(jī)可用此命令匹配一個(gè)給定序列號(hào)的DS1822,此后的命令就針對(duì)該DS1822。該命令適用于單節(jié)點(diǎn)和多節(jié)點(diǎn)兩種場(chǎng)合。
Skip ROM指令(代碼為CCh):該命令用在單節(jié)點(diǎn)總線系統(tǒng)中可以節(jié)省時(shí)間,這時(shí)主機(jī)不需發(fā)送64位ROM ID就能直接訪問(wèn)芯片的RAM存儲(chǔ)器。
Search ROM指令(代碼為F0h):用以讀取在線的DS1822的序列號(hào)。
Alarm Search指令(代碼為ECh):當(dāng)檢測(cè)到溫度超出所規(guī)定的門限值時(shí),此命令可以讀出報(bào)警的DS1822。
2.2 存儲(chǔ)器操作指令及其功能說(shuō)明
Write Scratchpad指令(代碼為4Eh):將溫度報(bào)警上限值與下限值分別寫(xiě)入DS1822便箋式存儲(chǔ)器的TH與TL字節(jié)中。
Read Scratchpad指令(代碼為BEh):讀取便箋式寄存器中的溫度值。
Copy Scratchpad指令(代碼為48h):將便箋式存儲(chǔ)器TH/TL中的內(nèi)容復(fù)制到SRAM中,保證溫度值不丟失。
Convert T指令(代碼為44h):?jiǎn)?dòng)在線DS1822做溫度A/D轉(zhuǎn)換。
Recall SRAM指令(代碼為B8h):利用該指令可以將存儲(chǔ)在SRAM中的溫度報(bào)警觸發(fā)值回讀到便箋式存儲(chǔ)器中。上電時(shí)DS1822會(huì)自動(dòng)執(zhí)行一次回讀操作,以保證器件上電后便箋式存儲(chǔ)器中的數(shù)據(jù)是有效的。
Read Power Supply指令(代碼為B4h):如果主機(jī)在發(fā)出該命令后再輸出讀時(shí)隙,那么,器件就會(huì)送出它所使用的電源信息:其中“0”為寄生電源;“1”為外部電源。
3 DS1822的測(cè)溫原理
用DS1822一線式數(shù)字溫度芯片測(cè)量溫度的原理如圖3所示。它沒(méi)有采用傳統(tǒng)的A/D轉(zhuǎn)換原理,如逐次逼近法、雙積分式和算術(shù)A/D等,而是運(yùn)用了一種將溫度直接轉(zhuǎn)換為頻率的時(shí)鐘計(jì)數(shù)法,計(jì)數(shù)時(shí)鐘由溫度系數(shù)很低的振蕩器產(chǎn)生,因而非常穩(wěn)定;而計(jì)數(shù)的閘門周期則由溫度系數(shù)很高(即對(duì)溫度非常敏感)的振蕩器來(lái)決定。
計(jì)數(shù)器中的預(yù)置值以-55℃時(shí)的計(jì)數(shù)值為基準(zhǔn),在閘門開(kāi)放計(jì)數(shù)期間,每當(dāng)計(jì)數(shù)值達(dá)到0,則溫度寄存器就加1,溫度寄存器中的預(yù)置值也以-55℃的測(cè)量值為基準(zhǔn)。同時(shí)計(jì)數(shù)器的預(yù)置值還與斜坡累加器電路有關(guān),該電路用于補(bǔ)償振蕩器對(duì)溫度的拋物線特性,因此還要用時(shí)鐘脈沖針對(duì)這個(gè)非線形校正預(yù)置值作計(jì)數(shù)操作,直至計(jì)數(shù)值達(dá)到0為止,如果此時(shí)閘門還未關(guān)閉,則再重復(fù)計(jì)數(shù)過(guò)程。斜坡累加器補(bǔ)償了振蕩器對(duì)溫度的非線形特性,從而可以獲得較高的溫度測(cè)量分辨率,改變相對(duì)于測(cè)溫量化級(jí)的計(jì)數(shù)量大小即可獲得不同的分辨率。
4 DS1822一線總線的接口電路
DS1822的總線接口電路如圖4所示,其中圖(a)為使用寄生電源的接法,即通過(guò)總線給DS1822供電,圖(b)為采用外接電源的接法。
從兩種接法來(lái)看,DS1822測(cè)量溫度時(shí)無(wú)需外接元件,電路簡(jiǎn)單。DS1822的工作電流為1.5mA。應(yīng)當(dāng)注意:當(dāng)溫度高于100℃時(shí),不能使用寄生電源,因?yàn)榇藭r(shí)器件中較大的漏電流會(huì)使總線不能可靠檢測(cè)高低電平,從而導(dǎo)致數(shù)據(jù)傳輸誤碼率的增大。
5 DS1822的測(cè)溫過(guò)程
在測(cè)溫時(shí)對(duì)DS1822進(jìn)行操作的步驟如下:
⑴ 初始化(Read ROM指令,代碼33h),每次對(duì)DS1820進(jìn)行操作之前都要對(duì)其進(jìn)行初始化,主要目的在于確定溫度傳感器是否已經(jīng)連接到單總線上。
(2) 查找DS1822(Search ROM指令,代碼F0h),該指令可使處理器通過(guò)排除法來(lái)辨別總線上的DS1822。
(3)匹配DS1822(Match ROM指令,代碼55h),只有完全符合64位ROM序列的DS1822才能響應(yīng)其后的指令,當(dāng)然,單點(diǎn)測(cè)溫時(shí)可以使用Skip ROM(CCh)指令來(lái)跳過(guò)這一步。
(4)發(fā)送溫度轉(zhuǎn)換指令(Convert T指令 代碼44h),發(fā)送該指令后應(yīng)查詢總線上的電平,當(dāng)電平為高時(shí),溫度轉(zhuǎn)換完成。
(5)讀取溫度值(Read Scratchpad指令 代碼BEh),將該指令發(fā)出后,就可從總線上讀取表示溫度的兩字節(jié)的二進(jìn)制數(shù)。
整個(gè)測(cè)溫過(guò)程中的第4、5步才是DS1822進(jìn)行測(cè)溫并將結(jié)果進(jìn)行數(shù)字化轉(zhuǎn)換和輸出的過(guò)程。DS1822接收到轉(zhuǎn)換命令(44h)將立刻實(shí)施溫度轉(zhuǎn)換并將結(jié)果存儲(chǔ)到16位便箋式存儲(chǔ)器中,數(shù)據(jù)格式為符號(hào)位擴(kuò)展的二進(jìn)制補(bǔ)碼,然后用讀便箋式存儲(chǔ)器命令(BEh)將所得數(shù)據(jù)順序置于總線上,最低位在前,最高位定義為符號(hào)位以表示溫度的正負(fù)。DS1822溫度與數(shù)字輸出典型值的對(duì)照表如表1所列。
表1 DS1822溫度與數(shù)字輸出的典型值
溫度(℃) | 數(shù)字輸出(二進(jìn)制) | 數(shù)字輸出(十六進(jìn)制) |
+125 | 0000 0111 11011 0000 | 07D0 |
+85 | 0000 0101 0101 0000 | 0550 |
+25.625 | 0000 0001 1001 0001 | 0191 |
+10.125 | 0000 0000 1010 0010 | 00A2 |
+0.5 | 0000 0000 0000 1000 | 0008 |
0 | 0000 0000 0000 0000 | 0000 |
-0.5 | 1111 1111 1111 1000 | FFF8 |
-10.125 | 1111 1111 0101 1110 | FF5E |
-25.0625 | 1111 1110 0110 1111 | FE6F |
-55 | 1111 1100 1001 0000 | FC90 |
6 DS1822的報(bào)警操作
DS1822完成溫度轉(zhuǎn)換之后,其溫度值將和TH與TL中存儲(chǔ)的觸發(fā)門限值相比較,由于這兩個(gè)閾值只有8位,因此比較時(shí)測(cè)量值中相應(yīng)的幾個(gè)低位將被忽略,TH和TL中的最高位直接對(duì)應(yīng)16位溫度存儲(chǔ)器中的符號(hào)位。如果比較的結(jié)果表明測(cè)量值高于TH中設(shè)定的上限溫度值或低于TL中設(shè)定的下限溫度值,則設(shè)置報(bào)警標(biāo)志,該標(biāo)志每次測(cè)量溫度時(shí)都要進(jìn)行更新。一旦報(bào)警標(biāo)志設(shè)置后,器件就會(huì)響應(yīng)主機(jī)發(fā)出的報(bào)警搜索命令,這種處理方式使得并接的多個(gè)DS1822可以同時(shí)實(shí)現(xiàn)溫度測(cè)量。如果某些點(diǎn)上的溫度超過(guò)設(shè)定的閾值,則這些報(bào)警的器件就能被及時(shí)識(shí)別出來(lái),主機(jī)不必一個(gè)一個(gè)地讀取,比較判斷哪些是越界報(bào)警的器件。
7 DS1822中的存儲(chǔ)器
DS1822的存儲(chǔ)器結(jié)構(gòu)如表2所列。它由9個(gè)字節(jié)的便箋式存儲(chǔ)器和3個(gè)易失性SRAM組成,便箋式存儲(chǔ)器方便了一線系統(tǒng)的數(shù)據(jù)傳輸。通常情況下,首先用寫(xiě)便箋式存儲(chǔ)器命令(4Eh)寫(xiě)入數(shù)據(jù),然后用讀便箋式存儲(chǔ)器命令(BEh)進(jìn)行校驗(yàn),最后通過(guò)復(fù)制便箋式存儲(chǔ)器命令(48h)將該數(shù)據(jù)寫(xiě)入SRAM。
表2 DS1822D的存儲(chǔ)器結(jié)構(gòu)
便箋式存儲(chǔ)器 | SRAM | |
0 | 溫度高位字節(jié) | 無(wú) |
1 | 溫度高位字節(jié) | 無(wú) |
2 | TH/用戶字節(jié)1 | TH/用戶字節(jié)1 |
3 | TL/用戶字節(jié)2 | TL/用戶字節(jié)2 |
4 | 配置 | 配置 |
5 | 保留 | |
6 | 保留 | |
7 | 保留 | 無(wú) |
8 | CRC |
表3 有關(guān)轉(zhuǎn)換參數(shù)設(shè)置對(duì)應(yīng)表
R1R0 | 分辨率(位) | 最大轉(zhuǎn)換時(shí)間(毫秒) |
00 | 9 | 93.75 |
01 | 10 | 187.5 |
10 | 11 | 375 |
11 | 12 | 750 |
便箋式存儲(chǔ)器由9個(gè)字節(jié)組成,第0、1字節(jié)存放溫度測(cè)量值;第2、3字節(jié)用于高、低門限設(shè)置;第4字節(jié)是配置存儲(chǔ)器;第5、6、7字節(jié)保留而未使用,讀取時(shí)各位均為1;第8字節(jié)可通過(guò)讀便箋式存儲(chǔ)器命令讀出,用于存放前8?jìng)€(gè)字節(jié)的CRC校驗(yàn)值。易失性SRAM主要用于復(fù)制,每次上電時(shí)它們都會(huì)被刷新。
而便箋式存儲(chǔ)器第4字節(jié)的配置存儲(chǔ)器主要用于設(shè)置溫度的測(cè)量分辨率,該字節(jié)的數(shù)據(jù)格式如圖5所示。其中bit7讀時(shí)總為0,bit4~bit0讀時(shí)總為1,寫(xiě)入時(shí)這些位的取值可以是任意的。由圖5可知該配置寄存器實(shí)際上只用了bit6與bit5兩位,用以定義分辨率和轉(zhuǎn)換時(shí)間,其對(duì)應(yīng)關(guān)系如表3所列,上電時(shí)的默認(rèn)分辨率為12位,但轉(zhuǎn)換速率最低。由該表還可以看出,當(dāng)分辨率提高1位時(shí),轉(zhuǎn)換速率成倍下降,這在實(shí)際應(yīng)用中是需要考慮的,必須根據(jù)實(shí)際需要來(lái)權(quán)衡分辨率與速率之間的關(guān)系。
8 DS1822的應(yīng)用電路
由DS1822與DZT-512單總線溫度巡檢儀組成的測(cè)溫電路如圖6所示,通過(guò)DZT-512單總線溫度巡檢儀就可對(duì)單總線上所有的DS1822進(jìn)行數(shù)據(jù)采集、并完成顯示及報(bào)警設(shè)定,讀寫(xiě)數(shù)據(jù)距離達(dá)600米,DS1822經(jīng)RS232口與DZT-512相連,將溫度數(shù)據(jù)送入計(jì)算機(jī)進(jìn)行分析處理。從圖中可看出,由DS1822組成的測(cè)溫系統(tǒng)具有布線結(jié)構(gòu)簡(jiǎn)單、可靠性高、成本低的特點(diǎn)。
9 結(jié)束語(yǔ)
單總線技術(shù)以其線路簡(jiǎn)單、硬件開(kāi)銷小、成本低廉、軟件設(shè)計(jì)簡(jiǎn)單等優(yōu)勢(shì)有著無(wú)可比擬的應(yīng)用前景。基于單總線技術(shù)的DS1822在未來(lái)的測(cè)溫領(lǐng)域中必將得到廣泛的應(yīng)用。