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