2012年12月10日 星期一

DIY - PIC:18F4550 多個 DS18B20 ROM 的序列號讀取方式 (一百五十三)

DIY - PIC18F4550 多個  DS18B20 ROM 的序列號讀取方式 (一百五十三)

在單個 DS18B20 讀取序列號 (Silicon Serial Number) 是很直接簡單,祇要用 Read ROM (33h) 指令,便可讀取序列號,但多個 DS18B20 在一條總線上,便需要特別的演算法來讀取序列號。

多個 DS18B20在一條總線上
搜尋算法 (Search Algorithm) 
1. 1bit
2. 1bit 補碼 (Complement bit)
3. 寫需要的 1bit 數值 ( 0 1)

多個 DS18B20 的搜尋算法是用二叉樹 (Binary Tree) 搜尋,直至找尋出一個序列號,重覆用以上搜尋算法過程,在過程完成後,便可知道所有序列號。

Binary Tree Search
詳細搜尋步驟:
1. 主機發出復位 Reset (min 480us Pull Low) 指令
2. 元件會同時反應復位 (Reset) 指令,同時發出 0 的存在數值 
3. 主機發出搜尋 Search  ROM (FOh) 指令 
4. 主機讀 1bit (首先是 LSB bit 0)
5. 主機讀 1bit 補碼 (Complement bit)
6. 根據以下的結果會決定下一步 寫入的數值



7. 不同的數值會選擇相對的序列號路徑
8. 直至讀出一個完整的 64bit 序列號 (包括核對 CRC  驗證碼)
9. 重覆步驟 1 8 直至所有序列號讀出為止

例子:


相關網址:
※ DIY - PIC:18F4550 DS18B20 ROM 的序列號介紹 (一百五十)
※ DIY - PIC:18F4550 單個 DS18B20 ROM 的序列號讀取程式 (一百五十一)
※ DIY - PIC:18F4550 + DS18B20 溫度感測器線 + 4mm 插頭 (一百五十二)
※ DIY - PIC:18F4550 多個 DS18B20 ROM 的序列號讀取方式 (一百五十三)
※ DIY - PIC:18F4550 多個 DS18B20 ROM 的序列號讀取程式 (一百五十四)
※ DIY - PIC:18F4550 多個 DS18B20 Data Logger 資料記錄儀 + PS/2 鍵盤 (一百五十五)
※ DIY - PIC:18F4550 多個 DS18B20 Data Logger 資料記錄儀 + RS232 (一百五十六)
※ DIY - PIC:18F4550 多個 DS18B20 Data Logger 資料記錄儀 (一百五十七)

相關網址:
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 機殼設計 (一百三十八)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 機殼加工 (一百三十九)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 面背板組裝 (一百四十)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 系統底板 (一百四十一)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 底板組裝 (一百四十二)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 系統組裝 (一百四十三)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 附件加工 (一百四十四)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 充電池 (一百四十五)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 鋰離子電池 (一百四十六)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 充電板 (一百四十七)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 充電板組裝 (一百四十八)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 藍屏 LCD 1602 (一百四十九)

2012年 12月 10日 天氣報告
氣溫:19.6@ 15.30
相對濕度:百分之 64%
天氣:間有陽光

沒有留言:

張貼留言