• <option id="immmk"></option>
  • <noscript id="immmk"><kbd id="immmk"></kbd></noscript>
    發布時間:2020-10-05 23:08 原文鏈接: 嵌入式硬件通信接口協議SPI:協議基礎(一)

    本節繼續講嵌入式硬件通信接口協議中的另外一個串行通信接口-SPI。相比于UART串口協議,SPI又有著其獨特之處。

    簡介

    SPI(全稱SerialPeripheral Interface),串行外設接口。

    SPI是串行外設接口(SerialPeripheral Interface)的縮寫。SPI,是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節約了芯片的管腳,同時為PCB的布局上節省空間,提供方便,正是出于這種簡單易用的特性,如今越來越多的芯片集成了這種通信協議,比如AT91RM9200。

    --from 百度百科

    該接口由摩托羅拉在20世紀80年代中期開發,并已成為事實標準。

    --from Wiki

    從維基百科查閱的的“事實標準”,在這來科普一下知識盲點:

    事實標準是指非由標準化組織制定的,而是由處于技術領先地位的企業、企業集團制定(有的還需行業聯盟組織認可,如DVD標準需經DVD論壇認可),由市場實際接納的技術標準。

    --from 百度百科

    SPI接口定義了一主多從這樣的一個通信架構,在同一SPI總線上只有一個主機,可以有多個從機。這樣的架構就限制了通信的主動權只能在主機端,主機發起一次通信,從機做出想要。

    信號線

    SPI被稱為四線串行總線,其信號線分別有:

    SCLK:串行時鐘(主機輸出)

    MOSI:主輸出從機輸入或主機輸出從機輸入(主機輸出的數據)

    MISO:主輸入從輸出或主輸入從輸出(從輸出的數據輸出)

    SS:從機選擇(通常為低電平有效,主機輸出)

    信號線命名也是五花八門,以下的命名也是會遇見的:

    串口時鐘

    SCLK:SCK

    主輸出--->從輸入(MOSI):

    SIMO,MTSR - 對應主設備和從設備上的MOSI,相互連接

    SDI,DI,DIN,SI - 在從設備上; 連接到主設備上的MOSI,或連接到下面的連接

    SDO,DO,DOUT,SO - 在主設備上; 連接到從站上的MOSI,或連接到上面的連接

    主輸入<---從輸出(MISO):

    SOMI,MRST - 對應主設備和從設備上的MISO,相互連接

    SDO,DO,DOUT,SO - 在從設備上; 連接到主設備上的MISO,或連接到下面的連接

    SDI,DI,DIN,SI - 主設備; 連接到奴隸上的MISO或上面的連接

    從機選擇:

    SS:SSEL,CS,CE,nSS,/ SS,SS#

    以上容易讓人混淆的名字是SDO、SDI、DOUT、DIN等,這些都需要看具體印在主設備還是從設備上單獨討論。但是一般的還是盡量寫清寫規范,這樣不容易產生歧義。

    SPI作為同步串行接口,可以認為有兩個同步信號,第一個是從機選擇SS信號,告知被選中的從機,準備開始進行SPI通信,第二個是同步時鐘信號SCLK,收發雙方進行數據的交互時,都是基于SCLK的跳變進行逐bit輸出和采樣的

    四根信號線并非全部都需要,根據工作模式,可以配置成兩線、三線。

    在STM32CubeMX工具的配置頁面,可以很清楚看到,配置不同的工作模式時,對應被使能的芯片管腳有何不同:

    嵌入式硬件通信接口協議-SPI(一)協議基礎

    嵌入式硬件通信接口協議-SPI(一)協議基礎

    嵌入式硬件通信接口協議-SPI(一)協議基礎

    對比發現,全雙工的四線和三線的區別是從機選擇信號NSS。這種情況一般是因為SPI總線上只有一主一從的通信架構,從機的NSS信號一直接低電平,不需要做從機選擇。


  • <option id="immmk"></option>
  • <noscript id="immmk"><kbd id="immmk"></kbd></noscript>
    伊人久久大香线蕉综合影院首页