資源描述:
《SPI工作原理》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、SPI· 由于SPI(setialperipheralinterface)總線占用的接口線少,通信效率高,并且支持大部分處理器芯片,因而是一種理想的選擇。SPI是利用4根信號(hào)線進(jìn)行通信的串行接口協(xié)議,包括主/從兩種模式。4個(gè)接口信號(hào)為:串行數(shù)據(jù)輸入(MISO,主設(shè)備輸入、從設(shè)備輸出)、串行數(shù)據(jù)輸出(MOSI,主設(shè)備輸出、從設(shè)備輸入)、移位時(shí)鐘(SCK)、低電平有效的從設(shè)備使能信號(hào)(cs)。SPI最大的特點(diǎn)是由主設(shè)備時(shí)鐘信號(hào)的出現(xiàn)與否來(lái)確定主/從設(shè)備間的通信。一旦檢測(cè)到主設(shè)備的時(shí)鐘信號(hào),數(shù)據(jù)開始傳輸。
2、·目錄·SPI工作方式簡(jiǎn)介·SPI的數(shù)據(jù)傳輸·SPI用戶邏輯·SPI基本原理與結(jié)構(gòu)SPI工作方式簡(jiǎn)介· SPI是由美國(guó)摩托羅拉公司最先推出的一種同步串行傳輸規(guī)范,也是一種單片機(jī)外設(shè)芯片串行擴(kuò)展接口?! PI模式可以允許同時(shí)同步發(fā)送和接收8位數(shù)據(jù),并支持4種工作方式: 1.串行數(shù)據(jù)輸出,對(duì)應(yīng)RC5/SDO引腳; 2.串行數(shù)據(jù)輸入,對(duì)應(yīng)RC4/SDI/SDA引腳; 3.串行時(shí)鐘,對(duì)應(yīng)RC3/SCK/SCL引腳; 4.從動(dòng)方式選擇,對(duì)應(yīng)RA5/SS/AN4引腳?! PI模式下與之相關(guān)的寄存器有
3、10個(gè),其中4個(gè)是與I2C模式共用的?! D1所示是由一個(gè)主機(jī)對(duì)接一個(gè)從機(jī)進(jìn)行全雙工通信的系統(tǒng)構(gòu)成的方式。在該系統(tǒng)中,由于主機(jī)和從機(jī)的角色是固定不變的,并且只有一個(gè)從機(jī),因此,可以將主機(jī)的麗端接高電平,將從機(jī)的SS端固定接地?! D1全雙工主機(jī)/從機(jī)連接方法 若干個(gè)具備SPI接口的單片機(jī)和若干片兼容SPI接口的外圍芯片,可以在軟件的控制下,構(gòu)成多種簡(jiǎn)單或者復(fù)雜的應(yīng)用系統(tǒng),例如以下3種?! 。?)一個(gè)主機(jī)和多個(gè)從器件的通信系統(tǒng)。 如圖2所示,各個(gè)從器件是單片機(jī)的外圍擴(kuò)展芯片,它們的片選端SS分別獨(dú)占
4、單片機(jī)的一條通用I/O引腳,由單片機(jī)分時(shí)選通它們建立通信。這樣省去了單片機(jī)在通信線路上發(fā)送地址碼的麻煩,但是占用了單片機(jī)的引腳資源。當(dāng)外設(shè)器件只有一個(gè)時(shí),可以不必選通而直接將SS端接地即可。 圖2一個(gè)主機(jī)擴(kuò)展多個(gè)外圍器件 ?。?)幾個(gè)單片機(jī)互相連接構(gòu)成多主機(jī)通信系統(tǒng)?! D3所示為3個(gè)既可以當(dāng)做主機(jī)也可以當(dāng)做從機(jī)的單片機(jī)組成的系統(tǒng)?! D3多主機(jī)通信系統(tǒng)連接方法 (3)主機(jī)、從機(jī)和從器件共同組成的應(yīng)用系統(tǒng)?! D4所示為一個(gè)主機(jī)、一個(gè)從機(jī)和多片外設(shè)芯片組成的應(yīng)用系統(tǒng)。這些外設(shè)芯片有的只接收來(lái)自單片
5、機(jī)信息,有的只向單片機(jī)提供信息,還有的既接收也發(fā)送信息。 圖4主機(jī)、從機(jī)和從器件互連SPI的數(shù)據(jù)傳輸· SPI主設(shè)各負(fù)責(zé)產(chǎn)生系統(tǒng)時(shí)鐘,并決定整個(gè)SPI網(wǎng)絡(luò)的通信速率。所有的SPI設(shè)各都采用相同的接口方式,可以通過(guò)調(diào)整處理器內(nèi)部寄存器改變時(shí)鐘的極性和相位。由于SPI器件并不一定遵循同一標(biāo)準(zhǔn),比如EEPROM、DAC、ADC、實(shí)時(shí)時(shí)鐘及溫度傳感器等器件的SPI接口的時(shí)序都有所不同,為了能夠滿足不同的接口需要,采用時(shí)鐘的極性和相位可配就能夠調(diào)整SPi的通信時(shí)序?! PI設(shè)各傳輸數(shù)據(jù)過(guò)程中總是先發(fā)送或接
6、收高字節(jié)數(shù)據(jù),每個(gè)時(shí)鐘周期接收器或收發(fā)器左移1位數(shù)據(jù)。對(duì)于小于16位的數(shù)據(jù)在發(fā)送之前必須左對(duì)齊,如果接收的數(shù)據(jù)小于16位則采用軟件將無(wú)效的數(shù)據(jù)位屏蔽,如圖1所示?! PI接口有主和從兩種操作模式,通過(guò)MASTER/SLAVE位(SPICTL.2)選擇操作模式以及SPICLK信號(hào)的來(lái)源,如圖2所示。 圖1SPI通信數(shù)據(jù)格式 圖2SPI主控制器/從控制器的連接SPI用戶邏輯· 該模塊針對(duì)用戶不同的應(yīng)用來(lái)設(shè)計(jì),本質(zhì)上就是用戶的具體業(yè)務(wù)應(yīng)用,與SPI-4接口沒有直接關(guān)系。當(dāng)應(yīng)用支持多個(gè)端口時(shí),這部分就
7、顯得至關(guān)重要。下面以支持兩個(gè)端口的應(yīng)用來(lái)說(shuō)明用戶邏輯的設(shè)計(jì)技巧。 (1)SinkCore的用戶邏輯 端口為兩個(gè)時(shí),用戶邏輯就需要用兩個(gè)不同的FIFO根據(jù)端口的地址等來(lái)分別緩存用戶的兩個(gè)業(yè)務(wù)數(shù)據(jù).同時(shí)根據(jù)FIFO的情況來(lái)發(fā)出流控信息給SP14數(shù)據(jù)接口,如圖1所示?! D1SinkCeore兩個(gè)端口的用戶邏輯 (2)SourceCore的用戶邏輯 當(dāng)端口為兩個(gè)時(shí),用戶邏輯就需要根據(jù)流控信息和兩個(gè)不同的FffiOffJ情況來(lái)做仲裁,諛定哪個(gè)用戶邏輯FIFO需要發(fā)送給SPI4數(shù)據(jù)接口,如圖2所示?! ?/p>
8、圖2SourceCore2個(gè)端口的用戶邏輯SPI基本原理與結(jié)構(gòu)·串行外圍設(shè)備接口(SPI)是由Motorola公司開發(fā)的、用來(lái)在微控制器和外圍設(shè)備芯片之間實(shí)現(xiàn)數(shù)據(jù)交換的低成本、易使用接口。與標(biāo)準(zhǔn)的串行接口不同,SPI是一個(gè)同步協(xié)議接口,全雙工通信,所有的傳輸都參照一個(gè)共同的時(shí)鐘,這個(gè)同步時(shí)鐘信號(hào)由主機(jī)產(chǎn)生。接收數(shù)據(jù)的外設(shè)使用時(shí)鐘對(duì)串行比特流的接收進(jìn)行同步化。其傳輸速度可達(dá)幾Mb/s?! PI主要使用4個(gè)信號(hào):MISO(主機(jī)輸入/從機(jī)輸出)、MOSI(主