常見通訊協議介紹

UART通訊協議介紹

UART是什麼?UART是通用異步收發傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作UART,是一種異步收發傳輸器,是設備間進行異步通信的關鍵模塊。UART負責處理數據總線和串行口之間的串/並、並/串轉換,並規定了幀格式;通信雙方只要採用相同的幀格式和波特率,就能在未共享時鐘信號的情況下,僅用兩根信號線(Rx 和Tx)就可以完成通信過程,因此也稱爲異步串行通信。
而我們常見的TTL、RS232、RS422、RS485是指的電平標準(電信號),它們僅是關於UART通訊的一個機械和電氣接口標準,並不是通訊協議。也就是說對MCU等控制器編寫了UART程序,串行數據會通過硬件電路在設備間進行收發,這個硬件電路要遵循一個電平標準,實現設備間的交互。

1、TTL電平規定,+5V等價於邏輯“1”,0V等價於邏輯“0”。這樣的數據通信及電平規定方式,被稱做TTL(晶體管-晶體管邏輯電平)信號系統。
2、RS-232是美國電子工業協會EIA(Electronic Industry Association)制定的一種串行物理接口標準。RS是英文“推薦標準”的縮寫,232爲標識號。RS-232是對電氣特性以及物理特性的規定,只作用於數據的傳輸通路上,它並不內含對數據的處理方式。RS-232標準是邏輯1爲-5V~-15V,邏輯0爲+5~+15V。選用該電氣標準的目的在於提高抗干擾能力,增大通信距離,一般在15m~30m。
3、RS-232接口可以實現點對點的通信方式,但這種方式不能實現聯網功能。於是,爲了解決這個問題,一個新的標準RS-485產生了。RS-485的數據信號採用差分傳輸方式,也稱作平衡傳輸,它使用一對雙絞線,將其中一線定義爲A,另一線定義爲B。通常情況下,發送驅動器A、B之間的正電平在+2~+6V,是邏輯1,負電平在-2~-6V,是邏輯0。10 米時, RS485 的數據最高傳輸速率可達 35Mbps,在 1200m 時,傳輸速度可達 100Kbps。RS-485採用半雙工工作方式,任何時候只能有一點處於發送狀態,一般最大支持 32 個節點,如果使用特製的 485 芯片,可以達到 128 個或者 256 個節點,最大的可以支持到 400 個節點。,因此,發送電路須由使能信號加以控制

UART 時序

在這裏插入圖片描述
在UART中,信號線上共有兩種狀態, 分別用邏輯1(高電平)和邏輯0(低電平)來區分
  在空閒時, 數據線應該保持在邏輯高電平狀態
  其中各位的意義如下
  起始位(Start Bit): 先發出一個邏輯0信號, 表示傳輸字符的開始
  數據位(Data Bits): 可以是5~8位邏輯0或1. 如ASCII碼(7位), 擴展BCD碼(8位)小端傳輸
  校驗位(Parity Bit): 數據位加上這一位後, 使得1的位數應爲偶數(偶校驗)或奇數(奇校驗)
  停止位(Stop Bit): 它是一個字符數據的結束標誌。 可以是1位、1.5位、2位的高電平
  空閒位: 處於邏輯1狀態, 表示當前線路上沒有資料傳送

IIC通訊協議介紹

I2C(Inter-Integrated Circuit BUS) 集成電路總線,該總線由NXP(原PHILIPS)公司設計,多用於主控制器和從器件間的主從通信,在小數據量場合使用,傳輸距離短,任意時刻只能有一個主機等特性。
IIC的物理層
a.只要求兩條總線線路,一條是串行數據線SDA,一條是串行時鐘線SCL。(IIC是半雙工)。
b.每個連接到總線的器件都可以通過唯一的地址和其它器件通信,主機/從機角色和地址可配置,主機可以作爲主機發送器和主機接收器。
c.IIC是真正的多主機總線,(而這個SPI在每次通信前都需要把主機定死,而IIC可以在通訊過程中,改變主機),如果兩個或更多的主機同時請求總線,可以通過沖突檢測和仲裁防止總線數據被破壞。
d.傳輸速率在標準模式下可以達到100kb/s,快速模式下可以達到400kb/s。
e.連接到總線的IC數量只是受到總線的最大負載電容400pf限制。

IIC的協議層
IIC的協議層纔是掌握IIC的關鍵。現在簡單概括如下:
a.數據的有效性
在時鐘的高電平週期內,SDA線上的數據必須保持穩定,數據線僅可以在時鐘SCL爲低電平時改變。
b.起始和結束條件
起始條件:當SCL爲高電平的時候,SDA線上由高到低的跳變被定義爲起始條件,結束條件:當SCL爲高電平的時候,SDA線上由低到高的跳變被定義爲停止條件,要注意起始和終止信號都是由主機發出的,連接到I2C總線上的器件,若具有I2C總線的硬件接口,則很容易檢測到起始和終止信號。總線在起始條件之後,視爲忙狀態,在停止條件之後被視爲空閒狀態
c.應答
每當主機向從機發送完一個字節的數據,主機總是需要等待從機給出一個應答信號,以確認從機是否成功接收到了數據,從機應答主機所需要的時鐘仍是主機提供的,應答出現在每一次主機完成8個數據位傳輸後緊跟着的時鐘週期,低電平0表示應答,1表示非應答

這些信號中,起始信號是必需的,結束信號和應答信號,都可以不要
d.數據幀格式
I2C總線上傳送的數據信號是廣義的,既包括地址信號,又包括真正的數據信號。
在起始信號後必須傳送一個從機的地址(7位),第8位是數據的傳送方向位(R/T),用“0”表示主機發送數據(T),“1”表示主機接收數據(R)。每次數據傳送總是由主機產生的終止信號結束。但是,若主機希望繼續佔用總線進行新的數據傳送,則可以不產生終止信號,馬上再次發出起始信號對另一從機進行尋址

SPI通訊協議介紹

SPI,是英語Serial Peripheral interface的縮寫,顧名思義就是串行外圍設備接口。是Motorola首先在其MC68HCXX系列處理器上定義的。SPI接口主要應用在 EEPROM,FLASH,實時時鐘,AD轉換器,還有數字信號處理器和數字信號解碼器之間。SPI,是一種高速的,全雙工,同步的通信總線,並且在芯片的管腳上只佔用四根線,節約了芯片的管腳,同時爲PCB的佈局上節省空間,提供方便,正是出於這種簡單易用的特性,現在越來越多的芯片集成了這種通信協議。
SPI的通信原理很簡單,它以主從方式工作,這種模式通常有一個主設備和一個或多個從設備,需要至少4根線,事實上3根也可以(單向傳輸時)。也是所有基於SPI的設備共有的,它們是SDI(數據輸入),SDO(數據輸出),SCK(時鐘),CS(片選)
SDO/MOSI – 主設備數據輸出,從設備數據輸入
SDI/MISO – 主設備數據輸入,從設備數據輸出
SCLK – 時鐘信號,由主設備產生
CS/SS – 從設備使能信號,由主設備控制。當有多個從設備的時候,因爲每個從設 備上都有一個片選引腳接入到主設備機中,當我們的主設備和某個從設備通信時將需 要將從設備對應的片選引腳電平拉低或者是拉高。

SPI通信模式
SPI 模塊爲了和外設進行數據交換,根據外設工作要求,其輸出串行同步時鐘極性和相位可以進行配置,可分爲種模式。
時鐘極性規定了空閒時時鐘信號的狀態
如果 CPOL=0,串行同步時鐘的空閒狀態爲低電平;
如果CPOL=1,串行同步時鐘的空閒狀態爲高電平。
時鐘相位(CPHA)能夠配置用於選擇兩種不同的傳輸協議之一進行數據傳輸
如果CPHA=0,在串行同步時鐘的第一個跳變沿(上升或下降)數據被採樣;
如果CPHA=1,在串行同步時鐘的第二個跳變沿(上升或下降)數據被採樣。
SPI主模塊和與之通信的外設備時鐘相位和極性應該一致。
時序圖如下
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章