<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

          概念

          本文引用地址:http://www.ex-cimer.com/article/202404/457895.htm

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


          Source:An Introduction to SPI Communications Protocol

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


          Source: SPI Protocol - Serial Peripheral Interface - javatpoint

          其中,

          SCLK(Serial Clock):時(shí)鐘信號(hào)線,由主設(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è)備選擇信號(hào)線,由主設(shè)備控制,用于選擇要與主設(shè)備通信的從設(shè)備。

          SPI原理

          利用四線SPI接口可以構(gòu)建不同SPI模式(拓?fù)浞绞剑热鐔沃鲉螐模瑔沃鞫鄰暮途栈ㄦ湹饶J?,接下?lái)就結(jié)合不同SPI模式來(lái)分別介紹SPI工作原理。

          1)單主單從模式

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


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

          其基本原理是:

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


          Source: Basics of the SPI Communication Protocol

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


          Source: Basics of the SPI Communication Protocol

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


          Source: Introduction to SPI Interface | Analog Devices

          2)單主多從模式

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


          Source: Basics of the SPI Communication Protocol

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

          3)菊花鏈模式

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


          Source: Basics of the SPI Communication Protocol

          其工作原理是:

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

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

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

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


          Source: Introduction to SPI Interface | Analog Devices

          SPI核心思想

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


          Source: What Could Go Wrong: SPI | Hackaday

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

          4.1采樣和移位

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

          > Sample(采樣)

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

          > Shift(移位)

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

          4.2時(shí)鐘極性和時(shí)鐘相位

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

          > 時(shí)鐘極性(Clock Polarity,CPOL)

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

          CPOL = 1:表示空閑時(shí)是高電平;

          CPOL = 0:表示空閑時(shí)是低電平。

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

          > 時(shí)鐘相位(Clock Phase,CPHA)

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

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

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

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

          SPI模式

          CPOL

          CPHA

          空閑狀態(tài)

          采樣,移位

          0

          0

          0

          低電平

          采樣上升沿,移位下降沿

          1

          0

          1

          低電平

          采樣下降沿,移位上升沿

          2

          1

          0

          高電平

          采樣下降沿,移位上升沿

          3

          1

          1

          高電平

          采樣上升沿,移位下降沿


          對(duì)應(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ù)長(zhǎng)度

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


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




          關(guān)鍵詞: SPI

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();