DS18B20传感器的原理
集成式數字溫度傳感器DS1820利用單總線的特點可以方便地實現多點溫度的測量,它的出現開辟了溫度傳感器技術的新領域。而可組網數字式溫度傳感器DS18B20則是DS1820的更新產品,它在電壓、特性及封裝方面都具有優勢,讓用戶可以更方便地構建適合自己的測溫系統。DS18B2。充分利用了單總線的獨特特點,可以輕松地組建傳感器網絡,提高系統的抗干擾性,使系統設計更靈活、方便,而且適合于在惡劣的環境下進行現場溫度測量。
一、DS18B20型智能溫度傳感器的工作原理
1、DS18B20基本知識及管腳
?
DS18B20數字溫度計是DALLAS公司生產的1-Wire,即單總線器件,具有線路簡單、體積小的特點。因此用它來組成一個測溫系統,線路簡單,在一根通信線上,可以掛很多這樣的數字溫度計,十分方便。DS18B20是美國DALLAS公司新推出的一種可組網數字式溫度傳感器,與DS1820相似,DS18B20也能夠直接讀取被測物體的溫度值。但是與DS1820相比,DS18B20的功能更強大些。它體積小,電壓適用范圍寬(3~5V),用戶還可以通過編程實現9~12位的溫度讀數,即具有可調的溫度分辨率,因此它的實用性和可靠性比同類產品更高。另外,DS18B20有多種封裝可選,如TO-92, SOIC及CSP封裝。圖5-5即為DS18B20的引腳排列圖。其引腳功能見表5-1。
?
2、DS18B20內部結構
?
DS18B20內部結構如圖5-6所示,主要由4部分組成:溫度傳感器、64位ROM、非揮發的溫度報警觸發器TH和TI、配置寄存器。由圖5-6可見,DS18B20只有一個數據輸入輸出口,屬于單總線專用芯片之一。DS18B20工作時被測溫度值直接以“單總線”的數字方式傳輸,大大提高了系統的抗干擾能力。其內部采用在線溫度測量技術,測量范圍為55~125°C,在-10~85℃時,精度為±0.5°C。每個DS18B20在出廠時都已具有唯一的64位序列號,因此一條總線上可以同時掛接多個DS18B20,而不會出現混亂現象。另外用戶還可自設定非易失性溫度報警上下限值TH和TL(掉電后依然保存)。DS18B20在完成溫度變換后,所測溫度值將自動與存儲在TH和TL內的觸發值相比較,如果測溫結果高于TH或低于TL, DS18B20內部的告警標志就會被置位,表示溫值超出了測量范圍,同時還有報警搜索命令識別出溫度超限的DS18B20。
?
① 64位閃存ROM的結構如圖5-7所示。
首先是8位的產品單線系列編碼,接著是每個器件的唯一的序號,共有48位,最重要的8位是前面56位的CRC校驗碼(循環冗余校驗碼),這也是多個DS18B20可以采用一線進行通信的原因。
②非易失性溫度報警觸發器TH和TL,可通過軟件寫人用戶報警上下限。
③高速暫存存儲器。DS18B20溫度傳感器的內部存儲器包括一個高速暫存RAM和一個非易失性的可電擦除的(E2) RAM。后者用于存儲TH和TL值。數據先寫人RAM,經校驗后再傳給(E2)RAM。而配置寄存器為高速暫存器中的第5個字節,它的內容用于確定溫度值的數字轉換分辨率,DS18B20工作時按此寄存器中的分辨率將溫度轉換為相應精度的數值。該字節各位的定義如圖5-8所示。低5位一直都是1,? TM是測試模式位,用于設置DS18B20在工作模式還是在測試模式。在DS18B20出廠時該位被設置為0,用戶不要去改動,R1和R0決定溫度轉換的精度位數,即用于設置分辨率,如表5-2所示(DS18B20出廠時被設置為12位)。
?
?
如表5-2可見,設定的分辨率越高,所需要的溫度數據轉換時間就越長。因此,在實際應用中要在分辨率和轉換時間之間權衡考慮。高速暫存存儲器除了配置寄存器外,還有其他8個字節,其分配如圖5-9所示。其中溫度信息(第1、 2字節),TH和TL值第3、4字節,第6~8字節未用,表現為全邏輯1;第9字節讀出的是前面所有8個字節的CRC碼,可用來保證通信正確。
?
當DS18B20接收到溫度轉換命令后,開始啟動轉換。轉換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、2字節。單片機可通過單線接口讀到該數據,讀取時高位在后、低位在前,數據格式以0.0625°C/LSB形式表示。溫度值格式如圖5-10所示。符號位S=0時,直接將二進制位轉換為十進制;當S=1時,先將補碼變換為原碼,再計算十進制值。表5-3是對應的一部分溫度值。
?
?
DS18B20完成溫度轉換后,就把測得的溫度值與TH、TL進行比較,若T>TH或T< TL,則將該器件內的告警標志置位,并對主機發出的警告搜索命令作出響應。因此,可用多只DS18B20同時測量溫度并進行告警搜索。
④CRC的產生。在64位ROM的最高有效字節中存儲有循環冗余校驗碼(CRC)。主機根據ROM的前56位來計算CRC值,并和存入DS18B20中的CRC值進行比較,以判斷主機收到的ROM數據是否正確。
3、DS18B20的測溫原理
DS18B20的內部測溫電路框圖如圖5-11所示,圖中低溫度系數振蕩器的振蕩頻率受溫度的影響很小,用于產生固定頻率的脈沖信號送給減法計數器1,高溫度系數振蕩器隨溫度變化其振蕩頻率明顯改變,所產生的信號作為減法計數器2的脈沖輸入。圖中還隱含著計數門,當計數門打開時,DS18B20就對低溫度系數振蕩器產生的時鐘脈沖進行計數,進而完成溫度測量。計數門的開啟時間由高溫度系數振蕩器來決定,每次測量前,首先將-55℃所對應的基數分別置人減法計數器1和溫度寄存器中,減法計數器1和溫度寄存器被預置在-55℃所對應的一個基數值。減法計數器1對低溫度系數振蕩器產生的脈沖信號進行減法計數,當減法計數器1的預置值減到。時溫度寄存器的值將加1,減法計數器1的預置將重新被裝人,減法計數器1重新開始對低溫度系數振蕩器產生的脈沖信號進行計數,如此循環直到減法計數器2計數到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數值即為所測溫度。圖5-11中的斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正減法計數器的預置值,只要計數門仍未關閉就重復上述過程,直至溫度寄存器值達到被測溫度值,這就是DS18B20的測溫原理。
?
由于DS18B20是在一根I/O線上讀寫數據,因此,對讀寫的數據位有著嚴格的時序要求。DS18B20有嚴格的通信協議來保證各位數據傳輸的正確性和完整性。該協議定義了幾種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將主機作為主設備,單總線器件作為從設備。而每一次命令和數據的傳輸都是從主機主動啟動寫時序開始,如果要求單總線器件回送數據,在進行寫命令后,主機需啟動讀時序完成數據接收。數據和命令的傳輸都是低位在先。
1. DS18B20的初始時序
DS18B20的初始時間如圖5-12所示。
?
2. DS18B20的讀時序
對于DS18B20的讀時序分為讀0時序和讀1時序兩個過程,見圖5-13。
?
對于DS18B20的讀時序是從主機把單總線拉低之后,在15us之內須釋放單總線,以便DSl8B20把數據傳輸到單總線上。DS18B20在完成一個讀時序過程,至少需要60us。
3. DS18B20的寫時序
對于DS18B20的寫時序仍然分為寫0時序和寫1時序兩個過程,見圖5-14。
?
對于DS18B20寫。時序和寫1時序的要求不同,當要寫0時序時,單總線要被拉低至少60us,保證DS18B20能夠在15~45us之間正確地采集I/O總線上的“0”電平,當要寫1時序時,單總線被拉低之后,在15us之內須釋放單總線。
?
二、基于DS18B20構成的單片機溫控系統
?
DS18B20的硬件連接(以51單片機為例),DS18B20與單片機的接口極其簡單,只需將DS18B20的信號線與單片機的一位雙向端口相連即可。如圖5-15(a)所示。此時應注意將VDD、DQ、 GND三線焊接牢固。另外也可用兩個端口,即接收口與發送口分開,這樣讀寫操作就分開了,不會出現信號競爭的問題。如圖5-15(b)所示,此圖是采用寄生電源方式,將DS18B20的 VDD與GND接在一起。如若VDD脫開未接好,傳感器將只送85. 0℃的溫度值。一般測溫電纜線采用屏蔽4芯雙絞線,其中一對接地線與信號線,另一對接VDD和地線,屏蔽層在源端單點接地。
?
?
?
注:以上摘自《傳感器與測控電路》第五章第二節。
?
總結
以上是生活随笔為你收集整理的DS18B20传感器的原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 模仿学习(第四周)
- 下一篇: pgpool-II 4.3 中文手册 -