日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SPI协议的介绍

發布時間:2023/12/20 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SPI协议的介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習內容:

學習SPI協議記錄


學習清單:

提示:這里可以添加要學的內容

例如:

  • SPI協議的介紹
  • 三根線還是四根線
  • 兩個概念四種模式
  • SPI時序圖
  • SPI優缺點
  • SPI和IIC的對比

  • 學習詳細內容:

    1.SPI協議的介紹

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

    2.三根線還是四根線

    SPI一般都是默認4線制Motorola SPI協議,即有四根線,分別是:SCLK、MOSI、MISO和CS共4根數據線,標準4線制的好處是可以實現數據的全雙工傳輸,當只有一個主機和一個從設備時,只需要一個CS、多個從機需要多個CS。(CS片選信號有的也叫做SS線),多從機模式,通常每個從機需要一條單獨的SS線,如下圖所示:

    CS是chip select,即從設備使能信號,由主設備控制。當總線上有多個從設備時,主設備如果需要和某個從設備通信,就將該設備的片選引腳拉低使能。


    即通過指定使能NSS,就能與對應的從機進行通信。

    以上圖中的4根線分別是:

    • SCLK:Synchronous CLock,同步時鐘信號,時鐘頻率即SPI速率,和SPI模式有關
    • MOSI:Master output slave input,主設備數據輸出,從設備數據輸入
    • MISO:Master input slave output,主設備數據輸入,從設備數據輸出
    • CS:chip select,從機設備選擇,低電平有效

    3線制SPI,根據不同的應用場景,主要有以下2中類型:

    • 只有3根線:SCLK,MOSI和CS,沒有MISO數據線,適用于單工通訊,主機只發送或只接收從機的數據
    • 只有3根線:SCLK,SDIO和CS,這里的SDIO作為雙向端口,適用于半雙工通訊,比如ADI的多款ADC芯片都支持雙向傳輸。

    3.兩個概念四種模式

    既然是要進行數據的傳輸,雙方就要明確從機在什么時刻去采樣主機發出的數據,主機在什么時刻去讀取從機發來的數據。
    CPOL(Clock Polarity)時鐘的極性,規約了SPI總線在空閑時,時鐘信號是高電平還是低電平;

    • CPOL=0 表示時鐘空閑時為低電平
    • CPOL=1 表示時鐘空閑時為高電平

    CPHA(Clock Phase)時鐘的相位,規約SPI設備是在時鐘上升沿還是下降沿觸發數據采樣。

    • CPHA=0 表示數據在SCLK時鐘上升沿被采樣,在SCLK時鐘下降沿切換(有的說法叫“在時鐘信號SCLK的第一個跳變沿采樣”)
    • CPHA=1表示數據在SCLK時鐘下降沿被采樣,在SCLK時鐘上升沿切換(有的說法叫“在時鐘信號SCLK的第二個跳變沿采樣”)

    時鐘極性和時鐘相位的不同組合,所以有了SPI總線傳輸的4種模式

    模式1:CPOL=0,CPHA=0

    模式1的示例圖:即時鐘空閑時為低電平,在時鐘的上升沿被采樣,下降沿切換

    模式2:CPOL=0,CPHA=1
    模式3:CPOL=1,CPHA=0
    模式4:CPOL=1,CPHA=1

    其余三個模式也是同理

    4.SPI時序圖

    當以模式1為工作模式時:

    先是將CS片選信號拉低,選中要通信的從設備,然后通過MOSI和MISO這兩根數據線進行通信,MOSI數據線發出了0xD2這個數據給從設備,同時從設備也通過MISO線給主設備返回了0x66這個數據。由于SPI是全雙工的,所以讀寫時序可以一起完成。

    5.SPI的優缺點

    SPI的優勢

    • 全雙工串行通信
    • 高速數據傳輸速率
    • 簡單的軟件配置
    • 及其靈活的數據傳輸,不限于8位,它可以是任意大小的字
    • 非常簡單的硬件結構,從站不需要唯一地址(與IIC不同),從機使用主機時鐘,不需要精密時鐘振蕩器/晶振(與UART不同),不需要收發器(與CAN不同)

    SPI的缺點

    • 沒有硬件從機應答信號(主機可能在不知情的情況下無處發送)
    • 通常僅支持一個主設備
    • 需要更多的引腳(與IIC不同)
    • 沒有定義硬件級別的錯誤檢查協議
    • 與RS-232與CAN總線相比,只能支持非常短的距離

    6.SPI和IIC的對比

    • SPI是全雙工,而IIC是半雙工
    • IIC支持多主機多從機,SPI只能有一個主機
    • 從GPIO占用上來看,IIC占用更少的GPIO,更節省資源
    • SPI的數據位寬更靈活,可以根據需要選擇多位數數據寬度
    • SPI協議沒有響應機制,主機無法得知從機是否接收到所發的數據,如果不采用一些方法的話可能會導致數據丟幀
    • 正是因為沒有復雜的響應機制,SPI協議可以做到非常高的速率,每一個SCLK都可以進行數據的傳輸,通過引入CRC校驗等校驗方法,可以即高速傳輸數據,又能保持數據的準確度。
    • IIC通過期間地址來選擇從機,從機數量的增加不會導致GPIO的增加,而SPI通過CS片選信號選擇從機,每增加一個從機就要多占用一個GPIO,當然也可以通過加入譯碼器來實現多從機控制
    • 兩者大多數都應用與板內器件短距離通訊

    學習資料:

    參考資料1
    參考資料2
    參考資料3

    總結

    以上是生活随笔為你收集整理的SPI协议的介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。