UART通信,即通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter)。
串行通信是指利用一條傳輸線將資料一位位地順序傳送。特點是通信線路簡單,利用簡單的線纜就可實現(xiàn)通信,降低成本,適用于遠距離通信,但傳輸速度慢的應用場合。
異步通信以一個字符為傳輸單位,通信中兩個字符間的時間間隔多少是不固定的,然而在同一個字符中的兩個相鄰位間的時間間隔是固定的。
數(shù)據(jù)傳送速率用波特率來表示,即每秒鐘傳送的二進制位數(shù)。例如數(shù)據(jù)傳送速率為120字符/秒,而每一個字符為10位(1個起始位,7個數(shù)據(jù)位,1個校驗位,1個結(jié)束位),則其傳送的波特率為10×120=1200字符/秒=1200波特。
并行
控制簡單,傳輸速度快。線多,長距離成本較高且同時接受困難。
圖 并行通訊方式
串行
將數(shù)據(jù)字節(jié)分成一位一位的行駛在一條傳輸線上進行傳輸。如圖:
圖 串行通訊方式
串行通訊的制式
單工:數(shù)據(jù)傳輸僅沿一個方向,不能實現(xiàn)反向傳輸
半雙工:數(shù)據(jù)可以沿兩個方向傳輸,但是需要分時
全雙工:數(shù)據(jù)可以同時進行雙向傳輸
串行通訊三種錯誤校驗
奇偶校驗、代碼和校驗、循環(huán)冗余校驗
RS232電平與TTL電平的轉(zhuǎn)換
PC使用的串口的電平為RS232的九針串口,MCU使用的電平是TTL電平,要使得PC 和MCU進行通訊,就需要對其電平極性轉(zhuǎn)換。
主要的幾款電平轉(zhuǎn)換芯片:MAX232、MAX202、HIN232,SIPEX320等
串行通訊速度的定義_波特率
串行通訊的速率用波特率表示,其定義為: 每秒鐘傳送二進制代碼的位數(shù),即1波特=1位/秒,單位bps(位/秒)
eg:每秒鐘傳送240個字符,而每個字符格式包含10位(1起始、8數(shù)據(jù)、1停止),此時的波特率為:
10位*240個/秒=2400bps
同步串行通訊方式
同步通訊需要建立發(fā)送方對接收方時鐘的直接控制,是雙方達到完全同步
異步串行通訊方式
通訊的發(fā)送和接收設(shè)備使用各自的時鐘控制數(shù)據(jù)的發(fā)送和接收,為使雙方收發(fā)協(xié)調(diào),要求發(fā)送和接收的時鐘盡可能一致。如圖:
圖 異步串行通信方式
圖 UART的數(shù)據(jù)傳輸格式
異步通訊以字符構(gòu)成的幀為單位進行傳輸,字符與字符之間的間隙是任意的,但每個字符中的各位是以固定的時間傳送的。
其一幀字符信息由4部分組成:起始位、數(shù)據(jù)位、奇偶檢驗位、停止位。在單片機中的通訊一般情況下均使用這種幀格式。如圖:
起始位
先發(fā)出一個邏輯”0”信號,表示傳輸字符的開始。
數(shù)據(jù)位
可以是5~8位邏輯”0”或”1”。如ASCII碼(7位),擴展BCD碼(8位)。小端傳輸,即低位在前高位在后
校驗位
數(shù)據(jù)位加上這一位后,使得“1”的位數(shù)應為偶數(shù)(偶校驗)或奇數(shù)(奇校驗)
停止位
它是一個字符數(shù)據(jù)的結(jié)束標志??梢允?位、1.5位、2位的高電平。
空閑位
處于邏輯“1”狀態(tài),表示當前線路上沒有資料傳送。
注:異步通信是按字符傳輸?shù)?,接收設(shè)備在收到起始信號之后只要在一個字符的傳輸時間內(nèi)能和發(fā)送設(shè)備保持同步就能正確接收。
下一個字符起始位的到來又使同步重新校準(依靠檢測起始位來實現(xiàn)發(fā)送與接收方的時鐘自同步的)
圖 連續(xù)字符的數(shù)據(jù)傳輸
串行數(shù)據(jù)的發(fā)送過程
串行數(shù)據(jù)的發(fā)送由發(fā)送時鐘控制。數(shù)據(jù)發(fā)送過程:把并行的數(shù)據(jù)序列送入移位寄存器,然后通過移位寄存器由發(fā)送時鐘觸發(fā)進行移位輸出,數(shù)據(jù)位的時間間隔可由發(fā)送時鐘周期來劃分。
發(fā)送時鐘、待發(fā)送的二進制數(shù)據(jù)和出現(xiàn)在傳輸線上的信號波形三者的關(guān)系如圖所示:
圖 串行數(shù)據(jù)發(fā)送
串行數(shù)據(jù)的接收過程
串行數(shù)據(jù)的接收由接收時鐘檢測,接收數(shù)據(jù)的過程:把由傳輸線送來的串行數(shù)據(jù)序列由接收時鐘作為輸入移位寄存器的觸發(fā)脈沖,逐位打入移位寄存器,接收過程是將串行數(shù)據(jù)序列逐位打入移位寄存器,而裝配成并行數(shù)據(jù)序列的過程。
接收時鐘、接收器檢測到的的二進制數(shù)據(jù)和出現(xiàn)在傳輸線上的信號波形三者的關(guān)系如圖所示:
圖 串行數(shù)據(jù)接收
UART是一種物理設(shè)備,主要用于數(shù)據(jù)的收發(fā)
RS232是一種異步串行通信協(xié)議標準
MAX232是一款芯片來實現(xiàn)PC端RS232電平轉(zhuǎn)換成單片機TTL電平
DB9是具體的物理連接器
注:TTL是Transistor-Transistor Logic,即晶體管-晶體管邏輯的簡稱,它是計算機處理器控制的設(shè)備內(nèi)部各部分之間通信的標準技術(shù)。
TTL電平信號應用廣泛,是因為其數(shù)據(jù)表示采用二進制規(guī)定,+5V等價于邏輯"1",0V等價于邏輯"0"。
數(shù)字電路中,由TTL電子元器件組成電路的電平是個電壓范圍,規(guī)定:輸出高電平>=2.4V,輸出低電平<=0.4V;輸入高電平>=2.0V,輸入低電平<=0.8V。
RS232是串口的一個標準,它有自己的電平定義:它采用負邏輯,-15V~-3V代表邏輯"1",+3V~+15V代表邏輯"0"。
圖 DB9 MAX232的連接
[1] 基于51的串行通訊原理及協(xié)議詳解(uart) http://www.51hei.com/bbs/dpj-40281-1.html
聯(lián)系客服