《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 其他 > Linux教學——帶你快速對比SPI、UART、I2C通信的區別與應用!

Linux教學——帶你快速對比SPI、UART、I2C通信的區別與應用!

2022-08-17
作者:電子技術應用專欄作家 一口Linux
來源:電子技術應用專欄作家 一口Linux
關鍵詞: SPI UART I2C

  電子設備之間的通信就像人類之間的交流,雙方都需要說相同的語言。在電子產品中,這些語言稱為通信協議。

  之前有單獨地分享了SPIUARTI2C通信的文章,這篇對它們做一些對比。

  串行 VS 并行

  電子設備通過發送數據位從而實現相互交談。位是二進制的,只能是1或0。通過電壓的快速變化,位從一個設備傳輸到另一個設備。在以5V工作的系統中,“0”通過0V的短脈沖進行通信,而“1”通過5V的短脈沖進行通信。

  數據位可以通過并行或串行的形式進行傳輸。另外也可以通過此視頻了解:視頻講解UART、I2C、SPI串口通信。在并行通信中,數據位在導線上同時傳輸。下圖顯示了二進制(01000011)中字母“C”的并行傳輸:

  微信圖片_20220817162140.png

  在串行通信中,位通過單根線一一發送。下圖顯示了二進制(01000011)中字母“C”的串行傳輸:

  微信圖片_20220817162150.png

  SPI通信

  SPI是一種常見的設備通用通信協議。它有一個獨特優勢就是可以無中斷傳輸數據,可以連續地發送或接收任意數量的位。而在I2C和UART中,數據以數據包的形式發送,有著限定位數。

  在SPI設備中,設備分為主機與從機系統。主機是控制設備(通常是微控制器),而從機(通常是傳感器,顯示器或存儲芯片)從主機那獲取指令。

  一套SPI通訊共包含四種信號線:MOSI (Master Output/Slave Input) – 信號線,主機輸出,從機輸入。MISO (Master Input/Slave Output) – 信號線,主機輸入,從機輸出。SCLK (Clock) – 時鐘信號。SS/CS (Slave Select/Chip Select) – 片選信號。

  微信圖片_20220817162205.png

  SPI協議特點

  實際上,從機的數量受系統負載電容的限制,它會降低主機在電壓電平之間準確切換的能力。

  時鐘信號

  每個時鐘周期傳輸一位數據,因此數據傳輸的速度取決于時鐘信號的頻率。 時鐘信號由于是主機配置生成的,因此SPI通信始終由主機啟動。

  設備共享時鐘信號的任何通信協議都稱為同步。SPI是一種同步通信協議,還有一些異步通信不使用時鐘信號。 例如在UART通信中,雙方都設置為預先配置的波特率,該波特率決定了數據傳輸的速度和時序。

  片選信號

  主機通過拉低從機的CS/SS來使能通信。 在空閑/非傳輸狀態下,片選線保持高電平。在主機上可以存在多個CS/SS引腳,允許主機與多個不同的從機進行通訊。

  微信圖片_20220817162234.png

  如果主機只有一個片選引腳可用,則可以通過以下方式連接這些從器件:

  微信圖片_20220817162435.png

       MOSI和MISO

  主機通過MOSI以串行方式將數據發送給從機,從機也可以通過MISO將數據發送給主機,兩者可以同時進行。所以理論上,SPI是一種全雙工的通訊協議。

  傳輸步驟

  1. 主機輸出時鐘信號

 微信截圖_20220817162514.png

  使用SPI有一些優點和缺點,如果在不同的通信協議之間進行選擇,則應根據項目要求進行充分考量。

  SPI優點

  SPI通訊無起始位和停止位,因此數據可以連續流傳輸而不會中斷;沒有像I2C這樣的復雜的從站尋址系統,數據傳輸速率比I2C更高(幾乎快兩倍)。獨立的MISO和MOSI線路,可以同時發送和接收數據。

  SPI缺點

  SPI使用四根線(I2C和UART使用兩根線),沒有信號接收成功的確認(I2C擁有此功能),沒有任何形式的錯誤檢查(如UART中的奇偶校驗位等)。

  微信圖片_20220817162729.png

  UART代表通用異步接收器/發送器也稱為串口通訊,它不像SPI和I2C這樣的通信協議,而是微控制器中的物理電路或獨立的IC。

  UART的主要目的是發送和接收串行數據,其最好的優點是它僅使用兩條線在設備之間傳輸數據。UART的原理很容易理解,但是如果您還沒有閱讀SPI 通訊協議,那可能是一個不錯的起點。

  UART通信

  在UART通信中,兩個UART直接相互通信。相關實例:按下按鍵,通過串口發送數據實例。發送UART將控制設備(如CPU)的并行數據轉換為串行形式,以串行方式將其發送到接收UART。只需要兩條線即可在兩個UART之間傳輸數據,數據從發送UART的Tx引腳流到接收UART的Rx引腳:

  微信圖片_20220817162754.png

  UART屬于異步通訊,這意味著沒有時鐘信號,取而代之的是在數據包中添加開始和停止位。這些位定義了數據包的開始和結束,因此接收UART知道何時讀取這些數據。

  當接收UART檢測到起始位時,它將以特定波特率的頻率讀取。波特率是數據傳輸速度的度量,以每秒比特數(bps)表示。兩個UART必須以大約相同的波特率工作,發送和接收UART之間的波特率只能相差約10%。

  微信截圖_20220817162815.png

  UART工作原理

  發送UART從數據總線獲取并行數據后,它會添加一個起始位,一個奇偶校驗位和一個停止位來組成數據包并從Tx引腳上逐位串行輸出,接收UART在其Rx引腳上逐位讀取數據包。

  微信圖片_20220817162903.png

  UART數據包含有1個起始位,5至9個數據位(取決于UART),一個可選的奇偶校驗位以及1個或2個停止位:

  微信圖片_20220817162914.png

  起始位:

  UART數據傳輸線通常在不傳輸數據時保持在高電壓電平。開始傳輸時發送UART在一個時鐘周期內將傳輸線從高電平拉低到低電平,當接收UART檢測到高電壓到低電壓轉換時,它開始以波特率的頻率讀取數據幀中的位。

  數據幀:

  數據幀內包含正在傳輸的實際數據。如果使用奇偶校驗位,則可以是5位,最多8位。如果不使用奇偶校驗位,則數據幀的長度可以為9位。

  校驗位:

  奇偶校驗位是接收UART判斷傳輸期間是否有任何數據更改的方式。接收UART讀取數據幀后,它將對值為1的位數進行計數,并檢查總數是偶數還是奇數,是否與數據相匹配。

  停止位:

  為了向數據包的結尾發出信號,發送UART將數據傳輸線從低電壓驅動到高電壓至少持續兩位時間。

  傳輸步驟

  微信截圖_20220817163231.png

 微信截圖_20220817163254.png

  沒有任何通信協議是完美的,但是UART非常擅長于其工作。以下是一些利弊,可幫助您確定它們是否適合您的項目需求:

  優點

  僅使用兩根電線

  無需時鐘信號

  具有奇偶校驗位以允許進行錯誤檢查

  只要雙方都設置好數據包的結構

  有據可查并得到廣泛使用的方法

  缺點

  數據幀的大小最大為9位

  不支持多個從屬系統或多個主系統

  每個UART的波特率必須在彼此的10%之內

  I2C通信

  I2C總線是由Philips公司開發的一種簡單、雙向二線制同步串行總線。相關文章:STM32開發中使用C語言實現IIC驅動。它只需要兩根線即可傳送信息。它結合了 SPI 和 UART 的優點,您可以將多個從機連接到單個主機(如SPI那樣),也可以使用多個主機控制一個或多個從機。當您想讓多個微控制器將數據記錄到單個存儲卡或將文本顯示到單個LCD時,這將非常有用。

  微信圖片_20220817163714.png

  SDA (Serial Data) – 數據線。

  SCL (Serial Clock) – 時鐘線。

  I2C是串行通信協議,因此數據沿著SDA一點一點地傳輸。與SPI一樣,I2C也需要時鐘同步信號且時鐘始終由主機控制。

  微信圖片_20220817163727.png

  工作原理

  I2C的數據傳輸是以多個msg的形式進行,每個msg都包含從機的二進制地址幀,以及一個或多個數據幀,還包括開始條件和停止條件,讀/寫位和數據幀之間的ACK / NACK位:

微信圖片_20220817163738.png

  啟動條件:當SCL是高電平時,SDA從高電平向低電平切換。

  停止條件:當SCL是高電平時,SDA由低電平向高電平切換。

  微信圖片_20220817164018.png

  地址幀:每個從屬設備唯一的7位或10位序列,用于主從設備之間的地址識別。

  讀/寫位:一位,如果主機是向從機發送數據則為低電平,請求數據則為高電平。

  ACK/NACK:消息中的每個幀后均帶有一個ACK/NACK位。如果成功接收到地址幀或數據幀,接收設備會返回一個ACK位用于表示確認。

  尋址

  由于I2C沒有像SPI那樣的片選線,因此它需要使用另一種方式來確認某一個從設備,而這個方式就是 —— 尋址 。

  主機將要通信的從機地址發送給每個從機,然后每個從機將其與自己的地址進行比較。如果地址匹配,它將向主機發送一個低電平ACK位。如果不匹配,則不執行任何操作,SDA線保持高電平。

  讀/寫位

  地址幀的末尾包含一個讀/寫位。如果主機要向從機發送數據,則為低電平。如果是主機向從機請求數據,則為高電平。

  數據幀

  當主機檢測到從機的ACK位后,就可以發送第一個數據幀了。數據幀始終為8位,每個數據幀后緊跟一個ACK / NACK位,來驗證接收狀態。當發送完所有數據幀后,主機可以向從機發送停止條件來終止通信。

  傳輸步驟

  1. 在SCL線為高電平時,主機通過將SDA線從高電平切換到低電平來啟動總線通信。

  2. 主機向總線發送要與之通信的從機的7位或10位地址,以及讀/寫位:

  微信圖片_20220817164054.png

  3. 每個從機將主機發送的地址與其自己的地址進行比較。如果地址匹配,則從機通過將SDA線拉低一位返回一個ACK位。如果主機的地址與從機的地址不匹配,則從機將SDA線拉高。

微信圖片_20220817164106.png

  4. 主機發送或接收數據幀:

  微信圖片_20220817164119.png

  5. 傳輸完每個數據幀后,接收設備將另一個ACK位返回給發送方,以確認已成功接收到該幀:

  微信圖片_20220817164131.png

  6. 隨后主機將SCL切換為高電平,然后再將SDA切換為高電平,從而向從機發送停止條件。

  單個主機VS多個從機

  由于I2C使用尋址功能,可以通過一個主機控制多個從機。使用7位地址時,最多可以使用128(27)個唯一地址。使用10位地址并不常見,但可以提供1,024(210)個唯一地址。如果要將多個從機連接到單個主機時,請使用4.7K歐的上拉電阻將它們連接,例如將SDA和SCL線連接到Vcc:

微信圖片_20220817164148.png

  多個主機VS多個從機

  I2C支持多個主機同時與多個從機相連,當兩個主機試圖通過SDA線路同時發送或接收數據時,就會出現問題。因此每個主機都需要在發送消息之前檢測SDA線是低電平還是高電平。如果SDA線為低電平,則意味著另一個主機正在控制總線。如果SDA線高,則可以安全地發送數據。如果要將多個主機連接到多個從機,請使用4.7K歐的上拉電阻將SDA和SCL線連接到Vcc:

  微信圖片_20220817164210.png

  與其他協議相比,I2C可能聽起來很復雜。以下是一些利弊,可幫助您確定它們是否適合您的項目需求:

  I2C優點

  僅使用兩根電線

  支持多個主機和多個從機

  每個UART的波特率必須在彼此的10%之內

  硬件比UART更簡單

  眾所周知且被廣泛使用的協議

  I2C缺點

  數據傳輸速率比SPI慢

  數據幀的大小限制為8位


  更多信息可以來這里獲取==>>電子技術應用-AET<<

微信圖片_20210517164139.jpg

微信圖片_20220701092006.jpg

電子技術應用專欄作家 一口Linux

原文鏈接:https://mp.weixin.qq.com/s/m-CNG1R1LBtXA9fEy6G1Eg

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
欧美激情办公室aⅴ_国产欧美综合一区二区三区_欧美午夜精品久久久久免费视_福利视频欧美一区二区三区

          欧美一区1区三区3区公司 | 久久久噜噜噜| 精品91在线| 久久综合九色综合欧美狠狠| 亚洲性感美女99在线| 欧美精品偷拍| 欧美日韩一视频区二区| 欧美三区在线| 狠狠色伊人亚洲综合网站色| 亚洲视频高清| 亚洲狠狠婷婷| 久久综合福利| 欧美全黄视频| 在线视频国内自拍亚洲视频| 欧美暴力喷水在线| 国产精品久久7| 尤物在线精品| 欧美色综合网| 亚洲免费综合| 激情综合视频| 国产欧美日韩亚洲| 极品日韩av| 亚洲少妇自拍| 国产精品国产一区二区| 在线播放一区| 麻豆成人小视频| 99pao成人国产永久免费视频| 狠狠色狠狠色综合人人| 国内精品嫩模av私拍在线观看| 99国产精品视频免费观看一公开 | 一区二区三区国产盗摄| 国产人成精品一区二区三| 免费久久久一本精品久久区| 影音欧美亚洲| 国产私拍一区| 国产一区视频在线观看免费| 99精品欧美一区二区三区| 男人的天堂亚洲| 亚洲国产欧美日韩| 女生裸体视频一区二区三区| 亚洲欧洲日本一区二区三区| 久久精品成人| 9色国产精品| 女生裸体视频一区二区三区| 日韩视频在线观看国产| 久久亚洲风情| 国产欧美日韩一级| 精品福利电影| 欧美a级片一区| 最新国产乱人伦偷精品免费网站| 欧美在线视屏| 亚洲福利国产| 欧美一区二区三区久久精品茉莉花 | 亚洲一区尤物| 亚洲精品在线二区| 在线亚洲观看| 国产精品永久| 欧美亚洲网站| 欧美在线免费| 亚洲第一在线| 免费在线日韩av| 午夜国产一区| 91久久久久| 亚洲女同同性videoxma| 欧美暴力喷水在线| 亚洲黄色影院| 久久久成人网| 激情久久久久| 欧美一级二区| 影音国产精品| 久久亚洲色图| 亚洲欧洲另类| 欧美在线观看天堂一区二区三区| 亚洲视频碰碰| 久久久久久久高潮| 亚洲国产精品www| 美女国产精品| 亚洲美女色禁图| 一区二区黄色| 女女同性女同一区二区三区91| 国产精品国产三级国产专区53| 亚洲网址在线| 免费日韩视频| 亚洲国产导航| 夜夜精品视频| 一区在线视频观看| 亚洲欧美国产精品桃花| 欧美久色视频| 国产精品伊人日日| 国户精品久久久久久久久久久不卡| 亚洲全部视频| 欧美日本国产精品| 免费看的黄色欧美网站| 在线成人h网| 欧美激情91| 亚洲欧美成人综合| 亚洲国产免费看| 欧美日韩p片| 久久亚洲图片| 亚洲一区二区精品在线观看| 精品999网站| 欧美国产三级| 久久精品日韩欧美| 99精品免费| 黑丝一区二区| 欧美日韩理论| 欧美va亚洲va日韩∨a综合色| 国产一区二区久久久| 黄色精品网站| 欧美日韩久久| 欧美日韩无遮挡| 欧美破处大片在线视频| 久久综合久久久| 亚洲综合三区| 欧美在线综合| 久久大逼视频| 六月婷婷久久| 久久综合精品一区| 欧美va亚洲va日韩∨a综合色| 亚洲影视综合| 老鸭窝亚洲一区二区三区| 免费精品视频| 欧美在线亚洲| 国产一区二区在线观看免费播放| 欧美精品一区在线发布| 欧美日韩亚洲一区二区三区在线| 牛夜精品久久久久久久99黑人| 久久青草久久| 欧美高清一区| 国内精品久久久久久久影视麻豆| 国产精品久久| 在线欧美一区| 国产精品永久| 久久综合一区| 国内揄拍国内精品久久| 亚洲黄网站黄| 国产婷婷精品| 玖玖精品视频| 亚洲成人中文| 性久久久久久| 狠狠色丁香久久综合频道| 亚洲成色最大综合在线| 国产亚洲欧洲| 欧美精品一区二区三区在线看午夜 | 先锋影音久久| 国产一区二区你懂的| 欧美日本亚洲韩国国产| 狠狠爱综合网| 一二三区精品| 久久综合中文色婷婷| 亚洲第一在线综合在线| 免费久久久一本精品久久区 | 久久久人人人| 黑人中文字幕一区二区三区| 一本综合精品| 欧美不卡三区| 国产精品制服诱惑| 亚洲大胆在线| 欧美精品一区二区视频 | 欧美1区3d| 国产欧美不卡| 国内精品**久久毛片app| 国产精品手机在线| 狠狠综合久久| 午夜性色一区二区三区免费视频| 国产日韩欧美二区| 亚洲视频久久| 欧美午夜在线视频| 久久亚洲综合| 免费日韩av片| 国产嫩草一区二区三区在线观看| 亚洲欧美一区二区原创| 国产偷自视频区视频一区二区| 欧美视频二区| 欧美国内亚洲| 久久亚洲精品伦理| 亚洲欧美大片| 亚洲一区观看| 亚洲一区激情| 性欧美长视频| 国产一区白浆| 国产精品丝袜xxxxxxx| 一级成人国产| 9色精品在线| 亚洲色诱最新| 亚洲欧美日韩国产综合精品二区 | 午夜一级在线看亚洲| 日韩视频在线播放| 99成人在线| 国产欧美不卡| 亚洲第一区色| 国产一区日韩欧美| 欧美午夜视频在线| 国语自产精品视频在线看8查询8| 亚洲欧美在线网| 国产精品国产三级欧美二区| 欧美亚韩一区| 伊人久久成人| 在线亚洲激情| 久久国产日本精品| 久久久久久久尹人综合网亚洲| 亚洲免费中文| 久久精品综合一区| 午夜日韩在线| 在线观看成人av电影| 国产欧美日韩一区二区三区| 国产精品视频福利| 久久一区精品| 亚洲先锋成人| 国产精品婷婷| 欧美精品日本| 亚洲欧洲日本国产| 麻豆成人在线播放| 国产主播一区二区三区四区| 亚洲美女色禁图| 久久国产99| 亚洲午夜一区| 亚洲一区二区三区精品动漫| 欧美久久九九| 一本一本久久a久久精品综合妖精| 校园激情久久| 影音先锋中文字幕一区| 亚洲综合社区| 亚洲高清精品中出| 欧美一区二区三区免费看| 亚洲图色在线| 欧美在线国产| 亚洲在线视频| 亚洲精品乱码久久久久久蜜桃麻豆 | 欧美一级视频| 很黄很黄激情成人| 亚洲制服少妇| 最新亚洲一区| 欧美三级视频| 蜜桃视频一区| 国产亚洲欧美一区二区| 欧美日韩一区自拍| 久久精选视频| 午夜亚洲精品| 国产精品手机视频| 伊人天天综合| 国产一区二区三区无遮挡| 香蕉久久a毛片| 亚洲精品乱码久久久久久蜜桃麻豆| 麻豆av一区二区三区| 国产欧美一区二区视频| 亚洲国内欧美| 激情亚洲成人| 黄色成人在线网址| 很黄很黄激情成人| 国产一区二区无遮挡| 欧美日本亚洲| 欧美日韩国产精品一卡| 久久亚洲图片| 久久婷婷国产综合尤物精品| 亚洲综合首页| 美女黄色成人网| 美女亚洲精品| 久久一区视频| 欧美精品激情| 欧美体内she精视频在线观看| 欧美二区在线| 欧美午夜精品久久久久免费视| 午夜日韩福利| 欧美日韩a区| 国产在线欧美日韩| 亚洲午夜极品| 亚洲国产美女| 国产日产高清欧美一区二区三区| 99热精品在线观看| 亚洲一区二区三区欧美| 久久成人国产| 欧美精品国产一区| 在线看无码的免费网站| 亚洲精品乱码| 国产农村妇女精品一区二区| 男人的天堂成人在线| 欧美成人高清| 激情自拍一区| 中文精品在线| 欧美在线播放| 亚洲精品乱码久久久久久蜜桃麻豆 | 午夜日韩av| 伊人久久大香线蕉综合热线| 亚洲欧洲精品一区二区| 亚洲一区二区动漫| 欧美一区免费| 亚洲二区三区四区| 性色一区二区| 黄页网站一区| 久久av一区二区三区亚洲| 欧美日韩精选| 国产婷婷精品| 欧美日韩在线一区二区三区| 999亚洲国产精| 欧美一区二区三区久久精品茉莉花| 欧美日韩精品| 国产精品久久久一区二区| 欧美+日本+国产+在线a∨观看| 18成人免费观看视频| 麻豆成人小视频| 亚洲国产二区| 欧美福利影院| 国产精品久久一区二区三区| 欧美激情一区二区三区在线视频| 91久久久一线二线三线品牌| 久久久久久久久一区二区| 最新日韩av| 国产精品一区免费观看| 免费在线亚洲| 午夜日韩激情| 99精品国产福利在线观看免费| 亚洲一区二区三区精品动漫| 欧美日本二区| 亚洲一区二区四区| 国产精品videosex极品| 国产精品久久久久久模特| 欧美一区在线看| 亚洲国产第一| 99pao成人国产永久免费视频| 国产一区二区三区久久久久久久久| 玖玖在线精品| 国产精品五区| 亚洲精品婷婷| 国内视频精品| 欧美极品一区二区三区| 欧美一级二区| 国产精品夜夜夜| 99精品国产一区二区青青牛奶| 欧美成人69| 久久国产直播| 免费不卡亚洲欧美| 国产精品免费看| 亚洲视频二区| 一区二区精品在线| 亚洲精品在线观看免费| 亚洲激情国产| 亚洲激情网址| 亚洲国产精品一区| 亚洲黄色成人久久久| 亚洲成色精品| 亚洲精品国产日韩| 日韩视频在线观看国产| 亚洲精品欧洲精品| 一区二区国产精品| 国产精品日韩欧美一区二区三区| 一本综合久久| 亚洲一区二区三区四区中文| 国产精品亚洲一区| 久久精品成人一区二区三区蜜臀| 欧美中文字幕| 亚洲欧美亚洲| 激情丁香综合| 亚洲美女91| 免费在线日韩av| 久久亚洲精品欧美| 欧美日韩免费高清| 在线观看成人av电影| 亚洲免费黄色| 久久激情一区| 狠狠爱综合网| 制服诱惑一区二区| 麻豆精品传媒视频| 国产精品成人一区二区网站软件 | 亚洲无线一线二线三线区别av| 欧美精品一区在线发布| 亚洲私拍自拍| 国产乱码精品一区二区三区不卡| 免费久久久一本精品久久区| 欧美在线日韩精品| 一区免费在线| 亚洲在线国产日韩欧美| 亚洲欧美一区二区原创| 国产自产精品| 国产精品日韩久久久| 欧美在线亚洲| 中国成人在线视频| 欧美精品二区| 国产精品试看| 欧美日本一区| 国产精品尤物| 好吊色欧美一区二区三区视频| 99在线精品视频在线观看| 欧美一区免费| 国产亚洲第一区| 欧美婷婷在线| 亚洲欧美精品| 99热在线精品观看| 欧美日韩一区二| 亚洲欧美大片| 亚洲高清网站| 欧美 日韩 国产在线 | 国产精品老牛| 国产在线欧美日韩| 久久精品99| 在线亚洲观看| 亚洲第一伊人| 很黄很黄激情成人| 久久久久久自在自线| 日韩香蕉视频|