那曲檬骨新材料有限公司

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

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

3天內不再提示

SPI/I2C總線線路控制多個外設

星星科技指導員 ? 來源:ADI ? 作者:ADI ? 2023-02-21 11:59 ? 次閱讀

本應用筆記比較了大多數模擬IC使用的兩種常見串行數字接口: SPI?或 3 線,和I2C或 2 線。每個串行接口都為許多設計提供了優點或缺點,具體取決于所需的數據速率、空間可用性和噪聲考慮等標準。本應用筆記討論了這兩種串行接口之間的差異,并提供了詳細演示每個接口的示例。

介紹

雖然現實世界的信號總是模擬的,但如今越來越多的模擬IC通過數字接口進行通信。串行接口在提供串行時鐘的主設備和從/外設之間進行通信。如今,大多數微控制器上的SPI(3線)和I2C(2線)端口是發送和接收數據的常用方法。因此,微控制器通過多條總線進行通信,以控制外設,包括模數轉換器ADC)、數模轉換器DAC)、智能電池、端口擴展器、EEPROM溫度傳感器。與通過并行接口發送的數據不同,串行數據以多個位連續傳輸,通常通過兩條、三條或四條數據/定時線。雖然并行接口提供速度,但串行接口具有更少的控制和數據線的優勢。

串行接口基礎知識

串行接口有三種類型:3 線、2 線和單線。本文重點介紹 3 線和 2 線接口。串行外設接口 (SPI)、排隊串行外設接口 (QSPI?)和微絲?(或微絲加?) 標準通過 3 線接口進行通信。IC 間 (I2C) 和系統管理總線 (SMBus?) 標準通過 2 線接口進行通信。兩種類型的串行接口都有其優點和缺點。

3線接口

三線接口使用片選線(/CS或/SS)、時鐘線(SCLK)和數據輸入/主輸出線(稱為DIN或MOSI)。這些接口還可以包括數據輸出/主輸入線(稱為DOUT或MISO),有時稱為4線接口。為簡單起見,本文將 3 線和 4 線接口稱為 3 線。

三線接口工作在更高的時鐘頻率下,不需要任何上拉電阻。SPI/QSPI和MICROWIRE接口還具有全雙工操作(數據可以同時發送和接收),并且在嘈雜的環境中不易出現問題。三線接口是邊沿觸發的,而不是電平觸發的。

3線接口的主要缺點是,除非從器件配置為菊花鏈配置,否則總線上的每個從器件都需要一條單獨的/CS線,如圖1所示。(菊花鏈將在下面更詳細地討論。3線接口也不確認數據已正確發送或接收。從軟件角度來看,3線接口比單主/單從應用的2線接口更簡單、更高效。

pYYBAGP0Qa2AKGywAAAzddNl8Rs041.gif?imgver=1

圖1.三線接口利用數據輸入、數據輸出、時鐘和片選線。

2線接口

雙線接口僅使用數據線(SDA或SMBDATA)和時鐘線(SCL或SMBCLK)。這種使用較少的一條或兩條線路對于緊湊型設計(如手機和光纖應用)來說是一個特別有用的優勢。雙線接口還允許您在同一總線上連接多個從站,而無需片選信號。這種設計是可能的,因為每個從站都有自己唯一的地址。雙線接口還會在成功完成讀取后傳輸應答位。由于2線接口只有一條數據線,因此它們只能在半雙工模式下工作(數據只能在給定的周期內發送或接收,但不能同時發送或接收)。雙線接口是電平觸發的,如果數據位被錯誤識別,這可能會在嘈雜的環境中產生問題。

接口 優勢
3 線:SPI、QSPI 和 MICROWIRE PLUS 1. 速度
2.無需
上拉電阻 3.全雙工操作
4.抗噪性
1. 總線連接
數量更多 2.一次與多個從站通信所需的單個芯片選擇線路
3.不確認收到的數據
2線:I2C 和 SMBus 1. 公交線路連接
更少 2.多個設備共享同一總線
3.確認接收到的數據
1.速度:SMBus限制在100kHz;我2C 限制為 3.4MHz
2。半雙工操作
3.漏極開路總線需要上拉電阻
4.降低抗噪性

主機和從機通過串行接口通過多條總線進行通信。在一個寫入周期中,主機使用自己的時鐘和數據信號將數據傳輸到從機。在一個讀取周期中,從機將數據傳輸到主站。

SPI、QSPI、MICROWIRE 設計

由摩托羅拉建立的SPI接口可用于流行的處理器和微控制器,如MAXQ2000。如上所述,SPI設計需要兩條控制線(/CS和SCLK)和兩條數據線(DIN/SDI和DOUT/SDO)。摩托羅拉 SPI/QSPI 標準將 DIN/SDI 數據線稱為 MOSI(主輸出、從入);DOUT/SDO數據線是MISO(主輸入、從輸出),/CS線是SS(從選擇)。為簡單明了起起,本文從從機的角度參考了3線數據線:DIN是從機的數據輸入,DOUT是從機的數據輸出。本文還將3線總線稱為/CS、SCLK、DIN和DOUT,因為Maxim外設使用這些引腳名稱。?

大多數SPI接口具有兩個配置位,即時鐘極性(CPOL)和時鐘相位(CPHA),用于確定從機何時對數據進行采樣。CPOL 確定 SCLK 在未切換時是空閑高 (CPOL = 1) 還是低 (CPOL = 0)。CPHA 確定在哪些 SCLK 邊緣數據移入和移出。當CPOL = 0時,將CPHA設置為0會將數據轉移到SCLK上升沿的從站。將CPHA設置為1將數據轉移到SCLK下降沿上的從站。兩種CPOL和CPHA狀態允許四種不同的時鐘極性和相位組合;每個設置都與其他三個設置不兼容。主站和從站必須設置為相同的 CPOL 和 CPHA 狀態才能相互通信。

在其最基本的形式中,SPI接口一次傳輸2000位(一個字節)的數據,盡管有些微控制器一次傳輸兩個或更多字節。例如,MAXQ8微控制器一次可以傳輸16位或0位。當CPOL = 0且CPHA = 8時,從高電平到低電平的/CS轉換開始從主站到從機的傳輸。/CS必須保持低電平,而SCLK脈沖高電平和低電平,持續八個完整的周期。DIN數據鎖定在上升的SCLK邊緣。數據字節在/CS從低到高轉換后加載到從機中。在相同的2位周期內,數據可從SCLK下降沿上的從機DOUT線獲得。圖3a顯示了CPHA=1時的2線SPI時序。圖3b顯示了CPHA=0時的<>線SPI時序。

poYBAGP0Qa-AVyq8AAA7GGmrSig151.gif?imgver=1

圖 2a. 3 線接口時序 (CPHA = 1)。當CPHA = 1且CPOL = 1時,3線接口將數據時鐘輸入時鐘上升沿的外設,數據從時鐘下降沿的外設輸出。

pYYBAGP0QbGAPMk4AAA3wS2eR0M333.gif?imgver=1

圖 2b. 3 線接口時序 (CPHA = 0)。當CHPA = 0且CPOL = 1時,3線接口將數據時鐘輸入時鐘下降沿的外設,數據從時鐘上升沿的外設輸出。

/CS總線用作每個從站的使能信號,因為總線上的每個IC都需要自己的片選線。如果四個從站在同一總線上,則需要四條片選線來選擇合適的從站。如果從機的/CS線路為高電平(非活動),則從機將忽略SCLK轉換并將DOUT線路保持在高阻抗狀態。

一些3線接口外設可以使用菊花鏈方法進行編程。菊花鏈不是將單獨的/CS線連接到每個外設,而是允許單個/CS和SCLK線控制串聯的多個外設。要以這種方式以菊花鏈方式連接外設,3線接口必須包括DOUT線。如圖 1 所示,外圍設備 #1 的 DOUT 線用作外圍設備 #2 等的 DIN 線。

SPI標準未指定最大數據速率。相反,外設指定自己的最大數據速率,大多數在MHz范圍內。微控制器可以適應各種SPI速度。然而,當通過SPI總線通信時,從機無法減慢主站的速度或確認正確的數據傳輸。

QSPI標準與SPI標準幾乎相同。事實上,外設無法區分QSPI總線和SPI總線。然而,與SPI主站不同,QSPI主站允許通過可編程芯片選擇進行數據傳輸。此外,這些QSPI主站一次可以在8位到16位之間傳輸,而SPI器件通常僅傳輸8位。您可以將 QSPI 設備配置為連續傳輸多達 16 個數據字(最多 256 位)。此傳輸完全由 QSPI 接口處理,無需微控制器干預。與SPI一樣,QSPI標準沒有規定最大數據速率。

由美國國家半導體公司制定的較舊的MICROWIRE標準與SPI非常相似。但是,MICROWIRE具有固定的時鐘極性和固定的時鐘相位(CPOL = 0和CPHA = 0)。DIN的數據始終鎖定在SCLK上升沿的從站中。數據從從機的DOUT引腳轉移到SCLK的下降沿。與SPI一樣,MICROWIRE標準沒有規定最大數據速率。

內部集成電路(I2C) 接口

與全雙工、3線串行接口不同,I2飛利浦建立的 C 標準通過一條數據線 (SDA) 和一條控制線 (SCL) 以半雙工模式進行通信。我2C 標準定義了一個簡單的主/從雙向接口。在此方案中,微控制器指定它是作為主站(寫入模式)還是作為從站(接收模式)運行。每個從站都有自己唯一的地址,允許主站在同一總線上與許多不同的從站通信,而無需芯片選擇信號。參見圖 3。從機數量僅受允許的最大總線線路電容(400pF)的限制。我2C 協議基于 7 位或 10 位地址,但 7 位地址更常見。使用 7 位協議,您可以將多達 127 個不同的外設連接到總線。 SCL 和 SDA 是漏極開路線路,必須處于高電平狀態才能正常運行。使用 1V 電源時,將 3kΩ 或更大的上拉電阻連接到這些線路,使用 1V 電源時,將 6.5kΩ 或更大的上拉電阻連接到這些線路。

poYBAGP0QbKAapHkAAAiFAEqXNE336.gif?imgver=1

圖3.雙線接口提供數據輸入/輸出和時鐘線。

I2C通信以啟動命令開頭,當 SDA 在 SCL 高電平時從高到低轉換時,會發生該命令。參見圖 4a。在每個 SCL 時鐘周期內傳輸一個數據位;至少需要九位才能將字節傳入或傳出從機。寫入周期包括八個數據位,后跟一個確認 (ACK) 或非確認 (NACK) 信號。參見圖 4b。當數據通過I2C總線傳輸時,它鎖在 SCL 上升沿的從機中,并從 SCL 下降沿的從機讀出。SDA上的數據必須在SCL時鐘脈沖的高周期內保持穩定。在停止或重復啟動命令之后,傳輸完成,此時SDA在SCL高電平下從低到高轉換。當總線不繁忙時,SDA 和 SCL 都保持高電平。

pYYBAGP0QbSAUfcnAAAL_vLW5rw488.gif?imgver=1

圖 4a.啟動和停止條件。2線接口使用啟動、重復啟動和停止命令在主站和從機之間傳輸數據。

poYBAGP0QbWAS0EwAAANer_fOvQ046.gif?imgver=1

圖 4b.我2C 確認位。2線接口在確認數據時將SDA線拉低。

一個I2C寫入周期從啟動命令開始,然后寫入 7 位從地址和發出寫入或讀取命令信號的第 <> 位。將寫入命令的第八位設置為低電平,為讀取命令設置高位。主站在第八個時鐘周期后釋放總線線路。如果從機確認傳輸正確,則從機在第九個時鐘周期將SDA線保持低電平。如果從機不確認正確的寫入命令,則從機釋放SDA線(然后由上拉電阻保持高電平)。

然后,主站寫入一個 8 位命令字節,后跟第二個 ACK/NACK 位。接下來,主站寫入一個8位數據字節,后跟第三個ACK/NACK位。數據字節的最終應答位完成讀/寫周期,外設的輸出更新。圖 5a 說明了寫入周期的示例。

一個I2C讀取周期從啟動命令開始,然后寫入從地址,第八位拉高以發出讀取命令信號。在ACK/NACK位之后,主設備寫入命令字節以訪問新的從寄存器。在第二個ACK/NACK位之后,主站重寫從地址。然后在第三個ACK/NACK位之后,從機控制總線并一次寫出5個數據位。參見圖 <>b。當從與先前讀取相同的從站寄存器讀取時,主站只需寫入從站的地址,然后才能從該從站讀取數據。

pYYBAGP0QbeANbpgAAA4CxaUDs4377.gif?imgver=1

圖5.2線接口一次傳輸5位數據。圖 <>a 是 I2C 寫入周期示例。圖 5b 顯示 I2C 讀取周期示例。

I2C 接口支持慢速(高達 100kHz)、快速(高達 400kHz)和高速(高達 3.4MHz)協議。I2C 根據 CMOS 電壓電平識別高低信號:低信號小于電源電壓的 0.3 倍;高信號大于 0.7 x 電源電壓。

系統管理總線 (SMBus)

英特爾建立了低速通信的SMBus標準,SMBus接口類似于I?2C. 喜歡我2C,SMBus使用2線接口,包括數據線(SMBDATA)和時鐘線(SMBCLK)。SMBCLK 和 SMBDATA 線路也需要上拉電阻。使用8.5kΩ或更大的上拉電阻(采用3V電源)和14kΩ或更大的上拉電阻(采用5V電源)。SMBus 工作在 3V 至 5V 電源電壓,可識別高于 2.1V 的高信號和低于 0.8V 的低信號。

超時和最大/最小時鐘速度是 I 之間最顯著的差異2C 和 SMBus 接口。我2C 總線工作在低至 DC 時,不會因總線不活動而超時。但是,SMBus 接口可能會超時。當從設備在時鐘信號變低超過超時周期(最大 35ms)后重置其接口時,就會發生超時。SMBus 超時周期規定時鐘的最低速度為 19kHz。SMBCLK 必須設置在 10kHz 和 100kHz 之間才能正確通信。連接到 I 的主站或從站2但是,C總線可以在處理數據所需的時間內保持低時鐘。

外設示例

微控制器通常通過串行接口與其外設進行通信。微控制器使用3線或2線接口讀取和寫入外圍設備的內部寄存器。然后,外設偏置并控制各種模擬和數字輸出。例如,外圍設備將:對電池的充電電流和電壓進行編程;使用溫度傳感器控制風扇;并設置DAC的模擬輸出電壓以及各種電路的偏置條件。

圖6所示為微控制器通過8線接口與5115位DAC(MAX2)通信。由于該DAC包括四個地址選擇引腳,可產生16個唯一的從地址,因此您最多可以并行連接16個DAC。相同的兩條總線也可以設置SMBus溫度傳感器/風扇控制器(MAX6641)的偏置條件,因為MAX6641具有不同的從地址。該風扇控制器調節 MOSFET 的柵極電壓,以打開和關閉風扇。

poYBAGP0QbiATmEuAAA850jolUU959.gif?imgver=1

圖6.因為這個微控制器使用I2C接口,只需要兩條總線線就可以與眾多外設通信,比如這個DAC和一個溫度傳感器,并聯連接。

3線接口需要單獨的芯片選擇線來連接微控制器和并聯連接的多個IC之間的通信,而更簡單的2線接口使用相同的時鐘和數據線與總線上的每個器件進行通信。您可以通過為每個外設設置不同的從地址來并聯放置多個IC。最I2C外設包括地址選擇引腳,允許您將每個外設設置為不同的從地址。以前,外設可以標識自身的從地址數量限制為2的冪。例如,如果外設有兩個地址選擇引腳,它可以在總線上用四個唯一的從地址來標識自己。

新設計通過更少的地址選擇引腳提供更多的從地址。例如,MAX7319輸入/輸出端口擴展器只需兩個地址選擇引腳(AD16和AD2)即可編程為0個唯一的從地址。這些引腳可以連接到GND,電源電壓(V抄送)、SDA 或 SCL。表 2 顯示了可用的 16 個從地址。雖然位 A6、A5 和 A4 必須設置為 110,但位 A3 到 A0 可以通過 AD2 和 AD0 的四種不同設置進行編程。

引腳連接 設備地址
AD2 AD0 答6 答5 答4 答3 答2 答1 答0
標準及校正實驗所 接地 1 1 0 0 0 0 0
標準及校正實驗所 V抄送 1 1 0 0 0 0 1
標準及校正實驗所 標準及校正實驗所 1 1 0 0 0 1 0
標準及校正實驗所 自主權評估 1 1 0 0 0 1 1
自主權評估 接地 1 1 0 0 1 0 0
自主權評估 V抄送 1 1 0 0 1 0 1
自主權評估 標準及校正實驗所 1 1 0 0 1 1 0
自主權評估 自主權評估 1 1 0 0 1 1 1
接地 接地 1 1 0 1 0 0 0
接地 V抄送 1 1 0 1 0 0 1
接地 標準及校正實驗所 1 1 0 1 0 1 0
接地 自主權評估 1 1 0 1 0 1 1
V抄送 接地 1 1 0 1 1 0 0
V抄送 V抄送 1 1 0 1 1 0 1
V抄送 標準及校正實驗所 1 1 0 1 1 1 0
V抄送 自主權評估 1 1 0 1 1 1 1

未來進展

當今的3線接口滿足與2線接口不同的需求,每種接口都有特定的優勢。將來任何一個接口都不太可能完全取代另一個接口。I2C 設備的發展速度更快,因為它們開始集成 SMBus 功能,例如超時重置,可以在必要時關閉這些功能。新我2C 從地址的長度為 10 位,而不是只有 7 位,從而為用戶提供了更大的靈活性。

3線和2線接口將共存,但我2隨著更多的微控制器支持2線接口,C語言可能會獲得市場份額。我2C的易用性和較少的公交線路可能會推動其增長超過SPI的增長。

審核編輯:郭婷

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

    關注

    99

    文章

    6533

    瀏覽量

    545744
  • SPI
    SPI
    +關注

    關注

    17

    文章

    1721

    瀏覽量

    92116
  • 總線
    +關注

    關注

    10

    文章

    2903

    瀏覽量

    88387
收藏 人收藏

    評論

    相關推薦

    i2c總線ppt(I2C總線器件應用)

    I2C總線器件應用第一節 I2C總線器件應用概述I2C總線工作原理
    發表于 08-13 17:34 ?0次下載

    SPII2C、UART串行總線協議

    串口通訊通信協議UART,以及常用外設通信協議 SPII2C的介紹與他們之間的區別
    發表于 11-30 11:28 ?95次下載

    SPI總線I2C總線工作原理

    SPI總線I2C總線工作原理,本內容詳細介紹了SPI總線
    發表于 12-08 16:55 ?0次下載

    CAN、I2S、I2CSPI、SSP總線的介紹和比較

    CAN、I2S、I2CSPI、SSP總線的介紹和比較。
    發表于 07-14 16:20 ?53次下載

    spii2c總線有什么區別

    SPI是串行外設接口(Serial Peripheral Interface)的縮寫。I2C總線是一個真正的多主機總線
    發表于 12-06 11:39 ?4.1w次閱讀
    <b class='flag-5'>spi</b>與<b class='flag-5'>i2c</b><b class='flag-5'>總線</b>有什么區別

    淺談I2C總線I2C接口和SPI接口的作用相同

    SDA 和 SCL 都是雙向的。SPI 總線有兩根單獨的線,分別用于兩個方向的通信,而 I2C 總線不同,它使用同一根線來完成主機發送數據和接收從機響應。另外,與
    的頭像 發表于 03-21 10:24 ?2.5w次閱讀
    淺談<b class='flag-5'>I2C</b><b class='flag-5'>總線</b>,<b class='flag-5'>I2C</b>接口和<b class='flag-5'>SPI</b>接口的作用相同

    I2C總線是如何工作的

    I2C結合了SPI和UART的優點。使用I2C,您可以將多個從設備連接到單個主設備上(如SPI),并且可以讓
    發表于 09-13 15:46 ?2318次閱讀

    I2C總線的工作原理以及優缺點解析

    如果您正在使用OLED顯示器,氣壓傳感器或陀螺儀/加速度計模塊的項目,您可能會發現正在使用I2C總線I2C總線簡介 I2C結合了
    發表于 11-28 09:13 ?1.5w次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>總線</b>的工作原理以及優缺點解析

    i2c總線用來做什么_i2c總線數據傳輸過程

    I2C總線控制器為微控制器或微處理器提供控制I2C總線
    發表于 11-24 14:16 ?7324次閱讀

    SPI可以像I2C多個設備嗎?

    最近看到有小伙伴在討論:SPI可以像I2C多個設備嗎?
    的頭像 發表于 05-14 10:10 ?4179次閱讀
    <b class='flag-5'>SPI</b>可以像<b class='flag-5'>I2C</b>掛<b class='flag-5'>多個</b>設備嗎?

    I2C串行總線協議是什么?I2C總線有哪些優點?

    1982年發明并推廣,用于連接智能傳感器和存儲器器件,以及控制和監控外設。該協議是一種主從式通信協議,允許多個從設備連接到同一總線上,并在總線
    的頭像 發表于 09-12 11:18 ?1809次閱讀

    藍牙串口通訊總線——I2C/SPI/UART

    嵌入式工程師在做串口通信調試工作的時候,會經常用到I2CSPI、UART這3條總線I2CSPI、UART這三種通信
    的頭像 發表于 01-22 09:41 ?1801次閱讀
    藍牙串口通訊<b class='flag-5'>總線</b>——<b class='flag-5'>I2C</b>/<b class='flag-5'>SPI</b>/UART

    詳解I2C總線SPI總線的區別

    I2C(Inter-Integrated Circuit)表示集成電路互連,是一種用于線路板內部芯片之間通信的總線
    的頭像 發表于 10-16 15:16 ?6331次閱讀
    詳解<b class='flag-5'>I2C</b><b class='flag-5'>總線</b>與<b class='flag-5'>SPI</b><b class='flag-5'>總線</b>的區別

    I2C總線SPI總線的比較

    在現代電子系統中,微控制器與各種外設之間的通信是必不可少的。I2CSPI是兩種流行的串行通信協議,它們各自具有獨特的特點和應用場景。 I2C
    的頭像 發表于 01-17 15:08 ?191次閱讀

    I2C總線的優缺點分析

    設備之間的通信,這大大減少了所需的引腳數量,降低了硬件成本。此外,由于其簡單性,I2C總線也易于實現和維護。 2. 多主機和多從機支持 I2C總線
    的頭像 發表于 01-17 15:50 ?177次閱讀
    百家乐的出千手法| 百家乐官网娱乐场开户注册| 六合彩图库| 德州扑克发牌| 棋牌游戏开发商| 百家乐翻天粤语| 威尼斯人娱乐网上百家乐的玩法技巧和规则 | 百家乐官网平注法攻略| 澳门百家乐官网怎么才能赢钱| 百家乐官网技巧在那里| 石楼县| 乐宝百家乐官网娱乐城| 百家乐官网视频无法显示| 破解百家乐官网公式| 海王星百家乐官网的玩法技巧和规则| 易胜博百家乐官网娱乐城| 致胜百家乐官网软件| 百家乐官网信息| 金世豪百家乐官网的玩法技巧和规则 | 大世界百家乐娱乐平台| 百家乐百家乐视频游戏世界| 真人百家乐游戏网址| 天堂鸟百家乐的玩法技巧和规则| 百家乐赌博筹| 大发888娱乐场17| 皇冠最新投注网| 至尊百家乐官网年代| 筹码百家乐官网的玩法技巧和规则 | 胜负彩| 最新皇冠足球投注比分网| 百家乐官网牌机的破解法| 送彩金百家乐官网的玩法技巧和规则| 真钱百家乐送钱| 澳门百家乐官网网上娱乐场开户注册| 博彩百家乐网址| 裕昌太阳城户型图| 百家乐红桌布| 莆田棋牌游戏| 彩票预测| 百家乐官网详情| 澳门百家乐秘积|