DS2409 MicroLAN耦合器設(shè)計替代方案
摘要:DS2409的設(shè)計初衷是將其用做門禁控制的探測點(即讀取頭)以及用來減少大型1-Wire®網(wǎng)絡(luò)中總線上的負載。DS2409也被用來實現(xiàn)雙主機網(wǎng)絡(luò)。但目前Maxim已經(jīng)決定停止生產(chǎn)DS2409并鼓勵所有使用DS2409的客戶實施相應(yīng)的設(shè)計改進以應(yīng)對這個情況。這篇應(yīng)用筆記介紹了使用DS2409的1-Wire網(wǎng)絡(luò)系統(tǒng)的替代方案,這些方案并不要求對現(xiàn)有的網(wǎng)絡(luò)進行重新設(shè)計。
概述
得益于DS2409 MicroLAN耦合器的獨特設(shè)計,它可以被用于實現(xiàn)多種特殊應(yīng)用。本文首先列出了DS2409的特性和應(yīng)用,接著介紹了可以實現(xiàn)相同功能的替代電路。最后本文對這些替代電路做了詳細討論。
DS2409特性描述
DS2409是一個特殊類型的2端口可尋址開關(guān)器件。與向傳統(tǒng)的可編程輸入/輸出口(PIO)輸出高、低電平不同,這個器件通過傳輸門來將其輸出通道與作為其輸入的1-Wire總線連接。在任何時刻,只有一個1-Wire輸出通道有效。除了1-Wire輸出通道以外,DS2409還有一個可控輸出通道,該輸出通道可以配合主輸出通道使用(默認方式),也可配合輔助輸出通道使用,還可以獨立使用。這些功能的切換是通過控制狀態(tài)控制字節(jié)來完成的(參見DS2409數(shù)據(jù)資料)。狀態(tài)信息字節(jié)(參見DS2409數(shù)據(jù)資料)允許主機確認設(shè)備配置狀況、檢查器件工作狀態(tài)(使用或非使用狀態(tài))、確認每個1-Wire輸出的邏輯狀態(tài)(高或者低)、事件標志位(置位/清零)。表1總結(jié)了DS2409的這些特性以及這些特性帶來的便利。
表1. DS2409特性及優(yōu)勢
DS2409需要5V VDD供電,上電后,所有1-Wire輸出通道都處于非工作狀態(tài),并通過內(nèi)部上拉電阻拉到5V VDD電平。短暫的電源掉電將使器件進入上電復(fù)位狀態(tài)。在VDD穩(wěn)定后,1-Wire輸入端口作用一個短暫低電平,使DS2409進入軟件上電復(fù)位狀態(tài)。當DS2409重新和主機連接后,器件進入默認的上電復(fù)位配置狀態(tài),1-Wire總線輸出通道都處于非工作狀態(tài),事件標志位狀態(tài)不確定。
表1列出的特性主要面向下列3種應(yīng)用:智能探測點、多層網(wǎng)絡(luò)、雙主機網(wǎng)絡(luò)(參見表2)。
表2. 特性及其應(yīng)用
[!--empirenews.page--]智能探測點
圖1所示框圖是將iButton®作為電子鑰匙的門禁系統(tǒng)。R1/C1應(yīng)盡量靠近1-Wire適配器安裝。R1的作用在于當1-Wire總線中斷時,DS2409可以實現(xiàn)一個軟復(fù)位。C1在VDD過沖時可以避免DS2409阻塞1-Wire總線。
圖1. 帶智能探測點的門禁控制系統(tǒng)拓撲
除了主1-Wire總線外,探測點(如DS9092 iButton探頭)位于DS2409主輸出端分支二級網(wǎng)絡(luò)上。與輔助輸出口相連接的是一個ID芯片,比如一個1-Wire EEPROM器件,這個器件中存儲了分支名稱。正常工作情況下,所有分支都處于禁止狀態(tài)(即與主1-Wire總線斷開),與此同時主機在進行條件搜索,檢測事件是否發(fā)生。當一個iButton連接到探測點時,將該分支上的DS2409事件標志位置位。在下一個掃描周期中,主機將定位于該DS2409并使能輔助輸出通道,以讀取分支名稱。接下來,主機將訪問相同的DS2409并且使能主輸出通道,以訪問接入系統(tǒng)的iButton。當主輸出通道進入工作狀態(tài)后,點亮LED,指示用戶已檢測到器件連接。如果不需要點亮LED,控制輸出可以連接到一個門鎖,軟件控制打開/關(guān)閉。由于Smart-On命令具有短路檢測功能,DS2409可以防止探測點短路所引起的網(wǎng)絡(luò)故障。
多層網(wǎng)絡(luò)
對于任何網(wǎng)絡(luò),找到主機驅(qū)動負載和節(jié)點(或分支、從機)數(shù)量間的最佳平衡非常重要。達到這個目的一種方式是網(wǎng)路分層(參見圖2)。圖中展示了一個4層網(wǎng)絡(luò),從始終保持有效狀態(tài)的主干開始(第0層),每個子層都包含開關(guān)分支(第1層到第3層)。R1/C1應(yīng)靠近1-Wire主機。如果通過1個或多個DS2409在1-Wire主干層和子層構(gòu)建多層網(wǎng)絡(luò),R1將保證主機再度連接時自動關(guān)斷通路。C1在VDD過沖時避免DS2409阻塞1-Wire總線。
為了有效控制這種網(wǎng)絡(luò),主機應(yīng)當了解每層各個分支DS2409從機的ROM ID,以識別網(wǎng)絡(luò)拓撲。為了打開第3層從機的通路(如箭頭所示),主機應(yīng)執(zhí)行下列命令:
對主干U1執(zhí)行Match ROM命令。
使能主輸出通道(該操作將打開第1層兩個從器件的通路)。
對第1層U3執(zhí)行Match ROM命令。
使能主輸出通道(該操作將打開第2層的兩個從器件通路)。
對第2層U4執(zhí)行Match ROM命令。
打開輔助輸出通道(該操作將打開第3層連接至該輸出的從器件通路)。
圖2. 多層網(wǎng)絡(luò)拓撲
由于采用VCC供電,DS2409的最大1-Wire總線負載是100pF (50pF來自1-Wire總線輸入,50pF來自輸出),而典型的寄生供電1-Wire器件總線負載為800pF至1000pF。在示例拓撲中,主機所要驅(qū)動的總負載是:主干網(wǎng)上的DS2409 (50pF)、第1層的兩個DS2409 (150pF,2個輸入、1個輸出)、第2層的兩個DS2409 (150pF),連接在U4輔助輸出通道的所有從器件(50pF加上從機負載)。因此總負載是400pF加上從機負載。
根據(jù)應(yīng)用需求,在每個分支可以掛接多于2個DS2409,表3列出了最大分支數(shù)目以及相應(yīng)的來自于耦合器的負載。層與層之間,分支數(shù)目呈指數(shù)方式增長,然而來自DS2409的負載則呈線性增長。
表3. 多層分支數(shù)與DS2409負載
除了隨網(wǎng)絡(luò)層數(shù)增加而線性增加的通信負荷外,用戶同時應(yīng)注意DS2409所引入的阻抗。對于主輸出來說,典型值是10Ω (最大值20Ω);對于輔助通道來說,典型值是15Ω (最大值30Ω)。非零阻抗降低了最終網(wǎng)絡(luò)層(主機至從機)的高電平,并拉高了主干網(wǎng)(從機至主機)的低電平。降低高電平通常不是什么問題,但是由于低電平閥值被拉高,通常建議用戶將網(wǎng)絡(luò)分層控制在4層或4層以內(nèi)。
[!--empirenews.page--]雙主機網(wǎng)絡(luò)
在應(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命令[!--empirenews.page--]DS2409替代方案
為了替代DS2409,用戶應(yīng)當使用1-Wire可尋址開關(guān)(用于數(shù)字控制和檢測)和模擬開關(guān)(開通或關(guān)閉輸出)。用1個雙通道可尋址開關(guān)(如DS2413、DS2406或DS28E04)和一路或兩路模擬開關(guān),可以部分替代DS2409。完全替代器件則需要一個5通道1-Wire可尋址開關(guān)(如DS2408,8通道)和兩路模擬開關(guān)。需要注意的是,可尋址開關(guān)上電后所有PIO都處于斷開(不導(dǎo)通)狀態(tài)。
模擬開關(guān)必須為單刀雙擲(SPDT),應(yīng)選擇供電電壓為5V ±10%的開關(guān)器件,導(dǎo)通電阻(RON)小于等于30Ω,三個開關(guān)節(jié)點的電容應(yīng)不大于50pF,開關(guān)時間小于100ns。如果內(nèi)置高ESD保護則更加理想?;谏鲜隹紤],可以選擇下列模擬開關(guān):
單通道:MAX4729 (5.7Ω,最大值)、MAX4730 (5.7Ω,最大值)、MAX4644 (4.75Ω,最大值)
雙通道:MAX4717 (3.5Ω,最大值)、MAX4719 (25Ω,最大值)、MAX4635 (4.5Ω,最大值)、MAX4636 (4.5Ω,最大值)、MAX4750(30Ω,最大值)
三通道:MAX4693 (25Ω,典型值;40Ω,最大值、低速切換)
上述所有模擬開關(guān)都不具備高ESD保護特性。在試驗臺上使用單通道開關(guān)MAX4561,常開或常閉引腳具有±15kV ESD保護。但由于MAX4561的RON典型值為45Ω,不適合用來替代DS2409。
示例電路
圖7所示電路是部分替代電路,實現(xiàn)DS2409的1-Wire輸出切換和輸出控制。U1為2通道1-Wire可尋址開關(guān)(帶開漏PIO);U2是一個單刀雙擲模擬開關(guān),3個開關(guān)觸點對應(yīng)NO、NC和COM引腳。開關(guān)受IN引腳的數(shù)字輸入電平控制。
上電默認狀態(tài)下,所有1-Wire可尋址開關(guān)的PIO都處于高阻狀態(tài)。通過電阻R2在開關(guān)的IN引腳作用一個高電平,使NO引腳連接到COM端。NO引腳通過1.5kΩ上拉電阻R1連接至COM引腳的無效1-Wire輸出端。這些配置等效于DS2409的上電狀態(tài)。
為了打開U2上的1-Wire輸出,主機將PIO-A打開,如同在U2的IN引腳作用一個低電平。使模擬開關(guān)的COM端從NO切向NC,接通1-Wire總線。將PIO-A關(guān)閉,則關(guān)閉1-Wire輸出。主機也可以對PIO-B進行獨立于PIO-A的操作,如替代DS2409手動模式下的控制輸出或用來控制其它類似R1/R2/U2的電路。控制兩個模擬開關(guān)時,1-Wire主機必須保證只有一個1-Wire輸出通道打開。這些可以通過軟件實現(xiàn),也可以通過更安全的連接邏輯完成,即通過PIO-A ^ /PIO-B和/PIO-A ^ PIO-B組合邏輯控制模擬開關(guān)。PIO-B也可以用于事件檢測(條件搜索)和短路檢測(虛線)。但不可模擬輸出有效前發(fā)出一個復(fù)位脈沖的情況。
圖7. DS2409部分替代電路,U1可以選用DS2406、DS2413或DS28E04
DS2406可尋址開關(guān)
圖7所示電路已經(jīng)用DS2406可尋址開關(guān)進行測試。模擬開關(guān)(MAX4561)的IN引腳連接到DS2406的PIO-B。PIO-A用來控制輸出,開啟LED。通過Write Status命令(代碼55h)控制存儲器0007h (SRAM控制位)操作PIO,該SRAM控制位的第6位直接控制PIO-B通道的狀態(tài)。圖8顯示了輸出使能過程,圖中頂部波形圖是CRC16字節(jié)(1Fh,E2h),跟隨在0007h單元寫入的3Fh數(shù)據(jù)字節(jié)之后。底部波形是PIO-B的跳變波形,控制模擬開關(guān)。在CRC16字節(jié)之后的復(fù)位/應(yīng)答周期結(jié)束之前,不會出現(xiàn)1-Wire總線輸出波形(中間波形)。圖8并未顯示復(fù)位/應(yīng)答周期。
圖9顯示了關(guān)閉輸出的過程,頂部波形是跟隨在寫入0007h單元的7Fh數(shù)據(jù)字節(jié)之后的CRC16字節(jié)(1Eh,12h);底部波形是控制模擬開關(guān)的PIO-B的跳變波形;PIO-B狀態(tài)轉(zhuǎn)變后,1-Wire輸出(中間波形)終止,然后主機發(fā)出復(fù)位/應(yīng)答脈沖。圖9并未顯示復(fù)位/應(yīng)答周期。
除了向狀態(tài)寄存器寫入命令以改變PIO狀態(tài)外,PIO還可以由Channel Access命令(代碼F5h)控制,但本文沒有介紹該操作。另請注意,DS2406在斷電后不到1分鐘之內(nèi)執(zhí)行了一次上電復(fù)位操作。而DS2409在斷電后或1-Wire輸入斷開(低電平)大約幾個毫秒后執(zhí)行上電復(fù)位操作。DS2406將鎖存其PIO狀態(tài),由此,該器件支持事件檢測(條件搜索)和短路檢測(虛線)。通過Channel Access命令清除閉鎖狀態(tài)(通道控制字節(jié)1)。
圖8. 利用DS2406進行部分替代,輸出有效
圖9. 利用DS2406進行部分替代,輸出禁止
DS2413可尋址開關(guān)
按照圖7所示電路對DS2413可尋址開關(guān)進行了測試。模擬開關(guān)的IN引腳與DS2413的PIO-A連接。PIO-B用于控制輸出,點亮LED。通過PIO Access Write命令(代碼5Ah)實現(xiàn)PIO的操作,圖10所示為輸出使能過程。頂部波形是PIO輸出數(shù)據(jù)字節(jié)(第一個是原碼FEh,隨后是反碼01h),然后是AAh確認字節(jié),以及新的PIO引腳狀態(tài)(3Ch)。PIO-A (底部波形)用于控制模擬開關(guān),其狀態(tài)在PIO輸出數(shù)據(jù)字節(jié)的反碼之后發(fā)生改變。因此,確認字節(jié)和PIO引腳狀態(tài)在1-Wire輸出通道出現(xiàn)(中間波形)。為了確??偩€的從機與主機同步,主機必須發(fā)出復(fù)位/應(yīng)答脈沖。
圖10. 利用DS2413進行部分替代,輸出有效
圖11. 利用DS2413進行部分替代,輸出禁止
圖11所示為輸出禁止波形。頂部波形是PIO輸出數(shù)據(jù)字節(jié)(第一個是原碼FFh,隨后是反碼00h)。確認字節(jié)和新的PIO引腳狀態(tài)(3Ch)并未在圖中表示出來。PIO-A (底部波形)用于控制模擬開關(guān),其狀態(tài)在PIO輸出數(shù)據(jù)字節(jié)的反碼之后發(fā)生改變。確認字節(jié)和PIO引腳狀態(tài)沒有通過1-Wire輸出(中間波形)。
請注意,DS2413與1-Wire總線斷開5分鐘后,執(zhí)行一次上電復(fù)位。而DS2406在1分鐘內(nèi)即進行上電復(fù)位。DS2413并不鎖存引腳狀態(tài),因此它不支持條件搜索,但可以實現(xiàn)短路檢測(虛線)。[!--empirenews.page--]DS28E04可尋址開關(guān)
DS28E04是帶有2個PIO的1-Wire EEPROM。PIO上電時處于非導(dǎo)通狀態(tài),POL引腳需要接高電平(5V)。兩個PIO的控制方式與DS2413相同,因此圖10和圖11也適合這種情況。寄生供電模式下,通過一個低于15s的1-Wire總線低電平使DS28E04進入上電復(fù)位。DS28E04具有PIO狀態(tài)鎖存功能,因此,它支持事件檢測(條件搜索)和短路檢測(虛線)。通過Reset Activity Latches命令清除鎖存。
全面替代(DS2408可尋址開關(guān))
圖7所示的電路用于替代:a) 一路1-Wire開關(guān)輸出和控制輸出,但不支持事件/短路檢測;b) 一個帶事件/短路檢測的1-Wire開關(guān)輸出。這限制了2路可尋址開關(guān)的選擇。為了全面替代器件,需要5個PIO通道(圖12)。
全面替代電路采用兩個模擬開關(guān)(U2、U3),開關(guān)受控于DS2408 8通道可尋址開關(guān)(U1)的PIO端口P1和P2。P2、P3口連接在1-Wire開關(guān)輸出通道,支持短路和事件檢測。P4用來替代控制輸出。P5至P7留作它用。必要時,可以利用P5控制另一個模擬開關(guān)。從而獲得第三路1-Wire輸出,通過P6支持短路/事件檢測。P7和P4用來指示三個1-Wire通道的哪個通道處于有效狀態(tài)。
按照與DS2413相同的方式控制DS2408的PIO,因此圖10、圖11仍然適合這里的應(yīng)用。可編程DS2408的條件搜索,在其PIO引腳檢驗是否發(fā)生事件。通過Reset Activity Latches命令清除鎖存。
與其它可尋址開關(guān)不同,DS2408需要一個外部復(fù)位信號(U4)來保證PIO在上電后處于非導(dǎo)通狀態(tài)。寄生供電模式下,1-Wire總線上一個短于5s的低電平將使DS2408進入上電復(fù)位狀態(tài)。
ESD保護
DS2409在1-Wire輸入和兩路1-Wire輸出通道都內(nèi)置了ESD保護,不再需要額外的ESD保護機制。1-Wire可尋址開關(guān)的1-Wire輸入通道同樣具有ESD保護,但其PIO引腳都未加ESD保護。多數(shù)模擬開關(guān)的ESD保護都很有限,建議增加ESD保護電路,特別是對于連接1-Wire輸入和輸出通道的引腳。在選擇ESD保護器件時,應(yīng)選擇電容較小的器件,符合這類條件的ESD保護器件有:MAX3202E/MAX3203E/MAX3204E或MAX3207E/MAX3208E系列。
圖12. DS2409全面替代電路
總結(jié)
DS2409對于構(gòu)建單主機大型1-Wire網(wǎng)絡(luò)非常有效。其它的應(yīng)用包括:門禁控制和雙主機1-Wire網(wǎng)絡(luò)的智能接入點。但是,DS2409已進入停產(chǎn)階段,這會給一些用戶造成麻煩。本文重點介紹了支持同樣應(yīng)用的一些DS2409替代方案。