關 閉

新聞中心

EEPW首頁 > 安全與國防 > 設計應用 > 對I2C信號和SMBus信號進行無毛刺快速隔離的方法

對I2C信號和SMBus信號進行無毛刺快速隔離的方法

——
作者: 時間:2007-12-26 來源: 收藏

  i2c 是一種流行的串行協議,適用于控制器、adc、dac、eeprom 以及其他器件。在某些數據采集和控制設備中,您必須把 i2c主設備與一個或多個從設備隔離開來,以便解決噪聲、接地和安全等問題。另外,雖然可以把 128 個外設連接到總線,但在某一部位,地電位差和總線電容過大會使噪聲余量和定時余量變小。本設計思路表明如何利用用一種符合 400khz 增強型 i2c 總線規(guī)范要求的方法,對 i2c 或 smbus 進行快速的、無毛刺光隔離。i2c 總線由雙向時鐘和數據線(scl 和 sda)組成,scl和sda 均用電阻器或電流源來拉高電平。各器件均用集電極開路的i/o 引腳連接到總線。有一種隔離i2c的辦法是用圖1所示電路的變種來實現的,圖1僅僅示出了 sda;scl 工作原理與sda相同。

  

  圖1,本電路是一種簡單的i2c隔離器。

  圖 1 所示電路的工作原理是,把非隔離 的sda 線路電位拉低的一個器件會使一個光耦合器 led導通,從而使隔離的 sda 線路電位拉低,并使隔離側的光耦合器 led不工作,反之亦然。然而,如果隔離勢壘兩側的器件正在拉低各自的 sda 線路的電位,則這些光耦合器就處于一種不確定狀態(tài),兩個 led 部分導通。當非隔離的器件釋放其 sda 線路時,sda線路上的電壓上升,直到隔離側的 led 能夠完全導通為止。只有這樣,非隔離的 sda 線路才會再次變?yōu)榈碗娖健_@種情況在i2c通信期間的各個時候都會發(fā)生,其中包括時鐘同步(在 scl 線路上)、多主設備仲裁、smbus 中斷仲裁(在 sda 線路上)。圖 2 示出了圖 1 所示電路的工作細節(jié)。 74hc125 三態(tài)非反相緩沖器仿真兩個 i2c 器件的漏極開路輸出。 線上的邏輯低電平迫使輸出端變?yōu)榈碗娖剑壿嫺唠娖絼t使輸出端處于高阻抗狀態(tài)。波形1 和波形 2 表示 sda緩沖器 和隔離的 sda 緩沖器的使能線的輸入。波形3 和波形 4 則分別表示相應的輸出信號。

  

  圖2,簡單的 i2c 隔離器在某些情況下會產生大量毛刺。

  這類電路以多種形式發(fā)表在報刊上,而且通常配有需要 5 ~ 10 ma led 驅動電流的慢速光耦合器。這些電路可在有限的設備中使用,但它們速度慢,而且仍然會產生毛刺。試圖用高速元件來克服速度問題和驅動問題,只會使這些電路變得幾乎無法使用。圖 1 所示電路使用需要 500ma led 驅動電流的高速 hcpl2300 光耦合器。如果兩條 sda 線都保持為低電平,然后同時釋放,則兩個光耦合器就會互相對抗,形成振蕩器(圖 3)。這種振蕩的特性取決于上拉電阻、供電電壓和電容型數據線路(去掉 9pf 示波器探頭中的一個,就會使振蕩停止,而用一個 10pf 電容器代替這一探頭,就會再次開始振蕩)。

{{分頁}}

  

  圖3,在圖1所示電路中使用高速元件會導致不可預測的行為。

  

  圖4,改進的i2c隔離器速度快,不會產生毛刺。

  圖 4 所示電路通過建立“高”(上拉至 5v)、“拉低”和“被拉低”三種邏輯電平來解決這些問題。當兩側都處于空閑高電平時,兩個光耦合器均關斷。當某一側把其sda線拉至低于 0.4v(適合于集電極開路輸出和漏極開路輸出的安全假定值)時,比較器使其 led導通。另一側的sda線拉低至大約 0.6v,這仍被解釋為邏輯低電平,但不會導致那一側的 led 導通。當兩側均在拉低各自sda線電平時,兩個 led 都導通。在這種狀態(tài)下,如果一側釋放其sda線,那么它會很明顯地從 i2c器件輸出的低電平升至大約 0.6v。

  

  圖5,這一示波器照片示出了改進的i2c隔離器的工作情況。

  圖 5 示出了圖 4 所示電路的工作細節(jié)。lt1719 比較器和 agilent公司 (http://www.agilent.com/)的 hcpl2300 光隔離器的組合,能滿足 400khz 增強 i2c 總線規(guī)范的定時要求??倐鬏斞舆t大約為 100 納秒,因此您可以調節(jié)邏輯閾值來適應其它要求。雖然您可以使用該電路來使sda 和 scl 線支持時鐘完全同步,但只要主設備的通信速度不快于最慢的從設備,就不必使用這種額外的電路。如果您不需要時鐘同步,則您可在scl中 使用一個光耦合器。

隔離器相關文章:隔離器原理


評論


相關推薦

技術專區(qū)

關閉