乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

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

       西北望msm66g9f 2019-02-19

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


      • 簡介

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

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

      --from 百度百科

      https://baike.baidu.com/item/SPI



      該接口由摩托羅拉在20世紀(jì)80年代中期開發(fā),并已成為事實標(biāo)準(zhǔn)。

      --from Wiki

      https://en./wiki/Serial_Peripheral_Interface


      從維基百科查閱的的事實標(biāo)準(zhǔn),在這來科普一下知識盲點:


      事實標(biāo)準(zhǔn)是指非由標(biāo)準(zhǔn)化組織制定的,而是由處于技術(shù)領(lǐng)先地位的企業(yè)、企業(yè)集團(tuán)制定(有的還需行業(yè)聯(lián)盟組織認(rèn)可,如DVD標(biāo)準(zhǔn)需經(jīng)DVD論壇認(rèn)可),由市場實際接納的技術(shù)標(biāo)準(zhǔn)。

      --from 百度百科

      https://baike.baidu.com/item/事實標(biāo)準(zhǔn)


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


      • 信號線


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

      SCLK串行時鐘(主機輸出)

      MOSI主輸出從機輸入或主機輸出從機輸入(主機輸出的數(shù)據(jù))

      MISO主輸入從輸出或主輸入從輸出(從輸出的數(shù)據(jù)輸出)

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


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


      串口時鐘

      SCLKSCK

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

      SIMOMTSR - 對應(yīng)主設(shè)備和從設(shè)備上的MOSI,相互連接

      SDI,DIDIN,SI - 在從設(shè)備上; 連接到主設(shè)備上的MOSI,或連接到下面的連接

      SDO,DODOUT,SO - 在主設(shè)備上; 連接到從站上的MOSI,或連接到上面的連接

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

      SOMI,MRST - 對應(yīng)主設(shè)備和從設(shè)備上的MISO,相互連接

      SDO,DO,DOUTSO - 在從設(shè)備上; 連接到主設(shè)備上的MISO,或連接到下面的連接

      SDIDI,DIN,SI - 主設(shè)備; 連接到奴隸上的MISO或上面的連接

      從機選擇:

      SSS?S?,SSEL,CSC?S?,CEnSS,/ SS,SS


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


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


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


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




       

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



      • 信號時序


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


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

       


       

      對比不難發(fā)現(xiàn),時序圖的規(guī)范,定義了各個信號線輸出電平的順序和時延,還定義了時鐘信號跳變沿與數(shù)據(jù)信號的對齊,這里的對齊實際上就是數(shù)據(jù)的輸出和采樣。


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


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


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


      • 接口配置項


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


      • 接口模式


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


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


      • 設(shè)備主從模式


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


      • 數(shù)據(jù)寬度


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


      • 時鐘極性、時鐘相位


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


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

       



       

      • 時鐘速率

      速率選擇定義了時鐘信號線在數(shù)據(jù)傳輸是的翻轉(zhuǎn)速率,這體現(xiàn)到每個芯片定義的接口時序圖中,即可承受的速率范圍,如果主機設(shè)的速率太快,而從機響應(yīng)過慢會導(dǎo)致通信失敗。


      • 數(shù)據(jù)bit位大小端選擇


      數(shù)據(jù)的發(fā)送優(yōu)先bit可配置,從上篇的UART協(xié)議可以知道,UART規(guī)定了數(shù)據(jù)優(yōu)先發(fā)bit0,而這個SPI是可配置優(yōu)先發(fā)送bit的,可設(shè)置最低位或者最高位。


      FLASH型號為GD25Q32OLED型號為QG-2832TLBFG04的時序截圖可看到,這兩個器件都是優(yōu)先發(fā)MSB,也就是最高位優(yōu)先。


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

       

      可見SPI器件普遍采用MSB的發(fā)送優(yōu)先順序。


      總結(jié)SPI通信接口,一主多從的通信架構(gòu),標(biāo)準(zhǔn)模式有四根信號線、依靠選擇信號SS開始通信、時鐘信號SCLK進(jìn)行逐bit輸出和采樣、可配置的采樣時刻和可選擇的優(yōu)先發(fā)出bit。



      參考資料:

      SPI》@百度百科

      https://baike.baidu.com/item/SPI

      《SPI》@Wiki

      https://en./wiki/Serial_Peripheral_Interface


        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多