UART
通用異步收發傳輸器(Universal Asynchronous Receiver/Transmitter)。
一、定義
UART是一種通用串行數據總線,用於異步通信。該總線實現全雙工傳輸和接收。在嵌入式設計中,UART用於主機與輔助設備通信。
二、通信協議
UART作為異步串口通信協議的一種,工作原理是將傳輸數據的每個字符一位接着一位傳輸。
傳輸一幀中格式為:起始位、數據位、奇偶校驗位、停止位、空閑位
其中各位意義如下:
起始位:先發出一個邏輯“0”的信號,表示傳輸字符的開始。
數據位:緊接着從起始位后,數據位的個數可以是4、5、6、7、8等,構成一個字符。通常采用ASCII碼。從最低位開始傳送,靠時鍾定位。
奇偶校驗位:數據位加這一位后,使得“1”的位數應為偶數(偶校驗)或奇數(奇校驗),以此來校驗數據傳送的正確性。
停止位:是一個字符數據的結束標志。
空閑位:處於邏輯“1”狀態,表示當前線路上沒有數據傳送。
波特率:是衡量數據傳送速率的指標。表示每秒鍾傳送的符號數(symbol)。一個符號代表的信息量(比特數)與符號的階數有關。例如傳輸使用256階符號,每8bit代表一個符號,數據傳送速率為120字符/秒,則波特率為120*8=960bit/s。
三、基本結構
①輸出緩沖寄存器:它接收CPU從數據總線上送來的並行數據,並加以保存。
②輸出移位寄存器:它接收從輸出緩沖器送來的並行數據,以發送時鍾的速率把數據逐位移出,即將並行數據轉換位串行數據輸出。
③輸入移位寄存器:它以接收時鍾的速率把出現在串行數據輸入線上的數據逐位移入,當數據裝滿后,並行送往輸入緩沖寄存器,即將串行數據轉換成並行數據。
④輸入緩沖寄存器:它從輸入移位寄存器鍾接收並行數據,然后由CPU取走。
⑤控制寄存器:它接收CPU送來的控制字,由控制字的內容,決定通信時的傳輸方式以及數據格式等。例如采用異步方式還是同步方式,數據字符的位數,有無奇偶校驗,是奇校驗還是偶校驗,停止位的位數等參數。
⑥狀態寄存器:存放着接口的各種狀態信息,例如輸出緩沖區是否空,輸入字符是否准備好等。在通信過程中,當符合,某種狀態時,接口種的狀態檢測邏輯將狀態寄存器的相應位置“1”。
四、功能
在手機設計和測試階段被用來控制CPU與其余部分的訊息傳送。
時鍾發生器由同步邏輯電路(在同步從模式下由外部時鍾輸入驅動)和波特率發生器組成。發送時鍾引腳XCK僅用於同步發送模式下,
三、與UART兼容性
USART 在如下方面與AVR UART 完全兼容:
所有USART 寄存器的位定義;
同步是指:發送方發出數據后,等接收方發回響應以后才發下一個數據包的通訊方式。
異步是指:發送方發出數據后,不等接收方發回響應,接着發送下個數據包的通訊方式。
同步是阻塞模式,異步是非阻塞模式。