1.SPI總線概述
SPI是串行外設接口(Serial Peripheral Interface)的縮寫。是Motorola公司推出的一種同步串行接口技術,是一種高速的,全雙工,同步的通信總線。主要應用在EEPROM,FLASH,實時時鐘,AD轉換器,數字信號處理器和數字信號解碼器等設備與MCU之間進行通信。
SPI具有通信簡單,支持全雙工通信,數據傳輸速度快的優點。但是由于SPI沒有指定的流控制,沒有應答機制確認數據是否發送或接收成功,所以SPI總線跟IIC總線比較的話,SPI總線在數據可靠性上有一定的缺陷。
2.SPI信號線
SPI的通信原理很簡單,它以主從方式工作,這種模式通常有一個主設備和一個或多個從設備。SPI使用3條通訊總線和1條片選線。
(1).MOSI
主設備數據輸出,從設備數據輸入。
(2).MISO
主設備數據輸入,從設備數據輸出。
(3).SCLK(或叫SCK)
時鐘信號線,用于通訊同步,該信號由主機產生和控制。
(4).CS
片選線,從設備使能信號,由主設備控制。當有多個從設備的時候,因為每個從設備上都有一個片選引腳接入到主設備機中,當我們的主設備和某個從設備通信時就需要設置從設備對應的片選引腳,來使能從設備。
SPI通訊設備之間的連接方式,如下圖所示:
3.SPI總線的4種通訊模式
SPI通信有4種不同的通訊模式,不同的從設備可能在出廠時就配置為某種模式,這是不能改變的;但我們的通信雙方必須是工作在同一模式下,所以我們可以對我們的主設備的SPI模式進行配置,通過CPOL(時鐘極性)和CPHA(時鐘相位)來控制我們主設備的通信模式。
MOSI和MISO線在SCK的每個時鐘周期傳輸一位數據,開發者可以自行設置MSB或LSB先行,不過需要保證兩個通訊設備都使用同樣的協定。
時鐘極性CPOL是用來配置SCK空閑狀態的電平,時鐘相位CPHA是用來配置數據采樣是在第幾個邊沿。
CPOL=0,表示當SCK=0時處于空閑態,所以有效狀態就是SCK處于高電平時; CPOL=1,表示當SCK=1時處于空閑態,所以有效狀態就是SCK處于低電平時; CPHA=0,表示數據采樣是在第1個邊沿,數據發送在第2個邊沿; CPHA=1,表示數據采樣是在第2個邊沿,數據發送在第1個邊沿;
CPOL和CPHA進行組合配置之后產生四種時序關系,也就是四種通訊模式。四種通訊模式文字描述如下:
CPOL=0,CPHA=0:此時空閑態時,SCK處于低電平,數據采樣是在第1個邊沿,也就是SCK由 低電平到高電平的跳變,所以數據采樣是在上升沿,數據發送是在下降沿。 CPOL=0,CPHA=1:此時空閑態時,SCK處于低電平,數據發送是在第1個邊沿,也就是SCK由 低電平到高電平的跳變,所以數據采樣是在下降沿,數據發送是在上升沿。 CPOL=1,CPHA=0:此時空閑態時,SCK處于高電平,數據采集是在第1個邊沿,也就是SCK由 高電平到低電平的跳變,所以數據采集是在下降沿,數據發送是在上升沿。 CPOL=1,CPHA=1:此時空閑態時,SCK處于高電平,數據發送是在第1個邊沿,也就是SCK由 高電平到低電平的跳變,所以數據采集是在上升沿,數據發送是在下降沿。
下面的表格是對上述描述的SPI四種通訊模式的總結:
SPI模式 | CPOL | CPHA | SCK空閑時電平 | 數據采樣 | 數據發送 |
---|---|---|---|---|---|
0 | 0 | 0 | 低電平 | 第1個邊沿 | 第2個邊沿 |
1 | 0 | 1 | 低電平 | 第2個邊沿 | 第1個邊沿 |
2 | 1 | 0 | 高電平 | 第1個邊沿 | 第2個邊沿 |
3 | 1 | 1 | 高電平 | 第2個邊沿 | 第1個邊沿 |
模式0和模式3的差異主要是,模式0的SCK空閑電平是低電平,模式3的SCK空閑電平是高電平。因為模式0的SCK空閑電平是低電平,數據采樣發生在SCK的第1個邊沿,也就是SCK的上升沿,數據發送發生在SCK的第2個邊沿,也就是SCK的下降沿。同樣的因為模式3的SCK空閑電平是高電平,數據采樣發生在SCK的第2個邊沿,也就是SCK的上升沿,數據發送發生在SCK的第1個邊沿,也就是SCK的下降沿。
從上面一段文字,可以對模式0和模式3進行一個總結:模式0和模式3的主要差異是SCK空閑電平的狀態不一樣,模式0的SCK空閑電平是低電平,模式3的SCK空閑電平是高電平;模式0和模式3都在SCK的上升沿進行數據采樣,在SCK的下降沿進行數據發送。
同樣的,可以對模式1和模式2進行一個總結:模式1和模式2的主要差異是SCK空閑電平的狀態不一樣,模式1的SCK空閑電平是低電平,模式2的SCK空閑電平是高電平;模式1和模式2都在SCK的下降沿進行數據采樣,在SCK的上升沿進行數據發送。
審核編輯:劉清
-
EEPROM
+關注
關注
9文章
1020瀏覽量
81608 -
信號處理器
+關注
關注
1文章
254瀏覽量
25275 -
AD轉換器
+關注
關注
4文章
250瀏覽量
41420 -
SPI接口
+關注
關注
0文章
258瀏覽量
34383 -
IIC總線
+關注
關注
1文章
66瀏覽量
20304
原文標題:SPI總線協議-一篇文章帶你了解
文章出處:【微信號:嵌入式那些事,微信公眾號:嵌入式那些事】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論