SPI時(shí)序分析和基礎(chǔ)知識(shí)總結(jié)_第1頁
SPI時(shí)序分析和基礎(chǔ)知識(shí)總結(jié)_第2頁
SPI時(shí)序分析和基礎(chǔ)知識(shí)總結(jié)_第3頁
SPI時(shí)序分析和基礎(chǔ)知識(shí)總結(jié)_第4頁
SPI時(shí)序分析和基礎(chǔ)知識(shí)總結(jié)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、SPI時(shí)序分析和基礎(chǔ)知識(shí)總結(jié)時(shí)序分析和基礎(chǔ)知識(shí)總結(jié)一、一、SPI總線的歷史總線的歷史二、二、SPI總線接口定義總線接口定義三、三、SPI總線的工作方式和傳輸時(shí)序總線的工作方式和傳輸時(shí)序四、四、SPI與與I2C的異同點(diǎn)的異同點(diǎn)五、五、SPI總線的優(yōu)缺點(diǎn)總線的優(yōu)缺點(diǎn)八、關(guān)于八、關(guān)于QSPI六、六、SPI總線的設(shè)置總線的設(shè)置七、七、SPI與與SD卡信號(hào)卡信號(hào) SPI ( Serial Peripheral Interface )串行外設(shè)接口總線,最早由Motorola提出,出現(xiàn)在其M68系列單片機(jī)中,由于其簡單實(shí)用,又不牽涉到專利問題,因此許多廠家的設(shè)備都支持該接口,廣泛應(yīng)用于外設(shè)控制領(lǐng)域。 SPI

2、接口是一種事實(shí)標(biāo)準(zhǔn),并沒有標(biāo)準(zhǔn)協(xié)議,大部分廠家都是參照Motorola的SPI接口定義來設(shè)計(jì)的。但正因?yàn)闆]有確切的版本協(xié)議,不同家產(chǎn)品的SPI接口在技術(shù)上存在一定的差別,容易引起歧義,有的甚至無法直接互連(需要軟件進(jìn)行必要的修改)。 SPI接口經(jīng)常被稱為4線串行總線,以主/從方式工作,數(shù)據(jù)傳輸過程由主機(jī)初始化。如圖1所示,其使用的4條信號(hào)線分別為: 1) SCLK:串行時(shí)鐘,用來同步數(shù)據(jù)傳輸,由主機(jī)輸出; 2) MOSI:When master, out line; when slave, in line。主機(jī)輸出從機(jī)輸入數(shù)據(jù)線; 3) MISO:When master, in line; w

3、hen slave, out line。主機(jī)輸入從機(jī)輸出數(shù)據(jù)線; 比如MOSI,該線上數(shù)據(jù)一定是Master流向Slave的。因此在電路板上,Master的MOSI引腳應(yīng)與Slave的MOSI引腳連接在一起。雙方的MISO也應(yīng)該連在一起,而不是一方的MOSI連接另一方的MISO。 Motorola的經(jīng)典命名是MOSI和MISO,這是站在信號(hào)線的角度來命名的。 不過,也有一些產(chǎn)家(比如Microchip)是按照類似SDI,SDO的方式來命名,這是站在器件的角度根據(jù)數(shù)據(jù)流向來定義的。 SDI:串行數(shù)據(jù)輸入 SDO:串行數(shù)據(jù)輸出 在這種情況下,當(dāng)Master與Slave連接時(shí),就應(yīng)該用一方的SDO連

4、接另一個(gè)方的SDI。 4) SS:Slave Select, 片選線,用于選擇激活某Slave設(shè)備,低有效,由Master驅(qū)動(dòng)輸出。只有當(dāng)SS-信號(hào)線為低電平時(shí),對(duì)應(yīng)Slave設(shè)備的SPI接口才處于工作狀態(tài)。 SPI接口采用主從模式(Master Slave)架構(gòu);支持多slave模式應(yīng)用,一般僅支持單Master。主機(jī)通過片選線來確定要通信的從機(jī)。這就要求從機(jī)的MISO口具有三態(tài)特性,使得該口線在器件未被選通時(shí)表現(xiàn)為高阻抗。 SPI的時(shí)鐘由Master控制,在時(shí)鐘移位脈沖下,數(shù)據(jù)按位傳輸,高位在前,低位在后(MSB first);SPI接口有2根單向數(shù)據(jù)線,為全雙工通信,目前應(yīng)用中的數(shù)據(jù)速率

5、可達(dá)幾Mbps的水平。 SPI也支持多Slave應(yīng)用。多個(gè)Slave共享時(shí)鐘線、數(shù)據(jù)線,可以直接并接在一起;而各Slave的片選線SS則單獨(dú)與Master連接,受Master控制。在一段時(shí)間內(nèi),Master只能通過某根SS線激活一個(gè)Slave,進(jìn)行數(shù)據(jù)傳輸,而此時(shí)其他Slave的時(shí)鐘線和數(shù)據(jù)線端口則都應(yīng)保持高阻狀態(tài),以免影響當(dāng)前數(shù)據(jù)傳輸?shù)倪M(jìn)行。一主多從的SPI傳輸模式SPI總線添加從器件:每個(gè)器件需要一個(gè)單獨(dú)的從選擇信號(hào)??傂盘?hào)數(shù)最終為總線添加從器件:每個(gè)器件需要一個(gè)單獨(dú)的從選擇信號(hào)。總信號(hào)數(shù)最終為 n+3 個(gè),其中個(gè),其中 n 是總線上從器件的數(shù)量。在是總線上從器件的數(shù)量。在 SPI 總線上

6、添加新的從器件也不方便。總線上添加新的從器件也不方便。對(duì)于額外添加的每個(gè)從器件,都需要一條新的從器件選擇線。對(duì)于額外添加的每個(gè)從器件,都需要一條新的從器件選擇線。 SPI接口在內(nèi)部硬件實(shí)際上是兩個(gè)簡單的移位寄存器,傳輸?shù)臄?shù)據(jù)為8位,在主器件產(chǎn)生的從器件使能信號(hào)和移位脈沖下,按位傳輸,高位在前,低位在后。如下圖所示,在SCLK的下降沿上數(shù)據(jù)改變,上升沿一位數(shù)據(jù)被存入移位寄存器。 在SPI操作中,最重要的兩項(xiàng)設(shè)置就是時(shí)鐘極性(CPOL或UCCKPL)和時(shí)鐘相位(CPHA或UCCKPH)。時(shí)鐘極性設(shè)置時(shí)鐘空閑時(shí)的電平,時(shí)鐘相位設(shè)置讀取數(shù)據(jù)和發(fā)送數(shù)據(jù)的時(shí)鐘沿。 主機(jī)和從機(jī)的發(fā)送數(shù)據(jù)是同時(shí)完成的,兩者的

7、接收數(shù)據(jù)也是同時(shí)完成的。所以為了保證主從機(jī)正確通信,應(yīng)使得它們的SPI具有相同的時(shí)鐘極性和時(shí)鐘相位。SPI總線有四種工作方式,其中使用的最為廣泛的是SPI0和SPI3方式(實(shí)線表示); 在主設(shè)備這邊配置SPI接口時(shí)鐘的時(shí)候一定要弄清楚從設(shè)備的時(shí)鐘要求,因?yàn)橹髟O(shè)備這邊的時(shí)鐘極性和相位都是以從設(shè)備為基準(zhǔn)的 。四種工作方式時(shí)序分別為:時(shí)序詳解時(shí)序詳解: CPOL:時(shí)鐘極性選擇,為0時(shí)SPI總線空閑為低電平,為1時(shí)SPI總線空閑為高電平 CPHA:時(shí)鐘相位選擇,為0時(shí)在SCK第一個(gè)跳變沿采樣,為1時(shí)在SCK第二個(gè)跳變沿采樣工作方式工作方式1: 當(dāng)CPHA=0、CPOL=0時(shí)SPI總線工作在方式1。MI

8、SO引腳上的數(shù)據(jù)在第一個(gè)SPSCK沿跳變之前已經(jīng)上線了,而為了保證正確傳輸,MOSI引腳的MSB位必須與SPSCK的第一個(gè)邊沿同步,在SPI傳輸過程中,首先將數(shù)據(jù)上線,然后在同步時(shí)鐘信號(hào)的上升沿時(shí),SPI的接收方捕捉位信號(hào),在時(shí)鐘信號(hào)的一個(gè)周期結(jié)束時(shí)(下降沿),下一位數(shù)據(jù)信號(hào)上線,再重復(fù)上述過程,直到一個(gè)字節(jié)的8位信號(hào)傳輸結(jié)束。工作方式工作方式2: 當(dāng)CPHA=0、CPOL=1時(shí)SPI總線工作在方式2。與前者唯一不同之處只是在同步時(shí)鐘信號(hào)的下降沿時(shí)捕捉位信號(hào),上升沿時(shí)下一位數(shù)據(jù)上線。工作方式工作方式3: 當(dāng)CPHA=1、CPOL=0時(shí)SPI總線工作在方式3。MISO引腳和MOSI引腳上的數(shù)據(jù)的

9、MSB位必須與SPSCK的第一個(gè)邊沿同步,在SPI傳輸過程中,在同步時(shí)鐘信號(hào)周期開始時(shí)(上升沿)數(shù)據(jù)上線,然后在同步時(shí)鐘信號(hào)的下降沿時(shí),SPI的接收方捕捉位信號(hào),在時(shí)鐘信號(hào)的一個(gè)周期結(jié)束時(shí)(上升沿),下一位數(shù)據(jù)信號(hào)上線,再重復(fù)上述過程,直到一個(gè)字節(jié)的8位信號(hào)傳輸結(jié)束。工作方式工作方式4: 當(dāng)CPHA=1、CPOL=1時(shí)SPI總線工作在方式4。與前者唯一不同之處只是在同步時(shí)鐘信號(hào)的上升沿時(shí)捕捉位信號(hào),下降沿時(shí)下一位數(shù)據(jù)上線。 在一個(gè)SPI時(shí)鐘周期內(nèi),會(huì)完成如下操作:1) 主機(jī)通過MOSI線發(fā)送1位數(shù)據(jù),從機(jī)通過該線讀取這1位數(shù)據(jù);2) 從機(jī)通過MISO線發(fā)送1位數(shù)據(jù),主機(jī)通過該線讀取這1位數(shù)據(jù)。

10、這是通過移位寄存器來實(shí)現(xiàn)的。如下圖所示,主機(jī)和從機(jī)各有一個(gè)移位寄存器,且二者連接成環(huán)。隨著時(shí)鐘脈沖,數(shù)據(jù)按位傳輸,高位在前,低位在后(MSB first),依次移出主機(jī)寄存器和從機(jī)寄存器,并且依次移入從機(jī)寄存器和主機(jī)寄存器。當(dāng)寄存器中的內(nèi)容全部移出時(shí),相當(dāng)于完成了兩個(gè)寄存器內(nèi)容的交換。 如果只是進(jìn)行寫操作,主機(jī)只需忽略收到的字節(jié);反過來,如果主機(jī)要讀取如果只是進(jìn)行寫操作,主機(jī)只需忽略收到的字節(jié);反過來,如果主機(jī)要讀取外設(shè)的一個(gè)字節(jié),就必須發(fā)送一個(gè)空字節(jié)來引發(fā)從機(jī)的傳輸外設(shè)的一個(gè)字節(jié),就必須發(fā)送一個(gè)空字節(jié)來引發(fā)從機(jī)的傳輸。另外:另外: SPI協(xié)議沒有定義尋址機(jī)制,需通過外部SS信號(hào)線選擇設(shè)備,當(dāng)

11、出現(xiàn)多slave應(yīng)用時(shí),需要多根SS信號(hào)線,實(shí)施起來較I2C要復(fù)雜。此外,SPI總線不支持總線控制權(quán)仲裁,故只能用在單Master的場(chǎng)合;而I2C可以支持多Master的應(yīng)用。 SPI 協(xié)議相對(duì)I2C要簡單,沒有握手機(jī)制,數(shù)據(jù)傳輸效率高,速率也更快,通常應(yīng)用中可達(dá)幾Mbps;此外SPI是全雙工通信,可同時(shí)發(fā)送和接收數(shù)據(jù),因此, SPI比較適合用于數(shù)據(jù)傳輸?shù)膱?chǎng)合。比如需要較大批量數(shù)據(jù)傳輸?shù)膱?chǎng)合(比如MMC/SD卡的數(shù)據(jù)傳輸就支持SPI模式),或者無需尋址傳輸?shù)膱?chǎng)合。 而I2C協(xié)議功能較豐富,但也相對(duì)復(fù)雜,多用在傳輸一些控制命令字等有意義數(shù)據(jù)的場(chǎng)合。 SPI接口屬于一種非?;镜耐庠O(shè)接口,但是應(yīng)用

12、卻很廣泛。SPI也有所發(fā)展,比兔NS推出的SPI的精簡接口Microwire,滿足通常外設(shè)的擴(kuò)展需求。Motorola還推出了擴(kuò)展功能的QSPI(Queued SPI)接口,應(yīng)用更為廣泛。SPI接口具有如下優(yōu)點(diǎn): 1) 支持全雙工操作; 2) 操作簡單; 3) 數(shù)據(jù)傳輸速率較高; 4) 提供頻率可編程時(shí)鐘 同時(shí),它也具有如下缺點(diǎn): 1) 需要占用主機(jī)較多的口線(每個(gè)從機(jī)都需要一根片選線); 2) 只支持單個(gè)主機(jī)。 3) 沒有指定的流控制,沒有應(yīng)答機(jī)制確認(rèn)是否接收到數(shù)據(jù)。 除了時(shí)鐘相位CPHA和時(shí)鐘極性CPOL外,在SPI總線進(jìn)行通信時(shí),還有其他需要設(shè)置的參數(shù),如SPR-狀態(tài)控制寄存器。 在從器

13、件時(shí)鐘頻率小于主器件時(shí)鐘頻率時(shí),如果SCK的速率設(shè)得太快,將導(dǎo)致接收到的數(shù)據(jù)不正確(SPI接口本身難以判斷收到的數(shù)據(jù)是否正確,要在軟件中處理)。整個(gè)系統(tǒng)的速度受三個(gè)因素影響:主器件時(shí)鐘CLK主、從器件時(shí)鐘CLK從和同步串行時(shí)鐘SCK,其中SCK是對(duì)CLK主的分頻, CLK從和CLK主是異步的。要使SCK無差錯(cuò)無遺漏地被從器件所檢測(cè)到,從器件的時(shí)鐘CLK從必須要足夠快。下面以SCK設(shè)置為CLK主的4分頻的波形為例,分析同步串行時(shí)鐘、主時(shí)鐘和從時(shí)鐘之間的關(guān)系。圖1主從時(shí)鐘和SCK的關(guān)系 如圖1所示,當(dāng)T從Tsck/2,即T從2T主時(shí),無論主時(shí)鐘和從時(shí)鐘之間的相位關(guān)系如何,在從器件CLK從的上升沿必

14、然能夠檢測(cè)到SCK的低電平,即SCK0的范圍內(nèi)至少包含一個(gè)CLK從的上升沿。 圖2中,當(dāng)T從TSCK/22T主時(shí),在從時(shí)鐘的兩個(gè)上升沿都檢測(cè)不到SCK的低電平,這樣從器件就會(huì)漏掉一個(gè)SCK。在某些相位條件下,即使CLK從僥幸能檢測(cè)到SCK的低電平,也不能保證可以繼續(xù)檢測(cè)到下一個(gè)SCK。只要遺漏了一個(gè)SCK,就相當(dāng)于串行數(shù)據(jù)漏掉了一個(gè)位,后面繼續(xù)接收/發(fā)送的數(shù)據(jù)就都是錯(cuò)誤的了。圖2主從時(shí)鐘和SCK的關(guān)系 根據(jù)以上的分析,SPR和主從時(shí)鐘比的關(guān)系如表1所列。 在發(fā)送數(shù)據(jù)之前按照表1對(duì)SPR進(jìn)行設(shè)置,SPR設(shè)定錯(cuò)誤可以完全避免。表1 SPR的設(shè)置和主從時(shí)鐘周期比值之間的關(guān)系 在SPI協(xié)議的基礎(chǔ)上,M

15、otorola公司對(duì)其功能進(jìn)行了增強(qiáng),增加了隊(duì)列傳輸機(jī)制,推出了QSPI,就是通常所謂的 Queue Serial peripheral interface ,隊(duì)列串行外設(shè)接口。是對(duì)Motorola公司推出的SPI接口的擴(kuò)展,比SPI應(yīng)用更加廣泛。 由于SPl只有1個(gè)8位的發(fā)送數(shù)據(jù)寄存器,所以CPU每次最多只能準(zhǔn)備一個(gè)字節(jié)的待發(fā)送數(shù)據(jù)。而QSPI擁有具有16個(gè)QSPI傳輸控制組的傳輸隊(duì)列,所以CPU每次最多可以準(zhǔn)備16個(gè)待傳輸?shù)臄?shù)據(jù),并且可以通過命令RAM設(shè)置每個(gè)待傳輸數(shù)據(jù)的長度。 與SPI相比,QSPI結(jié)構(gòu)最大的特點(diǎn)是以80字節(jié)的RAM取代了SPI的發(fā)送和接收數(shù)據(jù)寄存器。80字節(jié)的RAM分成

16、3部分:16字的發(fā)送RAM,16字的接收RAM和16字節(jié)的命令RAM。這3部分形成了具有16個(gè)QSPI傳輸控制組的傳輸隊(duì)列,每個(gè)QSPI傳輸控制組由1個(gè)命令RAM、1個(gè)發(fā)送RAM和1個(gè)接收RAM組成。每個(gè)QSPI傳輸?shù)臄?shù)據(jù)長度、片選等信息可由該QSPI傳輸控制組的命令RAM單獨(dú)決定。在QSPI模塊的QWR寄存器中,NEWQP和ENDQP域分別決定了傳輸隊(duì)列的起始點(diǎn)和結(jié)束點(diǎn)。起始點(diǎn)和結(jié)束點(diǎn)可以是16個(gè)QSPI傳輸控制組的任意一個(gè)。當(dāng)QSPI傳輸啟動(dòng)時(shí),QSPI模塊將從起始點(diǎn)開始依次發(fā)送準(zhǔn)備好的數(shù)據(jù)直到結(jié)束點(diǎn),整個(gè)過程無需CPU干預(yù)。典型的QSPI傳輸流程如圖2所示,其中QP為傳輸隊(duì)列指針,指向即將傳輸?shù)臄?shù)據(jù)。 QSPI模塊具有7個(gè)引腳:QSPI_DIN為串行數(shù)據(jù)輸入引腳;QSPI_DOU

溫馨提示

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

評(píng)論

0/150

提交評(píng)論