UART的時序解析

USART(Universal Synchronous/Asynchronous Receiver/Transmitter)即通用同步/異步收發器,其通信波形圖包含了豐富的信息,以下是對它的詳細解讀:
波形組成
- 空閑狀態:在沒有數據傳輸時,線路處于空閑狀態,此時波形為高電平。例如,當單片機的 USART 模塊沒有發送或接收數據任務時,TX 和 RX 引腳都保持高電平。
- 起始位:當有數據要發送時,首先發送一個低電平脈沖作為起始位,表示數據傳輸的開始。起始位的寬度通常為一個波特率周期。比如,若波特率為 9600bps,那么起始位的持續時間約為 1/9600秒≈104.2μs。
- 數據位:起始位之后是數據位,數據位的個數可以是 8 位或 9 位,低位在前,高位在后。以發送字符 'A'(ASCII 碼為 0x41,二進制為 01000001)為例,在 8 位數據位的情況下,先發送最低位 1,然后依次發送其他位。
- 校驗位:校驗位用于數據傳輸的正確性校驗,可選擇奇校驗、偶校驗或無校驗。若選擇奇校驗,那么校驗位會使包括數據位和校驗位在內的 1 的個數為奇數;若為偶校驗,則使 1 的個數為偶數。例如,數據位為 01000001,采用偶校驗時,校驗位為 0,因為數據位中已有 2 個 1,加上校驗位 0 后 1 的總數為偶數。
- 停止位:數據位和校驗位發送完成后,發送停止位,停止位的寬度可以是 0.5 位、1 位、1.5 位或 2 位。常用的是 1 位停止位,它為高電平,持續時間為一個波特率周期。
發送和接收波形
- 發送波形:在發送數據時,USART 模塊按照上述順序將數據一位一位地從 TX 引腳發送出去。例如,要發送字符串“Hello”,先發送字符 'H' 的起始位、數據位、校驗位(若有)和停止位,然后依次發送 'e'、'l'、'l'、'o' 的相應位。
- 接收波形:接收端在 RX 引腳上檢測到起始位的下降沿后,開始按照波特率采樣數據位、校驗位(若有)和停止位。例如,接收設備的 USART 模塊在 RX 引腳檢測到低電平起始位后,以 9600bps 的波特率依次采樣后續的數據位,組合成一個字節的數據,再進行校驗和處理。
波特率與波形關系
波特率決定了數據傳輸的速率,也決定了波形中每個位的持續時間。波特率越高,位的持續時間越短,波形變化越快;反之,波特率越低,位的持續時間越長,波形變化越慢。例如,波特率為 115200bps 時,每個位的持續時間約為 8.7μs;而波特率為 9600bps 時,每個位的持續時間約為 104.2μs。


浙公網安備 33010602011771號