• <noframes id="6fok0"><bdo id="6fok0"><listing id="6fok0"></listing></bdo>
    <ruby id="6fok0"></ruby>

    <progress id="6fok0"></progress>
  • <progress id="6fok0"></progress>
    <ruby id="6fok0"><table id="6fok0"></table></ruby>
  • <progress id="6fok0"><u id="6fok0"><form id="6fok0"></form></u></progress>

    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è)設備上都將具有RXTX引腳,從而使您可以將命令從微控制器發(fā)送到專(zhuān)用IC,并從另一個(gè)方向接收命令或信息。這稱(chēng)為雙工連接。當不需要第二設備的反饋時(shí),也有一些應用。因此,通信只需要一個(gè)方向。因此,僅需要一條TXRX傳輸線(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也可以用作奇偶校驗位。該位提供了基本的錯誤檢查機制,該機制出現在通信的最小塊中。奇偶校驗位可用于確保高位或一位的總數為奇數或偶數,具體取決于編碼。對于偶數奇偶校驗,如果設置了數據位D0D6,則它們由偶數個(gè)高位組成,則奇偶校驗位設置為0(低)。相反,如果這組位的高位數量不均勻,則奇偶校驗位設置為1(高)。這確保了消息中高位的總數將是偶數。在奇偶校驗檢查不均勻的情況下,如果將數據位D0D6設置為由偶數個(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ā)送數據。

    UARTUSART的主要目的是將PC總線(xiàn)上的并行數據轉換為串行數據,可以使用串行驅動(dòng)器在符合串行通信協(xié)議標準(例如RS-232RS-485)的總線(xiàn)上傳輸串行數據。UART / USART和外部總線(xiàn)之間需要接口轉換器。然后,這允許該數據由相似的設備讀取,而這兩者不需要使用完全相同的串行數據格式。只要兩者之間的傳輸符合通用的受支持標準協(xié)議,每個(gè)設備內串行通信的實(shí)現就可以特定于該設備。

    盡管UART在計算機市場(chǎng)上已被USB取代,但它們仍廣泛用于低成本設備中的串行通信。 

    請輸入搜索關(guān)鍵字

    確定
    色鲁99热99re超碰精品_91精品一区二区三区无码吞精_亚洲国产欧洲综合997久久_一级a性色生活片久久无
  • <noframes id="6fok0"><bdo id="6fok0"><listing id="6fok0"></listing></bdo>
    <ruby id="6fok0"></ruby>

    <progress id="6fok0"></progress>
  • <progress id="6fok0"></progress>
    <ruby id="6fok0"><table id="6fok0"></table></ruby>
  • <progress id="6fok0"><u id="6fok0"><form id="6fok0"></form></u></progress>