溫度傳感器DS18B20讀寫

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位在後->轉換爲實際溫度值

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章