spi匯流排是motorola公司推出的三線同步介面,同步序列3線方式進行通訊:一條時鐘線sck,一條資料輸入線mosi,一條資料輸出線miso;用於 cpu與各種外圍器件進行全雙工、同步序列通訊。spi主要特點有:可以同時發出和接收序列資料;可以當作主機或從機工作;提供頻率可程式設計時鐘;傳送結束中斷標誌;寫衝突保護;匯流排競爭保護等。
spi匯流排有四種工作方式(sp0, sp1, sp2, sp3),其中使用的最為廣泛的是spi0和spi3方式。spi模組為了和外設進行資料交換,根據外設工作要求,其輸出序列同步時鐘極性和相位可以進行配置,時鐘極性(cpol)對傳輸協議沒有重大的影響。
如果cpol=0,序列同步時鐘的空閒狀態為低電平;
如果cpol=1,序列同步時鐘的空閒狀態為高電平。
時鐘相位(cpha)能夠配置用於選擇兩種不同的傳輸協議之一進行資料傳輸。
如果 cpha=0,在序列同步時鐘的第乙個跳變沿(上公升或下降)資料被取樣;
如果cpha=1,在序列同步時鐘的第二個跳變沿(上公升或下降)資料被取樣。
spi主模組和與之通訊的外設音時鐘相位和極性應該一致。
spi時序詳解---spi介面在模式0下輸出第一位資料的時刻spi介面有四種不同的資料傳輸時序,取決於cpol和cphl這兩位的組合。圖1中表現了這四種時序,時序與cpol、cphl的關係也可以從圖中看出。
圖1cpol是用來決定sck時鐘訊號空閒時的電平,cpol=0,空閒電平為低電平,cpol=1時,空閒電平為高電平。cpha是用來決定取樣時刻的,cpha=0,在每個週期的第乙個時鐘沿取樣,cpha=1,在每個週期的第二個時鐘沿取樣。由於我使用的器件工作在模式0這種時序(cpol=0,cpha=0),所以將圖1簡化為圖2,只關注模式0的時序。
我們來關注sck的第乙個時鐘週期,在時鐘的前沿取樣資料(上公升沿,第乙個時鐘沿),在時鐘的後沿輸出資料(下降沿,第二個時鐘沿)。首先來看主器件,主器件的輸出口(mosi)輸出的資料bit1,在時鐘的前沿被從器件取樣,那主器件是在何時刻輸出bit1的呢?bit1的輸出時刻實際上在sck訊號有效以前,比sck的上公升沿還要早半個時鐘週期。bit1的輸出時刻與ssel訊號沒有關係。再來看從器件,主器件的輸入口miso同樣是在時鐘的前沿取樣從器件輸出的bit1的,那從器件又是在何時刻輸出bit1的呢。從器件是在ssel訊號有效後,立即輸出bit1,儘管此時sck訊號還沒有起效。
從這張圖就可以很清楚的看出主從器件的bit1是怎樣輸出的
SPI匯流排協議
spi是乙個環形匯流排結構 由ss cs sck sdi sdo構成,其時序其實很簡單,主要是在sck的控制下,兩個雙向移位暫存器進行資料交換。假設下面的8位暫存器裝的是待傳送的資料10101010,上公升沿傳送 下降沿接收 高位先傳送。那麼第乙個上公升沿來的時候 資料將會是sdo 1 暫存器 01...
SPI匯流排介面
序列外圍裝置介面spi serial peripheral inte ce 匯流排技術是motorola公司推出的一種同步序列介面,motorola公司生產的絕大多數mcu 微控制器 都配有spi硬體介面,如68系列mcu。spi 用於cpu與各種外圍器件進行全雙工 同步序列通訊。spi可以同時發出...
SPI匯流排協議
spi serial peripheral inte ce 序列外圍裝置介面,是一種高速的,全雙工,同步的通訊匯流排,在晶元的管腳上占用四根線。spi是乙個環形匯流排結構,由cs,sck,sdi,sdo構成,其時序其實很簡單,主要是在sck的控制下,兩個雙向移位暫存器進行資料交換。上公升沿傳送 下降...