1.復位
主機發送480us-960us的低電平,然後設置端口爲高電平,釋放總線。
溫度傳感器接收到復位信號,等待15-60us,拉低總線,發出60-240us的復位應答脈衝。
主機讀取總線電平是否爲低,如果爲低,則判定溫度傳感器復位。
2.讀1bit數據
主機產生一個下降沿,低電平維持至少1us,之後釋放總線爲高電平,讓DS18B20把數據傳輸到單總線上。
DS18B20在檢測到總線被拉低1微秒後,開始發送數據,若是0就把總線拉爲低電平直到讀週期結束;
若是1則釋放總線爲高電平。
主機在一開始拉低總線1us後釋放總線,然後在包括前面的拉低總線電平1us在內的15us時間內完成對
總線進行採樣檢測,採樣期內總線爲低電平則確認爲0,採樣期內總線爲高電平則確認爲1,完成一個讀時序過程,
至少需要60μs才能完成。
兩次讀之間間隔至少1us。
3.寫1bit數據
寫週期60-120us,主機先把總線拉低1us表示寫週期開始,隨後若主機寫0,則繼續拉低電平最少60us直至
寫週期結束,然後釋放總線爲高電平;若主機寫1,在一開始拉低總線電平1us後就釋放總線爲高電平,一直到寫週期結束。
從機的DS18B20則在檢測到總線被拉低後等待15us,然後從15μs到45μs開始對總線採樣,在採樣期內總線爲高電平則爲1,
若採樣期內總線爲低電平則爲0。
兩次寫之間至少間隔1us。
4.讀取ID
功能碼 0x33(僅僅在總線上只有一個傳感器時使用)
復位-發送0x33-讀取8字節ID ID=族系碼1+串行號6+CRC1
5.獲取溫度數據
復位->發送0xcc(跳過ROM)->發送0x44(啓動溫度轉換)->等待至少750ms轉換完畢
復位->發送0xcc(跳過ROM)->發送0xbe(讀取溫度寄存器)->低8位在前,高8位在後->轉換爲實際溫度值