UART協(xié)議分析
UART是“Universal Asynchronous Receiver/Transmitter",通用異步收發(fā)器的縮寫。在19世紀60年代,為了解決計算機和電傳打字機通信,Bell發(fā)明了UART協(xié)議,將并行輸入信號轉換成串行輸出信號。因為UART簡單實用的特性,其已經成為一種使用非常廣泛的通訊協(xié)議。我們日常接觸到的串口,RS232,RS485等總線,內部使用的基本都是UART協(xié)議。
為了更好的理解和分析協(xié)議與總線的關系,我們通常把一個完整的通訊規(guī)范劃分成物理層,協(xié)議層以及應用層。物理層只定義真實的信號特性(比如電壓,電流,驅動能力等),以及電信號與邏輯信號0和1的對應關系;協(xié)議層不關心底層的0和1具體怎么實現,只規(guī)定邏輯信號的協(xié)議規(guī)范以及通訊過程(例如起始,數據以及結束等);應用層不關心數據是怎么獲取的,只定義數據表示的意義,以及如何實現具體的業(yè)務邏輯。
UART協(xié)議分析
不同的物理層實現
由于UART協(xié)議層的輸入是邏輯0/1信號,而邏輯0/1信號在物理層可以通過不同的電平標準來區(qū)分。針對不同的通訊需求,便可以使用不同的物理層實現。例如簡單的板內通訊,或者常見的設備調試場景,使用簡單的LVTTL/TTL電平即可在兩個設備間進行UART協(xié)議通訊。