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

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

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

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

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

  串行 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。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          99国产精品久久久久久久久久| 欧美成人自拍视频| 欧美精品福利| 一本色道久久综合狠狠躁篇怎么玩| 欧美成人资源网| 欧美在线视频观看免费网站| 欧美日韩另类丝袜其他| 欧美成人激情视频免费观看| 欧美亚洲三级| 性刺激综合网| 国产精品久久久一区二区三区| 久久成人国产| 国产亚洲一区在线播放| 亚洲日本中文字幕免费在线不卡| 亚洲精品国产无天堂网2021| 激情久久综艺| 欧美激情一区二区三区四区| 欧美高清视频www夜色资源网| 黄色一区二区在线观看| 久久天天躁狠狠躁夜夜av| 欧美精选一区| 亚洲国产欧美一区二区三区丁香婷| 亚洲欧美日韩综合一区| 永久免费精品影视网站| 亚洲国产精品一区二区第一页| 欧美一级片久久久久久久| 狠狠色狠狠色综合| 欧美在线视频免费播放| 黄色国产精品一区二区三区| 国产精品日韩一区| 国产女人18毛片水18精品| 欧美视频导航| 国产欧美一二三区| 伊人婷婷欧美激情| 尤物精品国产第一福利三区| 久久―日本道色综合久久| 99pao成人国产永久免费视频| 国产一区二区主播在线| 男人的天堂成人在线| 猛干欧美女孩| 一区二区三区久久精品| 欧美伊人影院| 欧美日韩大片一区二区三区| 欧美一区二区视频免费观看| 国产乱码精品一区二区三区忘忧草| 欧美成人情趣视频| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲国产精品国自产拍av秋霞| 麻豆成人在线| 欧美电影免费观看网站| 亚洲欧美在线观看| 韩国av一区二区三区| 免费一区视频| 亚洲狼人精品一区二区三区| 黄色小说综合网站| 91久久在线| 国产精品国产三级国产a| 精东粉嫩av免费一区二区三区| 亚洲欧美日韩直播| 欧美视频一区二区三区在线观看| 亚洲人成啪啪网站| 亚洲欧美激情一区| 国产亚洲一区二区三区| 国产精品成人v| 国产精品久久77777| 久久久久久久久久久久久9999| 亚洲精品国产精品国自产在线| 国产精品美女999| 夜夜狂射影院欧美极品| 欧美片在线观看| 91久久夜色精品国产九色| 在线观看国产精品网站| 亚洲永久免费观看| 一区二区三区精品久久久| 欧美日韩 国产精品| 久久久在线视频| 99爱精品视频| 国产一区二区三区日韩欧美| 欧美三级网址| 欧美性做爰猛烈叫床潮| 亚洲日本va午夜在线影院| 一区二区三区视频观看| 激情综合在线| 欧美成人日本| 狠狠久久亚洲欧美| 欧美成人午夜77777| 亚洲一区在线播放| 午夜在线观看欧美| 久久夜色精品亚洲噜噜国产mv| 亚洲九九精品| 亚洲一区二区三区久久| 国产精品区二区三区日本| 国产色产综合产在线视频| 久久久夜色精品亚洲| 国产精品久久久久久av福利软件| 国产日韩专区| 午夜日韩在线观看| 亚洲图中文字幕| 欧美精品一区二区三| 亚洲娇小video精品| 欧美午夜精品久久久久久浪潮| 免费看成人av| 欧美专区日韩视频| 国内精品久久久久影院 日本资源| 久久人人爽人人爽爽久久| 久久久久久网站| 亚洲国产精品日韩| 欧美在线视频一区二区三区| 国产精品久久久久久久久久久久| 午夜精品久久久久久久久久久久久| 蜜桃视频一区| 永久免费视频成人| 亚洲视频在线一区| 日韩视频在线观看免费| 牛牛精品成人免费视频| 久久精品国产77777蜜臀| 亚洲人成网站影音先锋播放| 一区二区三区精品国产| 亚洲一级黄色片| 国产精品久久久久久久久久免费| 欧美高清视频一二三区| 亚洲宅男天堂在线观看无病毒| 欧美日韩一区二区欧美激情| 国产精品久久精品日日| 亚洲图片在线观看| 久久久人成影片一区二区三区| 久久精品国产v日韩v亚洲| 99国产精品视频免费观看| 影音先锋日韩有码| 欧美成人精品三级在线观看| 久久深夜福利| 亚洲欧美另类久久久精品2019| 亚洲精品免费在线| 亚洲欧美日韩精品一区二区| 狠狠色伊人亚洲综合网站色| 亚洲国产精品一区| 香蕉av777xxx色综合一区| 久久国产精品久久w女人spa| 国内自拍视频一区二区三区| 国产欧美午夜| 好看的av在线不卡观看| 亚洲国产导航| 亚洲第一免费播放区| 欧美性色aⅴ视频一区日韩精品| 国内一区二区三区在线视频| 欧美中文字幕久久| 亚洲欧美色一区| 国产日韩精品视频一区| 久久精品色图| 欧美一级片一区| 国产精品亚洲аv天堂网| 老巨人导航500精品| 午夜久久电影网| 国产免费一区二区三区香蕉精| 男人的天堂亚洲在线| 国产精品久久久久国产a级| 夜夜嗨av一区二区三区四区| 国产欧美在线播放| 欧美一区二区黄色| 欧美精品一区二区视频| 亚洲欧美另类在线| 中文在线资源观看网站视频免费不卡| 久久一区二区三区国产精品| 亚洲成色777777在线观看影院| 美日韩免费视频| 欧美日韩天堂| 性欧美办公室18xxxxhd| 久久久精品国产99久久精品芒果| 亚洲一区3d动漫同人无遮挡| 在线欧美日韩| 欧美日韩1区2区3区| 精品成人国产在线观看男人呻吟| 久久久夜色精品亚洲| 亚洲欧美日韩区| 久久综合九色99| 亚洲黄色一区二区三区| 激情综合色综合久久| 国产乱码精品一区二区三区五月婷| 国产综合精品| 性欧美videos另类喷潮| 国产欧美va欧美不卡在线| 欧美日韩精品高清| 免费日韩精品中文字幕视频在线| 国产日本欧洲亚洲| 欧美高清hd18日本| 国产一区再线| 亚洲国产一成人久久精品| 美女精品一区| 欧美人与性禽动交情品| 亚洲午夜小视频| 国产精品免费小视频| 亚洲每日在线| 亚洲精品视频一区二区三区| 国产精品毛片a∨一区二区三区|国| 国产精品入口夜色视频大尺度| 欧美日韩福利在线观看| 欧美日韩在线观看一区二区| 极品av少妇一区二区| 国产精品乱子乱xxxx| 亚洲精品欧美激情| 欧美怡红院视频| 99综合电影在线视频| 亚洲欧美偷拍卡通变态| 国内久久精品视频| 快she精品国产999| 精久久久久久| 亚洲第一免费播放区| 亚洲视频一二区| 国产农村妇女精品一区二区| 欧美成人在线免费观看| 欧美性色综合| 亚洲伦理在线免费看| 狠狠爱www人成狠狠爱综合网| 亚洲高清不卡在线| 国产精品三级视频| 欧美成人在线影院| 99视频精品免费观看| 一区二区三区四区国产| 国产精品美女久久久免费| 国产精品一二三| 亚洲毛片在线免费观看| 亚洲精品黄色| 亚洲精品欧美| 美女精品视频一区| 国产精品成人av性教育| 国产伦一区二区三区色一情| 国产精品久久久久国产a级| 亚洲欧美电影在线观看| 亚洲精品偷拍| 午夜影视日本亚洲欧洲精品| 欧美极品一区二区三区| 亚洲一区二区在线播放| 亚洲激情在线观看视频免费| 玉米视频成人免费看| 亚洲伦理在线观看| 免费看成人av| 欧美日韩免费观看一区=区三区| 欧美日韩视频在线第一区| 91久久综合| 国产精品亚洲网站| 亚洲精品小视频在线观看| 久久激情综合| 日韩视频免费观看高清完整版| 欧美色图首页| 欧美激情亚洲视频| 久久gogo国模裸体人体| 欧美一区二区成人| 毛片精品免费在线观看| 女人天堂亚洲aⅴ在线观看| 欧美在线视频不卡| 欧美日韩国产综合视频在线观看中文| 免费看亚洲片| 久久久蜜臀国产一区二区| 亚洲免费视频观看| 亚洲电影免费观看高清完整版在线观看| 欧美在线视频播放| 91久久精品国产91久久性色| 亚洲精品久久久一区二区三区| 欧美午夜精品久久久久久超碰| 一区二区三区在线观看欧美| 欧美日韩p片| 国产精品永久在线| 美玉足脚交一区二区三区图片| 先锋a资源在线看亚洲| 欧美日韩专区| 国产日本欧美一区二区| 午夜在线播放视频欧美| 亚洲国产美女精品久久久久∴| 国产伦精品一区二区三区高清版| 欧美亚州韩日在线看免费版国语版| 免费国产一区二区| 午夜免费日韩视频| 久久精品国产亚洲a| 狠狠色噜噜狠狠狠狠色吗综合| 亚洲欧美日韩一区二区三区在线| 欧美视频成人| 免费看精品久久片| 欧美精品91| 欧美日韩在线免费观看| 国语自产在线不卡| av不卡在线看| 亚洲乱码久久| 欧美日韩dvd在线观看| 激情综合五月天| 国产在线精品一区二区夜色| 亚洲综合大片69999| 亚洲第一伊人| 亚洲激情中文1区| 国产精品视频导航| 欧美视频导航| 亚洲自拍偷拍福利| 久久在线免费| 国产三级欧美三级| 亚洲视频在线一区观看| 国语自产在线不卡| 国产欧美日韩在线观看| 国产精品色午夜在线观看| 国外成人在线| 欧美一区二区观看视频| 亚洲第一久久影院| 欧美天堂亚洲电影院在线观看| 久久精品成人欧美大片古装| 在线亚洲电影| 久久久爽爽爽美女图片| 欧美日韩免费一区二区三区视频| 怡红院精品视频在线观看极品| 一区二区三区导航| 亚洲综合成人在线| 久久精品国产亚洲高清剧情介绍| 亚洲精品国产日韩| 欧美日韩国产在线看| 欧美片在线播放| 亚洲日本中文字幕| 蜜桃精品久久久久久久免费影院| 国产精自产拍久久久久久蜜| 久久亚洲不卡| 玖玖玖免费嫩草在线影院一区| 国产色婷婷国产综合在线理论片a| 亚洲系列中文字幕| 久久精品论坛| 欧美精品日韩综合在线| 国产精品久久影院| 尤物在线观看一区| 欧美激情偷拍| 欧美日韩免费高清| 午夜欧美大尺度福利影院在线看| 亚洲精品久久久久久久久久久久久| 欧美日本精品|