<th id="nb95r"><meter id="nb95r"><dfn id="nb95r"></dfn></meter></th>
    <nobr id="nb95r"><menuitem id="nb95r"><var id="nb95r"></var></menuitem></nobr>

    <listing id="nb95r"><meter id="nb95r"></meter></listing>
    <thead id="nb95r"><meter id="nb95r"></meter></thead>
    <font id="nb95r"><meter id="nb95r"></meter></font>
    <sub id="nb95r"><menuitem id="nb95r"></menuitem></sub>

    <sub id="nb95r"><meter id="nb95r"><dfn id="nb95r"></dfn></meter></sub>

      <thead id="nb95r"></thead>

      <sub id="nb95r"><meter id="nb95r"><cite id="nb95r"></cite></meter></sub>

      新聞中心

      EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式硬件通信接口協議-SPI(一)協議基礎

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

      作者:時間:2019-03-08來源:網絡收藏

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

      本文引用地址:http://www.ytvs.tw/article/201903/398336.htm

        簡介

        (全稱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:S?S?,SSEL,CS,C?S?,CE,nSS,/ SS,SS#

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

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

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

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

        


        


        


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

        信號時序

        四線SPI接口的時序一般的總是先拉低從機選擇信號線SS,然后輸出SCLK,帶著數據MOSI,此時MISO為高阻態。大致如下如:

        


        一般有SPI接口的器件,在Spec上都會有對應的時序圖,這里分別截取SPI接口FLASH型號為GD25Q32C、SPI接口OLED型號為QG-2832TLBFG04,這兩器件的Spec內關于SPI時序部分的介紹,如下兩張截圖:

        


        


        對比不難發現,時序圖的規范,定義了各個信號線輸出電平的順序和時延,還定義了時鐘信號跳變沿與數據信號的“對齊”,這里的“對齊”實際上就是數據的輸出和采樣。

        同樣的,這個時序規范了SPI器件所呈現的SPI接口信號線特性,包括:時鐘上升、下降沿時長;片選與時鐘跳變沿之間的時延;時鐘邊緣與數據線保持的時長…

        這些時序特性,都在明確了SPI主機與其通信時,要求不超出其定義的范圍,否則從機器件響應不及時而導致通信異常。

        不同的器件,對SPI接口的信號時序要求也會不同。第一張簡明的時序圖,而基于這樣的時序圖,SPI接口又可以配置不同的接口配置參數。

        接口配置項

        一般在開發時,接口的可選配置有:接口模式(實際配置的是單、雙工模式選擇)、設備主從模式、數據寬度、時鐘極性(CPOL:)、時鐘相位(CPHA)、時鐘速率、數據bit位大小端選擇。

        接口模式

        標準的四線SPI接口,使用的場景是主從機進行數據交互的通信,兩方都有數據的收發過程,而在LCD/OLED這樣的SPI接口作為從設備的器件中,就不需要數據返回給主機,只需要接收來自主機的控制信息和顯示的數據。

        基于這樣的使用場景,就可以配置成三線的單工通信,即僅需要從機選擇SS、時鐘SCLK、數據輸出MOSI即可。

        設備主從模式

        這個配置一般需要看芯片是否支持,可將芯片配置成SPI主機或者從機,能更好地集成在項目的系統中。

        數據寬度

        顧名思義,就是發送數據可以配置成8bit、16bit等,這也是根據芯片而定。

        時鐘極性、時鐘相位

        這兩者分別是CPOL(Clock Polarity)、CPHA(Clock Phase),極性就是指高低電平,這個定義了SPI總線在空閑狀態下,時鐘保持高電平還是低電平,因為這個關系到了SPI通信時第一個時鐘跳變沿是上升還是下降沿;相位指的是時鐘的跳變沿,指定了數據信號的輸出和采樣如何與時鐘對齊。

        這兩個配置,在Wiki和百度百科上都做了非常清晰的解釋,這里截圖引用如下:

        


        


        時鐘速率

        速率選擇定義了時鐘信號線在數據傳輸是的翻轉速率,這體現到每個芯片定義的接口時序圖中,即可承受的速率范圍,如果主機設的速率太快,而從機響應過慢會導致通信失敗。

        數據bit位大小端選擇

        數據的發送優先bit可配置,從上篇的UART協議可以知道,UART規定了數據優先發bit0,而這個SPI是可配置優先發送bit的,可設置最低位或者最高位。

        從FLASH型號為GD25Q32和OLED型號為QG-2832TLBFG04的時序截圖可看到,這兩個器件都是優先發MSB,也就是最高位優先。

        再對比一款字庫芯片型號為GT21L16S2W的讀取指令:

        


        可見SPI器件普遍采用MSB的發送優先順序。

        總結SPI通信接口,一主多從的通信架構,標準模式有四根信號線、依靠選擇信號SS開始通信、時鐘信號SCLK進行逐bit輸出和采樣、可配置的采樣時刻和可選擇的優先發出bit。



      關鍵詞: 嵌入式 SPI

      評論

      技術專區

      關閉
      v98彩票是不是骗局

        <th id="nb95r"><meter id="nb95r"><dfn id="nb95r"></dfn></meter></th>
        <nobr id="nb95r"><menuitem id="nb95r"><var id="nb95r"></var></menuitem></nobr>

        <listing id="nb95r"><meter id="nb95r"></meter></listing>
        <thead id="nb95r"><meter id="nb95r"></meter></thead>
        <font id="nb95r"><meter id="nb95r"></meter></font>
        <sub id="nb95r"><menuitem id="nb95r"></menuitem></sub>

        <sub id="nb95r"><meter id="nb95r"><dfn id="nb95r"></dfn></meter></sub>

          <thead id="nb95r"></thead>

          <sub id="nb95r"><meter id="nb95r"><cite id="nb95r"></cite></meter></sub>

            <th id="nb95r"><meter id="nb95r"><dfn id="nb95r"></dfn></meter></th>
            <nobr id="nb95r"><menuitem id="nb95r"><var id="nb95r"></var></menuitem></nobr>

            <listing id="nb95r"><meter id="nb95r"></meter></listing>
            <thead id="nb95r"><meter id="nb95r"></meter></thead>
            <font id="nb95r"><meter id="nb95r"></meter></font>
            <sub id="nb95r"><menuitem id="nb95r"></menuitem></sub>

            <sub id="nb95r"><meter id="nb95r"><dfn id="nb95r"></dfn></meter></sub>

              <thead id="nb95r"></thead>

              <sub id="nb95r"><meter id="nb95r"><cite id="nb95r"></cite></meter></sub>