色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 全雙工,同步傳輸?shù)腟PI通訊原理是如何工作的?

          全雙工,同步傳輸?shù)腟PI通訊原理是如何工作的?

          作者:電子電路設(shè)計 時間:2024-04-22 來源:今日頭條 收藏

          概念

          本文引用地址:http://cafeforensic.com/article/202404/457895.htm

          (Serial Peripheral interface, 串行外設(shè)接口)是微處理控制單元(MCU)和外圍IC(如傳感器、ADC、DAC、驅(qū)動芯片和外部存儲設(shè)備等)之間進行通信的同步串行端口,其通信速率一般可以從幾千bps到幾百Mbps甚至更高, 具體的通信速率取決于主設(shè)備和從設(shè)備的規(guī)格和性能,以及他們之間的協(xié)商和支持能力。


          Source:An Introduction to SPI Communications Protocol

          SPI是一種全雙工,同步,主從式接口,涉及兩個主要角色:主設(shè)備(Master)和從設(shè)備(Slave)。SPI接口可以是3線式或4線式,這里重點介紹常用的4線SPI接口。4線SPI接口有四個信號:時鐘信號(SCLK),片選信號(SS/CS),主設(shè)備輸出從設(shè)備輸入信號(MOSI)和主設(shè)備輸入從設(shè)備輸出信號(MISO),如下所示:


          Source: SPI Protocol - Serial Peripheral Interface - javatpoint

          其中,

          SCLK(Serial Clock):時鐘信號線,由主設(shè)備提供,用于同步數(shù)據(jù)傳輸。

          MOSI(Master Out, Slave In):主設(shè)備輸出,從設(shè)備輸入,用于主設(shè)備向從設(shè)備發(fā)送數(shù)據(jù)。

          MISO(Master In, Slave Out):主設(shè)備輸入,從設(shè)備輸出,用于從設(shè)備向主設(shè)備發(fā)送數(shù)據(jù)。

          SS(Slave Select):從設(shè)備選擇信號線,由主設(shè)備控制,用于選擇要與主設(shè)備通信的從設(shè)備。

          SPI原理

          利用四線SPI接口可以構(gòu)建不同SPI模式(拓?fù)浞绞剑?,比如單主單從,單主多從和菊花鏈等模式,接下來就結(jié)合不同SPI模式來分別介紹SPI工作原理。

          1)單主單從模式

          單主單從模式,即主設(shè)備的SCLK、MOSI和MISO連接到從設(shè)備的相應(yīng)引腳。從設(shè)備與主設(shè)備之間只有一組SCLK、MOSI和MISO線連接,如下所示:


          Source: Basics of the SPI Communication Protocol (circuitbasics.com)

          其基本原理是:

          首先是時鐘同步,主設(shè)備產(chǎn)生SCLK,控制數(shù)據(jù)傳輸?shù)臅r序。時鐘信號由主設(shè)備提供,并在主設(shè)備和從設(shè)備之間同步傳輸。


          Source: Basics of the SPI Communication Protocol

          然后是片選信號,主設(shè)備將SS/CS引腳切換到低電壓狀態(tài),從而激活了從設(shè)備。


          Source: Basics of the SPI Communication Protocol

          最后是數(shù)據(jù)傳輸過程,主設(shè)備通過MOSI線向從設(shè)備發(fā)送數(shù)據(jù)。從設(shè)備接收到數(shù)據(jù)后,將其通過MISO線傳輸給主設(shè)備。主設(shè)備和從設(shè)備之間的數(shù)據(jù)傳輸是同時進行的。


          Source: Introduction to SPI Interface | Analog Devices

          2)單主多從模式

          單主多從模式,即主設(shè)備的SCLK和MOSI連接到每個從設(shè)備的相應(yīng)引腳,從設(shè)備的MISO連接到主設(shè)備的MISO引腳,每個從設(shè)備有獨立的SS引腳與主設(shè)備連接,主設(shè)備通過選擇SS來選擇要與之通信的從設(shè)備。


          Source: Basics of the SPI Communication Protocol

          其基本原理與單主單從模式的幾乎相同,唯一區(qū)別是當(dāng)某個從設(shè)備的SS處于低電平時,該從設(shè)備與主設(shè)備進行通信,其他從設(shè)備的SS處于高電平狀態(tài)。

          3)菊花鏈模式

          菊花鏈模式,即主設(shè)備的MOSI和SCLK連接到第一個從設(shè)備的MOSI和SCLK。從第一個從設(shè)備的MISO連接到第二個從設(shè)備的MOSI,以此類推,直到最后一個從設(shè)備的MISO。


          Source: Basics of the SPI Communication Protocol

          其工作原理是:

          首先,主設(shè)備提供SCLK,控制數(shù)據(jù)傳輸?shù)臅r序。時鐘信號由主設(shè)備產(chǎn)生,并在整個菊花鏈中進行傳遞,從設(shè)備根據(jù)時鐘信號的邊沿進行數(shù)據(jù)的傳輸和接收。

          然后,主設(shè)備通過MOSI線將數(shù)據(jù)發(fā)送到第一個從設(shè)備,第一個從設(shè)備接收到數(shù)據(jù)后,將其通過MISO線傳輸給第二個從設(shè)備,這樣,數(shù)據(jù)從一個從設(shè)備級聯(lián)傳輸?shù)较乱粋€從設(shè)備,直到傳輸?shù)阶詈笠粋€從設(shè)備。

          每個從設(shè)備都需要有一個獨立的SS,主設(shè)備通過控制相應(yīng)的SS選擇要與之通信的從設(shè)備,只有被選中的從設(shè)備才會響應(yīng)主設(shè)備的數(shù)據(jù)傳輸。

          在菊花鏈模式下,當(dāng)數(shù)據(jù)從一個從設(shè)備傳播到下一個從設(shè)備時,傳輸數(shù)據(jù)所需的時鐘周期數(shù)量與從設(shè)備在菊花鏈中的位置成正比。在一個8位系統(tǒng)中,第3個從設(shè)備上的數(shù)據(jù)需要24個時鐘脈沖,而在常規(guī)的SPI模式中只需要8個時鐘脈沖,下圖顯示了通過菊花鏈傳播的時鐘周期和數(shù)據(jù)。


          Source: Introduction to SPI Interface | Analog Devices

          SPI核心思想

          SPI的核心思想是,每個設(shè)備都有一個移位寄存器,它可以用來發(fā)送或接收一個字節(jié)的數(shù)據(jù)。這兩個移位寄存器以環(huán)形方式連接在一起,一個寄存器的輸出到另一個寄存器的輸入,反之亦然。主設(shè)備控制共同的時鐘信號,確保每個寄存器在另一個寄存器移出一個比特時,正好移入一個比特。


          Source: What Could Go Wrong: SPI | Hackaday

          SPI數(shù)據(jù)傳輸

          4.1采樣和移位

          根據(jù)上面內(nèi)容可知SPI通信,主設(shè)備必須發(fā)送SCLK信號,并通過使能SS信號(低電平)選擇從設(shè)備。然后主設(shè)備和從設(shè)備可以分別通過MOSI和MISO線路同時發(fā)送數(shù)據(jù)。在SPI通信期間,數(shù)據(jù)的發(fā)送(串行移出到MOSI/SDO總線上,即移位)和接收(采樣或讀入總線(MISO/SDI)上的數(shù)據(jù),即采樣)同時進行。

          > Sample(采樣)

          采樣是指主設(shè)備或從設(shè)備在時鐘的上升沿或下降沿時讀取數(shù)據(jù)位的操作。采樣的目的是在合適的時機獲取正確的數(shù)據(jù)位,以確保數(shù)據(jù)的準(zhǔn)確傳輸。

          > Shift(移位)

          移位是指數(shù)據(jù)位從發(fā)送器移動到接收器的過程,以實現(xiàn)數(shù)據(jù)的傳輸。移位是SPI通信中的關(guān)鍵步驟之一,確保數(shù)據(jù)的逐位傳輸和同步。

          4.2時鐘極性和時鐘相位

          具體何時進行采樣和移位操作,可以通過設(shè)置時鐘極性和時鐘相位來實現(xiàn)。

          > 時鐘極性(Clock Polarity,CPOL)

          在空閑狀態(tài)期間,CPOL位設(shè)置時鐘信號的極性。

          CPOL = 1:表示空閑時是高電平;

          CPOL = 0:表示空閑時是低電平。

          空閑狀態(tài)是指傳輸開始時CS為高電平且在向低電平轉(zhuǎn)變的期間,以及傳輸結(jié)束時CS為低電平且在向高電平轉(zhuǎn)變的期間,如下所示:

          > 時鐘相位(Clock Phase,CPHA)

          CPHA位選擇時鐘相位。根據(jù)CPHA位的狀態(tài),使用時鐘上升沿或下降沿來采樣和/或移位數(shù)據(jù)。

          CPHA = 0:表示從第一個跳變沿開始采樣;

          CPHA = 1:表示從第二個跳變沿開始采樣。

          主設(shè)備必須根據(jù)從設(shè)備的要求選擇時鐘極性和時鐘相位,根據(jù)上述CPOL和CPHA位的選擇,有四種SPI模式可用,如下所示:

          SPI模式

          CPOL

          CPHA

          空閑狀態(tài)

          采樣,移位

          0

          0

          0

          低電平

          采樣上升沿,移位下降沿

          1

          0

          1

          低電平

          采樣下降沿,移位上升沿

          2

          1

          0

          高電平

          采樣下降沿,移位上升沿

          3

          1

          1

          高電平

          采樣上升沿,移位下降沿


          對應(yīng)到數(shù)據(jù)位,以CPOL = 0,CPHA = 0為例,綠色虛線表示片選使能,橙色虛線表示采樣,藍(lán)色虛線表示移位,如下所示:


          Source: Introduction to SPI Interface | Analog Devices

          4.3傳輸位序

          先發(fā)送高bit(MSB),還是先發(fā)送低bit(LSB)。如下圖所示,若采用MSB first,那么MOSI發(fā)送的數(shù)據(jù)為01000011, 即0x43。


          Source: Basics of the SPI Communication Protocol

          若采用LSB first,那么MISO接收到0x43后,發(fā)送形式如下所示:


          Source: Basics of the SPI Communication Protocol

          4.4 數(shù)據(jù)長度

          注意上面的各圖演示的都是傳輸8位數(shù)據(jù),實際上SPI可以根據(jù)設(shè)備所支持的情況傳輸不同位數(shù)的數(shù)據(jù),比如Aurix TC2xx系列最高支持32位數(shù)據(jù)傳輸。


          總的來說,SPI數(shù)據(jù)傳輸取決于具體配置,選取哪種模式,何時采樣,數(shù)據(jù)有多少位,是MSB還是LSB first,當(dāng)然除此之外,實際實現(xiàn)這個功能還需要考慮更多因素。




          關(guān)鍵詞: SPI

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉