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