<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

通過調節上拉電阻來提高1-wire總線器件的驅動能力

電子設計 ? 來源:單片機與嵌入式系統應用 ? 作者:朱立強 , 金暉 ? 2021-05-05 09:53 ? 次閱讀

Dallas公司生產的集成電路中,廣泛應用了1-wire總線。主機只需1根連線就可以把一個或數個1-wire總線器件連接起來,實現有效可靠的數據通信。但是,在使用1-wire總線驅動多個器件、連接電纜線較長的場合,它的驅動能力是否適應;或者說,應該如何提高1-wire總線器件的驅動能力? 本文就此問題進行分析和實驗。

1 1-wire總線簡介

從 Dallas公司提供的圖1所示讀寫時序圖可以看出,主機讀DS18B20 時,首先應該把線拉低至少1μ s,然后在15μs內讀總線的邏輯狀態(t0~t1)。DS18B20 則在主機拉低總線1μs內開始輸出數據,如果為0,繼續拉低總線,并在15~60μs(t1~t2)之間釋放總線(典型值為30μs),由上拉電阻把總線拉至高電平;如果數據位為1,則在主機拉低總線1μs后,DS18B20 的DQ端呈現開漏狀態,一旦主機釋放總線,上拉電阻就把總線拉至高電平。在60μs(t2)之后,1-wire總線還必須繼續保持高電平至少1μs,作為兩個數據位之間的分隔(稱之為“恢復時間”)。由此可見,為了保證所讀數據的可靠性,89C2051必須在15μs前讀取總線的邏輯狀態。

圖1 1-wire總線讀寫時序圖

主機在對DS18B20進行寫入操作時,首先應該拉低1- wire總線至少1μs 。然后,如果寫入數據位是 0,則繼續拉低總線至60μs結束(t2);否則就釋放總線,由上拉電阻把總線拉成高電平。而DS18B20則在15~60μs之間(t1~t2)讀入數據(典型值為15μs)。同樣,在60μs之后(t2),1-wire總線還必須繼續保持高電平至少1μs,作為兩個數據位之間的分隔。

2 實驗電路參數的分析與實驗結果

以1-wire總線的數字溫度集成電路DS18B20與單片機89C2051 為例,其接口電路如圖2所示,時鐘頻率為12MHz 。89C2051的P1.0口與DS18B20的DQ相連。1-wire總線器件的DQ口(數據口線)都為開漏結構,以便可以在1-wire總線上掛接多個DS18B20。因此,在1-wire總線上應該加接1個上拉電阻,文獻推薦值為4.7kΩ。筆者使用2 m長的4芯屏蔽電纜連接89C2051 和DS18B20 ,其中一芯以及外屏蔽單端接地,其余分別為VCC、GND 和DQ 。經測試,DQ線到地的分布電容為131pF/m 。為了能夠測試1-wire總線的驅動能力,在DQ線上加接電容,以便近似地模擬長電纜,等效電路如圖3所示??梢酝ㄟ^選擇上拉電阻的值,合理安排 t0~t1和t0~t2兩個時間段,以提高1-wire總線器件驅動長總線的能力。自然,上拉電阻越小,其拉動1-wire總線的能力就越大,但是要受到 DS18B20的低電平吸入電流的限制。綜合考慮各種因素,選取上拉電阻值為1.5kΩ。

圖2 89C2051與DS18B20接口電路

圖3 1-wire總線邏輯電平轉換時的等效電路

電工學可知,圖3(a)中電容C上的電壓為

在t0~t1階段,由 89C2051拉低1-wire總線并保持至少1μs。89C2051的I/O口輸出低電平時可吸入20mA的電流,其內阻因是非線性特性,不會大于 50Ω。DS18B20的邏輯0輸入電平最大可為0.8V;89C2051為0.9V,取 VC = 0.8V,VCC = 5V。把上述數據代入方程(4),取負載電容C = 10nF,可以得到t =0.9μs;加上SETB指令需時1μs ,穩定所需時間(至少1μs),取t0~t1 = 3μs。

在t1~t2階段,無論是89C2051還是DS18B20輸出0電平,由于總線電平已經是0電平,不存在階躍問題,所以不必計算。

如果是邏輯1,不管是由89C2051還是由DS18B20輸出, 兩者的輸出FET均為開漏狀態(89C2051有弱上拉,可以忽略),由上拉電阻把1-wire總線從0電平上拉到高電平??梢杂糜诎芽偩€從0電平上拉到 1電平的時間t1-t2 = 15 - 3 - 1 = 11μs,其中1μs在讀DS18B20時用于讀操作,在寫DS18B20時用來補償指令MOV DQ,C所需的時間。DS18B20的邏輯高電平最低為2.2V,89C2051為1.9V,取VC = 2.2V 。

把上述數據代入方程(2),當上拉電阻為4.7kΩ時,可以算得C = 4.0nF;當上拉電阻為1.5kΩ時,C = 12.6nF,相當于96.5m長的屏蔽電纜。

3 實驗結果

表1為實驗數據,使用2m長的4芯屏蔽電纜,在總線上加接電容以模仿長電纜。

表1 1-wire總線器件驅動能力與上拉電阻的關系

從表1可以看出,實驗結果與理論計算基本相符。由于實驗條件的限制,測試是相當粗糙的。更細致的調節,可以使用示波器觀察1-wire總線上的波形來對電路參數與程序進行微調,以求得到更好的結果。筆者曾以其它的定時關系編制了實驗程序,其驅動能力均不如本程序。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 集成電路
    +關注

    關注

    5333

    文章

    10896

    瀏覽量

    354515
  • 單片機
    +關注

    關注

    6008

    文章

    44062

    瀏覽量

    622642
  • 總線
    +關注

    關注

    10

    文章

    2722

    瀏覽量

    87322
收藏 人收藏

    評論

    相關推薦

    電阻和下拉電阻的作用

    因素:1驅動能力與功耗的平衡。以上電阻為例,一般地說,
    發表于 05-22 08:46

    基于DS2432的USB口1-Wire總線適配器的設計

    電阻器,它可使USB口的D+端上拉到DS2490S的VB端,表示USB主機系統是高速設備,同時這個
    發表于 07-11 07:24

    基于C++模板技術的1-wire總線編程

    atmega48 的 uart 數據鏈路實現的 1-wire 總線,總線具有枚舉功能,其掛有多個 ds18b20 器件。ds18b20_
    發表于 11-22 23:40

    1-Wire時序的理解及配置

    /μs。DS2480B是強1-Wire驅動器。相比采用2.2kΩ
    發表于 11-12 00:17

    電阻的計算

    進行設定,主要需要考慮以下幾個因素:1驅動能力與功耗的平衡。以上電阻為例,一般地說,
    發表于 05-12 08:24

    關于51單片機IO引腳的驅動能力電阻

    ,僅僅是在 P0 口才考慮加不加的問題:當用 P0 口做為輸入口的時候,需要加上、當用 P0 口輸出高電平驅動 MOS 型負載的時候,也需要加上,其它的時候,P0 口也不用加入電阻
    發表于 06-26 16:52

    電阻

    芯片,為了防止靜電造成損壞,不用的管腳不能懸空,一般接上電阻產 生降低輸入阻抗,提供泄荷通路。5、 芯片的管腳加上電阻
    發表于 08-28 09:27

    電阻

    芯片,為了防止靜電造成損壞,不用的管腳不能懸空,一般接上電阻產 生降低輸入阻抗,提供泄荷通路。5、 芯片的管腳加上電阻
    發表于 11-16 17:14

    電阻與下拉作用

    的輸入。 -------電阻是用來解決總線驅動能力不足時提供電流的。一般說法是電流,下拉
    發表于 06-28 06:21

    微控制器和1-Wire溫度傳感器的軟件接口

    3V至5.5V電源端的4.7kf2電阻提供。由于每個器件具有唯一的64位ROM識別碼,所以掛接在總線上的
    發表于 12-17 11:29

    電阻和下拉電阻問題

    電阻的選擇應結合開關管特性和下級電路的輸入特性進行設定,主要需要考慮以下幾個因素: 1驅動能力與功耗的平衡。以上電阻為例,一般地說,
    發表于 06-27 05:55

    如何訪問1-Wire API

    任何組件在創建者實現這一點。有人知道如何訪問1-Wire API嗎?謝謝 以上來自于百度翻譯 以下為原文I have been looking for a 1-wire component
    發表于 07-29 15:25

    請問我這樣通過電阻提高IO驅動能力能行嗎?

    這個是在書上截取的一段話,照這樣下去,要提高IO的驅動能力,外部多并聯幾個電阻或者接一個小一點的
    發表于 08-02 04:36

    請問上電阻可以增加信號驅動能力嗎?

    問題描述很簡單,但是一直困擾我常聽說上電阻可以增加信號驅動能力,那么本來就是驅動能力弱,再加上一個電阻,豈不是更加削弱了信號的
    發表于 08-28 02:12

    通過串行接口讀寫1-Wire器件

    本應用筆記介紹了1-Wire協議在新舊器件中的電氣方面。一個特別的章節解釋了如何為由新舊1-Wire從機組成的網絡確定適當的時序參數。1-Wire母版概念部分提供了詳細討論
    的頭像 發表于 02-21 17:21 ?1382次閱讀
    <b class='flag-5'>通過</b>串行接口讀寫<b class='flag-5'>1-Wire</b><b class='flag-5'>器件</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>