DS2409 MicroLAN耦合器替代方案設(shè)計
雙主機網(wǎng)絡(luò)本文引用地址:http://m.butianyuan.cn/article/185727.htm
在應(yīng)用中存在需要雙主機控制1-Wire總線的情況,例如,需要一個備份主機或者兩臺主機相互通信的情況。圖3是實現(xiàn)雙主機的示意圖,在這個例子中,DS1996存儲器iButton用作數(shù)據(jù)交換時的暫存器,可選擇ID芯片,如果已安裝,則可存儲與系統(tǒng)相關(guān)的信息,告知主機它們正在訪問一個共享網(wǎng)絡(luò),該網(wǎng)絡(luò)同時帶有數(shù)據(jù)緩沖功能和握手邏輯。除了存儲器iButton外,同樣可以存在一個1-Wire從機構(gòu)成的網(wǎng)絡(luò)。建議在雙主機網(wǎng)絡(luò)中同樣使用圖1所示的R1/C1組合,將R1/C1應(yīng)用于2個主機側(cè)。
圖3. 雙主機,如果不能保證相同電壓,則由同一電源為兩個DS2409供電
作為起點,DS2409的主輸出和輔助輸出通道都處于禁止狀態(tài)。公共網(wǎng)絡(luò)都從DS2409上拉到5V,等效上拉電阻降低到750Ω。兩臺主機都定期讀取DS2409信息,以確定另一個主機是否已經(jīng)接管了1-Wire總線網(wǎng)絡(luò)。
假定主機A訪問DS1996,向主機B傳送數(shù)據(jù)。為了訪問存儲器iButton (DS1996),主機A首先打開U1的可控輸出,這將把U2的輔助輸出拉低。同時,主機B已經(jīng)讀到了U2的狀態(tài)信息,因此它知道主機A已經(jīng)接管總線。接下來主機A打開耦合器U1的主輸出,并且向存儲器iButton寫入數(shù)據(jù),這些操作結(jié)束后,主機A關(guān)閉U1的主輸出并且關(guān)閉控制輸出。
主機B仍然在讀取U2的狀態(tài)信息,并檢測到主機A已經(jīng)完成了寫操作。此時主機B打開U2的控制輸出,這將把U1的輔助輸出拉低。主機A讀到U1的狀態(tài)信息并且知道主機B已經(jīng)接管總線。這時主機B打開主輸出通道,并從存儲器iButton中讀回數(shù)據(jù)。完成信息處理后,主機B向iButton寫入一個回應(yīng)信息。在這個操作結(jié)束后,主機B關(guān)閉U2的主輸出并關(guān)閉控制輸出。由于主機A仍在讀取U1的狀態(tài)信息,能夠了解到主機B對總線的訪問已經(jīng)結(jié)束。
功能命令及其典型用法
DS2409總共有11條命令,這些命令實現(xiàn)網(wǎng)絡(luò)控制功能。表4列出了這些命令并闡述了它們的典型用法。這些命令按照它們在網(wǎng)絡(luò)應(yīng)用中的重要性排序。詳細信息請參閱DS2409數(shù)據(jù)資料。
表4. DS2409功能命令及其典型用法
我們重點介紹Smart-On命令(圖4)。圖中頂部的波形是1-Wire總線通信波形,本例中所示的是Smart-On Auxiliary命令。第一字節(jié)是33h命令代碼,之后是復(fù)位信號FFh和復(fù)位響應(yīng)(00h,表示檢測到應(yīng)答脈沖),后面跟隨一個確認字節(jié)(33h,表示沒有短路)。中間波形表示輔助輸出通道的狀態(tài),即復(fù)位/應(yīng)答檢測(PD)周期。底部波形表示可控輸出在開啟輔助輸出之前關(guān)閉主輸出通道時的波形變換。在確認字節(jié)后的任何通信,都通過當前開通的通道進行。應(yīng)答脈沖僅在其之前有一個All Lines Off命令時有效。
圖4. Smart-On Auxiliary命令
關(guān)閉輸出通道通常采用All Lines Off命令(圖5)。圖中頂部的波形是命令字節(jié)66h,之后是確認字節(jié)。命令字節(jié)通過輸出通道輸出(中間波形),但確認字節(jié)沒有從通道輸入。底部波形表示當關(guān)閉輸出時,可控通道電平的跳變。
圖5. All Lines Off命令
除Smart-On命令外,對于主輸出通道還有Direct-On命令(圖6)。示波器上的波形如同All Lines Off命令的鏡像。在命令碼A5h之后,主輸出通道打開(底部波形)。確認字節(jié)從輸出通道輸出(中間波形)。如果使用了這個命令,必須產(chǎn)生一個復(fù)位/應(yīng)答周期,以保證打開通道上的從機與主機同步。
圖6. Direct-On Main命令
評論