深入理解串行外設(shè)接口(SPI)總線及應(yīng)用
串行外設(shè)接口(SPI)總線是一個工作在全雙工模式下的同步串行數(shù)據(jù)鏈路。它可用于在單個主控制器和一個或多個從設(shè)備之間交換數(shù)據(jù)。其簡單的實施方案只使用四條支持?jǐn)?shù)據(jù)與控制的信號線(圖1):
本文引用地址:http://cafeforensic.com/article/265777.htm雖然表1中的引腳名稱來自摩托羅拉開發(fā)的SPI標(biāo)準(zhǔn),但具體集成電路的SPI端口名稱往往與圖1中所示的不同。
圖1:基本SPI總線
表1:SPI引腳名稱分配
SPI數(shù)據(jù)速率一般在1到70MHz的范圍內(nèi),字長為從8位及12位到這兩個值的倍數(shù)。
數(shù)據(jù)傳輸一般由數(shù)據(jù)交換構(gòu)成。在主控制器向從設(shè)備發(fā)送數(shù)據(jù)時,從設(shè)備也向主控制器發(fā)送數(shù)據(jù)。因此主控制器的內(nèi)部移位寄存器和從設(shè)備都采用環(huán)形設(shè)置(圖2)。
圖2:雙移位寄存器形成一個芯片間的環(huán)形緩存器
在數(shù)據(jù)交換之前,主控制器和從設(shè)備會將存儲器數(shù)據(jù)加載至它們的內(nèi)部移位寄存器。收到時鐘信號后,主控制器先通過MOSI線路時鐘輸出其移位寄存器的MSB.同時從設(shè)備會讀取位于SIMO的主控器第一位元,將其存儲在存儲器中,然后通過SOMI時鐘輸出其MSB.主控制器可讀取位于MISO的從設(shè)備第一位元,并將其存儲在存儲器中,以便后續(xù)處理。整個過程將一直持續(xù)到所有位元完成交換,而主控器則可讓時鐘空閑并通過/SS禁用從設(shè)備。
除設(shè)置時鐘頻率外,主控制器還可根據(jù)數(shù)據(jù)配置時鐘極性和相位。這兩個分別稱為CPOL與CPHA的選項可實現(xiàn)時鐘信號180度的相移以及半個時鐘周期的數(shù)據(jù)延遲。圖3是相應(yīng)的定時圖。
圖3:時鐘極性與相位的定時圖
CPOL = 0時,時鐘空閑在邏輯0位置上:
如果CPHA = 0,數(shù)據(jù)在SCK的上升沿讀取,在下降沿變化。
如果CPHA = 1,數(shù)據(jù)在SCK的下降沿讀取,在上升沿變化。
CPOL = 1時,時鐘在邏輯為高時空閑:
如果CPHA = 0,數(shù)據(jù)在SCK的下降沿讀取,在上升沿變化。
如果CPHA = 1,數(shù)據(jù)在SCK的上升沿讀取,在下降沿變化。
在SPI中,主控制器可與單個或多個從設(shè)備通信。如果是一個單從設(shè)備,從設(shè)備選擇信號可連接至從設(shè)備的本地接地電位,實現(xiàn)永久接入。對使用多個從設(shè)備的應(yīng)用,可使用兩種配置:獨立從設(shè)備與菊花鏈從設(shè)備(圖4)。
圖4:主控制器與獨立從設(shè)備(左)及菊花鏈從設(shè)備通信(右)
要與從設(shè)備單獨通信,主控制器必須提供多重從設(shè)備選擇信號。該配置通常用于必須單獨訪問多個模數(shù)轉(zhuǎn)換器(ADC)及數(shù)模轉(zhuǎn)換器(DAC)的數(shù)據(jù)采集系統(tǒng)中。
菊花鏈從設(shè)備只需要主控制器提供一個從設(shè)備選擇信號,因為這種配置要求所有從設(shè)備同時啟用,以確保數(shù)據(jù)不間斷地流經(jīng)該鏈路中的所有移位寄存器。典型應(yīng)用是工業(yè)I/O模塊中的級聯(lián)多通道輸入串行器與輸出驅(qū)動器。
模數(shù)轉(zhuǎn)換器相關(guān)文章:模數(shù)轉(zhuǎn)換器工作原理
評論