幾十年來使用的三種最常見的多線串行數(shù)據(jù)傳輸格式是I2C,UART和SPI。本文著眼于串行外設(shè)接口(SPI)總線,該總線已擺脫了顯式的標(biāo)準(zhǔn)化,因此在實現(xiàn)協(xié)議之前,請始終檢查要使用的集成電路的數(shù)據(jù)表。
能力和特點
串行外圍設(shè)備接口總線使用四個數(shù)據(jù)線在主設(shè)備和從設(shè)備之間提供全雙工同步通信。
基本主從配置
串行外設(shè)接口允許將數(shù)據(jù)位從主設(shè)備移出到從設(shè)備中,同時,還可以將位從從設(shè)備移出到主設(shè)備中。
動畫1顯示了數(shù)據(jù)從Microchip A移入Microchip B,又從Microchip B移入MicrochipA。
動畫2顯示了兩個微芯片之間SPI事務(wù)的虛擬4通道示波器軌跡。由馬克·休斯(Mark Hughes)用Mathematica創(chuàng)建
由于SPI尚未標(biāo)準(zhǔn)化,因此可能會遇到先傳輸最高有效位(MSb)或最低有效位(LSb)的情況。檢查設(shè)備的數(shù)據(jù)表并相應(yīng)地設(shè)置數(shù)據(jù)處理例程。如果您使用的是Arduino,則可以參考此頁面以獲取有關(guān)配置SPI端口的信息。
時鐘極性和相位
時鐘轉(zhuǎn)換控制數(shù)據(jù)的移位和采樣。SPI具有四種模式(0、1、2、3),分別對應(yīng)四種可能的時鐘配置。
在時鐘周期的上升沿采樣的位在時鐘周期的下降沿移出,反之亦然。
當(dāng)從選擇線被驅(qū)動至邏輯低電平(從選擇通常為低電平有效信號)時,每個事務(wù)開始。從選擇線,數(shù)據(jù)線和時鐘線之間的確切關(guān)系取決于如何配置時鐘極性(CPOL)和時鐘相位(CPHA)。
在時鐘極性不變的情況下(即,當(dāng)從器件選擇轉(zhuǎn)換為邏輯低電平時,時鐘處于邏輯低電平):
模式0:配置時鐘相位,以便在時鐘脈沖的上升沿采樣數(shù)據(jù),并在時鐘脈沖的下降沿移出數(shù)據(jù)。這對應(yīng)于上圖中的第一個藍(lán)色時鐘軌跡。注意,數(shù)據(jù)必須在時鐘的第一個上升沿之前可用。
模式1:配置時鐘相位,以便在時鐘脈沖的下降沿采樣數(shù)據(jù),并在時鐘脈沖的上升沿移出數(shù)據(jù)。這對應(yīng)于上圖中的第二條藍(lán)色時鐘軌跡。
在時鐘極性反轉(zhuǎn)的情況下(即,當(dāng)從器件選擇轉(zhuǎn)換為邏輯低電平時,時鐘處于邏輯高電平):
模式2:配置時鐘相位,以便在時鐘脈沖的下降沿采樣數(shù)據(jù),并在時鐘脈沖的上升沿移出數(shù)據(jù)。這對應(yīng)于上圖中的第一個橙色時鐘軌跡。注意,數(shù)據(jù)必須在時鐘的第一個下降沿之前可用。
模式3:配置時鐘相位,以便在時鐘脈沖的上升沿采樣數(shù)據(jù),并在時鐘脈沖的下降沿移出數(shù)據(jù)。這對應(yīng)于上圖中的第二個橙色時鐘軌跡。
關(guān)鍵參數(shù)
CLK:串行時鐘。由主設(shè)備控制。每個時鐘周期都會移出一個新的數(shù)據(jù)位。
SSN:從機(jī)選擇(“ N”將其標(biāo)識為低電平有效信號)。由主設(shè)備控制。激活的從設(shè)備選擇線指示主機(jī)正在向相應(yīng)的從設(shè)備發(fā)送數(shù)據(jù)或從其請求數(shù)據(jù)。
MOSI:主輸出?從輸入。數(shù)據(jù)離開主設(shè)備并進(jìn)入從設(shè)備。芯片A上的MOSI線連接到芯片B上的MOSI線。
MISO:主機(jī)輸入?從機(jī)輸出。數(shù)據(jù)離開從設(shè)備并進(jìn)入主設(shè)備(或以菊花鏈配置的另一個從設(shè)備;請參閱下一節(jié))。芯片A上的MISO線連接到芯片B上的MISO線。
CPOL:時鐘極性。這支配時鐘信號的初始邏輯狀態(tài)。有關(guān)更多信息,請參考上一節(jié)。
CPHA:時鐘相位。這支配了數(shù)據(jù)轉(zhuǎn)換和時鐘轉(zhuǎn)換之間的關(guān)系。有關(guān)更多信息,請參考上一節(jié)。
從選擇和菊花鏈
多從選擇配置
在標(biāo)準(zhǔn)的SPI安排中,主設(shè)備可以通過啟用設(shè)備(即,將相應(yīng)設(shè)備的從選擇線設(shè)置為邏輯低電平)向共享公共數(shù)據(jù)線的單個設(shè)備寫入數(shù)據(jù)或向其請求數(shù)據(jù)。注意不要同時啟用多個從站,因為返回到主站的數(shù)據(jù)將由于MISO線之間的驅(qū)動程序爭用而損壞。某些應(yīng)用程序不需要將數(shù)據(jù)返回給主服務(wù)器;在這種情況下,如果主機(jī)希望將相同的數(shù)據(jù)發(fā)送到多個從機(jī),則可以同時尋址多個從機(jī)。
在多從站選擇配置中,每個從站都需要來自主站的唯一從站選擇線。如果主站沒有足夠的I / O引腳來滿足所需數(shù)量的從站,則可以通過合并解碼器/多路分解器來實現(xiàn)I / O擴(kuò)展,例如74HC(T)238(PDF)(3至8行)解碼器/解復(fù)用器)。
菊花鏈配置
在此配置中,數(shù)據(jù)從一臺設(shè)備移動到另一臺設(shè)備。最終的從設(shè)備可以將數(shù)據(jù)返回給主設(shè)備。
在菊花鏈配置中,所有從機(jī)共享一條公共的從機(jī)選擇線。數(shù)據(jù)從主機(jī)轉(zhuǎn)移到第一個從機(jī),然后從第一個從機(jī)轉(zhuǎn)移到第二個,依此類推。數(shù)據(jù)沿線級聯(lián)直至該系列中的最后一個從機(jī),然后可以使用其MISO線將數(shù)據(jù)發(fā)送到主設(shè)備。
這種配置非常適合節(jié)日期間流行的可單獨尋址的LED燈串。
結(jié)論
串行外設(shè)接口已經(jīng)存在了數(shù)十年,沒有理由期望它會很快消失。雖然I2C和UART可能會更受歡迎,但SPI是一種通用且直接的串行通信接口,非常適合某些應(yīng)用。
fqj
-
SPI
+關(guān)注
關(guān)注
17文章
1775瀏覽量
94632 -
串行數(shù)據(jù)傳輸
+關(guān)注
關(guān)注
0文章
4瀏覽量
6895
發(fā)布評論請先 登錄
Platform總線簡介
你知道什么是SPI嗎?一文入門,簡單易懂

I2C總線數(shù)據(jù)包結(jié)構(gòu)詳解
總線接口的類型與選擇指南
KeyStone架構(gòu)串行外設(shè)接口(SPI)手冊
嵌入式的常用總線介紹
如何使用可配置邏輯塊 (CLB) 實施定制串行接口

CAN總線的接口類型
I2S總線的定義和特點
SPI總線的定義和特點
電腦通用串行總線控制器怎么接
通用串行總線控制器和通用串行總線設(shè)備的區(qū)別
通用串行總線控制器影響什么設(shè)備
TUSB2046x 4端口集線器,用于帶可選串行EEPROM接口的通用串行總線數(shù)據(jù)表

評論