3
UART通信
在UART通信中,兩個UART直接相互通信。 發送UART將控制設備(如CPU)的并行數據轉換為串行形式,以串行方式將其發送到接收UART。只需要兩條線即可在兩個UART之間傳輸數據,數據從發送UART的Tx引腳流到接收UART的Rx引腳:
UART屬于異步通訊,這意味著沒有時鐘信號,取而代之的是在數據包中添加開始和停止位。這些位定義了數據包的開始和結束,因此接收UART知道何時讀取這些數據。
當接收UART檢測到起始位時,它將以特定波特率的頻率讀取。波特率是數據傳輸速度的度量,以每秒比特數(bps)表示。兩個UART必須以大約相同的波特率工作,發送和接收UART之間的波特率只能相差約10%。
工作原理
發送UART從數據總線獲取并行數據后,它會添加一個起始位,一個奇偶校驗位和一個停止位來組成數據包并從Tx引腳上逐位串行輸出,接收UART在其Rx引腳上逐位讀取數據包。
UART數據包含有1個起始位,5至9個數據位(取決于UART),一個可選的奇偶校驗位以及1個或2個停止位:
起始位
UART數據傳輸線通常在不傳輸數據時保持在高電壓電平。開始傳輸時發送UART在一個時鐘周期內將傳輸線從高電平拉低到低電平,當接收UART檢測到高電壓到低電壓轉換時,它開始以波特率的頻率讀取數據幀中的位。
數據幀
數據幀內包含正在傳輸的實際數據。如果使用奇偶校驗位,則可以是5位,最多8位。如果不使用奇偶校驗位,則數據幀的長度可以為9位。
校驗位
奇偶校驗位是接收UART判斷傳輸期間是否有任何數據更改的方式。接收UART讀取數據幀后,它將對值為1的位數進行計數,并檢查總數是偶數還是奇數,是否與數據相匹配。
停止位
為了向數據包的結尾發出信號,發送UART將數據傳輸線從低電壓驅動到高電壓至少持續兩位時間。
傳輸步驟
1.發送UART從數據總線并行接收數據:
2.發送UART將起始位,奇偶校驗位和停止位添加到數據幀:
3.整個數據包從發送UART串行發送到接收UART。接收UART以預先配置的波特率對數據線進行采樣:
4.接收UART丟棄數據幀中的起始位,奇偶校驗位和停止位:
5.接收UART將串行數據轉換回并行數據,并將其傳輸到接收端的數據總線:
優劣
沒有任何通信協議是完美的,但是UART非常擅長于其工作。以下是一些利弊,可幫助您確定它們是否適合您的項目需求:
優點
-
僅使用兩根電線
-
無需時鐘信號
-
具有奇偶校驗位以允許進行錯誤檢查
-
只要雙方都設置好數據包的結構
-
有據可查并得到廣泛使用的方法
缺點
-
數據幀的大小最大為9位
-
不支持多個從屬系統或多個主系統
-
每個UART的波特率必須在彼此的10%之內
轉載汽車電子相關文章
轉自汽車電子與軟件