SPI通訊協議(SPI總線)學習

一、什麼是SPI?blog

SPI是串行外設接口(Serial Peripheral Interface)的縮寫。是 Motorola 公司推出的一 
種同步串行接口技術,是一種高速的,全雙工,同步的通訊總線。接口

二、SPI優勢
支持全雙工通訊
通訊簡單
數據傳輸速率塊ip

三、缺點
沒有指定的流控制,沒有應答機制確認是否接收到數據,因此跟IIC總線協議比較在數據 
可靠性上有必定的缺陷。同步

四、特色
1):高速、同步、全雙工、非差分、總線式
2):主從機通訊模式原理

五、協議通訊時序詳解
1):SPI的通訊原理很簡單,它以主從方式工做,這種模式一般有一個主設備和一個或多 
個從設備,須要至少4根線,事實上3根也能夠(單向傳輸時)。也是全部基於SPI的設備共 
有的,它們是SDI(數據輸入)、SDO(數據輸出)、SCLK(時鐘)、CS(片選)。
(1)SDO/MOSI – 主設備數據輸出,從設備數據輸入;
(2)SDI/MISO – 主設備數據輸入,從設備數據輸出;
(3)SCLK – 時鐘信號,由主設備產生;
(4)CS/SS – 從設備使能信號,由主設備控制。當有多個從設備的時候,由於每一個從設 
備上都有一個片選引腳接入到主設備機中,當咱們的主設備和某個從設備通訊時將需 
要將從設備對應的片選引腳電平拉低或者是拉高。配置

2):須要說明的是,咱們SPI通訊有4種不一樣的模式,不一樣的從設備可能在出廠是就是配 
置爲某種模式,這是不能改變的;但咱們的通訊雙方必須是工做在同一模式下,因此咱們 
能夠對咱們的主設備的SPI模式進行配置,經過CPOL(時鐘極性)和CPHA(時鐘相位)來 
控制咱們主設備的通訊模式,具體以下:
Mode0:CPOL=0,CPHA=0
Mode1:CPOL=0,CPHA=1
Mode2:CPOL=1,CPHA=0
Mode3:CPOL=1,CPHA=1im

時鐘極性CPOL是用來配置SCLK的電平出於哪一種狀態時是空閒態或者有效態,時鐘相位CPHA 
是用來配置數據採樣是在第幾個邊沿:
CPOL=0,表示當SCLK=0時處於空閒態,因此有效狀態就是SCLK處於高電平時
CPOL=1,表示當SCLK=1時處於空閒態,因此有效狀態就是SCLK處於低電平時
CPHA=0,表示數據採樣是在第1個邊沿,數據發送在第2個邊沿
CPHA=1,表示數據採樣是在第2個邊沿,數據發送在第1個邊沿技術

例如:
CPOL=0,CPHA=0:此時空閒態時,SCLK處於低電平,數據採樣是在第1個邊沿,也就是
SCLK由低電平到高電平的跳變,因此數據採樣是在上升沿,數據發送是在降低沿。d3

CPOL=0,CPHA=1:此時空閒態時,SCLK處於低電平,數據發送是在第1個邊沿,也就是
SCLK由低電平到高電平的跳變,因此數據採樣是在降低沿,數據發送是在上升沿。數據採集

CPOL=1,CPHA=0:此時空閒態時,SCLK處於高電平,數據採集是在第1個邊沿,也就是
SCLK由高電平到低電平的跳變,因此數據採集是在降低沿,數據發送是在上升沿。

CPOL=1,CPHA=1:此時空閒態時,SCLK處於高電平,數據發送是在第1個邊沿,也就是
SCLK由高電平到低電平的跳變,因此數據採集是在上升沿,數據發送是在降低沿。

       

須要注意的是:咱們的主設備可以控制時鐘,由於咱們的SPI通訊並不像UART或者IIC通訊 
那樣有專門的通訊週期,有專門的通訊起始信號,有專門的通訊結束信號;因此咱們的 
SPI協議可以經過控制時鐘信號線,當沒有數據交流的時候咱們的時鐘線要麼是
保持高電平要麼是保持低電平。

六、內部工做機制

 SSPSR 是 SPI 設備內部的移位寄存器(Shift Register). 它的主要做用是根據 SPI  時鐘信號狀態, 往 SSPBUF 裏移入或者移出數據, 每次移動的數據大小由 Bus-Width 以  及 Channel-Width 所決定.

相關文章
相關標籤/搜索