UART、I2C、SPI三種協議對比


學嵌入式需要打好基礎

下面我們來學習下計算機原理里的3種常見總線協議及原理

 

協議:對等實體之間交換數據或通信所必須遵守規則或標准的集合

1、UART(Universal Asynchronous Receiver/Transmitter):

通用異步接收發送器,也就是通常所說的串口,基本都用於調試

三根線:RX、TX、GND

如果甲是PC機,B是單片機,兩者還要接一塊電平轉換芯片,用於將TTL / CMOS(單片機電平)轉換為RS232(PC機電平)。因為TTL / CMOS電平范圍是0〜1.8 / 2.5 / 3.3 / 5V(不同單片機范圍不同),高電壓表示1,低電壓表示0而RS232邏輯電平范圍-12V〜12V,-5〜-12表示高電平,+ 5〜+ 12V表示低電平(對你沒有聽錯!)為什么這么設置這就要追溯到調制解調器出生時代了,有興趣自己去查資料

 

開發板想發數據時,RXD0由1變為0,保持T時間

PC感覺到RXD0由0變1.知道2440即將發數據

 

 有起始位和停止位,就說明這是個異步通信

 

2、I^2C協議(Inter Integrated Circuit)

兩條線 SCL(時鍾)、SDA(數據)只有一條數據線,所以是半雙工同步通信,

在傳送數據過程中共有3種類型信號:開始信號、結束信號和相應信號。

(1)開始信號(S):SCL為高電平時,SDA由高電平向低電平跳變,開始傳送數據

(2)結束信號(P):SCL為低電平時,SDA由低電平向高電平跳變,結束傳送數據

(3)響應信號(ACK):接收器在接收到8位數據后,在第9個時鍾周期,拉低SDA電平

 

 

可以接有多個設備,啟動一個設備,主機先發出S信號,然后發出8位數據。前7位為從機的地址(所以能接2^7=128個設備),第8位表示傳輸的方向(0表示寫操作,1表示讀操作),有這個設備,發出ACK響應信號,開始讀/學操作

 

 

 3、SPI(Serial Peripheral Interface,同步外設接口),全雙工同步串行總線,

該總線大量用於與EEPROM,ADC,FRAM和顯示驅動器之類的慢速外設器件通信。

3條線

SCK:時鍾信號

SDI:輸入信號

SDO:輸出信號

CS:片選信號,決定了唯一的與主設備通信的從設備,片選信號低電平有效,不同於I^2C用的地址選擇從機

 

 

 

對比:

UART是全雙工,異步傳輸,對時序要求比較嚴格,速度較慢

SPI相比UART多了一條同步時鍾線,通信速度快

I2C一根數據線,速度不高,結構簡單

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM