24小時(shí)聯(lián)系電話(huà):18217114652、13661815404
中文
- 您當前的位置:
- 首頁(yè)>
- 電子資訊>
- 技術(shù)專(zhuān)題>
- 串行通信協(xié)議-第二部...
技術(shù)專(zhuān)題
串行通信協(xié)議-第二部分:UART
串行通信協(xié)議-第二部分:UART
我們將研究流行的UART器件。它不是通信協(xié)議,而是微控制器或獨立IC中用于傳輸和接收串行數據的物理電路。它支持我們撰寫(xiě)的系列文章,以介紹一些可用的不同類(lèi)型的串行通信協(xié)議。
串行通信是在諸如微控制器,產(chǎn)生數據的外圍設備和其他智能設備之類(lèi)的設備之間傳輸信息的理想機制。我們希望您下次設計需要結合串行通信總線(xiàn)時(shí),會(huì )發(fā)現此資源非常寶貴。UART通常也稱(chēng)為設備上的串行端口。但是,這通常會(huì )與另一種使用DB9樣式連接器并使用RS-232作為硬件協(xié)議的串行端口混淆。將UART連接到RS-232收發(fā)器是很常見(jiàn)的,以使微控制器上的UART外設與基于RS-232的設備相互通信。
UART代表通用異步接收器發(fā)送器。該通信系統需要除接地以外的兩個(gè)引腳。一個(gè)標記為TX(發(fā)送器),另一個(gè)標記為RX(接收器)。名稱(chēng)中出現異步一詞意味著(zhù)它不需要時(shí)鐘信號。由于沒(méi)有時(shí)鐘,因此發(fā)送和接收設備必須使用相同的波特率。
波特率(Bd)是傳輸速率的度量單位。此參數確定發(fā)送器和接收器的數據通道上的通信速度。波特率可以表示為每秒位數,以使其更簡(jiǎn)單。因此,速率為1000 Bd意味著(zhù)通信速度為每秒1000位,或者一位的持續時(shí)間為1/1000秒或1毫秒。波特率具有標準度量標準前綴,例如kBd(千比特),MBd(兆比特)或GBd(千兆比特)。波特率包括消息的非數據部分,例如開(kāi)始和停止位,這意味著(zhù)從發(fā)送器發(fā)送到接收器的有用信息的發(fā)送率將略低。
一些更流行的預定義UART波特率包括:
110波特
300波特
1200波特
4800波特
9600波特
19200波特
38400波特
115200波特
有時(shí),兩個(gè)通信設備的波特率都可以調整,而有時(shí),其中一個(gè)設備將具有固定的波特率,要求另一個(gè)更改與之匹配。
因此,要使用UART連接兩個(gè)設備,發(fā)送器TX引腳應連接到接收器RX引腳
在某些配置下,兩個(gè)設備上都將具有RX和TX引腳,從而使您可以將命令從微控制器發(fā)送到專(zhuān)用IC,并從另一個(gè)方向接收命令或信息。這稱(chēng)為雙工連接。當不需要第二設備的反饋時(shí),也有一些應用。因此,通信只需要一個(gè)方向。因此,僅需要一條TX到RX傳輸線(xiàn)。這稱(chēng)為單純形連接。
發(fā)送設備將需要發(fā)送一個(gè)起始位,以啟動(dòng)從該設備到接收設備的通信。該位通知接收設備通信已經(jīng)開(kāi)始。
然后,將數據位作為代表實(shí)際數據的八位流發(fā)送,其中最高有效位(MSB)標記為D7,最低有效位(LSB)標記為D0。
然后,在這些數據位的末尾,發(fā)送器發(fā)送一個(gè)停止位(表明這是消息的末尾),并將UART總線(xiàn)置于其空閑模式。
在這種情況下,我們可以看到;完整的UART消息將由10位組成。在空閑模式下,UART總線(xiàn)被拉高,它發(fā)送一個(gè)開(kāi)始位,該開(kāi)始位為低,然后是8個(gè)數據位,然后是停止位。停止位不限于僅僅一位。它可以有多種配置,具體取決于通信速率有多快。這種配置意味著(zhù)整個(gè)消息位設置至少持續一次將總線(xiàn)信號電壓電平從低電平持續更改為高電平。
最高有效位D7也可以用作奇偶校驗位。該位提供了基本的錯誤檢查機制,該機制出現在通信的最小塊中。奇偶校驗位可用于確保高位或一位的總數為奇數或偶數,具體取決于編碼。對于偶數奇偶校驗,如果設置了數據位D0至D6,則它們由偶數個(gè)高位組成,則奇偶校驗位設置為0(低)。相反,如果這組位的高位數量不均勻,則奇偶校驗位設置為1(高)。這確保了消息中高位的總數將是偶數。在奇偶校驗檢查不均勻的情況下,如果將數據位D0至D6設置為由偶數個(gè)高位組成,則奇偶校驗位將設置為1(高)。相反,如果這組位的高位數量不均勻,然后將奇偶校驗位設置為0(低)。這樣可以確保消息中高位的總數為奇數。
因此,通過(guò)使用奇偶校驗位,可以通過(guò)檢查設置的位來(lái)檢測錯誤。假設包括奇偶校驗位在內的總位數設置為高是不正確的。在這種情況下,奇偶校驗位允許接收器在傳輸期間檢測到錯誤。但是,這種類(lèi)型的錯誤保護無(wú)法糾正錯誤,只能捕獲已發(fā)生的錯誤,因為無(wú)法確定整個(gè)位集中的哪個(gè)位不正確。它只能檢測一位是否處于錯誤狀態(tài)。如果總體奇偶校驗最終正確,則可能無(wú)法檢測到影響多個(gè)位的任何錯誤。
如果檢測到奇偶校驗錯誤,則必須丟棄整個(gè)消息并從頭開(kāi)始重新傳輸。在高干擾或高噪聲水平的情況下,可能需要花費大量時(shí)間才能成功傳輸。但是,它有助于防止消息錯誤。
除此之外,UART通信的接收和發(fā)送端必須使用完全相同的波特率和字符長(cháng)度,奇偶校驗機制以及停止位配置,才能成功進(jìn)行通信。
UART還有一個(gè)變體,稱(chēng)為USART。這是通用同步異步接收器發(fā)送器。當為數據計時(shí)時(shí),它既可以充當異步通道(就像UART),又可以充當同步通道。時(shí)鐘可以從數據本身恢復,也可以作為單獨的外部信號發(fā)送。
在同步模式下使用USART時(shí),不需要啟動(dòng)和停止位。由于位時(shí)序具有時(shí)鐘參考,因此這允許通信在同步操作時(shí)使用更高的數據速率。因此,更多的位可用于數據而不是開(kāi)始/停止位。
串口 |
ART |
UART只需要一個(gè)數據信號 |
USART同步模式需要數據和時(shí)鐘。 |
在UART中,不必以固定速率傳輸數據。 |
在USART同步模式下,數據以固定速率傳輸。 |
在UART中,通常一次只發(fā)送一個(gè)字節的數據。 |
在USART中,同步數據通常以數據塊的形式傳輸。 |
在UART中,數據傳輸速度設置為特定值附近,例如4800、9600、38400 bps等。 |
在USART中,如果所有其他因素保持不變,則同步模式比異步模式允許更高的DTR(數據傳輸速率)。 |
UART速度限制在115200 bps左右。 |
USART可以達到115 kbps以上的速率。 |
全雙工通信:數據可以同時(shí)在兩個(gè)方向上發(fā)送。 |
半雙工通信:一次只能在一個(gè)方向上發(fā)送數據。 |
UART和USART的主要目的是將PC總線(xiàn)上的并行數據轉換為串行數據,可以使用串行驅動(dòng)器在符合串行通信協(xié)議標準(例如RS-232或RS-485)的總線(xiàn)上傳輸串行數據。UART / USART和外部總線(xiàn)之間需要接口轉換器。然后,這允許該數據由相似的設備讀取,而這兩者不需要使用完全相同的串行數據格式。只要兩者之間的傳輸符合通用的受支持標準協(xié)議,每個(gè)設備內串行通信的實(shí)現就可以特定于該設備。
盡管UART在計算機市場(chǎng)上已被USB取代,但它們仍廣泛用于低成本設備中的串行通信。