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