ob体育竞彩 _欧宝体育在线链接 學習網站

spi協議時序圖_spi協議特點_spi協議詳解

時間:2017-06-25 07:36 來源:ob体育竞彩

spi協議時序圖_spi協議特點_spi協議詳解
SPI是一個環形總線結構,由ss(cs)、sck、sdi、sdo構成,其時序其實很簡單,主要是在sck的控製下,兩個雙向移位寄存器進行數據交換。
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接口在模式0下輸出第一位數據的時刻,SPI接口有四種不同的數據傳輸時序,取決於CPOL和CPHL這兩位的組合。圖1中表現了這四種時序,時序與CPOL、CPHL的關係也可以從圖中看出。

圖1
CPOL是用來決定SCK時鍾信號空閑時的電平,CPOL=0,空閑電平為低電平,CPOL=1時,空閑電平為高電平。CPHA是用來決定采樣時刻的,CPHA=0,在每個周期的第一個時鍾沿采樣,CPHA=1,在每個周期的第二個時鍾沿采樣。
由於我使用的器件工作在模式0這種時序(CPOL=0,CPHA=0),所以將圖1簡化為圖2,隻關注模式0的時序。

圖2
我們來關注SCK的第一個時鍾周期,在時鍾的前沿采樣數據(上升沿,第一個時鍾沿),在時鍾的後沿輸出數據(下降沿,第二個時鍾沿)。首先來看主器件,主器件的輸出口(MOSI)輸出的數據bit1,在時鍾的前沿被從器件采樣,那主器件是在何時刻輸出bit1的呢?bit1的輸出時刻實際上在SCK信號有效以前,比 SCK的上升沿還要早半個時鍾周期。bit1的輸出時刻與SSEL信號沒有關係。再來看從器件,主器件的輸入口MISO同樣是在時鍾的前沿采樣從器件輸出的bit1的,那從器件又是在何時刻輸出bit1的呢。從器件是在SSEL信號有效後,立即輸出bit1,盡管此時SCK信號還沒有起效。關於上麵的主器件和從器件輸出bit1位的時刻,可以從圖3、4中得到驗證。

圖3
注意圖3中,CS信號有效後(低電平有效,注意CS下降沿後發生的情況),故意用延時程序延時了一段時間,之後再向數據寄存器寫入了要發送的數據,來觀察主器件輸出bit1的情況(MOSI)。可以看出,bit1(值為1)是在SCK信號有效之前的半個時鍾周期的時刻開始輸出的(與CS信號無關),到了SCK的第一個時鍾周期的上升沿正好被從器件采樣。

圖4
圖4中,注意看CS和MISO信號。我們可以看出,CS信號有效後,從器件立刻輸出了bit1(值為1)。通常我們進行的spi操作都是16位的。圖5記錄了第一個字節和第二個字節間的相互銜接的過程。第一個字節的最後一位在SCK的上升沿被采樣,隨後的SCK下降沿,從器件就輸出了第二個字節的第一位。

圖5

    看過《spi協議時序圖_spi協議特點_spi協議詳解》的人還看了以下文章
    初學單片機從51入門的好處 初學單片機從51入門的好處
    51單片機是一款已經出現很久的單片機,它的出現可以說是劃時代的。同時期出現的其它單片機都已經逐漸退出曆史的舞台,而它卻依舊出現在某些專業的教材上。從這點來看,它依舊有其學習的意義。下麵說說初學單片機從51入門的好處。 51單片機的學習資源非常多...
    如何使用C語言控製硬件 如何使用C語言控製硬件
    C語言的應用編程在單片機的領域占了很大一部分,使用的比較多的51單片機和STM32單片機都可以使用MDK軟件編寫固件。 單片機燒寫了固件後可以點亮LED燈,可以驅動ADC檢測電壓,也可以驅動蜂鳴器發聲,這就是簡單地控製硬件。稍微複雜一點的,可以驅動NRF2401進...
    c語言怎麼讀取一個變量的二進製文件內容 c語言怎麼讀取一個變量的二進製文件內容
    C語言是一種高級語言,很多設置都為了符合我們程序員的理解做了相應的調整。機器對於變量的理解是基於電路,也就是所謂的高低電平。也是因為這個出現了一個二進製。 而人類的計數更喜歡使用十進製,有專家說是因為是人類當初計數使用的手指,這樣十進製比較...
    單片機為啥叫單片機 單片機為啥叫單片機
    1、MCU 我一般在工作計劃和原理圖的說明上,就直接將STM32或者STC89的單片機,標注為MCU。 無論是理解為Micro CPU,還是Microcontroller Unit,我認為都行,也沒有仔細去區分去過。自從32位單片機出來後,一些單片機設計的係統確實是具備部分電腦的功能。 你...
    16位單片機低端打不過8位高端打不過32位怎麼看 16位單片機低端打不過8位高端打不過32位怎
    有時間去了解一下TI的MPS係列的單片機,它的低功耗和8位的51還有32位的STM32還是有一定的區別度的。 就比如MSP430係列,一些醫療的應用也少不了它,其各種低功耗的應用和例子一抓一大把。 也許從價格上來說,感覺,8位的便宜好買;從性能上來說,感覺,32位的...
    Baidu
    map