UART是用于控制計算機與串行設(shè)備的芯片。有一點要注意的是,它提供了數(shù)據(jù)終端設(shè)備接口,這樣計算機就可以和調(diào)制解調(diào)器或其它使用RS-232C接口的串行設(shè)備通信了。作為接口的一部分,UART還提供以下功能:
將由計算機內(nèi)部傳送過來的并行數(shù)據(jù)轉(zhuǎn)換為輸出的串行數(shù)據(jù)流;
將計算機外部來的串行數(shù)據(jù)轉(zhuǎn)換為字節(jié),供計算機內(nèi)部使用并行數(shù)據(jù)的器件使用;
在輸出的串行數(shù)據(jù)流中加入奇偶校驗位,并對從外部接收的數(shù)據(jù)流進行奇偶校驗;
在輸出數(shù)據(jù)流中加入啟停標(biāo)記,并從接收數(shù)據(jù)流中刪除啟停標(biāo)記;
處理由鍵盤或鼠標(biāo)發(fā)出的中斷信號(鍵盤和鼠票也是串行設(shè)備);
可以處理計算機與外部串行設(shè)備的同步管理問題;
異步串口通信協(xié)議,工作原理是將傳輸數(shù)據(jù)的每個字符以串行方式一位接一位的傳輸。如下圖:
其中每一位(bit)的意義如下:
起始位:先發(fā)出一個邏輯“0”的信號,表示傳輸字符的開始。
數(shù)據(jù)位:緊跟起始位之后。數(shù)據(jù)位的個數(shù)可以是4、5、6、7、8等,構(gòu)成一個字符。通常采用ASCII碼。從最低位開始傳送,靠時鐘來定位。
奇偶校驗位:數(shù)據(jù)位加上這一位后(跟在數(shù)據(jù)位尾部),使得“1”的位數(shù)應(yīng)為偶數(shù)(偶校驗)或奇數(shù)(奇校驗),以此來校驗數(shù)據(jù)傳送的正確性。
停止位:它是一個字符數(shù)據(jù)的結(jié)束標(biāo)志??梢允?位、1.5位、2位的高電平(邏輯“1”)。
空閑位:處于邏輯“1”狀態(tài),表示當(dāng)前線路上沒有數(shù)據(jù)的傳送。
波特率:是衡量數(shù)據(jù)傳輸速率的指針。表示為每秒鐘傳送的二進制位數(shù)(bit數(shù))。例如資料傳送速率為120字符/秒,而每一個字符為10位,則其傳送的波特率為:
10×120%20=%201200字符/秒=1200波特。
以上的數(shù)據(jù)位、奇偶校驗位、波特率等均可以在COM接口中設(shè)置。也可以在代碼中對UART寄存器的各位進行設(shè)置,UART寄存器的各位所代表的含義如下:
下面通過幾個小程序,了解UART通信協(xié)議進行數(shù)據(jù)傳輸?shù)倪^程:
在這里我們使用 uart_init 函數(shù)便完成了UART各個位的設(shè)置,現(xiàn)在來看看uart_init在系統(tǒng)中是如何定義的:
UART0 --- UART2 便是開發(fā)板為我們提供的三個寄存器,通過rUFCON、rUMCON、rULCON、rUCON、rUBRDIV 等引腳的賦值完成UART寄存器的設(shè)置。
-
芯片
+關(guān)注
關(guān)注
455文章
50851瀏覽量
423980 -
uart
+關(guān)注
關(guān)注
22瀏覽量
101429
原文標(biāo)題:嵌入式學(xué)習(xí)筆記之UART通信協(xié)議
文章出處:【微信號:wujianying_danpianji,微信公眾號:單片機精講吳鑒鷹】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論