技術專題

SPI接口協議介紹與應用說明發布時間:2018-1-12    被閱覽數:

SPI總線介紹


  SPI(Serial Peripheral Interface,串行外設接口)是由Motorola提出的一種全雙工同步串行通信接口,它可以使MCU與各種外圍設備以串行方式進行通信以交換信息,通信波特率可以高達5Mbps。SPI接口主要應用在EEPROM、FLASH、實時時鐘、網絡控制器、LCD顯示驅動器、AD轉換器,數字信號處理器、數字信號解碼器等設備之間。


  SPI接口一般使用4條線:

 ?。?)MOSI:主設備數據輸出,從設備數據輸入

 ?。?)MISO:主設備數據輸入,從設備數據輸出

 ?。?)SCLK:時鐘信號,由主設備產生

 ?。?)NSS:從設備使能信號,由主設備控制


SPI接口協議介紹與應用說明

SPI設備連接示意圖


  SPI接口主要優點:

  ● 支持全雙工操作

  ● 操作簡單

  ● 數據傳輸速率較高


  SPI接口主要缺點:

  ● 需要占用主機較多的線(每個從機都需要一條片選線)

  ● 只支持單個主機

  ● 沒有指定的流控制

  ● 沒有應答機制確認是否接收到數據


SPI接口工作特點


  1、SPI接口采用主-從模式(Master-Slave)控制方式

  兩個SPI設備之間的通信必須由主設備(Master)來控制從設備(Slave)。主設備可以通過提供時鐘信號以及對從設備進行片選來控制多個從設備。從設備本身并不產生時鐘信號,其時鐘信號由主設備提供。


SPI接口協議介紹與應用說明


  2、SPI接口采用同步方式(Synchronous)傳輸數據

  主設備會根據將要交換的數據來產生相應的時鐘脈沖,時鐘脈沖組成時鐘信號,時鐘信號通過時鐘極性和時鐘相位控制兩個SPI設備間何時數據交換以及何時對接收到的數據進行采樣, 來保證數據在兩個設備之間是同步傳輸的。


  SPI有四種數據傳輸模式,如下表所示,主要差別在于:輸出串行同步時鐘極性(CPOL)和相位(CPHA)可以進行配置。


SPI mode CPOLCPHAComments
000時鐘的空閑狀態為低電平;上升沿采樣
101時鐘的空閑狀態為低電平;下降沿采樣
210時鐘的空閑狀態為高電平;下降沿采樣
311時鐘的空閑狀態為高電平;上升沿采樣


  3、SPI接口數據交換(Data Exchanges)

  SPI設備間的數據傳輸又被稱為數據交換。SPI協議規定一個SPI設備不能在數據通信過程中僅僅只充當發送者或者接收者,在每個時鐘周期內,SPI設備都會發送并接收一個bit大小的數據,相當于該設備有一個bit大小的數據被交換。

  從設備要接收到主設備發過來的控制信號,必須在此之前能夠被主設備訪問,所以主設備必須首先對從設備進行片選。

  在數據傳輸的過程中,每次接收到的數據必須在下一次數據傳輸之前進行采樣。如果之前接收到的數據沒有被讀取,那么這些已經接收完成的數據將有可能會被丟棄,因此,應用程序一般都會在SPI傳輸完數據后進行讀取。


SPI協議


  SPI接口允許同時在兩線(MOSI和MISO)發送和接收數據。時鐘極性(CPOL)和時鐘相位(CPHA)是定義SPI所使用的時鐘格式的主要參數。根據時鐘極性(CPOL),SPI時鐘可以反轉或不變。時鐘相位(CPHA)用于改變采樣相位。

  如果CPHA=0,那么將于第一個時鐘邊沿進行數據采樣。

  如果CPHA=1,那么無論時鐘邊緣上升或下降,將于第二個時鐘邊沿進行數據采樣。


  脈沖傳輸前和完成后都保持在低電平狀態,即CPOL=0。在第一個邊沿(上升沿)采樣數據,第二個邊沿(下降沿)輸出數據,即CPHA=0。


SPI接口協議介紹與應用說明.gif


  脈沖傳輸前和完成后都保持在低電平狀態,即CPOL=0。在第二個邊沿(下降沿)采樣數據,第一個邊沿(上升沿)輸出數據,即CPHA=1。


SPI接口協議介紹與應用說明.gif


  脈沖傳輸前和完成后都保持在高電平狀態,即CPOL=1。在第一個邊沿(下降沿)采樣數據,第二個邊沿(上升沿)輸出數據,即CPHA=0。


SPI接口協議介紹與應用說明.gif


  脈沖傳輸前和完成后都保持在高電平狀態,即CPOL=1。在第二個邊沿(上升沿)采樣數據,第一個邊沿(下降沿)輸出數據,即CPHA=1。


SPI接口協議介紹與應用說明.gif


  SPI讀數據時序:


SPI接口協議介紹與應用說明.gif


  SPI寫數據時序:


SPI接口協議介紹與應用說明.gif


SPI總線在英創主板平臺上的應用


  支持SPI接口的芯片都可以直接和英創主板連接,并執行相應的功能。歷年來,大量用戶使用英創主板進行SPI應用和數據處理,英創也累積了豐富的工程經驗。下面整理出了英創網站發表的相關技術文檔供用戶參考。雖然有一些方案文檔中提到的英創主板是較老的型號,用戶在新產品開發的時候未必會使用這些老主板產品,但是文中的軟硬件使用技巧、編程技巧和方法等技術細節,是值得用戶參考或者直接使用的。


  應用方案


EM9280系列SPI接口應用方案


  使用方法與技巧


使用GPIO控制SPI接口的AD芯片工控主板EM9160硬件SPI接口的應用

EM9170 SPI接口用戶指南基于SPI接口的大容量通用數據采集方案

JAVA操作英創主板SPI接口簡介多路SPI從設備連接方法
Go Top
云南快乐十分