串行外設接口(SPI)總線(xiàn)時(shí)序詳解
SPI,是一種高速的,全雙工,同步的通信總線(xiàn),并且在芯片的管腳上只占用四根線(xiàn),節約了芯片的管腳,同時(shí)為PCB的布局上節省空間,提供方便,正是出于這種簡(jiǎn)單易用的特性,現在越來(lái)越多的芯片集成了這種通信協(xié)議。SPI是一個(gè)環(huán)形總線(xiàn)結構,由ss(cs)、sck、sdi、sdo構成,其時(shí)序其實(shí)很簡(jiǎn)單,主要是在sck的控制下,兩個(gè)雙向移位寄存器進(jìn)行數據交換。
本文引用地址:http://dyxdggzs.com/article/201609/303467.htmSPI總線(xiàn)是Motorola公司推出的三線(xiàn)同步接口,同步串行3線(xiàn)方式進(jìn)行通信:一條時(shí)鐘線(xiàn)SCK,一條數據輸入線(xiàn)MOSI,一條數據輸出線(xiàn) MISO;用于 CPU與各種外圍器件進(jìn)行全雙工、同步串行通訊。SPI主要特點(diǎn)有:可以同時(shí)發(fā)出和接收串行數據;可以當作主機或從機工作;提供頻率可編程時(shí)鐘;發(fā)送結束中斷標志;寫(xiě)沖突保護;總線(xiàn)競爭保護等。
SPI總線(xiàn)有四種工作方式(SP0, SP1, SP2, SP3),其中使用的最為廣泛的是SPI0和SPI3方式。SPI模塊為了和外設進(jìn)行數據交換,根據外設工作要求,其輸出串行同步時(shí)鐘極性和相位可以進(jìn)行配置,時(shí)鐘極性(CPOL)對傳輸協(xié)議沒(méi)有重大的影響。如果CPOL=0,串行同步時(shí)鐘的空閑狀態(tài)為低電平;如果CPOL=1,串行同步時(shí)鐘的空閑狀態(tài)為高電平。時(shí)鐘相位(CPHA)能夠配置用于選擇兩種不同的傳輸協(xié)議之一進(jìn)行數據傳輸。如果 CPHA=0,在串行同步時(shí)鐘的第一個(gè)跳變沿(上升或下降)數據被采樣;如果CPHA=1,在串行同步時(shí)鐘的第二個(gè)跳變沿(上升或下降)數據被采樣。
SPI主模塊和與之通信的外設音時(shí)鐘相位和極性應該一致。
SPI時(shí)序詳解---SPI接口在模式0下輸出第一位數據的時(shí)刻SPI接口有四種不同的數據傳輸時(shí)序,取決于CPOL和CPHL這兩位的組合。圖1中表現了這四種時(shí)序,時(shí)序與CPOL、CPHL的關(guān)系也可以從圖中看出。

圖1
CPOL是用來(lái)決定SCK時(shí)鐘信號空閑時(shí)的電平,CPOL=0,空閑電平為低電平,CPOL=1時(shí),空閑電平為高電平。CPHA是用來(lái)決定采樣時(shí)刻的,CPHA=0,在每個(gè)周期的第一個(gè)時(shí)鐘沿采樣,CPHA=1,在每個(gè)周期的第二個(gè)時(shí)鐘沿采樣。由于我使用的器件工作在模式0這種時(shí)序(CPOL=0,CPHA=0),所以將圖1簡(jiǎn)化為圖2,只關(guān)注模式0的時(shí)序。

圖2
我們來(lái)關(guān)注SCK的第一個(gè)時(shí)鐘周期,在時(shí)鐘的前沿采樣數據(上升沿,第一個(gè)時(shí)鐘沿),在時(shí)鐘的后沿輸出數據(下降沿,第二個(gè)時(shí)鐘沿)。首先來(lái)看主器件,主器件的輸出口(MOSI)輸出的數據bit1,在時(shí)鐘的前沿被從器件采樣,那主器件是在何時(shí)刻輸出bit1的呢?bit1的輸出時(shí)刻實(shí)際上在 SCK信號有效以前,比SCK的上升沿還要早半個(gè)時(shí)鐘周期。bit1的輸出時(shí)刻與SSEL信號沒(méi)有關(guān)系。再來(lái)看從器件,主器件的輸入口MISO同樣是在時(shí)鐘的前沿采樣從器件輸出的bit1的,那從器件又是在何時(shí)刻輸出bit1的呢。從器件是在SSEL信號有效后,立即輸出bit1,盡管此時(shí)SCK信號還沒(méi)有起效。

從這張圖就可以很清楚的看出主從器件的bit1是怎樣輸出的。
評論