TI技術(shù)分析:數(shù)字接口系列文章之SPI 總線
串行外設(shè)接口 (SPI) 總線是一種運(yùn)行于全雙工模式下的同步串行數(shù)據(jù)鏈路。用于在單個(gè)主節(jié)點(diǎn)和一個(gè)或多個(gè)從節(jié)點(diǎn)之間交換數(shù)據(jù)。SPI總線實(shí)施簡(jiǎn)單,僅使用四條數(shù)據(jù)信號(hào)線和控制信號(hào)線(請(qǐng)參見(jiàn)圖 1)。
盡管表1中的引腳名稱取自Motorola公司的SPI標(biāo)準(zhǔn),但特殊集成電路的SPI端口名稱通常與圖1中所標(biāo)示的名稱有所不同。
圖1 基本的SPI總線
表1 SPI引腳名稱分配
SPI數(shù)據(jù)速率通常介于1到70MHz 之間,字節(jié)長(zhǎng)度范圍從8位和12位到這些數(shù)值的倍數(shù)位。
數(shù)據(jù)傳輸通常會(huì)包含一次數(shù)據(jù)交換。當(dāng)主節(jié)點(diǎn)向從節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),從節(jié)點(diǎn)也會(huì)向主節(jié)點(diǎn)發(fā)送數(shù)據(jù)。為此,主節(jié)點(diǎn)的內(nèi)部移位寄存器和從節(jié)點(diǎn)被設(shè)置成環(huán)形(請(qǐng)參見(jiàn)圖 2)。
圖2 兩個(gè)移位寄存器形成一個(gè)內(nèi)部芯片環(huán)形緩沖器
在數(shù)據(jù)交換之前,主節(jié)點(diǎn)和從節(jié)點(diǎn)使其內(nèi)部移位寄存器加載存儲(chǔ)器數(shù)據(jù)。產(chǎn)生時(shí)鐘信號(hào)時(shí),主節(jié)點(diǎn)會(huì)通過(guò)MOSI線同步輸出其移位寄存器。同時(shí),從節(jié)點(diǎn)在SIMO處從主節(jié)點(diǎn)讀取第一位,并將其存儲(chǔ)到存儲(chǔ)器中,然后通過(guò)SOMI輸出MSB。主節(jié)點(diǎn)會(huì)在MISO處讀取從節(jié)點(diǎn)的第一位,并將其存儲(chǔ)到存儲(chǔ)器中以待稍后處理。整個(gè)過(guò)程將一直持續(xù),直至交換完所有數(shù)據(jù)位,然后主節(jié)點(diǎn)使時(shí)鐘空閑并通過(guò) /SS禁用從節(jié)點(diǎn)。
除設(shè)置時(shí)鐘頻率之外,主節(jié)點(diǎn)還會(huì)配置相對(duì)于數(shù)據(jù)的時(shí)鐘極性和時(shí)鐘相位。這兩個(gè)選項(xiàng)分別稱作CPOL和CPHA,能夠允許時(shí)鐘信號(hào)實(shí)現(xiàn)180度相移且數(shù)據(jù)延遲半個(gè)時(shí)鐘周期。圖3顯示了相應(yīng)的時(shí)序圖。
圖3 時(shí)鐘極性和相位的時(shí)序圖
CPOL=0時(shí),時(shí)鐘在邏輯0處空閑:
* 如果CPHA=0,數(shù)據(jù)會(huì)在SCK的上升沿上讀取,在下降沿上變化。
* 如果CPHA=1,數(shù)據(jù)會(huì)在SCK的下降沿上讀取,在上升沿上變化。
CPOL=1時(shí),時(shí)鐘在邏輯高電平處空閑:
*如果CPHA=0,數(shù)據(jù)會(huì)在SCK的下降沿上讀取,在上升沿上變化。
*如果CPHA=1,數(shù)據(jù)會(huì)在SCK的上升沿上讀取,在下降沿上變化。
在SPI中,主節(jié)點(diǎn)可以與單個(gè)或多個(gè)從節(jié)點(diǎn)進(jìn)行通信。在使用單個(gè)從節(jié)點(diǎn)的情況下,從選擇信號(hào)可以關(guān)聯(lián)到從設(shè)備的本地接地電位以允許永久接入。對(duì)于使用多個(gè)從節(jié)點(diǎn)的應(yīng)用,可能有兩種結(jié)構(gòu):獨(dú)立和菊花鏈?zhǔn)綇墓?jié)點(diǎn)(請(qǐng)參見(jiàn)圖 4)。
圖4 主節(jié)點(diǎn)與獨(dú)立從節(jié)點(diǎn)(左)以及菊花鏈?zhǔn)綇墓?jié)點(diǎn)(右)進(jìn)行通信
從節(jié)點(diǎn)獨(dú)立尋址時(shí),主節(jié)點(diǎn)必須提供多個(gè)從選擇信號(hào)。該結(jié)構(gòu)一般用在數(shù)據(jù)采集系統(tǒng)中,其中的多個(gè)模數(shù)轉(zhuǎn)換器 (ADC) 和數(shù)模轉(zhuǎn)換器 (DAC) 都必須單獨(dú)接入。
菊花鏈?zhǔn)綇墓?jié)點(diǎn)需要主節(jié)點(diǎn)提供唯一的從選擇信號(hào),因此該結(jié)構(gòu)要求同時(shí)啟用所有從節(jié)點(diǎn),以確保菊花鏈內(nèi)通過(guò)所有移位寄存器的數(shù)據(jù)流不會(huì)中斷。典型的應(yīng)用為工業(yè)級(jí)I/O模塊中的級(jí)聯(lián)多通道輸入串行器和輸出驅(qū)動(dòng)器。
作者簡(jiǎn)介:
Thomas Kugelstadt現(xiàn)任TI高級(jí)系統(tǒng)工程師,主要負(fù)責(zé)定義新型高性能模擬產(chǎn)品以及探測(cè)和調(diào)節(jié)工業(yè)系統(tǒng)中低電平模擬信號(hào)的完整系統(tǒng)解決方案的開(kāi)發(fā)工作。
在TI工作的20年間,他曾被派往歐洲、亞洲以及美國(guó)擔(dān)任過(guò)各種國(guó)際應(yīng)用職位。 Thomas畢業(yè)于法蘭克福應(yīng)用技術(shù)大學(xué) (Frankfurt University of Applied Science),一畢業(yè)就成為一名見(jiàn)習(xí)工程師 (Graduate Engineer)。
評(píng)論