DS18B20相關(guān)總結(jié)
RAM 數(shù)據(jù)暫存器,用于內(nèi)部計(jì)算和數(shù)據(jù)存取,數(shù)據(jù)在掉電后丟失,DS18B20 共9 個(gè)字節(jié) RAM,每個(gè)字節(jié)為 8 位。第1、2 個(gè)字節(jié)是溫度轉(zhuǎn)換后的數(shù)據(jù)值信息,第 3、4 個(gè)字節(jié)是用戶 EEPROM(常用于溫度報(bào)警值儲(chǔ)存)的鏡像。在上電復(fù)位時(shí)其值將被刷新。第 5 個(gè)字節(jié)則是用戶第 3 個(gè) EEPROM的鏡像。第 6、7、8 個(gè)字節(jié)為計(jì)數(shù)寄存器,是為了讓用戶得到更高的溫度分辨率而設(shè)計(jì)的,同樣也是內(nèi)部溫度轉(zhuǎn)換、計(jì)算的暫存單元。第 9 個(gè)字節(jié)為前 8個(gè)字節(jié)的 CRC碼。EEPROM 非易失性記憶體,用于存放長(zhǎng)期需要保存的數(shù)據(jù),上下限溫度報(bào)警值和校驗(yàn)數(shù)據(jù)。
DS18B20共3位EEPROM,并在 RAM 都存在鏡像,以方便用戶操作。
控制器對(duì) 18B20 操作流程:
1,復(fù)位:首先我們必須對(duì) DS18B20 芯片進(jìn)行復(fù)位,復(fù)位就是由控制器(單片機(jī))給 DS18B20單總線至少 480uS 的低電平信號(hào)。當(dāng) 18B20 接到此復(fù)位信號(hào)后則會(huì)在 15~60uS 后回發(fā)一個(gè)芯片的存在脈沖。
2,存在脈沖:在復(fù)位電平結(jié)束之后,控制器應(yīng)該將數(shù)據(jù)單總線拉高,以便于在 15~60uS 后接收存在脈沖,存在脈沖為一個(gè) 60~240uS 的低電平信號(hào)。至此,通信雙方已經(jīng)達(dá)成了基本的協(xié)議,接下來將會(huì)是控制器與 18B20 間的數(shù)據(jù)通信。如果復(fù)位低電平的時(shí)間不足或是單總線的電路斷路都不會(huì)接到存在脈沖,在設(shè)計(jì)時(shí)要注意意外情況的處理。
3,控制器發(fā)送 ROM 指令:雙方打完了招呼之后最要將進(jìn)行交流了,ROM 指令共有 5條,每一個(gè)工作周期只能發(fā)一條,ROM指令分別是讀 ROM 數(shù)據(jù)、指定匹配芯片、跳躍 ROM、芯片搜索、報(bào)警芯片搜索。ROM 指令為 8 位長(zhǎng)度,功能是對(duì)片內(nèi)的 64位光刻 ROM進(jìn)行操作。其主要目的是為了分辨一條總線上掛接的多個(gè)器件并作處理。誠(chéng)然,單總線上可以同時(shí)掛接多個(gè)器件,并通過每個(gè)器件上所獨(dú)有的 ID號(hào)來區(qū)別,一般只掛接單個(gè) 18B20芯片時(shí)可以跳過 ROM 指令(注意:此處指的跳過 ROM指令并非不發(fā)送 ROM 指令,而是用特有的一條“跳過指令” )
4,控制器發(fā)送存儲(chǔ)器操作指令:在 ROM 指令發(fā)送給 18B20 之后,緊接著(不間斷)就是發(fā)送存儲(chǔ)器操作指令了。操作指令同樣為 8 位,共 6 條,存儲(chǔ)器操作指令分別是寫 RAM 數(shù)據(jù)、讀RAM 數(shù)據(jù)、將 RAM 數(shù)據(jù)復(fù)制到 EEPROM、溫度轉(zhuǎn)換、將 EEPROM中的報(bào)警值復(fù)制到 RAM、工作方式切換。存儲(chǔ)器操作指令的功能是命令 18B20 作什么樣的工作,是芯片控制的關(guān)鍵。
評(píng)論