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