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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

  • 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

提交評論