串行外圍設(shè)備接口(Serial Peripheral Interface,SPI)是由 Motorola 公司開(kāi)發(fā)的,用來(lái)在微控制器和外圍設(shè)備芯片之間提供一個(gè)低成本、易使用的接口(SPI 有時(shí)候也被稱為4線接口)。這種接口可以用來(lái)連接存儲(chǔ)器、AD/DA轉(zhuǎn)換器、實(shí)時(shí)時(shí)鐘日歷、LCD驅(qū)動(dòng)器、傳感器、音頻芯片,甚至其他處理器。目前支持 SPI 的元件很多,并且還在不斷增加。
這里需要提一下,由于專利在電子行業(yè)是很關(guān)鍵的,因此部分廠商可能會(huì)將 SPI 通訊協(xié)議更名以規(guī)避高昂的專利費(fèi),但其硬件處理方式是一樣的,只是換了一個(gè)名稱而已(或者在協(xié)議上做了一些修改),例如 TI 的 SSI(Synchronous Serial Interface)通訊協(xié)議。與標(biāo)準(zhǔn)的串行端口不同,SPI 是一個(gè)同步協(xié)議接口,所有的傳輸都參照一個(gè)共同的時(shí)鐘,這個(gè)同步時(shí)鐘信號(hào)由主機(jī)(處理器)產(chǎn)生。接收數(shù)據(jù)的設(shè)備(從設(shè)備)使用時(shí)鐘對(duì)串行比特流的接收進(jìn)行同步化。可能會(huì)有許多芯片連到主機(jī)的同一個(gè) SPI 接口上,這是主機(jī)通過(guò)觸發(fā)從設(shè)備的芯片的片選輸入引腳來(lái)選擇接收數(shù)據(jù)的從設(shè)備,沒(méi)有被選中的外設(shè)將不會(huì)參與 SPI 傳輸。SPI 主要使用4個(gè)信號(hào):主機(jī)輸出/從機(jī)輸入(MOSI)、主機(jī)輸入/從機(jī)輸出(MISO)、串行時(shí)鐘(SCLK或SCK)和外設(shè)片選(nCS)。有些處理器有 SPI 接口專用的片選,稱為從機(jī)選擇(nSS)。MOSI 信號(hào)由主機(jī)產(chǎn)生,從機(jī)接收。在有些芯片上,MOSI 只被簡(jiǎn)單地標(biāo)為串行輸入(SI),或者串行數(shù)據(jù)輸入(SDI)。MISO 信號(hào)由從機(jī)產(chǎn)生,不過(guò)還是在主機(jī)的控制下產(chǎn)生的。在一些芯片上,MISO 有時(shí)被稱為串行輸出(SO),或者串行數(shù)據(jù)輸出(SDO)。外設(shè)片選信號(hào)通常只是由主機(jī)的備用 I/O 引腳產(chǎn)生。SPI 接口在內(nèi)部硬件實(shí)際上是兩個(gè)簡(jiǎn)單的移位寄存器,在主器件的移位脈沖下,數(shù)據(jù)按位傳輸,高位在前,低位在后,為全雙工通信,數(shù)據(jù)傳輸速度總體來(lái)說(shuō)比 I2C 總線要快,速度可達(dá)到 Mbps 級(jí)別。
根據(jù)時(shí)鐘極性和時(shí)鐘相位的不同,SPI 有四個(gè)工作模式。時(shí)鐘極性有高、低兩極:
1、時(shí)鐘低電平時(shí),空閑時(shí)時(shí)鐘(SCK)處于低電平,傳輸時(shí)跳轉(zhuǎn)到高電平;2、時(shí)鐘極性為高電平時(shí),空閑時(shí)時(shí)鐘處于高電平,傳輸時(shí)跳轉(zhuǎn)到低電平。
時(shí)鐘相位有兩個(gè):相位0 和 相位1。對(duì)于時(shí)鐘相位0,如果時(shí)鐘極性是低電平,MOSI 和 MISO 輸出在時(shí)鐘(SCK)的上升沿有效(如圖1所示)。
圖1. 時(shí)鐘極性為低電平且時(shí)鐘相位0時(shí)的SPI時(shí)序圖
如果時(shí)鐘極性為高電平,對(duì)于時(shí)鐘相位0,這些輸出在 SCK 的下降沿有效(如圖2所示)。
圖2. 時(shí)鐘極性為高電平且時(shí)鐘相位0時(shí)的SPI時(shí)序圖
對(duì)于時(shí)鐘相位1,情況則相反。此時(shí)如果時(shí)鐘極性是低電平,MOSI 和 MISO 輸出在時(shí)鐘(SCK)的下降沿有效(如圖3所示)。
圖3. 時(shí)鐘極性為低電平且時(shí)鐘相位1時(shí)的SPI時(shí)序圖
如果時(shí)鐘極性是高電平,這些輸出在 SCK 的上升沿有效(如圖4所示)。
圖4. 時(shí)鐘極性為高電平且時(shí)鐘相位1時(shí)的SPI時(shí)序圖
工程中一般會(huì)用 CPOL 代表時(shí)鐘極性,用 CPHA 代表時(shí)鐘相位,在 S5PV210 的 datasheet 中,我們可以看到相應(yīng)的 SPI 接口配置寄存器(如圖5所示)。
圖5. S5PV210的SPI配置寄存器CH_CFGn
也就是由兩個(gè)位(CPOL 和 CPHA)共同決定 SPI 的工作模式,所以有 2 * 2 = 4 種工作模式。其中,時(shí)鐘極性(CPOL)決定的是時(shí)鐘空閑時(shí)電平的高低狀態(tài)(0:空閑時(shí)低電平,1:空閑時(shí)高電平);時(shí)鐘相位(CPHA)決定的是數(shù)據(jù)在時(shí)鐘的上升沿或下降沿鎖存/采樣(0:第一個(gè)邊沿開(kāi)始,1:第二個(gè)邊沿開(kāi)始)。
最后,SPI 接口的一個(gè)缺點(diǎn):沒(méi)有指定的流控制,沒(méi)有應(yīng)答機(jī)制確認(rèn)是否接收到數(shù)據(jù)。
-
驅(qū)動(dòng)器
+關(guān)注
關(guān)注
52文章
8117瀏覽量
145852 -
寄存器
+關(guān)注
關(guān)注
31文章
5301瀏覽量
119865 -
時(shí)鐘
+關(guān)注
關(guān)注
10文章
1716瀏覽量
131290 -
SPI
+關(guān)注
關(guān)注
17文章
1688瀏覽量
91234
原文標(biāo)題:淺談串行外圍設(shè)備接口(Serial Peripheral Interface)SPI總線
文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論