嵌入式C語言學(xué)習(xí)進(jìn)階系列文章
GUN C編譯器拓展語法學(xué)習(xí)筆記(一)GNU C特殊語法部分詳解
GUN C編譯器拓展語法學(xué)習(xí)筆記(二)屬性聲明
GUN C編譯器拓展語法學(xué)習(xí)筆記(三)內(nèi)聯(lián)函數(shù)、內(nèi)建函數(shù)與可變參數(shù)宏
數(shù)組存儲與指針學(xué)習(xí)筆記(一)數(shù)據(jù)類型與存儲、數(shù)據(jù)對齊、數(shù)據(jù)移植、typedef
一、定義
??通用異步收發(fā)傳輸器UART(Universal Asynchronous Receiver/Transmitter)。是一種串行、異步、全雙工的通用數(shù)據(jù)通信協(xié)議。其特點(diǎn)是通信線路簡單,只需要一對TX、RX的傳輸線即可實(shí)現(xiàn)雙向通信,根據(jù)約定時(shí)序進(jìn)行傳輸,但是相對而言傳輸速率不高。其衍生實(shí)體如基于TTL的UART通訊、基于RS232的UART通訊以及基于RS485的UART通訊等。
??注:
USART是一個(gè)串行通信設(shè)備,可以靈活地與外部設(shè)備進(jìn)行全雙工數(shù)據(jù)交換。USART是指單片機(jī)的一個(gè)端口模塊,可以根據(jù)需要配置成同步模式(增加了同步時(shí)鐘),也可以將其配置為異步模式,后者就是UART。所以說UART姑且可以稱之為一個(gè)與SPI,I2C對等的“協(xié)議”,而USART則不是一個(gè)協(xié)議,而是更應(yīng)該理解為一個(gè)實(shí)體。
二、數(shù)據(jù)協(xié)議
2.1 電氣連接形式
??UART通信協(xié)議包含兩根數(shù)據(jù)線分別為RX、TX,兩個(gè)UART通信設(shè)備通信過程交錯(cuò)連接,實(shí)現(xiàn)全雙工獨(dú)立通信。雙方通信設(shè)備通過約定好波特率、起始位、校驗(yàn)位、停止位等核心配置參數(shù),實(shí)現(xiàn)數(shù)據(jù)傳輸。
2.2 幀格式
??幀格式詳解:
-
起始位:在開始一次通信傳輸時(shí),發(fā)送方先發(fā)送一個(gè)邏輯
0
的低電平信號,表示傳輸字符開始。因?yàn)榭偩€空閑時(shí)為高電平,所以開始一次通信時(shí)先發(fā)送一個(gè)明顯區(qū)別于空閑狀態(tài)的信號即低電平。 -
數(shù)據(jù)位:起始位發(fā)送完成后,接收方開始接收數(shù)據(jù)。起始位后面就是數(shù)據(jù)位,數(shù)據(jù)位可以是5、6、7、8,9位等,構(gòu)成一個(gè)字符(一般都是8位),發(fā)送順序?yàn)?strong>先發(fā)送最低位,最后發(fā)送最高位,使用低電平表示
0
高電平表示1
完成數(shù)據(jù)位的傳輸。 -
奇偶校驗(yàn)位:數(shù)據(jù)位加上這一位后,使得
1
的位數(shù)應(yīng)為偶數(shù)(偶校驗(yàn))或奇數(shù)(奇校驗(yàn)),以此來校驗(yàn)數(shù)據(jù)傳送的正確性。串口校驗(yàn)?zāi)J椒譃橐韵聨追N:- 無校驗(yàn)(
no parity
)。 - 奇校驗(yàn)(
odd parity
):如果數(shù)據(jù)位中1
的數(shù)目是偶數(shù),則校驗(yàn)位為1
,如果1
的數(shù)目是奇數(shù),校驗(yàn)位為0
。 - 偶校驗(yàn)(
even parity
):如果數(shù)據(jù)為中1
的數(shù)目是偶數(shù),則校驗(yàn)位為0
,如果為奇數(shù),校驗(yàn)位為1
。 - mark parity:校驗(yàn)位始終為
1
(不常用)。 - parity:校驗(yàn)位始終為
0
(不常用)。
- 無校驗(yàn)(
-
停止位:它是一個(gè)字符數(shù)據(jù)的結(jié)束標(biāo)志??梢允?code>1位、
1.5
位、2
位的高電平。 由于數(shù)據(jù)是在傳輸線上定時(shí)的,并且每一個(gè)設(shè)備有其自己的時(shí)鐘,很可能在通信中兩臺設(shè)備之間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計(jì)算機(jī)校正時(shí)鐘的機(jī)會。停止位個(gè)數(shù)越多,數(shù)據(jù)傳輸越穩(wěn)定,但是數(shù)據(jù)傳輸速度也越慢。 -
空閑位:UART協(xié)議規(guī)定,當(dāng)總線處于空閑狀態(tài)時(shí)信號線的狀態(tài)為
1
即高電平,表示當(dāng)前線路上沒有數(shù)據(jù)傳輸。 -
波特率: 波特率是UART協(xié)議,或者說所有異步串行協(xié)議,非常重要的一個(gè)概念,波特率表示一秒內(nèi)傳輸了多少個(gè)碼元數(shù)量,一般波特率為300,1200,2400,9600,19200,38400,115200等。例如9600 Baud表示一秒內(nèi)傳輸了9600個(gè)碼元信息,當(dāng)一個(gè)碼元只含1 bit信息時(shí),波特率=比特率。
2.3 存在問題
- 電氣接口不統(tǒng)一。UART在通信過程中一般使用處理器的電平信號,即TTL電平,但不同處理器的電平一般存在差異,在通信時(shí)需要轉(zhuǎn)換電平
-
抗干擾能力差。UART 在使用過程中使用TTL來表示邏輯
0
和邏輯1
,但是TTL抗干擾能力差,傳輸數(shù)據(jù)過程容易出錯(cuò)。 - 通信距離短。因?yàn)門TL的抗干擾能力差,因此傳輸距離很短,一般用于短距離傳輸。
三、協(xié)議常見應(yīng)用
??面對UART存在的問題,工業(yè)上對串口協(xié)議做出了改進(jìn),增強(qiáng)了其電氣特性。如常用的RS232和RS485串行通信標(biāo)準(zhǔn)。我們來認(rèn)識一下它們。
3.1 RS232通信接口(全雙工通信)
??RS232
通訊又叫串口通訊方式,是指計(jì)算機(jī)通過RS232國際標(biāo)準(zhǔn)協(xié)議用串口連接線和單臺設(shè)備(控制器)進(jìn)行通訊的方式。文章來源:http://www.zghlxwxcb.cn/news/detail-448603.html
-
電氣接口:通常
RS-232
接口以9個(gè)引腳 (DB-9
) 或是25個(gè)引腳 (DB-25
) 的型態(tài)出現(xiàn),一般個(gè)人計(jì)算機(jī)上會有兩組RS-232
接口,分別稱為COM1
和COM2
。 - 通訊距離:9600波特率下建議在13米以內(nèi)。
-
通訊速率(波特率 Baud Rate):缺省常用的是
9600 bps
,常見的還有1200 2400 4800 19200 38400
等。波特率越大,傳輸速度越快,但穩(wěn)定的傳輸距離越短,抗干擾能力越差。傳輸速率較低,在異步傳輸時(shí),波特率為20Kbps。 -
電平特性:傳輸電平信號接口的信號電平值較高(信號
1
為-3V至-15V
,信號0
為3至15V
),易損壞接口電路的芯片,又因?yàn)榕cTTL電平(0~<0.8v,1~2.0V
)不兼容故需使用電平轉(zhuǎn)換電路方能與TTL電路連接。另外抗干擾能力差。 - 抗干擾性:接口使用一根信號線和一根信號返回線而構(gòu)成共地的傳輸形式, 這種共地傳輸容易產(chǎn)生共模干擾,所以抗噪聲干擾性弱。
-
多點(diǎn)通訊:
RS232
接口在總線上只允許連接1個(gè)收發(fā)器,不能支持多站收發(fā)能力,所以只能點(diǎn)對點(diǎn)通信,不支持多點(diǎn)通訊。
3.2 RS485通信接口(半雙工通信)
??RS485
通訊RS-232一樣,都是串行通信標(biāo)準(zhǔn),現(xiàn)在的標(biāo)準(zhǔn)名稱是TIA485/EIA-485-A,但是人們會習(xí)慣稱為RS-485標(biāo)準(zhǔn),RS-485常用在工業(yè)、自動化、汽車和建筑物管理等領(lǐng)域。RS-485總線彌補(bǔ)了RS-232通信距離短,速率低的缺點(diǎn),RS-485的速率可高達(dá)10Mbit/s,理論通訊距離可達(dá)1200米;RS-485和RS-232的單端傳輸不一樣,是差分傳輸,使用一對雙絞線,其中一根線定義為A,另一個(gè)定義為B文章來源地址http://www.zghlxwxcb.cn/news/detail-448603.html
-
電氣接口:通常
RS-485
接口以9個(gè)引腳 (DB-9
) 或是25個(gè)引腳 (DB-25
) 的型態(tài)出現(xiàn)。 -
通訊距離:
RS485
最大無線傳輸距離為1200米。最大傳輸速率為10Mbps,在100Kb/S的傳輸速率下,才可以達(dá)到最大的通信距離。采用阻抗匹配、低衰減的專用電纜可以達(dá)到1800米!超過1200米,可加中繼器(最多8只),這樣傳輸距離接近10Km。 -
通訊速率(波特率 Baud Rate):缺省常用的是
9600 bps
,常見的還有1200 2400 4800 19200 38400
等。波特率越大,傳輸速度越快,但穩(wěn)定的傳輸距離越短,抗干擾能力越差。傳輸速率較低,在異步傳輸時(shí),波特率為20Kbps。 -
電平特性:傳輸差分信號邏輯
1
以兩線間的電壓差為+(2—6) V表示;邏輯0
以兩線間的電壓差為-(2—6)V表示。接口信號電平比RS-232降低了,就不易損壞接口電路的芯片,且該電平與TTL電平兼容,可方便與TTL電路連接。 - 抗干擾性:接口使用一根信號線和一根信號返回線而構(gòu)成共地的傳輸形式, 這種共地傳輸容易產(chǎn)生共模干擾,所以抗噪聲干擾性弱。
-
多點(diǎn)通信:RS485接口在總線上是允許連接多達(dá)128個(gè)收發(fā)器。即具有多站通訊能力,這樣用戶可以利用單一的RS485接口方便地建立起設(shè)備網(wǎng)絡(luò)。
??補(bǔ)充:共模傳輸和差模傳輸
:
??采用共模傳輸方式時(shí),共模噪聲將會疊加在最終的輸出信號上面,污染了原始的信號。
??采用差模傳輸方式,則源端發(fā)出的信號+與信號-相位是相反的,而對于共模噪聲而言在+/-兩條線上都會存在,理想情況是等幅同相的,而接收端,相當(dāng)于一個(gè)減法器,有用信號由于相位相反則經(jīng)過減法器仍然保留,而噪聲則會被抵消。而實(shí)際電路中,則會大幅度削弱。
??由此可見,差模傳輸相對于共模傳輸方式,優(yōu)勢在于差模方式可以有效抵消共模干擾。
到了這里,關(guān)于嵌入式五大通信協(xié)議詳解 (一) UART的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!