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