UART
-
通用非同步收發器,序列、全雙工、非同步通訊匯流排。
-
重點是非同步,和同步相對應,意思是不需要同步的時鐘,通訊兩端預先約定好波特率(每秒傳多少bit),而不是由時鐘觸發的。
-
波特率:用於描述UART通訊時的通訊速度,其單位為bps 即每秒鐘傳送的bit的數量。
-
串列埠一次傳送一個位元組的資料,避免收發雙方時鐘不同步。
- 全雙工
- UART通訊時一般直接使用處理器使用的電平,即TTL電平;
(5V系統,邏輯1: 2.4V–5V 邏輯0: 0V–0.5V)
-
UART存在的問題:
RS232
-
RS-232介面符合美國電子工業聯盟(EIA)制定的序列資料通訊的介面標準;
-
全雙工
-
介面
DB-25、DB-9;現在工業控制的RS-232介面一般只使用RXD、TXD、GND三條線;
-
RS232邏輯電平
-
邏輯“1”為-3到-15V
-
邏輯“0”為+3到+15V
-
-
電平轉換(RS232-TTL)
-
RS232存在的問題
注:共模干擾是兩條走線和PCB地線之間的電位差引起的干擾。
RS485
- 序列通訊標準
- 半雙工
- RS485採用兩線制(雙絞線),這種接線方式為匯流排式拓撲結構,在同一匯流排上可以同時存在多個節點;
該標準允許連線多個收發器,即具有多站能力,這樣可以利用單一的RS485介面方便地建立起一個裝置網路。
-
RS485邏輯電平
採用差分訊號進行資料傳輸
-
兩線間的電壓差為+2v到+6v表示邏輯“1”
-
兩線間的電壓差為-2v到-6v表示邏輯“0”
-
優點:
-
使用差分訊號能有效地減少噪聲訊號的干擾,延長通訊距離(1500m)
-
RS485介面訊號的電平比RS232降低了所以不易損壞介面電路的晶片,且該電平與TTL電平相容,可方便地與TTL電路連線;
-
-
-
電平轉換(TTL-RS485)
IIC匯流排
-
IIC匯流排是由Philips公司開發的一種半雙工、雙向二線制、同步序列匯流排。
-
IIC匯流排有兩根雙向的訊號線,一根資料線SDA用於收發資料,一根時鐘線SCL用於通訊雙方時鐘的同步;
-
同一時刻可以單主機多從機或單主機單從機,I2C匯流排上的任意裝置都可以當主機(同一時刻只有一個主機),一般主機是MCU,當有多個主機時,會透過匯流排仲裁的方式選出一個主機,其他退出作從機。
-
主要用於近距離、低速的晶片之間的通訊。
-
通訊過程
-
定址方式
-
空閒狀態,SCL和SDA 處於高電平
- 一幀包含9位,8位資料,先傳送高位,後低位;1位應答位,接收器傳送低電平應答傳送器。
- 時鐘線SCL低電平,傳送資料,SCL高電平,接受資料。
SPI
-
序列外設介面(Serial Peripheral Interface)
-
SPI是一種高速的,全雙工,同步的通訊匯流排,SPI的速率比I2C高,一般可以到幾十Mbps。
-
採用主從工作方式。
-
SPI至少需要四根線,MIS0(主裝置輸入從裝置輸出)、MOSI(主裝置輸出從裝置輸入)、SCLK(時鐘)、CS(片選)
-
定址方式
-
通訊過程
- 資料傳送時,先傳送高位,後傳送低位;
- 資料線為高電平表示邏輯'1’,低電平表示邏輯'0’;
- 無需應答;
- 同步時鐘通訊;
- 時鐘線在上升沿(下降沿)時傳送資料,在緊接著的下降沿(上升沿)時讀取資料;
-
極性和相位
SPI匯流排四種不同的工作模式,取決於極性(CPOL)和相位(CPHL)這兩個因素。
- CPOL表示SCLK空閒時的狀態
- CPOL=0,空閒時SCLK為低電平
- CPOL=1,空閒時SCLK為高電平
- CPHA表示取樣時刻
- CPHL=0,每個週期的第一個時鐘沿取樣
- CPHL=1,每個週期的第二個時鐘沿取樣
主從裝置的工作模式必須保持一致。
- CPOL表示SCLK空閒時的狀態
IIC和SPI的異同
◼ 相同點
1.均採用序列、同步的方式
2.均採用TTL電平,傳輸距離(距離短)和應用場景類似(電路板晶片之間的通訊);
3.均採用主從方式工作
◼ 不同點
1.IIC為半雙工,SPI為全雙工;
2.IIC有應答機制,SPI無應答機制;
3.IIC透過向匯流排廣播從機地址來定址,SPI透過向對應從機傳送使能訊號來定址;SPI傳輸速度快於IIC;
4.IIC的時鐘極性和時鐘相位固定,SPI的時鐘極性和時鐘相位可調