SPI通訊協(xié)議介紹_第1頁
SPI通訊協(xié)議介紹_第2頁
SPI通訊協(xié)議介紹_第3頁
SPI通訊協(xié)議介紹_第4頁
SPI通訊協(xié)議介紹_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第第頁SPI通訊協(xié)議介紹SPIinterfacespi接口介紹SPI是由美國摩托羅拉公司推出的一種同步串行傳輸規(guī)范,常作為單片機(jī)外設(shè)芯片串行擴(kuò)展接口。SPI有4個(gè)引腳:SS(從器件選擇線)、SDO(串行數(shù)據(jù)輸出線)、SDI(串行數(shù)據(jù)輸入線)和SCK(同步串行時(shí)鐘線)。SPI可以用全雙工通信方式同時(shí)發(fā)送和接收8(16)位數(shù)據(jù),過程如下:主機(jī)啟動發(fā)送過程,送出時(shí)鐘脈沖信號,主移位寄存器的數(shù)據(jù)通過$口。移入到從移位寄存器,同時(shí)從移位寄存器中的數(shù)據(jù)通過SDI移人到主移位寄存器中。8(16)個(gè)時(shí)鐘脈沖過后,時(shí)鐘停頓,主移位寄存器中的8(16)位數(shù)據(jù)全部移人到從移位寄存器中,隨即又被自動裝入從接收緩沖器中,從機(jī)接收緩沖器滿標(biāo)志位(BF)和中斷標(biāo)志位(SSPIF)置“1”。同理,從移位寄存器中的8位數(shù)據(jù)全部移入到主寄存器中,隨即又被自動裝入到主接收緩沖器中.主接收緩沖器滿標(biāo)志位(BF)和中斷標(biāo)志位(SSPIF)置“1"。主CPU檢測到主接收緩沖器的滿標(biāo)志位或者中斷標(biāo)志位置1后,就可以讀取接收緩沖器中的數(shù)據(jù)。同樣,從CPU檢測到從接收緩沖器滿標(biāo)志位或中斷標(biāo)志位置1后,就可以讀取接收緩沖器中的數(shù)據(jù),這樣就完成了一次相互通信過程。這里設(shè)置dsPIC30F6014為主控制器,ISD4002為從器件,通過SPI口完成通信控制的過程。spi總線協(xié)議《SPI是一個(gè)環(huán)形總線結(jié)構(gòu),由ss(CS)、sck、sdi、sdo構(gòu)成,其時(shí)序其實(shí)很簡單,主要是在sck的控制下,兩個(gè)雙向移位寄存器進(jìn)行數(shù)據(jù)交換。假設(shè)下面的8位寄存器裝的是待發(fā)送的數(shù)據(jù)10101010,上升沿發(fā)送、下降沿接收、高位先發(fā)送。那么第一個(gè)上升沿來的時(shí)候數(shù)據(jù)將會是sdo=1;寄存器=0101010x。下降沿到來的時(shí)候,sdi上的電平將所存到寄存器中去,那么這時(shí)寄存器=0101010sdi,這樣在8個(gè)時(shí)鐘脈沖以后,兩個(gè)寄存器的內(nèi)容互相交換一次。這樣就完成里一個(gè)spi時(shí)序。例子:假設(shè)主機(jī)和從機(jī)初始化就緒:并且主機(jī)的sbuff=0xaa,從機(jī)的sbuff=0x55,下面將分步對spi的8個(gè)時(shí)鐘周期的數(shù)據(jù)情況演示一遍:假設(shè)上升沿發(fā)送數(shù)據(jù)

脈沖主機(jī)sbuff從機(jī)sbuffsdisdo01010101001010101001上0101010X1010101X011下0101010010101011012上1010100X0101011X102下1010100101010110103上0101001X1010110X013下0101001010101101014上1010010X0101101X104下1010010101011010105上0100101X1011010X015下0100101010110101016上1001010X0110101X106下1001010101101010107上0010101X1101010X017下0010101011010101018上0101010X1010101X108下010101011010101010這樣就完成了兩個(gè)寄存器8位的交換,上面的上表示上升沿、下表示下降沿,sdi、sdo相對于主機(jī)而言的。其中ss引腳作為主機(jī)的時(shí)候,從機(jī)可以把它拉底被動選為從機(jī),作為從機(jī)的是時(shí)候,可以作為片選腳用。根據(jù)以上分析,一個(gè)完整的傳送周期是16位,即兩個(gè)字節(jié),因?yàn)?,首先主機(jī)要發(fā)送命令過去,然后從機(jī)根據(jù)主機(jī)的名準(zhǔn)備數(shù)據(jù),主機(jī)在下一個(gè)8位時(shí)鐘周期才把數(shù)據(jù)讀回來SPI總線是Motorola公司推出的三線同步接口,同步串行3線方式進(jìn)行通信:一條時(shí)鐘線SCK,一條數(shù)據(jù)輸入線MOSI,一條數(shù)據(jù)輸出線MISO;用于CPU與各種外圍器件進(jìn)行全雙工、同步串行通訊。SPI主要特點(diǎn)有:可以同時(shí)發(fā)出和接收串行數(shù)據(jù);可以當(dāng)作主機(jī)或從機(jī)工作;提供頻率可編程時(shí)鐘;發(fā)送結(jié)束中斷標(biāo)志;寫沖突保護(hù);總線競爭保護(hù)等。圖3示出SPI總線工作的四種方式,其中使用的最為廣泛的是SPI0和SPI3方式(實(shí)線表示):輸入1制I圖2SPI總線四種工作方式SPI總線接口及時(shí)序spi模塊為了和外設(shè)進(jìn)行數(shù)據(jù)交換,根據(jù)外設(shè)工作要求,其輸出串行同步時(shí)鐘極性和相位可以進(jìn)行配置,時(shí)鐘極性(CPOL)對傳輸協(xié)議沒有重大的影響。如果CPOL=O,串行同步時(shí)鐘的空閑狀態(tài)為低電平;如果CPOL=1,串行同步時(shí)鐘的空閑狀態(tài)為高電平。時(shí)鐘相位(CPHA)能夠配置用于選擇兩種不同的傳輸協(xié)議之一進(jìn)行數(shù)據(jù)傳輸。如果CPHA=O,在串行同步時(shí)鐘的第一個(gè)跳變沿(上升或下降)數(shù)據(jù)被采樣;如果CPHA=1,在串行同步時(shí)鐘的第二個(gè)跳變沿(上升或下降)數(shù)據(jù)被采樣。SPI主模塊和與之通信的外設(shè)音時(shí)鐘相位和極性應(yīng)該一致。SPI總線接口時(shí)序如圖所示。SPI功能模塊的設(shè)計(jì)根據(jù)功能定義及SPI的工作原理,將整個(gè)IPCore分為8個(gè)子模塊:UC接口模塊、時(shí)鐘分頻模塊、發(fā)送數(shù)據(jù)FIFO模塊、接收數(shù)據(jù)FIFO模塊、狀態(tài)機(jī)模塊、發(fā)送數(shù)據(jù)邏輯模塊、接收數(shù)據(jù)邏輯模塊以及中斷形式模塊。深入分析SPI的四種傳輸協(xié)議可以發(fā)現(xiàn),根據(jù)一種協(xié)議,只要對串行同步時(shí)鐘進(jìn)行轉(zhuǎn)換,就能得到其余的三種協(xié)議。為了簡化設(shè)計(jì)規(guī)定,如果要連續(xù)傳輸多個(gè)數(shù)據(jù),在兩個(gè)數(shù)據(jù)傳輸之間插入一個(gè)串行時(shí)鐘的空閑等待,這樣狀態(tài)機(jī)只需兩種狀態(tài)(空閑和工作)就能正確工作。SPI協(xié)議簡介二SPI,是英語SerialPeripheralinterface的縮寫,顧名思義就是串行外圍設(shè)備接口。SPI,是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,同時(shí)為PCB的布局上節(jié)省空間,提供方便,正是出于這種簡單易用的特性,現(xiàn)在越來越多的芯片集成了這種通信協(xié)議,比如P89LPC900.2SPI,是一種高速的,全雙工,同步的通信總線,其工作模式有兩種:主模式和從模式,無論那種模式,都支持3Mbit/s的速率,并且還具有傳輸完成標(biāo)志和寫沖突保護(hù)標(biāo)志。到目前為止,我使用過的具有SPI總線的器件,就是存儲芯片Eprom:at25128,在使用過程中,發(fā)現(xiàn)的確是有這種總線的優(yōu)點(diǎn)。下面以P89LPC900單片機(jī)的SPI總線來解釋SPI總線的通用使用規(guī)則。LPC900單片機(jī)的SPI接口主要由4個(gè)引腳構(gòu)成:SPICLK、MOSI、MISO及/SS,其中SPICLK是整個(gè)SPI總線的公用時(shí)鐘,MOSI、MISO作為主機(jī),從機(jī)的輸入輸出的標(biāo)志,MOSI是主機(jī)的輸出,從機(jī)的輸入,MISO是主機(jī)的輸入,從機(jī)的輸出。/SS是從機(jī)的標(biāo)志管腳,在互相通信的兩個(gè)SPI總線的器件,/SS管腳的電平低的是從機(jī),相反/SS管腳的電平高的是主機(jī)。在一個(gè)SPI通信系統(tǒng)中,必須有主機(jī)。SPI總線可以配置成單主單從,單主多從,互為主從。今以互為主從模式作為講解:要進(jìn)行SPI互為主從操作,必須遵照以下步驟:1對A、B進(jìn)行初始化,均設(shè)為主機(jī)(需要進(jìn)行以下操作)。SPI端口初始化為準(zhǔn)雙向。SPCTL配置為0x50,SSIG=0,SPEN=1,MSTR=1。c)清除SPSTAT中的SPIF及WCOL標(biāo)志位為0。d)如果需要使用SPI中斷,可使能相應(yīng)中斷位。A上一個(gè)引腳連接到B的/SS引腳上,然后拉低/SS,可將B強(qiáng)行置為從機(jī)模式,同時(shí)B機(jī)會發(fā)生以下變化:B機(jī)的MSTR位自動清0。B機(jī)的MOSI及SPICLK強(qiáng)行變?yōu)檩斎肽J剑琈ISO則變?yōu)檩敵瞿J?。B機(jī)SPIF位置位。d)如果SPI中斷使能,B機(jī)將執(zhí)行SPI中斷服務(wù)程序。B機(jī)可設(shè)置為查詢接收或中斷接收方式,以時(shí)刻準(zhǔn)備接收由A機(jī)發(fā)送過來的數(shù)據(jù),要使B機(jī)恢復(fù)為主機(jī),必須完整執(zhí)行步驟1。本示例中,通過兩塊DP932實(shí)驗(yàn)板構(gòu)成了SPI互為主從測試系統(tǒng)。程序中應(yīng)注意的問題:1程序中應(yīng)注意對首次拉低SS引腳進(jìn)行處理:當(dāng)A機(jī)首次通過B_SS將B機(jī)設(shè)置為從機(jī)后,從機(jī)的SBIF位會置位(會被認(rèn)為完成一次傳輸),如果這之前,使能了SPI中斷,則從機(jī)則會執(zhí)行相應(yīng)的中斷服務(wù)程序(本示例程序中,當(dāng)B機(jī)的SS引腳被拉為低電平,B機(jī)的SBIF首次置位進(jìn)行處理)。2關(guān)于從機(jī)恢復(fù)為主機(jī)的問題:互為主從模式中,當(dāng)B機(jī)被A機(jī)設(shè)置為從機(jī)后,CPCTL寄存器中MSTR位被清除為0,且SPIF被置1,MOSI和SPICLK強(qiáng)制變?yōu)檩斎肽J?,MISO強(qiáng)制變?yōu)檩敵瞿J健R牖謴?fù)為主機(jī),必須執(zhí)行以下操作:a)將MSTR位置1,SPIF位清0。b)將MOSI,SPICLK,MISO及SS重新恢復(fù)為準(zhǔn)雙向口。c)在a)、b)之前,需要注意將B_SS拉高,如果其一直為低電平,即使完成a)、b)操作,也會將B機(jī)重新設(shè)置為從機(jī)。3在SPI總線的使用過程中,可以通過DORD(SPI數(shù)據(jù)順序選擇位),CPOL(SPI時(shí)鐘極性選擇位),CPHA(SPI時(shí)鐘相位選擇位)控制主

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論