SPI協(xié)議是由摩托羅拉公司提出的通訊協(xié)議,中文名即為串行外設接口。這是一種全雙工的高速通訊總線,可支持同時輸入輸出。 通訊引腳 SPI使用3條通訊總線和1條片選線。 MOSI:Master Output Slave Input,顧名思義,即主設備輸出/從設備輸入。數(shù)據(jù)從主機輸出到從機,主機發(fā)送數(shù)據(jù)。 MISO:Master Iutput Slave Onput,主設備輸入/從設備輸出,數(shù)據(jù)由從機輸出到主機,主機接收數(shù)據(jù)。 SCK:即時鐘信號線,用于通訊同步。該信號由主機產(chǎn)生,其支持的最高通訊速率為FPClk/2,即所掛載總線速率的一半。如SPI2掛載在APB1總線上,則其最高速率為36MHz / 2 = 18MHz。類似木桶效應,兩個設備之間通訊時,通訊速率受限于較低速的設備。 NSS:即片選信號線,用于選擇通訊的從設備,也可用CS表示。每個從設備都有一條獨立的NSS信號線,主機通過將某個設備的NSS線置低電平來選擇與之通訊的從設備。所以SPI通訊以NSS線電平置低為起始信號,以NSS線電平被拉高為停止信號。 起始、停止信號 ![]() 圖16-1 如上圖,編號1和6即為起始和停止信號的發(fā)生區(qū)域。NSS電平由高變低,則產(chǎn)生起始信號;NSS電平由低變高,則產(chǎn)生停止信號。從機檢測到自己的NSS線電平被置低,則開始與主機進行通訊;反之,檢測到NSS電平被拉高,則停止通訊。 數(shù)據(jù)有效性 MOSI和MISO線在SCK的每個時鐘周期傳輸一位數(shù)據(jù),開發(fā)者可以自行設置MSB或LSB先行,不過需要保證兩個通訊設備都使用同樣的協(xié)定。從圖16-1看到,在SCK的上升沿和下降沿時進行觸發(fā)和采樣。 SPI有四種通訊模式,在SCK上升沿觸發(fā),下降沿采樣只是其中一種模式。四種模式的主要區(qū)別便是總線空閑時SCK的狀態(tài)及數(shù)據(jù)采樣時刻。這涉及到“時鐘極性CPOL”和“時鐘相位CPHA”,由CPOL和CPHA的組合而產(chǎn)生了四種的通訊模式。 CPOL、CPHA CPOL:即在沒有數(shù)據(jù)傳輸時,時鐘的空閑狀態(tài)的電平。 CPHA:即數(shù)據(jù)的采樣時刻。 ![]() 圖16-2 SPI_CR1寄存器的CPOL和CPHA位組合配置成四種時序關系,即四種通訊模式。 如圖16-2所示,如果CPOL被清0,則SCK在空閑狀態(tài)保持低電平,反之被置1則保持高電平;如果CPHA位被清0,則在SCK每個時鐘周期的第1個邊沿(奇數(shù)邊沿)進行數(shù)據(jù)位采樣,反之被置1則在SCK每個時鐘周期的第2個邊沿(偶數(shù)邊沿)采樣。 如下表所示的四種SPI通訊模式。 ![]() 有一點需要注意的是,主機和從機需要工作在相同的模式下才能正常通訊。 最后提供一個spi資料作為學習參考 |
|
來自: 人生如戲ds3xoc > 《文件夾1》