0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用UART實(shí)現(xiàn)1-Wire總線主控

星星科技指導(dǎo)員 ? 來源:ADI ? 作者:ADI ? 2023-03-29 11:28 ? 次閱讀

本應(yīng)用筆記解釋了如何使用微處理器UART實(shí)現(xiàn)1-Wire總線主機(jī)。它包括對所需電氣接口、UART配置以及UART和1-Wire信號之間的時序關(guān)系的說明。此外,它還參考了UART 1-Wire Master軟件實(shí)用程序,該實(shí)用程序可生成標(biāo)準(zhǔn)和過驅(qū)速度時序,以輔助開發(fā)。UART字節(jié)時序設(shè)置具有靈活性,可以直接實(shí)現(xiàn)1-Wire時隙以及復(fù)位和存在檢測脈沖。

介紹

Maxim創(chuàng)新的1-Wire協(xié)議允許通過單根導(dǎo)線和接地基準(zhǔn)進(jìn)行供電和數(shù)字通信。1-Wire器件為識別、存儲器、計(jì)時、測量和控制提供經(jīng)濟(jì)的解決方案,并具有能夠長距離(>100米)工作的額外優(yōu)勢。實(shí)現(xiàn)1-Wire主機(jī)側(cè)驅(qū)動器的方法多種多樣,例如使用Maxim的橋接器件、對微控制器的GPIO進(jìn)行位敲擊,或使用通用異步接收器發(fā)送器(UART)等外設(shè)來生成所需的時序。本應(yīng)用筆記討論了UART的實(shí)現(xiàn)方案,并介紹了如何使用UART 1-Wire主機(jī)軟件實(shí)用程序在開發(fā)過程中提供幫助。該應(yīng)用程序自動配置外設(shè)數(shù)據(jù),以實(shí)現(xiàn)每個時序參數(shù)所需的各種波特率。?

16kbps的典型數(shù)據(jù)速率對于預(yù)期任務(wù)來說綽綽有余,因?yàn)榇蠖鄶?shù)1-Wire器件提供的數(shù)據(jù)量相對較小。通??梢苑奖愕厥褂?位或16位微控制器的通用輸入/輸出(GPIO)引腳以“位敲擊”方式充當(dāng)總線主站。

但是,許多 32 位系統(tǒng)中的處理器時鐘頻率通常超過 100MHz。使用GPIO引腳作為1-Wire總線主控器,每個1-Wire位會消耗大量時鐘周期。其邊緣可能無法精確控制以滿足必要的時序要求。32位便攜式系統(tǒng)在產(chǎn)生1-Wire讀寫時隙時消耗了寶貴的電池電量。如果UART外設(shè)可用,則可以減輕主處理器的位定時和字節(jié)成幀操作的負(fù)擔(dān)。

本應(yīng)用筆記介紹了所需的電氣接口、UART配置以及UART與1-Wire信號之間的時序關(guān)系。對1-Wire的一般了解 假設(shè)通信。下面的討論中使用了典型的時序和邏輯電平。請參考1-Wire器件數(shù)據(jù)手冊,了解具體的時序和電壓規(guī)格及容差。

概念概述

具有不同波特率的UART可提供實(shí)現(xiàn)1-Wire主機(jī)所需的輸出時序,前提是1-Wire主機(jī)在波特率、每字符數(shù)據(jù)位數(shù)、奇偶校驗(yàn)和停止位數(shù)方面配置正確。改變UART發(fā)送字節(jié)值會產(chǎn)生1-Wire復(fù)位脈沖,以及用于構(gòu)建低級命令的讀寫插槽。微處理器只需將單字節(jié)字符碼放入UART發(fā)送寄存器,即可啟動1-Wire時序碼型。相反,微處理器讀取的單字節(jié)字符代碼對應(yīng)于從0-Wire從機(jī)讀取的1位或1位。所有1-Wire位傳輸都需要總線主機(jī)(即UART外設(shè))通過將1-Wire總線驅(qū)動為低電平來啟動定時周期。UART必須同時發(fā)送和接收一個字節(jié),以產(chǎn)生1-Wire時序。因此,外設(shè)必須支持全雙工操作。接收到的字節(jié)提供有用的信息,可以識別成功傳輸?shù)臄?shù)據(jù)字節(jié)、短路連接、數(shù)據(jù)損壞或是否連接了1-Wire從器件。每個發(fā)送字節(jié)對應(yīng)一個<>-Wire讀取位、寫位或復(fù)位。

UART至1線電氣接口

1-Wire器件工作在漏極開路環(huán)境,采用1.8V至5.5V總線電壓。精確的邏輯電平和最小上拉電壓取決于器件。因此,請參閱器件數(shù)據(jù)手冊,了解兼容的工作電壓。圖1顯示了當(dāng)TX引腳上的主機(jī)輸出電壓在從機(jī)的工作電壓范圍內(nèi)時可能的配置。上拉電壓(V狗) 從 TX 引腳向上拉電阻 (R ) 的頂部提供電壓狗),而 RX 引腳的高阻抗輸入保持漏極開路配置。這允許從器件在讀取位期間將1-Wire IO線拉低,或者在TX信號為高電平時將復(fù)位存在脈沖拉低。選擇 R狗值對于正常工作很重要,因?yàn)閳D1中的配置沒有強(qiáng)上拉功能。必須考慮輸送到從設(shè)備用于需要額外電流的命令(即復(fù)制暫存器)的電流量。電阻必須足夠小,以提供所需的電流,同時防止壓降超過從站的最小工作電壓或V伊利諾伊州主機(jī)和從屬設(shè)備的級別。對于這種配置,480Ω電阻通常是1-Wire數(shù)據(jù)線上拉的良好起點(diǎn)。對于主機(jī)TX引腳上的電壓不直接兼容的系統(tǒng),請使用獨(dú)立的上拉電壓連接(圖2和圖3)。

pYYBAGQjsEaAFjXcAAAKNRdUKbg612.png

圖1.1線總線接口電路。

通常需要一個外部漏極開路緩沖電路,因?yàn)榇蠖鄶?shù)UART發(fā)送數(shù)據(jù)引腳不是漏極開路。該電路可以由分立元件(圖2)或集成解決方案(如仙童NC7WZ07(圖3))構(gòu)成。4.7kΩ上拉電阻是兩個電路中ROM電平命令的良好起點(diǎn),但必須調(diào)整大小以允許高電流操作,例如將數(shù)據(jù)復(fù)制到EEPROM。驗(yàn)證邏輯電平是否不違反主機(jī)和從設(shè)備的 EC 表參數(shù)非常重要。

poYBAGQjsZSAJ_kLAAAbpKaMSt0767.png

圖2.分立式漏極開路緩沖器。

poYBAGQjsEiAR9TZAAALG0G9CCI821.png

圖3.集成漏極開路緩沖器。

1線/UART位定時

圖5至圖9中的時序圖描述了1-Wire時隙與相應(yīng)的UART字節(jié)幀之間的關(guān)系。UART用作總線主站,因此在TX輸出引腳的高低轉(zhuǎn)換上開始所有通信。當(dāng)電氣接口將緩沖的TX信號連接到RX輸入引腳時,UART為傳輸?shù)拿總€字節(jié)接收一個字節(jié)。

每個關(guān)系圖都包括 UART 配置、傳輸字節(jié)值和預(yù)期接收字節(jié)值。列出的UART配置產(chǎn)生的波形符合常規(guī)模式1-Wire時序。請注意,UART為復(fù)位和存在脈沖檢測配置了與讀取和寫入時隙不同的波特率。也可以使用其他配置,盡管評估標(biāo)準(zhǔn)可能與時序圖中的標(biāo)準(zhǔn)不同。發(fā)送字節(jié)值對應(yīng)于1-Wire總線主站角色,接收字節(jié)值或范圍代表總線上的預(yù)期活動。必須對接收值進(jìn)行評估,以確定1-Wire從器件在執(zhí)行讀取時返回的位值。讀 0 和讀 1 評估標(biāo)準(zhǔn)包含在圖中。

pYYBAGQjsEmAQwI9AAAHfOY3Hmw064.png

圖4.時序圖例。

poYBAGQjsEqAajH_AAAqOZ1tHgQ245.png

圖5.復(fù)位脈沖和存在檢測。

多個波特率可用于產(chǎn)生1-Wire復(fù)位并檢測存在脈沖。圖5顯示了波特率為9600的UART配置,以創(chuàng)建1線復(fù)位。每個UART位的時隙是用波特率(1/波特率)的倒數(shù)計(jì)算的。UART的起始位始終為低電平,可與0個數(shù)據(jù)位結(jié)合使用,以開發(fā)適當(dāng)?shù)臅r序。UART 數(shù)據(jù)首先作為最低有效位傳輸。傳輸一個字節(jié) F0h 使數(shù)據(jù)位 3 到 0 成為邏輯 4,數(shù)據(jù)位 7 到 1 成為邏輯 <>,從而產(chǎn)生復(fù)位低時間 (TRSTL) 的 520.83us。接收值取決于是否存在一個或多個1-Wire從器件、每個從器件當(dāng)前脈沖的內(nèi)部時序、上升時間以及UART在每個位窗口內(nèi)的采樣時間。如果沒有設(shè)備,則接收值等于傳輸值。當(dāng)設(shè)備存在時,接收值會有所不同。以最小內(nèi)部時序運(yùn)行的單個從設(shè)備可能響應(yīng)E0h,而具有最大內(nèi)部時序的從設(shè)備可能返回90h的值。使用示波器或邏輯分析儀確認(rèn)時序以確保達(dá)到所需的時序非常重要。確認(rèn)所有時序非常重要,因?yàn)閁ART外設(shè)對于每個波特率具有不同的錯誤率。

可能需要在傳輸?shù)腢ART字節(jié)之間增加延遲,以允許所需的恢復(fù)時間(T娛樂).如果需要這些延遲,請不要在主機(jī)的 UART 緩沖區(qū)中堆疊要連續(xù)傳輸?shù)拿?。UART 1-Wire主控實(shí)用程序通過計(jì)算所選波特率下每個時序參數(shù)的TX、RX和延遲值來簡化任務(wù)。本文檔末尾提供了指向此軟件實(shí)用程序的鏈接。該實(shí)用程序?yàn)槎喾N波特率的標(biāo)準(zhǔn)和過載定時提供UART配置。使用實(shí)用程序中的幫助菜單獲取詳細(xì)說明。

pYYBAGQjsEuAaT0ZAAAq6tx-3ys294.png

圖6.讀取 0 時隙。

poYBAGQjsEyAGsBDAAAlC0v9gcg586.png

圖7.讀取 1 時隙。

如前所述,主機(jī)始終在1-Wire系統(tǒng)中啟動通信。主機(jī)將1-Wire IO拉低,持續(xù)時間為低讀時間(TRL) 從從屬服務(wù)器讀取一點(diǎn)。從機(jī)將IO保持在低電平超過主讀取采樣時間(TLS3) 如果它正在傳輸 0 位并且在發(fā)送 1 位時不執(zhí)行任何操作,則允許 IO 在主機(jī)釋放 T 末尾的行后浮動RL.圖 6 和圖 7 中生成的讀取時隙使用 115,200 的波特率。從1-Wire讀取0接收的RX字節(jié)范圍為0xFE至0x00,具體取決于從器件的內(nèi)部時基和IO上升時間。從1-Wire讀取1接收的RX字節(jié)始終0xFF(波特為115,200波特),因?yàn)?-Wire從站允許數(shù)據(jù)線在總線主站釋放后立即返回到1狀態(tài)。傳輸和接收字節(jié)可以隨著波特率的增加而變化。UART 1-Wire主控工具計(jì)算所選波特率的相應(yīng)TX、RX和延遲值。

pYYBAGQjsE2AUFOGAAAdbCKx_mI426.png

圖8.寫入 0 時隙。

poYBAGQjsE6AZyNSAAAcEFTqraU905.png

圖9.寫入 1 時隙。

圖8和圖9顯示了如何以1,0的波特率向從設(shè)備傳輸115或200。但是,有許多波特率可以產(chǎn)生適當(dāng)?shù)臅r序。同樣,UART 1-Wire主控實(shí)用程序可以計(jì)算出適當(dāng)?shù)闹?。查看?shù)據(jù)時,似乎沒有必要評估1-Wire寫入的RX字節(jié),因?yàn)镮O線僅由主機(jī)驅(qū)動,從器件不響應(yīng)任何數(shù)據(jù)。但是,評估 RX 值并確保它與 TX 值匹配可確認(rèn)沒有數(shù)據(jù)損壞。一些1-Wire系統(tǒng)具有從器件,可以在正常工作期間添加到系統(tǒng)中。如果在寫入過程中添加連接的設(shè)備,則會在總線上產(chǎn)生一些不需要的轉(zhuǎn)換。檢查 RX 值會發(fā)現(xiàn)此問題。

1線位到位時序

1-Wire總線的一個關(guān)鍵優(yōu)勢是位間時序的靈活性。位之間的延遲可以短至 T娛樂最小值,或總線主站認(rèn)為必要的長度。1-Wire位或字節(jié)之間沒有最大延遲周期。因此,處理器可以在空閑時將位時隙成幀為字節(jié)值來為 UART 提供服務(wù)。與1-Wire器件的通信可被指定為低優(yōu)先級任務(wù)。處理器無需浪費(fèi)處理周期或功耗,也無需忽略高優(yōu)先級、時間關(guān)鍵型任務(wù)。

pYYBAGQjsE-AZNfqAAAQsDevupw849.png

圖 10.位到位時序靈活性。

UART 1線主線實(shí)用程序

UART 1-Wire主控工具可快速確定在各種波特率下生成1-Wire時序所需的TX、RX和延遲。該實(shí)用程序允許與Prolific或FTDI制造的USB到UART橋接設(shè)備進(jìn)行通信,從而允許與1-Wire從器件進(jìn)行實(shí)時通信。如果硬件不可用,可以選擇仿真選項(xiàng)。圖 11 中的配置選項(xiàng)卡提供了用于輸入 EC 表時序參數(shù)的字段。這些值用于計(jì)算 UART 數(shù)據(jù)。1-Wire選項(xiàng)卡確認(rèn)使用真實(shí)從器件或硬件未連接時的模擬輸出是否正常工作。數(shù)據(jù)記錄顯示每個已執(zhí)行命令的相關(guān)信息。從幫助菜單中選擇用戶指南以使用此工具。

poYBAGQjsaiAOQ7iAAEpji0uPvo906.png

圖 11.“配置”選項(xiàng)卡。

poYBAGQjsbaARIoVAADrzsS0RhM976.png

圖 12.1-線片。

結(jié)論

UART由于其可編程性,仍然是現(xiàn)代處理器中有價值的外設(shè)。UART字節(jié)時序設(shè)置的靈活性允許直接實(shí)現(xiàn)1-Wire讀/寫時隙以及復(fù)位和存在脈沖的檢測。

UART 1-Wire Master軟件實(shí)用程序可以生成所有時序參數(shù)的常規(guī)和過載速度的時序,從而實(shí)現(xiàn)快速開發(fā)。該工具支持各種波特率,確保與大多數(shù)(如果不是全部)UART外設(shè)兼容。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微處理器
    +關(guān)注

    關(guān)注

    11

    文章

    2229

    瀏覽量

    82201
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2848

    瀏覽量

    87839
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1214

    瀏覽量

    100995
  • 1-Wire
    +關(guān)注

    關(guān)注

    0

    文章

    49

    瀏覽量

    21278
收藏 人收藏

    評論

    相關(guān)推薦

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

    atmega48 的 uart 數(shù)據(jù)鏈路實(shí)現(xiàn)1-wire 總線,總線具有枚舉功能,其上掛有多個 ds18b20 器件。ds18b20_
    發(fā)表于 11-22 23:40

    如何訪問1-Wire API

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

    1-wire總線的基本原理

    1-wire總線的基本原理:1-wire總線是Maxim 全資子公司,Dallas 的一項(xiàng)專有技術(shù)與目前多數(shù)標(biāo)準(zhǔn)串行數(shù)據(jù)通信方式,如SPI/I2C/MICROWIRE 不同它采用
    發(fā)表于 09-26 16:57 ?55次下載

    1-wire總線的基本原理

    1-wire總線的基本原理 1-wire總線是Maxim 全資子公司Dallas 的一項(xiàng)專有技術(shù)與目前多數(shù)標(biāo)準(zhǔn)串行數(shù)據(jù)通信方式如SPI/I2C/MICROWIRE
    發(fā)表于 02-05 17:58 ?79次下載

    用軟件實(shí)現(xiàn)1-Wire通信

    摘要:在沒有專用總線主機(jī)(如DS2480B、DS2490)的情況下,微處理器可以輕松地產(chǎn)生1-Wire時序信號。本應(yīng)用筆記給出了一個采用‘C’語言編寫、支持標(biāo)準(zhǔn)速率的1-Wire主機(jī)通信基本子程序
    發(fā)表于 05-08 12:02 ?2189次閱讀
    用軟件<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>1-Wire</b>通信

    1-Wire器件與8051系列單片機(jī)的軟件接口

    摘 要:分析了1-Wire總線的硬件結(jié)構(gòu)和通信協(xié)議,結(jié)合實(shí)際應(yīng)用設(shè)計(jì)了1-Wire器件與8051系列單片機(jī)的軟件接口。 關(guān)鍵詞:1-Wire總線
    發(fā)表于 05-17 12:40 ?1969次閱讀
    <b class='flag-5'>1-Wire</b>器件與8051系列單片機(jī)的軟件接口

    DS1820單總線(1-wire)數(shù)字溫度傳感器

      DS1820是美國DALLAS公司生產(chǎn)的一種單總線(1-wire)數(shù)字溫度傳感器,采用1-wire總線通信協(xié)議。具有獨(dú)特的單總線通信方式
    發(fā)表于 12-09 11:35 ?3757次閱讀
    DS1820單<b class='flag-5'>總線</b>(<b class='flag-5'>1-wire</b>)數(shù)字溫度傳感器

    美信推出DS2482-100單通道1-Wire主控制器

    DS2482-100是I2C至1-Wire?橋接器件,可直接與標(biāo)準(zhǔn)(最大100kHz)或快速(最大400kHz) I2C主控制器連接,實(shí)現(xiàn)I2C主機(jī)和下游1-Wire從機(jī)之間的雙向協(xié)議
    發(fā)表于 01-09 10:15 ?2623次閱讀
    美信推出DS2482-100單通道<b class='flag-5'>1-Wire</b><b class='flag-5'>主控</b>制器

    1-Wire總線主機(jī)

    Abstract: Communication with 1-Wire slave devices requires a 1-Wire master. There are numerous ways
    發(fā)表于 10-19 17:02 ?53次下載

    為什么UART驅(qū)動1-Wire設(shè)備總是出現(xiàn)問題?

    麥?zhǔn)迨歉闱度胧降?,最近?xiàng)目delay,他和我說用UART驅(qū)動1-Wire設(shè)備總是出現(xiàn)問題,故寫此文來拯救他。 作者之前寫過UART(點(diǎn)我),也寫過1-Wire(點(diǎn)我),本文介紹如何用主
    的頭像 發(fā)表于 10-23 17:13 ?3300次閱讀
    為什么<b class='flag-5'>UART</b>驅(qū)動<b class='flag-5'>1-Wire</b>設(shè)備總是出現(xiàn)問題?

    如何使用微處理器的UART實(shí)現(xiàn)1-Wire?總線主機(jī)

    本應(yīng)用筆記說明了如何使用微處理器的UART實(shí)現(xiàn)1-Wire?總線主機(jī)。它包括所需的電接口,UART配置以及
    的頭像 發(fā)表于 05-28 16:24 ?3919次閱讀
    如何使用微處理器的<b class='flag-5'>UART</b>來<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>1-Wire</b>?<b class='flag-5'>總線</b>主機(jī)

    通過調(diào)節(jié)上拉電阻來提高1-wire總線器件的驅(qū)動能力

    Dallas公司生產(chǎn)的集成電路中,廣泛應(yīng)用了1-wire總線。主機(jī)只需1根連線就可以把一個或數(shù)個1-wire總線器件連接起來,
    的頭像 發(fā)表于 05-05 09:53 ?3911次閱讀
    通過調(diào)節(jié)上拉電阻來提高<b class='flag-5'>1-wire</b><b class='flag-5'>總線</b>器件的驅(qū)動能力

    實(shí)現(xiàn)隔離式1-Wire總線

    1-Wire總線在需要電氣隔離的醫(yī)療設(shè)備中傳感器和耗材的認(rèn)證和校準(zhǔn)中越來越受歡迎。本文以應(yīng)用筆記4206“為嵌入式應(yīng)用選擇合適的1-Wire主機(jī)”為基礎(chǔ),介紹如何修改現(xiàn)有的1-Wire
    的頭像 發(fā)表于 01-17 10:39 ?2911次閱讀
    <b class='flag-5'>實(shí)現(xiàn)</b>隔離式<b class='flag-5'>1-Wire</b><b class='flag-5'>總線</b>

    可靠的長線1-Wire網(wǎng)絡(luò)指南

    討論了1-Wire網(wǎng)絡(luò)的各個方面,并提供了可靠運(yùn)行的設(shè)計(jì)指南。幾個附錄介紹了1-Wire總線接口的微調(diào),并說明了各種條件下的1-Wire通信波形。
    的頭像 發(fā)表于 03-01 14:21 ?1646次閱讀
    可靠的長線<b class='flag-5'>1-Wire</b>網(wǎng)絡(luò)指南

    為嵌入式應(yīng)用選擇合適的1-Wire主機(jī)

    本文討論的電路為1-Wire主機(jī)控制器,它們均與1-Wire從器件通信。 但是,這些1-Wire主機(jī)控制器不能作為單獨(dú)的主體,需要一個主機(jī)(計(jì)算機(jī))告訴它們在1-Wire側(cè)如何工作。
    的頭像 發(fā)表于 06-13 09:40 ?1052次閱讀
    為嵌入式應(yīng)用選擇合適的<b class='flag-5'>1-Wire</b>主機(jī)