拆分和仲裁雙向串行總線
雙向總線(例如,I 2 C、SMBus 和 LIN)在當(dāng)今的電子產(chǎn)品中已變得無處不在,部分原因在于它們的簡單性。僅使用兩條線——數(shù)據(jù)線和時鐘線——多個設(shè)備就可以相互通信。根據(jù)I 2 C總線規(guī)范,多128個設(shè)備可以共享相同的數(shù)據(jù)和時鐘線;這是通過在每個設(shè)備上使用外部上拉電阻和開漏驅(qū)動器來實現(xiàn)的。如果沒有設(shè)備在傳輸 0,則總線自然會被上拉電阻拉到 1。但是,總線上的任何設(shè)備都可以將其拉為 0。
本文引用地址:http://butianyuan.cn/article/202303/444906.htm雙向總線介紹
雙向總線(例如,I 2 C、SMBus 和 LIN)在當(dāng)今的電子產(chǎn)品中已變得無處不在,部分原因在于它們的簡單性。僅使用兩條線——數(shù)據(jù)線和時鐘線——多個設(shè)備就可以相互通信。根據(jù)I 2 C總線規(guī)范,多128個設(shè)備可以共享相同的數(shù)據(jù)和時鐘線;這是通過在每個設(shè)備上使用外部上拉電阻和開漏驅(qū)動器來實現(xiàn)的。如果沒有設(shè)備在傳輸 0,則總線自然會被上拉電阻拉到 1。但是,總線上的任何設(shè)備都可以將其拉為 0。
允許總線master隨時驅(qū)動總線,slave在一定時間內(nèi)響應(yīng)總線master的查詢
收到查詢后。在多主機(jī)場景中,充當(dāng)總線主機(jī)的各個設(shè)備需要執(zhí)行自己的總線仲裁。希望斷言對總線的控制的總線主機(jī)需要通過將其拉至 0 來對其進(jìn)行測試;這會通知其他主設(shè)備正在使用總線。
為什么拆分雙向總線?
I 2 C 總線規(guī)范 [1] 包含一個參考電路,允許將其分為輸入和輸出對。出于多種原因需要此配置。首先,在安全、噪聲和接地問題的情況下,分離總線可用于光學(xué)隔離總線主機(jī)和從機(jī)(圖 1 )。此外,可以通過放大分離總線(圖 2)或用執(zhí)行媒體轉(zhuǎn)換的電路替換放大器來實現(xiàn)性能提升。這可以增加總線的工作距離,并通過減少電容來提高性能。隨著電容下降,信號時間常數(shù) t 將由上拉電阻決定。
圖 1 雙向總線隔離
圖2 雙向總線中繼器
對于那些設(shè)計雙向總線控制器的人,可以使用總線拆分技術(shù)進(jìn)行調(diào)試。雙向協(xié)議的典型調(diào)試變得困難,因為行為不當(dāng)?shù)目刂破骺赡軐⒖偩€拉到 0,而另一個控制器正在斷言對總線的控制。這種情況使得在不知道每個設(shè)備控制器的內(nèi)部狀態(tài)的情況下不可能識別總線上的傳輸設(shè)備。然而,通過監(jiān)控圖 2中的 /gateB1 和 /gateA2 線路, 可以僅使用標(biāo)準(zhǔn)實驗室設(shè)備和調(diào)試技術(shù)來識別傳輸設(shè)備和總線的任何同時斷言。
總線拆分技術(shù)可用于將支持 I 2 C 的設(shè)備連接到另一個沒有 I 2 C 控制器的設(shè)備。在這種情況下,分離總線可以連接到其他設(shè)備的 GPIO(圖 3)。
圖 3 連接到 GPIO 的拆分總線
有幾個已發(fā)布的電路可以拆分雙向總線。不幸的是,用于分離總線應(yīng)用的參考電路要么需要為特定應(yīng)用專門設(shè)計的電路(如 見于已發(fā)表的文章),或需要使用傳輸門的外部控制邏輯(如 I 2C 標(biāo)準(zhǔn)中所示)允許發(fā)送器和接收器進(jìn)行通信,而不會創(chuàng)建導(dǎo)致閂鎖的反饋路徑。閂鎖情況在圖 2中很明顯,其中 IOA 將總線拉至 0 迫使 IOB 通過 /gateB1 拉至 0,然后強(qiáng)制 IOA 通過 /gateA2 無限期拉至 0。
本設(shè)計理念中介紹的雙邊仲裁器可以將雙向總線拆分為發(fā)送和接收對,并以通用方式構(gòu)建,使其可用于任何拆分總線應(yīng)用。此外,它不需要外部控制邏輯——總線僅由數(shù)據(jù)總線的狀態(tài)控制:
圖 4 雙邊仲裁器使能電路
雙邊仲裁
圖 5中所示的仲裁器由圖 4中的交叉耦合使能電路組成,之所以起作用,是因為根據(jù)定義,雙向總線僅支持半雙工通信。在穩(wěn)定狀態(tài)下,DATA 總線被上拉電阻 R1 和 R2 拉高,迫使 OUT1 和 OUT2 為 0。這使兩個 NMOS FET 都處于截止?fàn)顟B(tài)。當(dāng)IC1拉低DATA時,OUT1變?yōu)?,使Q2拉低IC2的DATA總線。同時,OUT1 被饋送到或非門 U2 的輸入端,斷開從 OUT2 返回到 Q1 的反饋回路。反饋回路的這種中斷消除了閉鎖條件,使得任何其他控制邏輯都變得不必要,因為個斷言其數(shù)據(jù)線的電路贏得了比賽,并通過或非門阻塞了另一個電路。
圖5 雙向總線的雙邊仲裁
圖 6 雙邊仲裁啟用總線放大
由于電路的通用性,雙邊仲裁可應(yīng)用于任何拆分總線應(yīng)用。圖 6 顯示了應(yīng)用于放大的雙邊仲裁。通過分別用媒體轉(zhuǎn)換電路或光隔離器替換放大器組件,這可以很容易地擴(kuò)展到媒體轉(zhuǎn)換和總線隔離。出于調(diào)試總線控制器的目的,可以監(jiān)控放大器之間的線路以幫助識別故障總線控制器。圖 7 顯示了應(yīng)用于 I 2 C 到 GPIO 連接的雙邊仲裁。
圖 7 I 2 C 到 GPIO 連接
結(jié)論
將雙向總線分成發(fā)送/接收對有多種原因。從提高性能到啟用調(diào)試再到隔離,總線分離是一種許多設(shè)計人員都曾發(fā)現(xiàn)有用的技術(shù)。
雙邊仲裁是一種總線仲裁技術(shù),可實現(xiàn)大多數(shù)總線拆分應(yīng)用。它依賴于雙向總線通信的行為來消除對外部控制電路的需求,并且足夠通用以用于許多應(yīng)用程序而不會增加不必要的復(fù)雜性。
評論