基於STM32的SPI通訊協議
阿新 • • 發佈:2020-10-09
1.SPI協議介紹
SPI協議是由摩托羅拉公式提出的通訊協議(Serial Peripheral Interface序列外設介面),是一種高速全雙工的通訊匯流排。
SPI通訊使用3條匯流排(SCK、MOSI、MISO)和片選線CS。
- CS:片選線也叫NSS,當有多個SPI裝置與SPI主機相連時,裝置的其他訊號線SCK、MOSI、MISO同時並聯到相同的SPI總線上(無論由多少個從裝置,都共用這3條匯流排),而每個從裝置都有獨立的CS片選線,有多少個從裝置就有多少個CS線。SPI通訊無裝置地址,當主機要選擇從裝置時,把該從裝置的CS線拉低該從裝置就會被選中,片選有效,主機就可以開始和從裝置進行SPI通訊。於是SPI通訊以CS低電平為起始訊號,高電平為結束訊號
- SCK:時鐘線,由主機產生並決定通訊速率。
- MOSI ( Master Output , Slave Input):主機輸出從機輸入
- MISO ( Master Input, Slave Output ):主機輸入從機輸出
2.SPI通訊時序
NSS、SCK、MOSI由主機產生,MISO由從機產生,在SCK每個時鐘週期MOSI、MISO傳輸一位資料,資料的輸入輸出是同時進行的。MSB先行或LSB先行無硬性規定。
MOSI和MISO在SCK上升沿期間變換,在SCK下降沿取樣,SPI每次資料傳輸可以8位或16位為單位,每次傳輸的單位不受限制。
3.通訊模式
SPI通訊模式 | CPOL | CPHA | 空閒時SCK時鐘 | 取樣時刻 |
---|---|---|---|---|
0 | 0 | 0 | 低電平 | 奇數邊沿 |
1 | 0 | 1 | 低電平 | 偶數邊沿 |
2 | 1 | 0 | 高電平 | 奇數邊沿 |
3 | 1 | 1 | 高電平 | 偶數邊沿 |
主機需要與從機工作在相同模式下才可以正常通訊。
未完待續