對I2C信號和SMBus信號進行無毛刺快速隔離的方法
——
圖1,本電路是一種簡單的I2C隔離器。
圖 1 所示電路的工作原理是,把非隔離 的SDA 線路電位拉低的一個器件會使一個光耦合器 LED導(dǎo)通,從而使隔離的 SDA 線路電位拉低,并使隔離側(cè)的光耦合器 LED不工作,反之亦然。然而,如果隔離勢壘兩側(cè)的器件正在拉低各自的 SDA 線路的電位,則這些光耦合器就處于一種不確定狀態(tài),兩個 LED 部分導(dǎo)通。當(dāng)非隔離的器件釋放其 SDA 線路時,SDA線路上的電壓上升,直到隔離側(cè)的 LED 能夠完全導(dǎo)通為止。只有這樣,非隔離的 SDA 線路才會再次變?yōu)榈碗娖?。這種情況在I2C通信期間的各個時候都會發(fā)生,其中包括時鐘同步(在 SCL 線路上)、多主設(shè)備仲裁、SMBus 中斷仲裁(在 SDA 線路上)。圖 2 示出了圖 1 所示電路的工作細節(jié)。 74HC125 三態(tài)非反相緩沖器仿真兩個 I2C 器件的漏極開路輸出。 線上的邏輯低電平迫使輸出端變?yōu)榈碗娖?,而邏輯高電平則使輸出端處于高阻抗?fàn)顟B(tài)。波形1 和波形 2 表示 SDA緩沖器 和隔離的 SDA 緩沖器的使能線的輸入信號。波形3 和波形 4 則分別表示相應(yīng)的輸出信號。
圖2,簡單的 I2C 隔離器在某些情況下會產(chǎn)生大量毛刺。
這類電路以多種形式發(fā)表在報刊上,而且通常配有需要 5 ~ 10 mA LED 驅(qū)動電流的慢速光耦合器。這些電路可在有限的設(shè)備中使用,但它們速度慢,而且仍然會產(chǎn)生毛刺。試圖用高速元件來克服速度問題和驅(qū)動問題,只會使這些電路變得幾乎無法使用。圖 1 所示電路使用需要 500mA LED 驅(qū)動電流的高速 HCPL2300 光耦合器。如果兩條 SDA 線都保持為低電平,然后同時釋放,則兩個光耦合器就會互相對抗,形成振蕩器(圖 3)。這種振蕩的特性取決于上拉電阻、供電電壓和電容型數(shù)據(jù)線路(去掉 9pF 示波器探頭中的一個,就會使振蕩停止,而用一個 10pF 電容器代替這一探頭,就會再次開始振蕩)。
圖3,在圖1所示電路中使用高速元件會導(dǎo)致不可預(yù)測的行為。
圖4,改進的I2C隔離器速度快,不會產(chǎn)生毛刺。
圖 4 所示電路通過建立“高”(上拉至 5V)、“拉低”和“被拉低”三種邏輯電平來解決這些問題。當(dāng)兩側(cè)都處于空閑高電平時,兩個光耦合器均關(guān)斷。當(dāng)某一側(cè)把其SDA線拉至低于 0.4V(適合于集電極開路輸出和漏極開路輸出的安全假定值)時,比較器使其 LED導(dǎo)通。另一側(cè)的SDA線拉低至大約 0.6V,這仍被解釋為邏輯低電平,但不會導(dǎo)致那一側(cè)的 LED 導(dǎo)通。當(dāng)兩側(cè)均在拉低各自SDA線電平時,兩個 LED 都導(dǎo)通。在這種狀態(tài)下,如果一側(cè)釋放其SDA線,那么它會很明顯地從 I2C器件輸出的低電平升至大約 0.6V。
圖5,這一示波器照片示出了改進的I2C隔離器的工作情況。
圖 5 示出了圖 4 所示電路的工作細節(jié)。LT1719 比較器和 Agilent公司 (http://www.agilent.com/)的 HCPL2300 光隔離器的組合,能滿足 400kHz 增強 I2C 總線規(guī)范的定時要求??倐鬏斞舆t大約為 100 納秒,因此您可以調(diào)節(jié)邏輯閾值來適應(yīng)其它要求。雖然您可以使用該電路來使SDA 和 SCL 線支持時鐘完全同步,但只要主設(shè)備的通信速度不快于最慢的從設(shè)備,就不必使用這種額外的電路。如果您不需要時鐘同步,則您可在SCL中 使用一個光耦合器。 隔離器相關(guān)文章:隔離器原理
評論