0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

串行外圍接口簡介

嵌入式星球 ? 2020-10-09 14:57 ? 次閱讀

幾十年來使用的三種最常見的多線串行數(shù)據(jù)傳輸格式是I2C,UART和SPI。本文著眼于串行外設(shè)接口(SPI)總線,該總線已擺脫了顯式的標(biāo)準(zhǔn)化,因此在實(shí)現(xiàn)協(xié)議之前,請始終檢查要使用的集成電路的數(shù)據(jù)表。

能力和特點(diǎn)

串行外圍設(shè)備接口總線使用四個(gè)數(shù)據(jù)線在主設(shè)備和從設(shè)備之間提供全雙工同步通信

基本主從配置

串行外設(shè)接口允許將數(shù)據(jù)位從主設(shè)備移出到從設(shè)備中,同時(shí),還可以將位從從設(shè)備移出到主設(shè)備中。



動(dòng)畫1顯示了數(shù)據(jù)從microchipA移入microchip B,又從Microchip B移入MicrochipA。

動(dòng)畫2顯示了兩個(gè)微芯片之間SPI事務(wù)的虛擬4通道示波器軌跡。由馬克·休斯(Mark Hughes)用Mathematica創(chuàng)建

由于SPI尚未標(biāo)準(zhǔn)化,因此可能會(huì)遇到先傳輸最高有效位(MSb)或最低有效位(LSb)的情況。檢查設(shè)備的數(shù)據(jù)表并相應(yīng)地設(shè)置數(shù)據(jù)處理例程。如果您使用的是Arduino,則可以參考此頁面以獲取有關(guān)配置SPI端口信息

時(shí)鐘極性和相位

時(shí)鐘轉(zhuǎn)換控制數(shù)據(jù)的移位和采樣。SPI具有四種模式(0、1、2、3),分別對應(yīng)四種可能的時(shí)鐘配置。


時(shí)鐘周期的上升沿采樣的位在時(shí)鐘周期的下降沿移出,反之亦然。

當(dāng)從選擇線被驅(qū)動(dòng)至邏輯低電平(從選擇通常為低電平有效信號(hào))時(shí),每個(gè)事務(wù)開始。從選擇線,數(shù)據(jù)線和時(shí)鐘線之間的確切關(guān)系取決于如何配置時(shí)鐘極性(CPOL)和時(shí)鐘相位(CPHA)。
在時(shí)鐘極性不變的情況下(即,當(dāng)從器件選擇轉(zhuǎn)換為邏輯低電平時(shí),時(shí)鐘處于邏輯低電平):

  • 模式0:配置時(shí)鐘相位,以便在時(shí)鐘脈沖的上升沿采樣數(shù)據(jù),并在時(shí)鐘脈沖的下降沿移出數(shù)據(jù)。這對應(yīng)于上圖中的第一個(gè)藍(lán)色時(shí)鐘軌跡。注意,數(shù)據(jù)必須在時(shí)鐘的第一個(gè)上升沿之前可用。

  • 模式1:配置時(shí)鐘相位,以便在時(shí)鐘脈沖的下降沿采樣數(shù)據(jù),并在時(shí)鐘脈沖的上升沿移出數(shù)據(jù)。這對應(yīng)于上圖中的第二條藍(lán)色時(shí)鐘軌跡。

在時(shí)鐘極性反轉(zhuǎn)的情況下(即,當(dāng)從器件選擇轉(zhuǎn)換為邏輯低電平時(shí),時(shí)鐘處于邏輯高電平):

  • 模式2:配置時(shí)鐘相位,以便在時(shí)鐘脈沖的下降沿采樣數(shù)據(jù),并在時(shí)鐘脈沖的上升沿移出數(shù)據(jù)。這對應(yīng)于上圖中的第一個(gè)橙色時(shí)鐘軌跡。注意,數(shù)據(jù)必須在時(shí)鐘的第一個(gè)下降沿之前可用。

  • 模式3:配置時(shí)鐘相位,以便在時(shí)鐘脈沖的上升沿采樣數(shù)據(jù),并在時(shí)鐘脈沖的下降沿移出數(shù)據(jù)。這對應(yīng)于上圖中的第二個(gè)橙色時(shí)鐘軌跡。


關(guān)鍵參數(shù)


CLK:串行時(shí)鐘。由主設(shè)備控制。每個(gè)時(shí)鐘周期都會(huì)移出一個(gè)新的數(shù)據(jù)位。
SSN:從機(jī)選擇(“ N”將其標(biāo)識(shí)為低電平有效信號(hào))。由主設(shè)備控制。激活的從設(shè)備選擇線指示主機(jī)正在向相應(yīng)的從設(shè)備發(fā)送數(shù)據(jù)或從其請求數(shù)據(jù)。
MOSI:主輸出?從輸入。數(shù)據(jù)離開主設(shè)備并進(jìn)入從設(shè)備。芯片A上的MOSI線連接到芯片B上的MOSI線。
MISO:主機(jī)輸入?從機(jī)輸出。數(shù)據(jù)離開從設(shè)備并進(jìn)入主設(shè)備(或以菊花鏈配置的另一個(gè)從設(shè)備;請參閱下一節(jié))。芯片A上的MISO線連接到芯片B上的MISO線。
CPOL:時(shí)鐘極性。這支配時(shí)鐘信號(hào)的初始邏輯狀態(tài)。有關(guān)更多信息,請參考上一節(jié)。
CPHA:時(shí)鐘相位。這支配了數(shù)據(jù)轉(zhuǎn)換和時(shí)鐘轉(zhuǎn)換之間的關(guān)系。有關(guān)更多信息,請參考上一節(jié)。

從選擇和菊花鏈
多從選擇配置

在標(biāo)準(zhǔn)的SPI安排中,主設(shè)備可以通過啟用設(shè)備(即,將相應(yīng)設(shè)備的從選擇線設(shè)置為邏輯低電平)向共享公共數(shù)據(jù)線的單個(gè)設(shè)備寫入數(shù)據(jù)或向其請求數(shù)據(jù)。注意不要同時(shí)啟用多個(gè)從站,因?yàn)榉祷氐街髡镜臄?shù)據(jù)將由于MISO線之間的驅(qū)動(dòng)程序爭用而損壞。某些應(yīng)用程序不需要將數(shù)據(jù)返回給主服務(wù)器;在這種情況下,如果主機(jī)希望將相同的數(shù)據(jù)發(fā)送到多個(gè)從機(jī),則可以同時(shí)尋址多個(gè)從機(jī)。



在多從站選擇配置中,每個(gè)從站都需要來自主站的唯一從站選擇線。如果主站沒有足夠的I / O引腳來滿足所需數(shù)量的從站,則可以通過合并解碼器/多路分解器來實(shí)現(xiàn)I / O擴(kuò)展,例如74HC(T)238(PDF)(3至8行)解碼器/解復(fù)用器)。

菊花鏈配置

在此配置中,數(shù)據(jù)從一臺(tái)設(shè)備移動(dòng)到另一臺(tái)設(shè)備。最終的從設(shè)備可以將數(shù)據(jù)返回給主設(shè)備。



在菊花鏈配置中,所有從機(jī)共享一條公共的從機(jī)選擇線。數(shù)據(jù)從主機(jī)轉(zhuǎn)移到第一個(gè)從機(jī),然后從第一個(gè)從機(jī)轉(zhuǎn)移到第二個(gè),依此類推。數(shù)據(jù)沿線級(jí)聯(lián)直至該系列中的最后一個(gè)從機(jī),然后可以使用其MISO線將數(shù)據(jù)發(fā)送到主設(shè)備。
這種配置非常適合節(jié)日期間流行的可單獨(dú)尋址的LED燈串。

結(jié)論

串行外設(shè)接口已經(jīng)存在了數(shù)十年,沒有理由期望它會(huì)很快消失。雖然I 2 C和UART可能會(huì)更受歡迎,但SPI是一種通用且直接的串行通信接口,非常適合某些應(yīng)用。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1688

    瀏覽量

    91176
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    scsi接口串行還是并行

    可以是并行的,也可以是串行的,這取決于其具體的實(shí)現(xiàn)方式。 一、SCSi接口的發(fā)展歷程 早期的SCSi接口 SCSi接口最早出現(xiàn)在1986年,由美國國家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)發(fā)布。最初的S
    的頭像 發(fā)表于 10-14 10:31 ?154次閱讀

    串行接口PCB設(shè)計(jì)指南:優(yōu)化布局與布線策略

    串行接口是計(jì)算機(jī)上的一個(gè)擴(kuò)展接口,通常簡稱為串口或COM口,采用串行通信方式進(jìn)行數(shù)據(jù)傳輸。在串行通信中,數(shù)據(jù)是一位一位地順序傳送的,通信線路
    的頭像 發(fā)表于 09-18 13:58 ?1429次閱讀
    <b class='flag-5'>串行</b><b class='flag-5'>接口</b>PCB設(shè)計(jì)指南:優(yōu)化布局與布線策略

    串行接口PCB設(shè)計(jì)指南:優(yōu)化布局與布線策略

    串行接口是計(jì)算機(jī)上的一個(gè)擴(kuò)展接口,通常簡稱為串口或COM口,采用串行通信方式進(jìn)行數(shù)據(jù)傳輸。在串行通信中,數(shù)據(jù)是一位一位地順序傳送的,通信線
    發(fā)表于 09-18 12:02

    如何使用可配置邏輯塊 (CLB) 實(shí)施定制串行接口

    電子發(fā)燒友網(wǎng)站提供《如何使用可配置邏輯塊 (CLB) 實(shí)施定制串行接口.pdf》資料免費(fèi)下載
    發(fā)表于 09-09 10:07 ?0次下載
    如何使用可配置邏輯塊 (CLB) 實(shí)施定制<b class='flag-5'>串行</b><b class='flag-5'>接口</b>

    快速串行接口(FSI)在多芯片互連中的應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《快速串行接口(FSI)在多芯片互連中的應(yīng)用.pdf》資料免費(fèi)下載
    發(fā)表于 08-27 10:18 ?0次下載
    快速<b class='flag-5'>串行</b><b class='flag-5'>接口</b>(FSI)在多芯片互連中的應(yīng)用

    串行外設(shè)接口的菊花鏈實(shí)現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《串行外設(shè)接口的菊花鏈實(shí)現(xiàn).pdf》資料免費(fèi)下載
    發(fā)表于 08-27 09:45 ?1次下載
    <b class='flag-5'>串行</b>外設(shè)<b class='flag-5'>接口</b>的菊花鏈實(shí)現(xiàn)

    串行接口與并行接口的區(qū)別

    串行接口(Serial Interface)與并行接口(Parallel Interface)是計(jì)算機(jī)與外部設(shè)備之間進(jìn)行數(shù)據(jù)傳輸?shù)膬煞N基本方式,它們在多個(gè)方面存在顯著差異。以下將從數(shù)據(jù)傳輸方式、傳輸速率、接線方式、設(shè)備兼容性、優(yōu)
    的頭像 發(fā)表于 08-25 17:08 ?2459次閱讀

    串行接口的工作原理和結(jié)構(gòu)

    串行接口(Serial Interface)的工作原理和結(jié)構(gòu)是理解其在計(jì)算機(jī)與外部設(shè)備之間數(shù)據(jù)傳輸方式的重要基礎(chǔ)。以下將詳細(xì)闡述串行接口的工作原理及其典型結(jié)構(gòu)。
    的頭像 發(fā)表于 08-25 17:01 ?1292次閱讀

    ADS79xx串行接口ADC數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《ADS79xx串行接口ADC數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 07-16 10:26 ?0次下載
    ADS79xx<b class='flag-5'>串行</b><b class='flag-5'>接口</b>ADC數(shù)據(jù)表

    TUSB2046x 4端口集線器,用于帶可選串行EEPROM接口的通用串行總線數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《TUSB2046x 4端口集線器,用于帶可選串行EEPROM接口的通用串行總線數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 06-25 09:36 ?0次下載
    TUSB2046x 4端口集線器,用于帶可選<b class='flag-5'>串行</b>EEPROM<b class='flag-5'>接口</b>的通用<b class='flag-5'>串行</b>總線數(shù)據(jù)表

    串行音頻接口(SAI)中slot是什么意思?

    最近想使用STM32F746中的串行音頻接口(SAI)發(fā)送音頻數(shù)據(jù)給一個(gè)音頻編解碼芯片,在查看datasheet中,出現(xiàn)很多次的slot,但是又沒有詳細(xì)地介紹slot到底是什么,里面包含的是什么數(shù)據(jù),求各位大神幫忙
    發(fā)表于 05-11 07:01

    什么是I2C接口?什么是I3C接口?I2C與I3C的區(qū)別

    I2C接口是一種串行通信協(xié)議,全稱為Inter-Integrated Circuit,即集成電路間總線。它是一種雙向、兩線制(SCL和SDA)的串行通信接口,主要用于連接微控制器和其他
    的頭像 發(fā)表于 02-17 14:39 ?5150次閱讀
    什么是I2C<b class='flag-5'>接口</b>?什么是I3C<b class='flag-5'>接口</b>?I2C與I3C的區(qū)別

    微控制器的七個(gè)串行接口

    我們將簡要介紹七個(gè)串行接口:SIO、UART、SSP(SPI)、I2C、CAN、USB和EtherMAC。雖然每個(gè)接口都有幾個(gè)不同的操作模式,但我們只介紹一個(gè)典型的模式。
    的頭像 發(fā)表于 01-11 09:30 ?2476次閱讀
    微控制器的七個(gè)<b class='flag-5'>串行</b><b class='flag-5'>接口</b>

    HPM5300系列SEI串行編碼器接口:如何設(shè)置通訊協(xié)議(上)

    01.串行編碼器接口SEI的應(yīng)用場景SEI串行編碼器接口是HPM單片機(jī)獨(dú)創(chuàng)的通信接口外設(shè),可以在同一個(gè)硬件
    的頭像 發(fā)表于 12-20 08:17 ?2118次閱讀
    HPM5300系列SEI<b class='flag-5'>串行</b>編碼器<b class='flag-5'>接口</b>:如何設(shè)置通訊協(xié)議(上)

    SPI串行外設(shè)接口是什么

    SPI用于CPU與各種外圍器件進(jìn)行全雙工、同步串行通訊。它只需四條線就可以完成MCU與各種外圍器件的通訊,這四條線是:串行時(shí)鐘線(CSK)、主機(jī)輸入/從機(jī)輸出數(shù)據(jù)線(MISO)、主機(jī)輸
    的頭像 發(fā)表于 11-09 17:52 ?628次閱讀
    SPI<b class='flag-5'>串行</b>外設(shè)<b class='flag-5'>接口</b>是什么