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

下載本文檔

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

文檔簡介

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

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

溫馨提示

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

評論

0/150

提交評論