1. 程式人生 > >51微控制器學習筆記——Uart、IIC、SPI

51微控制器學習筆記——Uart、IIC、SPI

SPI:

Serial Peripheral Interface,序列外圍裝置介面。SPI 是一種高速的、全雙工、同步通訊匯流排,標準的 SPI 也僅僅使用 4 個引腳,常用於微控制器和 EEPROM、FLASH、實時時鐘、數字訊號處理器等器件的通訊。SPI匯流排由三條訊號線組成:序列時鐘(SCLK)、序列資料輸出(SDO)、序列資料輸入(SDI)。SPI匯流排可以實現多個SPI裝置互相連線。提供SPI序列時鐘的SPI裝置為SPI主機或主裝置(Master),其他裝置為SPI從機或從裝置(Slave)。主從裝置間可以實現全雙工通訊,當有多個從裝置時,還可以增加一條從裝置選擇線。

 

Uart:

Universal Asynchronous Receiver/Transmitter,通用非同步收發器,也就是常說的串列埠。它包括RS232、RS499、RS423、RS422和RS485等介面標準規範,是序列非同步通訊口的總稱。串列埠通訊是指外設和計算機間,通過資料訊號線 、地線、控制線等,按位進行傳輸資料的一種通訊方式。這種通訊方式使用的資料線少,在遠距離通訊中可以節約通訊成本,但其傳輸速度比並行傳輸低。它很簡單並且能夠實現遠距離通訊。通訊使用3根線完成:(1)地線(GND),(2)傳送(TX),(3)接收(RX)。由於串列埠通訊是非同步的,埠能夠在一根線上傳送資料同時在另一根線上接收資料。串列埠通訊最重要的引數是波特率、資料位、停止位和奇偶校驗。對於兩個進行通訊的埠,這些引數必須匹配。

 

I2C:

INTER IC BUS,序列匯流排。是一種簡單、雙向、二線制、同步序列匯流排,主要是用來連線整體電路(ICS) ,IIC是一種多向控制匯流排,也就是說多個晶片可以連線到同一匯流排結構下,同時每個晶片都可以作為實時資料傳輸的控制源。主要包括啟始、停止、讀、寫、應答訊號。這種方式簡化了訊號傳輸匯流排介面。IIC總線上可以掛多個器件,而每個器件都有唯一的地址,這樣可以標識通訊目標。資料的通訊的方式採用主從方式,主機負責主動聯絡從機,而從機則被動迴應資料。能用於替代標準的並行匯流排,能連線的各種積體電路和功能模組。I2C是多主控匯流排,所以任何一個裝置都能像主控器一樣工作,並控制匯流排。總線上每一個裝置都有一個獨一無二的地址,根據裝置它們自己的能力,它們可以作為發射器或接收器工作。多路微控制器能在同一個I2C總線上共存。序列時鐘(SCLK)、資料訊號線(SDA:serial data),1個CS(裝置片選線)

 

傳輸的速度不同:SPI > IIC > Uart

傳輸的位數不同:UART一幀可以傳5/6/7/8位,IIC必須是8位,IIC和SPI都從最高位開始傳

 

IIC和SPI的通訊過程的區別:

  • 片選方式
    •  SPI用片選訊號選擇從機,即拉低目標裝置上的片選線,不需要目標響應,硬體方式,佈線複雜
    • IIC用地址選擇從機,把從地址傳送出去,去尋找相同目標地址的從裝置,軟體方式,效率比SPI低
  • 傳送過程
    • SPI,無應答方式,在同步訊號下快讀的把資料傳送到目標,不在乎目標是否正確的收到資料
    • IIC,每傳送一個數據,必須等待從機的響應,如果從機不響應,則資料是傳送不了的