本應用筆記比較了大多數模擬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線接口更簡單、更高效。
圖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時序。
圖 2a. 3 線接口時序 (CPHA = 1)。當CPHA = 1且CPOL = 1時,3線接口將數據時鐘輸入時鐘上升沿的外設,數據從時鐘下降沿的外設輸出。
圖 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Ω 或更大的上拉電阻連接到這些線路。
圖3.雙線接口提供數據輸入/輸出和時鐘線。
I2C通信以啟動命令開頭,當 SDA 在 SCL 高電平時從高到低轉換時,會發生該命令。參見圖 4a。在每個 SCL 時鐘周期內傳輸一個數據位;至少需要九位才能將字節傳入或傳出從機。寫入周期包括八個數據位,后跟一個確認 (ACK) 或非確認 (NACK) 信號。參見圖 4b。當數據通過I2C總線傳輸時,它鎖在 SCL 上升沿的從機中,并從 SCL 下降沿的從機讀出。SDA上的數據必須在SCL時鐘脈沖的高周期內保持穩定。在停止或重復啟動命令之后,傳輸完成,此時SDA在SCL高電平下從低到高轉換。當總線不繁忙時,SDA 和 SCL 都保持高電平。
圖 4a.啟動和停止條件。2線接口使用啟動、重復啟動和停止命令在主站和從機之間傳輸數據。
圖 4b.我2C 確認位。2線接口在確認數據時將SDA線拉低。
一個I2C寫入周期從啟動命令開始,然后寫入 7 位從地址和發出寫入或讀取命令信號的第 <> 位。將寫入命令的第八位設置為低電平,為讀取命令設置高位。主站在第八個時鐘周期后釋放總線線路。如果從機確認傳輸正確,則從機在第九個時鐘周期將SDA線保持低電平。如果從機不確認正確的寫入命令,則從機釋放SDA線(然后由上拉電阻保持高電平)。
然后,主站寫入一個 8 位命令字節,后跟第二個 ACK/NACK 位。接下來,主站寫入一個8位數據字節,后跟第三個ACK/NACK位。數據字節的最終應答位完成讀/寫周期,外設的輸出更新。圖 5a 說明了寫入周期的示例。
一個I2C讀取周期從啟動命令開始,然后寫入從地址,第八位拉高以發出讀取命令信號。在ACK/NACK位之后,主設備寫入命令字節以訪問新的從寄存器。在第二個ACK/NACK位之后,主站重寫從地址。然后在第三個ACK/NACK位之后,從機控制總線并一次寫出5個數據位。參見圖 <>b。當從與先前讀取相同的從站寄存器讀取時,主站只需寫入從站的地址,然后才能從該從站讀取數據。
圖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 的柵極電壓,以打開和關閉風扇。
圖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
+關注
關注
99文章
6533瀏覽量
545744 -
SPI
+關注
關注
17文章
1721瀏覽量
92116 -
總線
+關注
關注
10文章
2903瀏覽量
88387
發布評論請先 登錄
相關推薦
評論