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