SPI通信協議接口概述


一、 spi的概述

SPI是串行外設接口(Serial Peripheral Interface)的縮寫,是一種高速的,全雙工,同步的通信總線,它是由Motorola公司推出,用來在微控制器和外圍設備芯片之間實現數據交換的低成本、易使用的接口。SPI總線為同步串行數據傳輸總線,用於單片機的外圍拓展。spi利用時鍾線對數據位進行同步,時鍾的上升沿或下降沿鎖存數據,來自主機或從機的數據在時鍾上升沿或下降沿同步,主機和從機可以同時傳輸數據。

 

二、 spi的配置

spi可以是三線式的也可以是四線式的

 

1、三線制半雙工SPI可以分時收發

SCLK串行時鍾

CS或SS外設片選或從機選擇

DIO數據線,輸入與輸出共用

 

2、四線制全雙工SPI可同時收發

MISO主機輸入/從機輸出

MOSI主機輸出/從機輸入

SCLK串行時鍾

CS/SS外設片選或從機選擇

來自主機的片選信號CS是從芯片是否被主芯片選中的控制信號,這通常式一個低電平有效,拉高時從機與SPI總線斷開連接,當使用多個從機時,主機需要為每個從機提供單獨的片選信號,產生時鍾信號的器件稱為主機

 

 

三、 spi的數據傳輸

通訊是通過數據交換完成的,這里先要知道SPI是串行通訊協議,也就是說數據是一位一位的傳輸的。這就是SCLK時鍾線存在的原因,由SCLK提供時鍾脈沖,SDI,SDO則基於此脈沖完成數據傳輸。數據輸出通過 SDO線,數據在時鍾上升沿或下降沿時改變,在緊接着的下降沿或上升沿被讀取。完成一位數據傳輸,輸入也使用同樣原理。因此,至少需要8次時鍾信號的改變(上沿和下沿為一次),才能完成8位數據的傳輸。(源自百度百科)

 

四、 時鍾極性和時鍾相位

在spi的概述中我們講spi利用時鍾線對數據位進行同步,時鍾的上升沿或下降沿鎖存數據,那么主機就需要根據從機的要求去選擇時鍾極性和時鍾相位。根據CPOL和CPHA位的選擇,有四種SPI模式可用。

CKPOL (Clock Polarity) (時鍾)極性:SPI空閑時的時鍾信號電平(1高電平,0低電平)

CKPHA (Clock Phase) (時鍾)相位:SPI在時鍾的第幾個邊沿采樣(1第二個邊沿開始,0第一個邊沿開始)

 

 

 

 參考:SPI代碼實現_嗶哩嗶哩_bilibili

參考:SPI(SPI協議)_百度百科 (baidu.com)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM