1-Wire協(xié)議最初設(shè)計(jì)用于通過短連接與附近設(shè)備進(jìn)行通信。1-Wire也是在單個(gè)微處理器端口引腳上增加輔助存儲(chǔ)器的一種方式。后來開發(fā)的方法將1-Wire協(xié)議擴(kuò)展到遠(yuǎn)遠(yuǎn)超出電路板尺寸的網(wǎng)絡(luò)應(yīng)用。本文討論了1-Wire網(wǎng)絡(luò)的各個(gè)方面,并提供了可靠運(yùn)行的設(shè)計(jì)指南。幾個(gè)附錄介紹了1-Wire總線接口的微調(diào),并說明了各種條件下的1-Wire通信波形。
介紹
1-Wire協(xié)議最初設(shè)計(jì)用于通過短連接與附近設(shè)備進(jìn)行通信,例如在單個(gè)微處理器端口引腳上增加輔助存儲(chǔ)器。隨著1-Wire器件使用量的增加,人們開發(fā)了將1-Wire協(xié)議擴(kuò)展到遠(yuǎn)遠(yuǎn)超出電路板尺寸的網(wǎng)絡(luò)應(yīng)用的方法。1-Wire網(wǎng)絡(luò)是1-Wire器件、通信線路和連接的復(fù)雜排列。每個(gè)1-Wire網(wǎng)絡(luò)在拓?fù)洌ú季郑┖?a target="_blank">硬件方面都是不同的。
網(wǎng)絡(luò)組件(即主設(shè)備、網(wǎng)絡(luò)布線和1-Wire從器件,統(tǒng)稱“從設(shè)備”)之間的正確匹配是1-Wire可靠運(yùn)行的前提。當(dāng)總線主站設(shè)計(jì)或?qū)嵤┎划?dāng)時(shí),或者當(dāng)用于短線的母站通過大大擴(kuò)展的通信線路投入使用時(shí),則不能總是期望令人滿意的性能。
本應(yīng)用筆記介紹了一個(gè)項(xiàng)目的結(jié)果,以表征各種形式、規(guī)模和數(shù)量的1-Wire網(wǎng)絡(luò)的運(yùn)行情況。它還為可靠的網(wǎng)絡(luò)運(yùn)行提供了工作參數(shù)。這里討論的一些方面在短線應(yīng)用中并不重要,例如小于1米的網(wǎng)絡(luò)。附錄A至D對1-Wire總線接口進(jìn)行了微調(diào),并說明了各種條件下的1-Wire通信波形。
網(wǎng)絡(luò)描述
本文檔的范圍僅限于使用1e類雙絞線銅線并由主站提供5V總線電源的5-Wire網(wǎng)絡(luò)。(大多數(shù)1-Wire從機(jī)將在較低的總線電壓下工作,但大型網(wǎng)絡(luò)的損耗通常太大,無法在低壓條件下表現(xiàn)良好。
本文檔不涉及對EPROM型從器件進(jìn)行編程的要求。通常不建議在距主端接口的任何明顯距離處執(zhí)行EPROM編程。本文也不討論1-Wire器件的過驅(qū)速度操作。過載速度僅適用于非常短的連接,絕不適合在 1-Wired 網(wǎng)絡(luò)中使用。
1-Wire器件有多種線材類型和拓?fù)浣Y(jié)構(gòu)組合。本應(yīng)用筆記僅介紹與1-Wire網(wǎng)絡(luò)相關(guān)的最一般和最典型的應(yīng)用。超出限值運(yùn)行1-Wire網(wǎng)絡(luò)或無視本文檔中給出的建議可能會(huì)導(dǎo)致網(wǎng)絡(luò)性能不可靠。
1-Wire網(wǎng)絡(luò)術(shù)語
兩個(gè)簡單的術(shù)語描述了對1-Wire網(wǎng)絡(luò)性能至關(guān)重要的測量值:半徑和重量。
網(wǎng)絡(luò)的半徑是從主端到最遠(yuǎn)從端的導(dǎo)線距離。它以米為單位。
網(wǎng)絡(luò)的權(quán)重是網(wǎng)絡(luò)中連接的電線總量。它也以米為單位。
例如,具有10m、20m和30m三個(gè)分支的星形網(wǎng)絡(luò)配置的半徑為30m(即從1-Wire主站到最遠(yuǎn)從站的距離),重量為60m(即網(wǎng)絡(luò)中導(dǎo)線的總長度,10m + 20m + 30m)。
通常,網(wǎng)絡(luò)的權(quán)重限制了電纜上的上升時(shí)間,而半徑?jīng)Q定了最慢信號(hào)反射的時(shí)間。
從設(shè)備重量
網(wǎng)絡(luò)中可支持的重量有限,取決于驅(qū)動(dòng)器(1-Wire主接口)。簡單來說,重量可以包括非常少的電纜上的許多從站,或者很多電纜上的很少從站。
從器件(i按鈕和其他1-Wire器件)為網(wǎng)絡(luò)增加了等效的重量。每個(gè)設(shè)備增加的重量類似于一小段電線的重量,因此可以根據(jù)其等效的電線重量對設(shè)備進(jìn)行評(píng)級(jí)。因此,在設(shè)計(jì)網(wǎng)絡(luò)時(shí),必須考慮設(shè)備的重量。iButton形式的從站通常比封裝為焊接組件的從站貢獻(xiàn)更多的重量。我按鈕增加約1m的重量,非i按鈕從站增加約0.5m的重量??紤]一下這對示例網(wǎng)絡(luò)的影響。連接 100 個(gè) iButton 設(shè)備會(huì)使網(wǎng)絡(luò)總重量增加 100 米,這反過來又需要將電線總量減少 100 米以保持網(wǎng)絡(luò)正常運(yùn)行。?
電路板走線、連接器和ESD保護(hù)器件也會(huì)增加網(wǎng)絡(luò)的重量。
雖然重量受到許多因素的影響,但電容顯然是最大的單一因素。例如,在5-Wire速度下,52e類非屏蔽雙絞線(UTP)的重量貢獻(xiàn)可能與其電容相關(guān)約1pF/m。通常,ESD電路和PC板走線的重量貢獻(xiàn)與其電容的關(guān)系約為24pF/m。在24-Wire總線上呈現(xiàn)1pF的電路板走線或器件將增加約0.5m的重量。
1-Wire網(wǎng)絡(luò)拓?fù)?/p>
盡管1-Wire網(wǎng)絡(luò)在結(jié)構(gòu)上通常相當(dāng)“自由形式”,但根據(jù)1-Wire從站的分布和互連線的組織,它們通常屬于幾個(gè)廣義的類別。
線性拓?fù)洹?-Wire總線為單對,從主器件開始,延伸至最遠(yuǎn)的從器件。其他從站通過微不足道的(<1m)分支或“短截線”連接到3-Wire總線。
存根拓?fù)洹?-Wire總線是一條單條主線,從主站開始,一直延伸到最遠(yuǎn)的從機(jī)。其他從站通過3m或更長的分支或短截線連接到主線。
星形拓?fù)洹?-Wire總線在主機(jī)端或附近分離,并延伸成多個(gè)不同長度的分支。在分支沿線或末端有從屬設(shè)備。
當(dāng)不同的拓?fù)浠旌显谝黄饡r(shí),確定網(wǎng)絡(luò)的有效限制變得更加困難。通常,在這些情況下,設(shè)計(jì)人員應(yīng)應(yīng)用最保守的標(biāo)準(zhǔn)。
星形拓?fù)涞淖⒁馐马?xiàng)
測試表明,未交換的星型網(wǎng)絡(luò)拓?fù)洌丛谥髡居卸鄠€(gè)分支的拓?fù)洌┳铍y可靠。各種分支的連接處呈現(xiàn)高度不匹配的阻抗;來自一個(gè)分支末端的反射可以傳播的距離幾乎等于網(wǎng)絡(luò)的權(quán)重(而不是半徑),并導(dǎo)致數(shù)據(jù)錯(cuò)誤。因此,不建議使用未開關(guān)的星形拓?fù)?,并且不能保證其性能。
交換網(wǎng)絡(luò)
為了使網(wǎng)絡(luò)的復(fù)雜性增加而不增加重量和半徑,網(wǎng)絡(luò)被劃分為多個(gè)部分,一次以電子方式打開一個(gè)。使用低阻抗、單電源模擬開關(guān),網(wǎng)絡(luò)在物理上類似于一種拓?fù)?,但?a href="http://m.hljzzgx.com/v/tag/2364/" target="_blank">電氣上類似于另一種拓?fù)?。這意味著每個(gè)分支上都有一個(gè)開關(guān)的星形配置實(shí)際上類似于線性拓?fù)?。在這種情況下,任何時(shí)候都只有一個(gè)分支處于活動(dòng)狀態(tài)。
上面的示例看起來像一個(gè)半徑為 150m 且權(quán)重為 450m 的星形拓?fù)渚W(wǎng)絡(luò)。但是,當(dāng)單獨(dú)考慮每個(gè)交換路徑時(shí),網(wǎng)絡(luò)實(shí)際上是線性拓?fù)?,重量僅為150m。
通常,我們對非交換網(wǎng)絡(luò)的討論可以應(yīng)用于交換網(wǎng)絡(luò)的每個(gè)部分。
1-Wire網(wǎng)絡(luò)限制
有幾個(gè)因素決定了網(wǎng)絡(luò)的最大半徑和權(quán)重。其中一些因素可以控制,有些則不能。
主端接口極大地影響了1-Wire網(wǎng)絡(luò)的允許尺寸。接口必須提供足夠的驅(qū)動(dòng)電流,以克服電纜和從站的重量。它還必須生成時(shí)序在規(guī)格范圍內(nèi)并針對網(wǎng)絡(luò)充電和放電時(shí)間進(jìn)行優(yōu)化的1-Wire波形。最后,接口必須為網(wǎng)絡(luò)提供合適的阻抗匹配,以便信號(hào)不會(huì)反射回線路以干擾其他網(wǎng)絡(luò)從站。
當(dāng)網(wǎng)絡(luò)較小時(shí),可以接受非常簡單的主端接口。電容低,反射能量到達(dá)得太快,不會(huì)造成問題,電纜損耗最小。簡單的有源(FET)下拉和無源(電阻)上拉就足夠了。但是,當(dāng)線路變長并且連接更多設(shè)備時(shí),復(fù)雜的力就會(huì)發(fā)揮作用。現(xiàn)在,主端接口必須能夠處理所有這些問題。
網(wǎng)絡(luò)半徑受到幾個(gè)因素的限制:波形反射的時(shí)間、電纜產(chǎn)生的時(shí)間延遲、電纜的電阻以及信號(hào)電平的下降。電話線中的典型信號(hào)傳播速度約為光速的 2/3。例如,在750m電纜中,往返延遲為7.5μs。如果主機(jī)將線路拉低7.5μs以啟動(dòng)讀取時(shí)隙,則主機(jī)低脈沖的結(jié)束時(shí)間(即往返后)與近端快速從機(jī)可能停止將線路拉低的時(shí)刻一致。因此,如此長的電纜的往返延遲使得主站無法與該近端從機(jī)通信。
網(wǎng)絡(luò)重量受限于電纜充電和放電速度足以滿足1-Wire協(xié)議的要求。一個(gè)簡單的電阻上拉的重量限制約為200m。先進(jìn)的1-Wire主設(shè)計(jì)通過使用有源上拉克服了這一限制,在邏輯控制下提供更高的電流,并將最大可支撐重量延長至500米以上。參見應(yīng)用筆記244:“高級(jí)1-Wire網(wǎng)絡(luò)驅(qū)動(dòng)器”。
寄生蟲供電問題
1-Wire波形不僅必須足以用于通信,而且還必須為從機(jī)提供工作電源。當(dāng)總線上的電壓大于其內(nèi)部儲(chǔ)能電容器上的電壓時(shí),每個(gè)從機(jī)都會(huì)從總線“搶奪”電源。當(dāng)網(wǎng)絡(luò)的重量變得過大時(shí),主機(jī)提供的電流可能不足以維持從機(jī)的工作電壓。
寄生蟲電源的最壞情況是主機(jī)發(fā)出的很長的零位序列。發(fā)生這種情況時(shí),線路大部分時(shí)間都處于低電平狀態(tài),并且?guī)缀鯖]有機(jī)會(huì)為從站充電。如果總線在位之間的恢復(fù)時(shí)間內(nèi)達(dá)到足夠的電壓,并且恢復(fù)時(shí)間足夠長,則沒有問題。隨著每個(gè)從機(jī)的內(nèi)部工作電壓下降,從機(jī)驅(qū)動(dòng)總線以產(chǎn)生零位的能力降低,并且從機(jī)的時(shí)序發(fā)生變化。最終,當(dāng)寄生蟲電壓降至臨界水平以下時(shí),從機(jī)進(jìn)入復(fù)位狀態(tài)并停止響應(yīng)。然后,當(dāng)從機(jī)再次收到足夠的工作電壓時(shí),它將發(fā)出存在脈沖,并可能破壞其他總線活動(dòng)。當(dāng)網(wǎng)絡(luò)沒有足夠的能量來維持從站的工作功率時(shí),故障將取決于數(shù)據(jù)且間歇性。
分布式阻抗匹配
1-Wire總線設(shè)計(jì)的優(yōu)勢在于極簡主義和簡單性(最終也實(shí)現(xiàn)了低成本)。除了從站本身之外,一直避免使用分發(fā)到網(wǎng)絡(luò)中的組件。
當(dāng)短截線連接到1-Wire總線時(shí),分支點(diǎn)存在阻抗不匹配。來自短截線末端的反射返回到主干線,僅延遲信號(hào)沿短截線長度傳播所需的時(shí)間。然后,這些反射可能會(huì)給網(wǎng)絡(luò)上的其他從站帶來問題。與短截線串聯(lián)的電阻將降低失配的嚴(yán)重程度和反射能量的幅度。該電阻減輕了主干上短截線產(chǎn)生的反射的不利影響。
這一概念最成功的實(shí)現(xiàn)是在短截線連接到主干線的每個(gè)點(diǎn)使用150Ω電阻。該值可將連接點(diǎn)處的失配減少約 20%,并將產(chǎn)生的短截線反射衰減約 40%。但是,增加的電阻也會(huì)使抗噪性降低約80%,因此必須小心。測試還表明,使用100Ω電阻值時(shí)性能良好,不會(huì)降低抗擾度。
注:DS2480B串行1-Wire線路驅(qū)動(dòng)器和DS2484器件系列均為1-Wire主站,具有有源上拉,會(huì)受到這種附加電阻的不利影響。上述方法與這些1-Wire驅(qū)動(dòng)器不兼容。分布式電阻方法的成功應(yīng)用始終是使用具有更高數(shù)據(jù)輸入閾值的定制主端驅(qū)動(dòng)器來完成的。
主端接口設(shè)備
將1-Wire網(wǎng)絡(luò)連接至微控制器和個(gè)人計(jì)算機(jī)的方法多種多樣。此外,每個(gè)1-Wire主站的設(shè)計(jì)目的不同,在采用替代服務(wù)時(shí)并不總是可靠的。最后,主端硬件是決定1-Wire網(wǎng)絡(luò)設(shè)計(jì)局限性的關(guān)鍵因素。用于短線和附近 iButton 探頭的簡單硬件接口在連接到更大的網(wǎng)絡(luò)和復(fù)雜的布線方案時(shí)性能不佳。用于超長線路的復(fù)雜驅(qū)動(dòng)程序在與中短長度網(wǎng)絡(luò)一起使用時(shí)性能不佳。
下面列出了當(dāng)今最常用的主端硬件接口:
微處理器端口引腳附件
內(nèi)置1-Wire主控的微控制器
可合成的1-Wire總線主控(DS1WM)
串行接口協(xié)議轉(zhuǎn)換(DS2480B、DS2482-100、DS2484)
對于長線應(yīng)用,需要修改。附錄A顯示了微處理器端口引腳附件的變體,即具有壓擺率控制的FET驅(qū)動(dòng)器和1kΩ上拉電阻。使用此接口可以可靠地支持最大 200m 的半徑和最大 200m 的重量。
DS2480B設(shè)計(jì)用于高效的中短線工作。在DS2480B和網(wǎng)絡(luò)之間應(yīng)用一個(gè)簡單的R-C電路將大大提高中長網(wǎng)絡(luò)的性能和可靠性。(見附錄B。使用過濾器,該主站可以可靠地支持半徑或重量達(dá)200m的網(wǎng)絡(luò)。需要注意的是,DS2480B接口器件具有可變時(shí)序,也可用于提高1-Wire網(wǎng)絡(luò)的可靠性和性能。這些時(shí)序由某些軟件(如Windows版1-Wire驅(qū)動(dòng)程序)設(shè)置為最佳值,但并非所有軟件都會(huì)調(diào)整。(參見附錄C和應(yīng)用筆記4104:“理解和配置DS1B的2480線時(shí)序”。?
長線應(yīng)用的推薦電路是具有高級(jí)總線接口的微控制器,如上文應(yīng)用筆記244所述。該主端接口電路使用阻抗匹配(高電平和低電平驅(qū)動(dòng)器)和“智能”(軟件控制)有源上拉。每當(dāng)1-Wire協(xié)議確定總線應(yīng)處于高電平時(shí),以及在總線采樣并發(fā)現(xiàn)處于高電平后的讀取期間,上拉電路就會(huì)開啟。該接口同樣適用于大型和小型1-Wire網(wǎng)絡(luò),能夠可靠地運(yùn)行具有高重量和半徑值高達(dá)500m的網(wǎng)絡(luò)。
是什么造就了可靠的1-Wire網(wǎng)絡(luò)?
當(dāng)1-Wire網(wǎng)絡(luò)發(fā)生故障時(shí),故障通常表現(xiàn)為執(zhí)行搜索算法時(shí)器件的神秘“丟失”。更多信息參見應(yīng)用筆記187:“1-Wire搜索算法”。實(shí)際存在的設(shè)備可以在搜索結(jié)果中出現(xiàn)和消失。有時(shí),網(wǎng)絡(luò)或設(shè)備中看似微小的變化會(huì)對設(shè)備搜索的結(jié)果產(chǎn)生根本性的影響。為什么會(huì)這樣?
在1-Wire總線上發(fā)生的所有活動(dòng)中,器件搜索是最復(fù)雜且在存在總線問題時(shí)最難執(zhí)行的。搜索是所有從站可能同時(shí)將總線驅(qū)動(dòng)低電平的唯一時(shí)間(存在脈沖除外)。這意味著搜索期間的總線條件與單個(gè)選定從站的正常通信大不相同。如果許多從站中的任何一個(gè)錯(cuò)過邊沿或無法區(qū)分脈沖,那么它將與搜索算法不同步,并將導(dǎo)致搜索的后續(xù)位出錯(cuò)。這意味著在以下情況下搜索將失?。嚎偩€問題導(dǎo)致波形上升沿出現(xiàn)毛刺;波形未能達(dá)到有效的低電平;或任何設(shè)備在搜索過程中都缺電。大多數(shù)搜索算法通過終止搜索算法并重新開始來處理搜索失敗,此時(shí)尚未發(fā)現(xiàn)的從屬服務(wù)器似乎會(huì)從搜索中刪除。盡管故障發(fā)生在一個(gè)從設(shè)備的一個(gè)位中,但任何數(shù)量的從設(shè)備都可能受到影響。
搜索算法通常假定設(shè)備可能會(huì)因噪聲而丟失。在具有觸摸接觸i按鈕的網(wǎng)絡(luò)中,新的i按鈕到達(dá)網(wǎng)絡(luò)可能會(huì)以來自新到達(dá)設(shè)備的存在脈沖的形式引入瞬時(shí)短路。根據(jù)這些事件的時(shí)間,這些存在脈沖將干擾搜索活動(dòng)。搜索算法通過在觀察到設(shè)備丟失一段時(shí)間后,才從發(fā)現(xiàn)的從屬列表中刪除從屬服務(wù)器列表中來管理此類問題。
搜索失敗的原因差異很大。其中最常見的是缺乏寄生蟲力量(半徑大,網(wǎng)絡(luò)重);波形邊緣的反射(使用中小半徑、輕量級(jí)網(wǎng)絡(luò));在DS2480B接口中,由于波形下降沿的振鈴,有源上拉被誤觸發(fā)。
搜索失敗通常似乎對網(wǎng)絡(luò)中的微小變化高度敏感;網(wǎng)絡(luò)上連接的從站;或者“月相”,正如一些沮喪的設(shè)計(jì)師所說的那樣。這種敏感性是因?yàn)槭軐彶榈木W(wǎng)絡(luò)處于臨界狀態(tài),非常小的網(wǎng)絡(luò)變化可能導(dǎo)致搜索成功或失敗。簡而言之,一個(gè)看似成功的網(wǎng)絡(luò),因?yàn)樵谒阉魉惴ㄖ锌煽康卣业剿性O(shè)備,實(shí)際上可能接近故障。輕微的退化可能會(huì)突然產(chǎn)生看似災(zāi)難性的故障 - 只需一個(gè)故障位即可使搜索停止,零件就會(huì)消失。因此,用戶必須遵守已發(fā)布的規(guī)范和指南至關(guān)重要,以確??煽康木W(wǎng)絡(luò)具有良好的安全裕度和對電纜、設(shè)備和連接變化的容忍度。
可靠、一致地執(zhí)行搜索的網(wǎng)絡(luò)通??梢钥煽康貓?zhí)行任何其他1-Wire功能。
1-Wire時(shí)序不正確
當(dāng)使用軟件(固件)生成1-Wire波形(有時(shí)稱為“位敲擊”波形)時(shí),很容易犯一些不會(huì)立即顯現(xiàn)出來的錯(cuò)誤。
到目前為止,1-Wire主機(jī)編程中最常見的錯(cuò)誤是,在時(shí)隙的前(下降)沿之后,從站采樣數(shù)據(jù)太晚。從機(jī)的時(shí)序可以在很寬的范圍內(nèi)變化,就像溫度和電壓變化一樣。由于過程變化,從站也可能在批次之間變化。波形采樣時(shí)間為30μs的設(shè)計(jì)可能會(huì)通過實(shí)驗(yàn)室測試,甚至投入生產(chǎn),從而將不正確的時(shí)序用于發(fā)貨產(chǎn)品。之后,當(dāng)批處理或網(wǎng)絡(luò)條件發(fā)生變化并且從機(jī)從32μs移動(dòng)到29μs時(shí),該主端接口將失效。因此,盡管在實(shí)驗(yàn)室環(huán)境中系統(tǒng)運(yùn)行看似完美,但通過規(guī)范驗(yàn)證波形參數(shù)至關(guān)重要。
結(jié)論
與任何電子元件一樣,支持電子系統(tǒng)必須在所有使用條件下滿足設(shè)備規(guī)格,以確??煽窟\(yùn)行。網(wǎng)絡(luò)組件(即主站、網(wǎng)絡(luò)布線和1-Wire從機(jī))之間的正確匹配對于1-Wire的可靠運(yùn)行至關(guān)重要。
審核編輯:郭婷
-
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7484瀏覽量
163760 -
微處理器
+關(guān)注
關(guān)注
11文章
2258瀏覽量
82402 -
總線
+關(guān)注
關(guān)注
10文章
2878瀏覽量
88051
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
評(píng)論