0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

DS18B20溫度傳感器的工作原理和硬件設計

FPGA技術實戰(zhàn) ? 來源:FPGA技術實戰(zhàn) ? 2024-10-24 14:38 ? 次閱讀

引言:通過本文可以了解DS18B20溫度傳感器工作原理硬件設計、DS18B20單總線接口驅動編寫。

1. 概述

DS18B20是常用的數(shù)字溫度傳感器,其輸出的是數(shù)字信號,具有體積小,硬件開銷低,抗干擾能力強,精度高的特點。

圖1:兩種封裝DS18B20實物圖

DS18B20數(shù)字溫度傳感器接線方便,經(jīng)封裝成后可應用于多種場合,如電纜溝測溫,高爐水循環(huán)測溫,鍋爐測溫,機房測溫,農業(yè)大棚測溫,潔凈室測溫,彈藥庫測溫等各種非極限溫度場合。具有耐磨耐碰,體積小,使用方便,封裝形式多樣等特點,適用于各種狹小空間設備數(shù)字測溫和控制領域。

2.原理學習

2.1 芯片概述

DS18B20數(shù)字溫度計提供9到12bit分辨率的溫度測量,可以通過可編程非易失性存儲單元實現(xiàn)溫度的下限和上限報警。DS18B20采用單總線協(xié)議與上位機進行通信,只需要一根信號線和一根地線。它的溫度測量范圍為-55℃~ +125℃(-67°F to +257°F)。在-10℃~70℃范圍內的測試精度可以達到±0.5℃。此外它還可以工作在寄生模式下,直接通過信號線對芯片供電,從而不需要額外的供電電源。每個DS18B20都有一個全球唯一的64位序列號,可以將多個DS18B20串聯(lián)在同一跟單總線上進行組網(wǎng),只需要一個處理器就可以控制分布在大面積區(qū)域中的多顆DS18B20。這種組網(wǎng)方式特別適合HVAC環(huán)境控制,建筑、設備、糧情測溫和工業(yè)測溫以及過程監(jiān)測控制等應用領域。

2.2 管腳描述

wKgaoWcZ64uAWpc0AAFK836suuo941.png

圖2:常見封裝管腳定義

DS18B20管腳描述如下表所示。

表1:DS18B20管腳描述

wKgaoWcZ64uAQ9opAAGc5Qy-eWc205.png

2.3 芯片內部結構

wKgZoWcZ64uAAplEAAHRgoLKFkw938.png

圖3:DS18B20內部結構

2.4 硬件設計

DS18B20可以通過管腳VDD外部電源供電,也可以工作于寄生電源模式。

(1)寄生電源模式硬件設計

如圖所示,當總線處于高電平狀態(tài),DQ與外部上拉電阻連接通過單總線對器件供電。同時處于高電平狀態(tài)的總線信號對內部電容(Cpp)充電(如圖3所示),在總線處于低電平狀態(tài)時,該電容提供能量給器件,該提供能量的方式成為“寄生電源”。當DS18B20處于寄生電源模式時,VDD管腳必須接地。

寄生電源模式下,單總線和CPP在大部分操作中能夠提供充分的滿足規(guī)定時序和電壓的電流(見直流電特性和交流電特性節(jié))給DS18B20。然而,當DS18B20正在執(zhí)行溫度轉換或從寄存器向EEPROM傳送數(shù)據(jù)時,工作電流可高達1.5mA。這個電流可能會引起連接在單總線上的弱上拉電阻不可接受的壓降,這需要更大的電流,而此時CPP無法提供。為了保證DS18B20有充足的供電,當進行溫度轉換或復制數(shù)據(jù)到EEPORM操作時,必須給單總線提供一個強上拉,采用MOSFET直接把總線上拉到電源上的方式實現(xiàn),如圖4所示。

wKgZoWcZ64uAN-wDAABWfmnRBKA217.png

圖4:溫度轉換器件寄生電源模式硬件設計

(2)外部供電模式硬件設計

對DS18B20供電的另外一種方法是傳統(tǒng)的從VDD管腳接入一個外部電源,如圖5所示。這樣做的好處是單總線上不需要強上拉,而且總線不用在溫度轉換期間總保持高電平。

wKgaoWcZ65CAHaJyAACsEG61l0M070.png

圖5:使用外部電源供電硬件設計

寄生電源模式在遠距離測試或空間受限的應用場合是非常有用的。

對于溫度高于100℃時,不推薦使用寄生電源,因為DS18B20在這種溫度下表現(xiàn)出的漏電流比較大,通信可能無法進行。在類似這種溫度的情況下,強烈推薦使用DS18B20的VDD管腳供電。

2.5 寄存器詳解

(1) 64bit只讀寄存器

wKgaoWcZ65CAP2fIAAAKZjdjbSg684.png

圖6:64bit ROM編碼

每顆DS18B20都有一個全球唯一的存儲在ROM中的64位編碼。最低8bit是單線系列編碼:28h。接著的48位是一個唯一的序列號。最后高8bit是低56bit編碼的CRC編碼。CRC的詳細解釋見CRC發(fā)生器節(jié)。64位ROM和ROM操作控制區(qū)允許DS18B20作為單總線器件并按照詳述于單總線系統(tǒng)節(jié)的單總線協(xié)議工作。

(2)存儲器結構

DS18B20的存儲器結構如圖7所示。

wKgZoWcZ65CAfVt9AAQ4fl1_NxU815.png

圖7:DS18B20的存儲器結構

(1)byte0和byte1:分別為溫度寄存器的LSB和MSB,這兩個字節(jié)的存儲器為只讀存儲器;

這個兩個字節(jié)寄存器用來存儲溫度傳感器輸出的數(shù)據(jù),寄存器格式如圖8所示。

wKgZoWcZ65CAZvWaAABNSG5fRqI189.png

圖8:溫度寄存器格式

溫度與數(shù)據(jù)數(shù)據(jù)格式對應關系如圖9所示。"S"bit表示溫度符號位,上電復位時,溫度寄存器默認值為+85℃。

wKgZoWcZ65CAfD6-AAC5SslNrpw385.png

圖9:溫度/數(shù)據(jù)關系

(2)byte2和byte3:是TH和TL,注意當報警功能不能使用時,TH和TL寄存器可以被當作普通寄存器使用。TH,TL和配置寄存器均為非易失性的可擦除寄存器(EEPROM),該存儲的數(shù)據(jù)在器件掉電后不會消失。

wKgZoWcZ64uAWRx1AAAJSdXAdJs274.png

圖10:TH,TL寄存器格式

(3)byte4:配置寄存器。

配置寄存器允許用戶將溫度測量分辨率設定為9,10,11或12位,對應的溫度分辨率分別為0.5℃、0.25℃、0.125℃和0.0625℃,芯片在上電狀態(tài)下默認的精度為12位。

配置寄存器的bit7和bit0到bit4被器件保留,禁止寫入;在讀數(shù)據(jù)時,它們全部表現(xiàn)為邏輯1。

wKgaoWcZ65CADMJZAAAJzKpxU7E960.png

圖11:配置寄存器格式

表2:傳感器精度配置表

wKgaoWcZ65CAcoUMAABjRH6I3MI935.png

(4)byte5:被器件保留,禁止寫入。

(5)byte6和byte7:用戶可以使用;

(6)byte8:只讀,包含以上八個字節(jié)的CRC碼。

2.6 DS18B20操作流程

通過單總線訪問DS18B20的執(zhí)行步驟如下:

步驟1:初始化;

步驟2:ROM操作指令;

步驟3:DS18B20功能指令。

每一次DS18B20的操作都必須滿足以上步驟,若是缺少步驟或是順序混亂,器件將不會有返回值。搜索ROM命令和報警搜索命令除外。當這兩個命令執(zhí)行時,主控制器必須返回步驟1。

2.7 單總線協(xié)議詳解

DS18B20采用單總線協(xié)議,通過一個單線端口通信。DS18B20需要嚴格的單總線協(xié)議以確保數(shù)據(jù)的完整性。協(xié)議定義了幾種單總線信號的類型:復位脈沖、存在脈沖、寫0、寫1、讀0和讀1。所有這些信號,除存在脈沖外,都是由總線控制器發(fā)出的。

(1)初始化:復位脈沖和存在脈沖

所有和DS18B20間的通信都以初始化序列開始,初始化序列如圖12所示。一個復位脈沖跟著一個存在脈沖表明DS18B20已經(jīng)準備好發(fā)送和接收數(shù)據(jù)。

wKgaoWcZ65CAGafBAADbBsNOK-0409.png

圖 12:初始化時序

如圖所示,初始化包括兩個階段:

①復位脈沖階段:總線控制器拉低總線并保持480us以發(fā)出(TX)一個復位脈沖信號,然后釋放總線;

檢測存在脈沖階段:當總線被釋放后,進入接收狀態(tài)(RX)。上拉電阻將總線拉到高電平。當DS18B20檢測到IO引腳上的上升沿后,等待1560us,然后發(fā)出一個由60240us低電平信號構成的存在脈沖。

(2)寫時序

DS18B20有兩種寫時序:寫1時序和寫0時序??偩€控制器通過寫1時序來寫邏輯1;通過寫0時序來寫邏輯0。寫時序必須最少持續(xù)60us,包括兩個寫周期之間至少1us的恢復時間。當總線控制器把數(shù)據(jù)線從邏輯高電平拉低到低電平的時候,寫時序開始(見圖13)。

wKgZoWcZ65CADm_2AAEOh7Mjzdw165.png

圖 13:寫時序

總線控制器要寫產(chǎn)生一個寫時序,必須把數(shù)據(jù)線拉到低電平然后釋放,且需在15us內釋放總線。當總線被釋放后,上拉電阻將總線拉高??偩€控制器要生成寫0時隙,必須把數(shù)據(jù)線拉到低電平且繼續(xù)保持至少60us。

總線控制器初始化寫時序后,DS18B20在一個15us到60us的窗口內對信號線DQ進行采樣。如果線上是高電平,就是寫1。反之,如果線上是低電平,就是寫0。

(3)讀時序

總線控制器發(fā)起讀時序時,DS18B20僅被用來傳輸數(shù)據(jù)給控制器。因此,總線控制器在發(fā)出讀寄存器指令[BEh]或讀電源模式指令[B4h]后必須立刻開始讀時序,以便DS18B20提供請求的數(shù)據(jù)。除此之外,總線控制器在發(fā)出發(fā)送溫度轉換指令平[44h]或召回EEPROM指令[B8h]之后讀時序,詳見DS18B20功能指令節(jié)。

wKgZoWcZ65CAKPqoAAIDExzHpDs200.png

圖 14:讀時序

所有讀時序必須最少60us,包括兩個讀周期間至少1us的恢復時間。當總線控制把數(shù)據(jù)線從高電平拉低到低電平時,讀時序開始,數(shù)據(jù)線必須至少保持1us,然后總線被釋放(見圖14)。在總線控制器發(fā)出讀時序后,DS18B20過拉高或拉低總線上來傳輸1或0。當傳輸0結束后,總線將被釋放,通過上拉電阻回到高電平空閑狀態(tài)。從DS18B20輸出的數(shù)據(jù)在讀時序的下降沿出現(xiàn)后15us內有效。因此,總線控制器在讀時序開始15us內釋放總線然后采樣總線狀態(tài),以讀取數(shù)據(jù)線的狀態(tài)。

3.實戰(zhàn)操作

3.1 軟件設計

本文要利用LCD1602實現(xiàn)DS18B20溫度及時間實時顯示。具體功能如下:

(1)DS18B20單總線接口驅動功能;

(2)溫度值HEX轉BCD碼功能;

(3)時鐘計時器功能;

(4)LCD1602顯示DS18B20實時溫度及時間顯示。

軟件功能模塊劃分如圖15所示。

wKgaoWcZ65CAGm5PAAF5MSkdJn4091.png

圖15:軟件功能模塊框圖

各個模塊功能:

(1)ds18b20_test.v模塊為頂層模塊,實現(xiàn)模塊間互聯(lián);

(2)ds18b20_driver.v實現(xiàn)芯片單總線接口通信功能;

(3)hex_bcd.v實現(xiàn)溫度值HEX轉BCD碼功能;

(4)clock_timer.v實現(xiàn)時鐘計時器功能;

(5)lcd1602_driver.v實現(xiàn)DS18B20實時溫度及時間顯示。

DS18B20接口驅動ds18b20_driver.v軟件實現(xiàn)流程圖如圖16所示。

wKgaoWcZ65CAO07DAACRlx-C9Qc262.png

圖16:DS18B20溫度讀取控制流程圖

3.2 測試結果

軟件下載至電路板,顯示在LCD1602上,如圖17所示,可以看到DS18B20溫度及時間已經(jīng)正確顯示。

wKgZoWcZ65CALs2xAAgEWfGWQ1g520.png

圖17:DS18B20溫度及時間顯示

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1624

    文章

    21568

    瀏覽量

    600587
  • 溫度傳感器
    +關注

    關注

    48

    文章

    2882

    瀏覽量

    155653
  • 總線
    +關注

    關注

    10

    文章

    2851

    瀏覽量

    87846
  • DS18B20
    +關注

    關注

    10

    文章

    777

    瀏覽量

    80577
  • 驅動設計
    +關注

    關注

    1

    文章

    110

    瀏覽量

    15248

原文標題:基于FPGA的DS18B20溫度傳感器驅動設計

文章出處:【微信號:FPGA技術實戰(zhàn),微信公眾號:FPGA技術實戰(zhàn)】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于STM32的DS18B20溫度傳感器設計

    DS18B20內置了64位產(chǎn)品序列號,方便識別身份,在一根線上可以掛接多個DS18B20傳感器,通過64位身份驗證,可以分別讀取來至不同傳感器采集的
    的頭像 發(fā)表于 03-07 11:44 ?1.3w次閱讀
    基于STM32的<b class='flag-5'>DS18B20</b><b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>設計

    DS18B20溫度傳感器工作原理及其應用電路圖

    本帖最后由 gk320830 于 2015-3-5 08:38 編輯   摘要:本文通過介紹DS18B20溫度傳感器工作原理并結合DS18B2
    發(fā)表于 02-21 14:43

    DS18B20溫度傳感器實驗

    STM32學習記錄:DS18B20溫度傳感器實驗(HAL庫)實驗摘要DS18B20簡述STMCubeMX引腳配置芯片選型引腳和時鐘配置生成ARM-MDK工程編寫
    發(fā)表于 08-18 07:44

    單總線數(shù)字溫度傳感器DS18B20的特性及工作原理

    介紹了單總線數(shù)字溫度傳感器DS18B20的特性及工作原理,給出了DS18B20與TMS320LF2407A 的接線圖并且非常詳細介紹了如何用
    發(fā)表于 07-28 09:59 ?114次下載

    數(shù)字溫度傳感器DS18B20的設計及應用

    數(shù)字溫度傳感器DS18B20的設計及應用 1引言 DS18B20是DALLAS公司生產(chǎn)的一線式數(shù)字溫度
    發(fā)表于 04-02 18:00 ?2750次閱讀
    數(shù)字<b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b><b class='flag-5'>DS18B20</b>的設計及應用

    DS18B20完成溫度檢測的技巧

    介紹了DS18B20 溫度傳感器 的結構和特點以及用DS18B20溫度傳感器進行
    發(fā)表于 08-23 10:44 ?190次下載
    <b class='flag-5'>DS18B20</b>完成<b class='flag-5'>溫度</b>檢測的技巧

    溫度傳感器DS18B20

    溫度傳感器DS18B20 51例程,親測可用
    發(fā)表于 06-14 15:36 ?20次下載

    智能溫度傳感器DS18B20的原理與應用

    DS18B20是DALLAS公司生產(chǎn)的單線數(shù)字溫度傳感器,他具有獨特的單線總線接口方式。文章詳細的介紹了單線數(shù)字溫度傳感器
    發(fā)表于 10-11 18:19 ?48次下載

    ds18b20的特性_ds18b20溫度傳感器應用

    本文首先介紹了ds18b20的特性,其次介紹了DS18B20工作原理,最后介紹了ds18b20溫度傳感器
    發(fā)表于 04-24 09:10 ?1.1w次閱讀
    <b class='flag-5'>ds18b20</b>的特性_<b class='flag-5'>ds18b20</b><b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>應用

    單片機外設介紹:溫度傳感器 DS18B20

    文章目錄溫度傳感器 DS18B20溫度傳感器 DS18B20DS18B20 是美信公司的一款
    發(fā)表于 12-04 15:21 ?47次下載
    單片機外設介紹:<b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b> <b class='flag-5'>DS18B20</b>

    DS18B20溫度傳感器工作原理

    ,DS18B20以其獨特的工作原理、卓越的技術參數(shù)和廣泛的應用場景,成為了市場的明星產(chǎn)品。 深入了解DS18B20工作原理 DS18B20
    的頭像 發(fā)表于 06-19 16:01 ?807次閱讀

    ds18b20溫度傳感器和dht11的區(qū)別

    DS18B20和DHT11都是常用的溫度和濕度傳感器,它們在許多項目和應用中都有廣泛的應用。 1. 工作原理 DS18B20
    的頭像 發(fā)表于 09-03 16:44 ?590次閱讀

    ds18b20溫度傳感器如何使用

    Devices的一部分)生產(chǎn)的數(shù)字溫度傳感器。它能夠提供9位至12位的溫度測量數(shù)據(jù),具有高精度和可編程分辨率。DS18B20溫度測量范圍
    的頭像 發(fā)表于 09-03 16:51 ?406次閱讀

    ds18b20溫度傳感器怎么接線

    DS18B20是一種廣泛使用的數(shù)字溫度傳感器,它基于1-Wire(一線)通信協(xié)議工作。這種傳感器因其高精度、易用性和低成本而受到歡迎。
    的頭像 發(fā)表于 10-18 14:50 ?243次閱讀

    ds18b20傳感器的使用方法

    Integrated開發(fā)的一種數(shù)字溫度傳感器,它能夠提供9位到12位的溫度測量精度,測量范圍從-55°C到+125°C。這種傳感器非常適合用于需要精確
    的頭像 發(fā)表于 10-18 14:52 ?122次閱讀