1. 程式人生 > 其它 >S3c2440裸機-spi程式設計-1.spi協議

S3c2440裸機-spi程式設計-1.spi協議

1.spi概述

  SPI是序列外設介面(Serial Peripheral Interface)的縮寫。是 Motorola 公司推出的一

種同步序列介面技術,是一種高速的,全雙工,同步的通訊匯流排。

2、SPI優點

支援全雙工通訊(SPI的資料輸入和輸出線獨立,所以允許同時完成資料的輸入和輸出)

通訊簡單

資料傳輸速率塊

3、缺點

沒有指定的流控制,沒有應答機制確認是否接收到資料,所以跟IIC匯流排協議比較在資料

可靠性上有一定的缺陷。

4、特點

1):高速、同步、全雙工、非差分、匯流排式

2):主從機通訊模式

2.硬體框架

SPI協議,硬體框架如下:

SCK:提供時鐘
DO:作為資料輸出
DI:作為資料輸入
CS0/CS1:作為片選

同一時刻只能有一個SPI裝置處於工作狀態。因此cs選中誰,誰就和主控通訊。

2.資料傳輸時序

這裡是一款SPI flash在SCLK上升延取樣資料(D7~D0)的示意圖。

設現在2440傳輸一個0x56資料給SPI Flash,時序如下:

CS0低選中SPI Flash,配置成模式0, 0x56的二進位制就是0b0101 0110,因此在每個SCK時鐘週期,DO輸出對應的電平。會在每個時鐘週期的上升沿取樣DO上的電平

SPI相關的縮寫或說法

CKPOL (Clock Polarity)(時鐘)極性

CKPHA (Clock Phase)(時鐘)相位

SCK=SCLK=SPI的時鐘

Leading edge=前一個邊沿

Trailing edge=後一個邊沿

3.時鐘極性相位模式

CPOL:表示SPI CLK的初始電平,0為電平,1為高電平

CPHA:表示相位,即第一個還是第二個時鐘沿取樣資料,0為第一個時鐘沿,1為第二個時鐘沿

SPI模式

CPOL

CPHA

空閒狀態時鐘極性

取樣/移位時鐘相位

0

0

0

低電平

上升沿取樣(鎖存)下降沿移位

1

0

1

低電平

上升沿移位下降沿取樣(鎖存)

2

1

0

高電平

上升沿移位下降沿取樣(鎖存)

3

1

1

高電平

上升沿取樣(鎖存)下降沿移位

4個模式波形對比:

常用的是模式0和模式3,因為它們都是在上升沿取樣資料.

當配置成模式3時,對於主裝置,資料取樣在時鐘上升沿,資料傳送在時鐘下降沿

主裝置SPI時鐘和極性的配置應該由外設來決定;二者的配置應該保持一致,即主裝置的SDO同從裝置的SDO配置一致,主裝置的SDI同從裝置的SDI配置一致。即因為主從裝置是在SCLK的控制下,同時傳送和接收資料,並通過2個雙向移位暫存器來交換資料。

4.SPI控制器工作原理

SSPSR

SSPSR:移位暫存器(Shift Register). 根據 SPI 時鐘同步訊號, 將SSPBUF中的資料一位一位移出去或者收進來。

SSPBUF

Master 與 Slave 之間交換的資料其實都是移位暫存器從 SSPBUF 裡面拷貝的。通過往 SSPBUF 對應的暫存器 (Tx-Data / Rx-Data register) 裡讀寫資料, 間接地操控 SPI 裝置內部的 SSPBUF.

Controller

用來發送控制訊號的,像CS,SCK等控制訊號。