SPI總線介紹
SPI(Serial Peripheral Interface,串行外設(shè)接口)是由Motorola提出的一種全雙工同步串行通信接口,它可以使MCU與各種外圍設(shè)備以串行方式進(jìn)行通信以交換信息,通信波特率可以高達(dá)5Mbps。SPI接口主要應(yīng)用在EEPROM、FLASH、實時時鐘、網(wǎng)絡(luò)控制器、LCD顯示驅(qū)動器、AD轉(zhuǎn)換器,數(shù)字信號處理器、數(shù)字信號解碼器等設(shè)備之間。
SPI接口一般使用4條線:
(1)MOSI:主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入
(2)MISO:主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出
(3)SCLK:時鐘信號,由主設(shè)備產(chǎn)生
(4)NSS:從設(shè)備使能信號,由主設(shè)備控制
SPI設(shè)備連接示意圖
SPI接口主要優(yōu)點:
●支持全雙工操作
●操作簡單
●數(shù)據(jù)傳輸速率較高
SPI接口主要缺點:
●需要占用主機(jī)較多的線(每個從機(jī)都需要一條片選線)
●只支持單個主機(jī)
●沒有指定的流控制
●沒有應(yīng)答機(jī)制確認(rèn)是否接收到數(shù)據(jù)
SPI接口工作特點
1、SPI接口采用主-從模式(Master-Slave)控制方式
兩個SPI設(shè)備之間的通信必須由主設(shè)備(Master)來控制從設(shè)備(Slave)。主設(shè)備可以通過提供時鐘信號以及對從設(shè)備進(jìn)行片選來控制多個從設(shè)備。從設(shè)備本身并不產(chǎn)生時鐘信號,其時鐘信號由主設(shè)備提供。
2、SPI接口采用同步方式(Synchronous)傳輸數(shù)據(jù)
主設(shè)備會根據(jù)將要交換的數(shù)據(jù)來產(chǎn)生相應(yīng)的時鐘脈沖,時鐘脈沖組成時鐘信號,時鐘信號通過時鐘極性和時鐘相位控制兩個SPI設(shè)備間何時數(shù)據(jù)交換以及何時對接收到的數(shù)據(jù)進(jìn)行采樣, 來保證數(shù)據(jù)在兩個設(shè)備之間是同步傳輸?shù)摹?/p>
SPI有四種數(shù)據(jù)傳輸模式,如下表所示,主要差別在于:輸出串行同步時鐘極性(CPOL)和相位(CPHA)可以進(jìn)行配置。
SPI mode | CPOL | CPHA | Comments |
0 | 0 | 0 | 時鐘的空閑狀態(tài)為低電平;上升沿采樣 |
1 | 0 | 1 | 時鐘的空閑狀態(tài)為低電平;下降沿采樣 |
2 | 1 | 0 | 時鐘的空閑狀態(tài)為高電平;下降沿采樣 |
3 | 1 | 1 | 時鐘的空閑狀態(tài)為高電平;上升沿采樣 |
3、SPI接口數(shù)據(jù)交換(Data Exchanges)
SPI設(shè)備間的數(shù)據(jù)傳輸又被稱為數(shù)據(jù)交換。SPI協(xié)議規(guī)定一個SPI設(shè)備不能在數(shù)據(jù)通信過程中僅僅只充當(dāng)發(fā)送者或者接收者,在每個時鐘周期內(nèi),SPI設(shè)備都會發(fā)送并接收一個bit大小的數(shù)據(jù),相當(dāng)于該設(shè)備有一個bit大小的數(shù)據(jù)被交換。
從設(shè)備要接收到主設(shè)備發(fā)過來的控制信號,必須在此之前能夠被主設(shè)備訪問,所以主設(shè)備必須首先對從設(shè)備進(jìn)行片選。
在數(shù)據(jù)傳輸?shù)倪^程中,每次接收到的數(shù)據(jù)必須在下一次數(shù)據(jù)傳輸之前進(jìn)行采樣。如果之前接收到的數(shù)據(jù)沒有被讀取,那么這些已經(jīng)接收完成的數(shù)據(jù)將有可能會被丟棄,因此,應(yīng)用程序一般都會在SPI傳輸完數(shù)據(jù)后進(jìn)行讀取。
SPI協(xié)議
SPI接口允許同時在兩線(MOSI和MISO)發(fā)送和接收數(shù)據(jù)。時鐘極性(CPOL)和時鐘相位(CPHA)是定義SPI所使用的時鐘格式的主要參數(shù)。根據(jù)時鐘極性(CPOL),SPI時鐘可以反轉(zhuǎn)或不變。時鐘相位(CPHA)用于改變采樣相位。
如果CPHA=0,那么將于第一個時鐘邊沿進(jìn)行數(shù)據(jù)采樣。
如果CPHA=1,那么無論時鐘邊緣上升或下降,將于第二個時鐘邊沿進(jìn)行數(shù)據(jù)采樣。
脈沖傳輸前和完成后都保持在低電平狀態(tài),即CPOL=0。在第一個邊沿(上升沿)采樣數(shù)據(jù),第二個邊沿(下降沿)輸出數(shù)據(jù),即CPHA=0。
脈沖傳輸前和完成后都保持在低電平狀態(tài),即CPOL=0。在第二個邊沿(下降沿)采樣數(shù)據(jù),第一個邊沿(上升沿)輸出數(shù)據(jù),即CPHA=1。
脈沖傳輸前和完成后都保持在高電平狀態(tài),即CPOL=1。在第一個邊沿(下降沿)采樣數(shù)據(jù),第二個邊沿(上升沿)輸出數(shù)據(jù),即CPHA=0。
脈沖傳輸前和完成后都保持在高電平狀態(tài),即CPOL=1。在第二個邊沿(上升沿)采樣數(shù)據(jù),第一個邊沿(下降沿)輸出數(shù)據(jù),即CPHA=1。
SPI讀數(shù)據(jù)時序:
SPI寫數(shù)據(jù)時序:
SPI總線在英創(chuàng)主板平臺上的應(yīng)用
支持SPI接口的芯片都可以直接和英創(chuàng)主板連接,并執(zhí)行相應(yīng)的功能。歷年來,大量用戶使用英創(chuàng)主板進(jìn)行SPI應(yīng)用和數(shù)據(jù)處理,英創(chuàng)也累積了豐富的工程經(jīng)驗。下面整理出了英創(chuàng)網(wǎng)站發(fā)表的相關(guān)技術(shù)文檔供用戶參考。雖然有一些方案文檔中提到的英創(chuàng)主板是較老的型號,用戶在新產(chǎn)品開發(fā)的時候未必會使用這些老主板產(chǎn)品,但是文中的軟硬件使用技巧、編程技巧和方法等技術(shù)細(xì)節(jié),是值得用戶參考或者直接使用的。
應(yīng)用方案
EM9280系列SPI接口應(yīng)用方案 |
使用方法與技巧
使用GPIO控制SPI接口的AD芯片 | 工控主板EM9160硬件SPI接口的應(yīng)用 | ||
EM9170 SPI接口用戶指南 | 基于SPI接口的大容量通用數(shù)據(jù)采集方案 | ||
JAVA操作英創(chuàng)主板SPI接口簡介 | 多路SPI從設(shè)備連接方法 |
-
嵌入式主板
+關(guān)注
關(guān)注
7文章
6097瀏覽量
36167
發(fā)布評論請先 登錄
英創(chuàng)支持Linux高級客戶自行移植內(nèi)核
英創(chuàng)主板JAVA應(yīng)用開發(fā)簡介
JAVA操作英創(chuàng)主板SPI接口簡介
英創(chuàng)信息技術(shù)GPIO控制SPI接口的AD芯片簡介

英創(chuàng)信息技術(shù)工控主板EM9160介紹

英創(chuàng)信息技術(shù)EM9170 SPI接口用戶指南簡介

英創(chuàng)信息技術(shù)EM9280主板SPI訪問TLC2543 AD示例

英創(chuàng)信息技術(shù)基于SPI接口的大容量通用數(shù)據(jù)采集方案

英創(chuàng)信息技術(shù)獲取英創(chuàng)Linux主板型號的方法簡介

英創(chuàng)信息技術(shù)JAVA操作英創(chuàng)主板SPI接口簡介

英創(chuàng)信息技術(shù)JAVA操作英創(chuàng)主板I2C接口簡介

英創(chuàng)信息技術(shù)CSI攝像頭接口及在英創(chuàng)主板上的應(yīng)用簡介
英創(chuàng)信息技術(shù)多路SPI從設(shè)備連接方法簡介

英創(chuàng)信息技術(shù)ESMARC工控主板升級簡介

英創(chuàng)信息技術(shù)基于英創(chuàng)主板快速構(gòu)建整機(jī)應(yīng)用方案簡介

評論