1. 程式人生 > 實用技巧 >基於STM32的SPI通訊協議

基於STM32的SPI通訊協議

1.SPI協議介紹

SPI協議是由摩托羅拉公式提出的通訊協議(Serial Peripheral Interface序列外設介面),是一種高速全雙工的通訊匯流排。
SPI通訊系統
SPI通訊使用3條匯流排(SCK、MOSI、MISO)和片選線CS。

  1. CS:片選線也叫NSS,當有多個SPI裝置與SPI主機相連時,裝置的其他訊號線SCK、MOSI、MISO同時並聯到相同的SPI總線上(無論由多少個從裝置,都共用這3條匯流排),而每個從裝置都有獨立的CS片選線,有多少個從裝置就有多少個CS線。SPI通訊無裝置地址,當主機要選擇從裝置時,把該從裝置的CS線拉低該從裝置就會被選中,片選有效,主機就可以開始和從裝置進行SPI通訊。於是SPI通訊以CS低電平為起始訊號,高電平為結束訊號
  2. SCK:時鐘線,由主機產生並決定通訊速率。
  3. MOSI ( Master Output , Slave Input):主機輸出從機輸入
  4. MISO ( Master Input, Slave Output ):主機輸入從機輸出

2.SPI通訊時序

SPI通訊時序
NSS、SCK、MOSI由主機產生,MISO由從機產生,在SCK每個時鐘週期MOSI、MISO傳輸一位資料,資料的輸入輸出是同時進行的。MSB先行或LSB先行無硬性規定。
MOSI和MISO在SCK上升沿期間變換,在SCK下降沿取樣,SPI每次資料傳輸可以8位或16位為單位,每次傳輸的單位不受限制。

3.通訊模式

SPI通訊模式CPOLCPHA空閒時SCK時鐘取樣時刻
000低電平奇數邊沿
101低電平偶數邊沿
210高電平奇數邊沿
311高電平偶數邊沿

主機需要與從機工作在相同模式下才可以正常通訊。
SPI通訊模式
SPI通訊模式
未完待續