加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 1. 概述
    • 2.原理學(xué)習(xí)
    • 3.實戰(zhàn)操作
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

基于FPGA的DS18B20溫度傳感器驅(qū)動設(shè)計

06/16 10:25
4312
閱讀需 13 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

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

1. 概述

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

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

2.原理學(xué)習(xí)

2.1 芯片概述

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

2.2 管腳描述

圖2:常見封裝管腳定義

DS18B20管腳描述如下表所示。

表1:DS18B20管腳描述

2.3 芯片內(nèi)部結(jié)構(gòu)

圖3:DS18B20內(nèi)部結(jié)構(gòu)

2.4 硬件設(shè)計

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

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

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

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

圖4:溫度轉(zhuǎn)換器件寄生電源模式硬件設(shè)計

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

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

圖5:使用外部電源供電硬件設(shè)計

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

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

2.5 寄存器詳解

(1) 64bit只讀寄存器

圖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)存儲器結(jié)構(gòu)

DS18B20的存儲器結(jié)構(gòu)如圖7所示。

圖7:DS18B20的存儲器結(jié)構(gòu)

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

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

圖8:溫度寄存器格式

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

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

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

圖10:TH,TL寄存器格式

(3)byte4:配置寄存器。

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

配置寄存器的bit7和bit0到bit4被器件保留,禁止寫入;在讀數(shù)據(jù)時,它們?nèi)勘憩F(xiàn)為邏輯1。

圖11:配置寄存器格式

表2:傳感器精度配置表

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

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

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

2.6 DS18B20操作流程

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

步驟1:初始化;

步驟2:ROM操作指令;

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

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

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

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

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

圖 12:初始化時序

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

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

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

(2)寫時序

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

圖 13:寫時序

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

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

(3)讀時序

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

圖 14:讀時序

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

3.實戰(zhàn)操作

3.1 軟件設(shè)計

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

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

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

(3)時鐘計時器功能;

(4)LCD1602顯示DS18B20實時溫度及時間顯示。軟件功能模塊劃分如圖15所示。

圖15:軟件功能模塊框圖

各個模塊功能:

(1)ds18b20_test.v模塊為頂層模塊,實現(xiàn)模塊間互聯(lián);(2)ds18b20_driver.v實現(xiàn)芯片單總線接口通信功能;
(3)hex_bcd.v實現(xiàn)溫度值HEX轉(zhuǎn)BCD碼功能;
(4)clock_timer.v實現(xiàn)時鐘計時器功能;

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

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

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

3.2 測試結(jié)果

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

圖1:DS18B20溫度及時間顯示

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
EP2C35F484C8N 1 Intel Corporation Field Programmable Gate Array, 2076 CLBs, 402.5MHz, 33216-Cell, CMOS, PBGA484, LEAD FREE, FBGA-484
$104.3 查看
EP2C35F672I8N 1 Intel Corporation Field Programmable Gate Array, 2076 CLBs, 402.5MHz, 33216-Cell, CMOS, PBGA672, LEAD FREE, FBGA-672

ECAD模型

下載ECAD模型
$905.2 查看
5CSTFD6D5F31I7N 1 Altera Corporation Field Programmable Gate Array, 110000-Cell, CMOS, PBGA896, ROHS COMPLIANT, FBGA-896

ECAD模型

下載ECAD模型
$2992.14 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

專注FPGA技術(shù)開發(fā),涉及Intel FPGA、Xilinx FPGA技術(shù)開發(fā),開發(fā)環(huán)境使用,代碼風(fēng)格、時序收斂、器件架構(gòu)以及軟硬件項目實戰(zhàn)開發(fā),個人公眾號:FPGA技術(shù)實戰(zhàn)。