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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

SPI协议的通信原理

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

零. 聲明


本專欄文章我們會以連載的方式持續更新,本專欄計劃更新內容如下:

第一篇:ESP-IDF基本介紹,主要會涉及模組,芯片,開發板的介紹,環境搭建,程序編譯下載,啟動流程等一些基本的操作,讓你對ESP-IDF開發有一個總體的認識,比我們后續學習打下基礎!

第二篇:ESP32-IDF外設驅動介紹,主要會根據esp-idf現有的driver,提供各個外設的驅動,比如LED,OLED,SPI LCD,TOUCH,紅外,Codec ic等等,在這一篇中,我們不僅僅來做外設驅動,還會對常用的外設總線做一個介紹,讓大家知其然又知其所以然!

第三篇:目前比較火熱的GUI LVGL介紹,主要會設計LVGL7.1,LVGL8的移植介紹,并且也會介紹各個組件,知道原理后,最后,我們會推出一款組態軟件來構建我們的GUI,來提升我們的效率!

第四篇:ESP32-藍牙,熟悉我的,應該都知道,我即使從事藍牙協議棧的開發的,所以這個是我們獨有的優勢,在這一篇章,我們會提供不僅僅是藍牙應用方法的知識,也會應用結合藍牙底層協議棧的理論,讓你徹底從上到下打通藍牙任督二脈!

第五篇:Wi-Fi介紹,熟悉我的,應該也知道,我們也做過一款sdio wifi的驅動教程板子,所以在wifi這方面我們也是有獨有的優勢,在這一篇章,我們同樣不僅僅提供Wi-Fi應用方面的知識,也會結合底層理論,讓你對Wi-Fi有一個清晰的認知!

另外,我們的教程包括但是不局限于以上篇章,為了給你一個更好的導航,以下信息尤其重要,請詳細查看!!

------------------------------------------------------------------------------------------------------------------------------------------

購買開發板(點擊我)

文檔目錄(點擊我)

Github代碼倉庫(點擊我)

藍牙交流扣扣群:539357317

微信公眾號↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

????

------------------------------------------------------------------------------------------------------------------------------------------

一.概念

SPI 協議是由摩托羅拉公司提出的通訊協議 (Serial Peripheral Interface),即串行外圍設備接口,是一種高速全雙工的通信總線。它被廣泛地使用在 ADC、LCD 等設備與 MCU 間,要求通訊速率較高的場合。

二.SPI 物理層

SPI 通訊設備之間的常用連接方式見圖:

SPI 通訊使用 3 條總線及片選線,3 條總線分別為 SCK、MOSI、MISO,片選線為 SS(也叫做CS),它們的作

用介紹如下:

(1) ( Slave Select):從設備選擇信號線,常稱為片選信號線,也稱為 NSS、CS,以下用 NSS 表示。當有多個 SPI 從設備與 SPI 主機相連時,設備的其它信號線 SCK、MOSI 及 MISO 同時并聯到相同的 SPI 總線上,即無論有多少個從設備,都共同只使用這 3 條總線;而每個從設備都有獨立的這一條 NSS 信號線,本信號線獨占主機的一個引腳,即有多少個從設備,就有多少條片選信號線。I2C 協議中通過設備地址來尋址、選中總線上的某個設備并與其進行通訊;而 SPI 協議中沒有設備地址,它使用 NSS 信號線來尋址,當主機要選擇從設備時,

把該從設備的 NSS 信號線設置為低電平,該從設備即被選中,即片選有效,接著主機開始與被選中的從設備進行 SPI 通訊。所以 SPI 通訊以 NSS 線置低電平為開始信號,以 NSS 線被拉高作為結束信號。

(2) SCK (Serial Clock):時鐘信號線,用于通訊數據同步。它由通訊主機產生,決定了通訊的速率,不同的設備支持的最高時鐘頻率不一樣,兩個設備之間通訊時,通訊速率受限于低速設備。

(3) MOSI (Master Output, Slave Input):主設備輸出/從設備輸入引腳。主機的數據從這條信號線輸出,從機由這條信號線讀入主機發送的數據,即這條線上數據的方向為主機到從機。

(4) MISO(Master Input,, Slave Output):主設備輸入/從設備輸出引腳。主機從這條信號線讀入數據,從機的數據由這條信號線輸出到主機,即在這條線上數據的方向為從機到主機。

三.SPI時序圖

我們來看下SPI的時序圖,一共有4種模式,也就是根據“時鐘極性CPOL”和“時鐘相位 CPHA”不同組合搭配而來。

為了方便說明,我們先來介紹下CPOL跟CPHA

時鐘極性 CPOL 是指 SPI 通訊設備處于空閑狀態時,SCK 信號線的電平信號 (即 SPI 通訊開始前、NSS 線為高電平時 SCK 的狀態)。CPOL=0 時,SCK 在空閑狀態時為低電平.

CPOL=1 時,SCK 在空閑狀態時為高電平.

時鐘相位 CPHA 是指數據的采樣的時刻,

當 CPHA=0 時,MOSI 或 MISO 數據線上的信號將會在SCK 時鐘線的“奇數邊沿”被采樣。

當 CPHA=1 時,MOSI 或 MISO 數據線上的信號將會在SCK 時鐘線的“偶數邊沿”被采樣。

介紹完畢這些,我們來介紹下具體的時序圖:

1.CPHA=0

我們來分析這個 CPHA=0 的時序圖。首先,根據 SCK 在空閑狀態時的電平,分為兩種情況。

SCK信號線在空閑狀態為低電平時,CPOL=0;

SCK信號線在空閑狀態為高電平時,CPOL=1。

無論 CPOL=0 還是 =1,因為我們配置的時鐘相位 CPHA=0,在圖中可以看到,采樣時刻都是在SCK 的奇數邊沿。注意當 CPOL=0 的時候,時鐘的奇數邊沿是上升沿,而 CPOL=1 的時候,時鐘的奇數邊沿是下降沿。所以 SPI 的采樣時刻不是由上升/下降沿決定的。MOSI 和 MISO 數據線的有效信號在 SCK 的奇數邊沿保持不變,數據信號將在 SCK 奇數邊沿時被采樣,在非采樣時刻,MOSI 和 MISO 的有效信號才發生切換。

2.CPHA=1

我們來分析這個 CPHA=1 的時序圖。首先,根據 SCK 在空閑狀態時的電平,分為兩種情況。

SCK信號線在空閑狀態為低電平時,CPOL=0;

SCK信號線在空閑狀態為高電平時,CPOL=1。

無論 CPOL=0 還是 =1,因為我們配置的時鐘相位 CPHA=1,在圖中可以看到,采樣時刻都是在SCK 的偶數邊沿。注意當 CPOL=0 的時候,時鐘的奇數邊沿是上升沿,而 CPOL=1 的時候,時鐘的奇數邊沿是下降沿。所以 SPI 的采樣時刻不是由上升/下降沿決定的。MOSI 和 MISO 數據線的有效信號在 SCK 的奇數邊沿保持不變,數據信號將在 SCK 奇數邊沿時被采樣,在非采樣時刻,MOSI 和 MISO 的有效信號才發生切換。

總結下模式:

參考文檔:

1.野火 STM32 HAL庫開發指南

2.SPI協議

總結

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

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