1-wire基本概念
這是美國的達拉斯半導體公司推出的一項特有的單總線(1-wire)技術。該技術與別的總線不同,它采用一根信號線,既可以傳輸時鍾,又可以傳輸數據,而且數據傳輸是雙向的。因此該總線技術具有線路簡單,硬件開銷少,成本低廉,便於總線擴展和維護等優點。該技術適用於單主機系統,能夠控制一個或者多個從機設備。
1-wire工作原理
單總線(1-wire)即只使用這一根數據線進行數據交換、控制。設備(主機或從機)通過一個漏極開路或三態端口連至該數據線,以允許設備在不發送數據時能夠釋放總線,而讓其它設備使用總線,其內部等效電路如圖所示:

1-wire通信過程
所有的單總線器件都要遵循嚴格的通信協議,其目的以保持數據的完整性。1-wire協議定義了:復位脈沖、應答脈沖、寫0、讀0和讀1時序等信號類型。
-
初始化時序(復位+從機應答)
主機通過拉低單總線480 ~ 960 us產生復位脈沖,然后釋放總線,進入接收模式。主機釋放總線時,會產生低電平跳變為高電平的上升沿,單總線器件檢測到上升沿之后,延時15 ~ 60 us,單總線器件拉低總線60 ~ 240 us來產生應答脈沖。主機接收到從機的應答脈沖說明單總線器件就緒,初始化過程完成。

-
寫間隙
寫間隙有兩種,包括寫0的時間隙和寫1的時間隙。
當數據線拉低后,在15 ~ 60 us的時間窗口內對數據線進行采樣。如果數據線為低電平,就是寫0,如果數據線為高電平,就是寫1。主機要產生一個寫1時間隙,就必須把數據線拉低,在寫時間隙開始后的15 us內允許數據線拉高。主機要產生一個寫0時間隙,就必須把數據線拉低並保持60 us。

-
讀間隙
當主機把總線拉低是,並保持至少1 us后釋放總線,必須在15 us內讀取數據。

文章參考:
作者:文久_
鏈接:https://www.jianshu.com/p/4d4b7f7d9280
來源:簡書