0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

串口通訊波特率出現(xiàn)誤差的因素

GReq_mcu168 ? 來源:嵌入式技術(shù)開發(fā) ? 作者:嵌入式技術(shù)開發(fā) ? 2022-07-03 17:40 ? 次閱讀

串口通訊(UART)是一種異步通訊,收發(fā)雙方需要按照約定的波特率進(jìn)行通訊。當(dāng)波特率出現(xiàn)誤差時(shí),會(huì)導(dǎo)致通訊出錯(cuò)。那導(dǎo)致波特率出現(xiàn)誤差的因素都有哪些呢,今天就來分析一下。

1.分頻誤差

首先,波特率是根據(jù)系統(tǒng)時(shí)鐘分頻產(chǎn)生的,而系統(tǒng)時(shí)鐘和波特率可能不是整數(shù)倍的關(guān)系,所以分頻時(shí)也會(huì)產(chǎn)生誤差。但是目前大部分MCU的系統(tǒng)時(shí)鐘比較高,一般都在幾十MHz,遠(yuǎn)遠(yuǎn)大于串口通訊波特率,所以這個(gè)誤差影響很小。假設(shè)MCU時(shí)鐘為48MHz,波特率為115200,48MHz/115200=416.67,按照417分頻,實(shí)際波特率為48M/417=115108,誤差為(115200-115108)/115200,約為0.08%,這個(gè)誤差很小,對(duì)串口通訊沒什么影響。 但是,當(dāng)系統(tǒng)時(shí)鐘較低,或者波特率較高時(shí),也就是兩者相差倍率較小時(shí),這個(gè)誤差就不可忽視。 對(duì)于一些較早的51內(nèi)核的MCU,由于運(yùn)行頻率低,采用非整數(shù)的晶振(比如11.0592M等)就是為了使用常見波特率時(shí)(比如9600、115200),分頻的誤差盡量小。

2.時(shí)鐘誤差

其次,波特率的主要誤差還是取決于系統(tǒng)時(shí)鐘的誤差。那串口通訊對(duì)時(shí)鐘誤差的要求有多高呢? 先看串口通訊時(shí)序圖:

58946374-f39f-11ec-ba43-dac502259ad0.jpg

串口通訊由起始位、數(shù)據(jù)位、校驗(yàn)位、停止位組成。以常見的8N1為例,即1位起始位,8位數(shù)據(jù)位,無校驗(yàn),1位停止位。也就是說傳輸一個(gè)字節(jié)需要10bits。每一個(gè)字節(jié)都有一個(gè)起始位做同步,所以誤差只會(huì)在一個(gè)字節(jié)內(nèi)累計(jì)。 不難看出,在最后一個(gè)位采樣時(shí),誤差最大,允許極限誤差為0.5位。按照每個(gè)字節(jié)10位計(jì)算,最大允許誤差為±0.5/10=±0.05,即±5%??紤]到串口通訊涉及收發(fā)兩端,兩端都可能存在誤差,所以,每端的誤差最好控制在±2.5%以內(nèi)。 當(dāng)數(shù)據(jù)位、校驗(yàn)位等較多時(shí),要求的時(shí)鐘誤差就更高一些??紤]到上面所說的分頻誤差,一般來說,當(dāng)時(shí)鐘誤差小于±2%時(shí),串口通信是比較可靠的。

原文標(biāo)題:UART波特率對(duì)時(shí)鐘精度的要求有多高?

文章出處:【微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1250

    瀏覽量

    102749
  • 串口通訊
    +關(guān)注

    關(guān)注

    1

    文章

    263

    瀏覽量

    25304
  • 波特率
    +關(guān)注

    關(guān)注

    2

    文章

    310

    瀏覽量

    34611
  • 誤差
    +關(guān)注

    關(guān)注

    0

    文章

    50

    瀏覽量

    14495

原文標(biāo)題:UART波特率對(duì)時(shí)鐘精度的要求有多高?

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 0人收藏
  • jf_980610271

評(píng)論

相關(guān)推薦

STM32單片機(jī)的串口波特率計(jì)算方法

不管是什么單片機(jī),在使用串口通信的時(shí)候,有一個(gè)非常重要的參數(shù):波特率。什么是波特率波特率就是每秒傳送的字節(jié)數(shù)。雙方在傳輸數(shù)據(jù)的過程中,波特率
的頭像 發(fā)表于 01-05 09:59 ?2.9w次閱讀
STM32單片機(jī)的<b class='flag-5'>串口</b><b class='flag-5'>波特率</b>計(jì)算方法

STM32串口波特率大小計(jì)算案例

波特率的計(jì)算 STM32下的波特率串口外設(shè)時(shí)鐘息息相關(guān),USART 1的時(shí)鐘來源于APB2,USART 2-5的時(shí)鐘來源于APB1。在STM32中,有個(gè)波特率寄存器USART_BRR
的頭像 發(fā)表于 10-23 14:19 ?8653次閱讀
STM32<b class='flag-5'>串口</b><b class='flag-5'>波特率</b>大小計(jì)算案例

什么是串口波特率?串口波特率的分類及應(yīng)用詳解

什么是串口波特率串口波特率是指串口通信系統(tǒng)中傳輸數(shù)據(jù)的速率。在UART串口通信中,數(shù)據(jù)以位(bi
的頭像 發(fā)表于 08-08 10:09 ?6587次閱讀
什么是<b class='flag-5'>串口</b><b class='flag-5'>波特率</b>?<b class='flag-5'>串口</b><b class='flag-5'>波特率</b>的分類及應(yīng)用詳解

串口波特率計(jì)算工具下載

串口波特率計(jì)算工具
發(fā)表于 03-11 09:38 ?179次下載

晶振的最大波特率及其誤差介紹

晶振的最大波特率及其誤差介紹 用11.0592M和22.1184M,這樣在通訊的時(shí)候誤差最小。Crystal(MHz) MaxBaudRate Error1.000000   300
發(fā)表于 08-12 00:45 ?4035次閱讀

串口通訊實(shí)際的波特率測(cè)量

平時(shí)使用串口打印出現(xiàn)亂碼的絕大部分原因是串口波特率沒對(duì)。那么我們?cè)趺礈y(cè)量實(shí)際的波特率呢?在這之前,順便一起回顧一下
的頭像 發(fā)表于 04-04 17:27 ?7528次閱讀
<b class='flag-5'>串口</b><b class='flag-5'>通訊</b>實(shí)際的<b class='flag-5'>波特率</b>測(cè)量

串口波特率計(jì)算詳解

STM32下波特率計(jì)算詳解波特率的計(jì)算????STM32下的波特率串口外設(shè)時(shí)鐘息息相關(guān),USART 1的時(shí)鐘來源于APB2,USART 2-5的時(shí)鐘來源于APB1。在STM32中,有
發(fā)表于 12-05 09:06 ?22次下載
<b class='flag-5'>串口</b><b class='flag-5'>波特率</b>計(jì)算詳解

串口波特率誤差產(chǎn)生的原因

UART全稱Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)器,是一種非常常見的異步收發(fā)協(xié)議,在嵌入式領(lǐng)域應(yīng)用十分廣泛。收發(fā)雙方按照約定好通訊波特率進(jìn)行配置,如果波特率不匹配會(huì)
的頭像 發(fā)表于 04-13 16:20 ?6882次閱讀
<b class='flag-5'>串口</b><b class='flag-5'>波特率</b><b class='flag-5'>誤差</b>產(chǎn)生的原因

波特率是什么?波特率設(shè)計(jì)

從宏觀理解,波特率表征了串口的傳輸速度。
的頭像 發(fā)表于 06-05 15:19 ?2.9w次閱讀
<b class='flag-5'>波特率</b>是什么?<b class='flag-5'>波特率</b>設(shè)計(jì)

什么是波特率?為什么要設(shè)置波特率

歡迎來到東用知識(shí)小課堂!一、什么是波特率波特率(BaudRate)單位bps是用于衡量串口通信速度的單位,它表示每秒鐘發(fā)送的比特?cái)?shù)。如果一個(gè)串口
的頭像 發(fā)表于 04-08 00:00 ?7591次閱讀
什么是<b class='flag-5'>波特率</b>?為什么要設(shè)置<b class='flag-5'>波特率</b>?

串口傳輸速率低于波特率怎么辦 串口通信的波特率如何設(shè)置

如果串口傳輸速率低于波特率,您可以嘗試以下方法來解決問題:   1. 檢查硬件連接:確保串口連接正確且牢固。檢查連接線是否完好,確保沒有松動(dòng)或斷開的接觸。   2. 檢查波特率設(shè)置
的頭像 發(fā)表于 09-08 16:23 ?7121次閱讀

什么是串口波特率?串口通信為什么要設(shè)置波特率?

在電子設(shè)備的世界中,數(shù)據(jù)是通過各種方式進(jìn)行傳輸?shù)摹F渲校?b class='flag-5'>串口通信是一種常見的數(shù)據(jù)傳輸方式,它以其簡(jiǎn)單、可靠和廣泛的特性,成為了電子設(shè)備間通信的重要手段。而在串口通信中,有一個(gè)非常重要的參數(shù)——波特率
的頭像 發(fā)表于 11-03 08:21 ?6327次閱讀
什么是<b class='flag-5'>串口</b><b class='flag-5'>波特率</b>?<b class='flag-5'>串口</b>通信為什么要設(shè)置<b class='flag-5'>波特率</b>?

什么是串口波特率?串口通信為什么要設(shè)置波特率

什么是串口波特率?串口通信為什么要設(shè)置波特率波特率與比特的關(guān)系 如何選擇
的頭像 發(fā)表于 01-22 16:10 ?2592次閱讀

如何使用示波器測(cè)量串口波特率

在通信和電子測(cè)量領(lǐng)域,串口波特率是一個(gè)至關(guān)重要的參數(shù),它決定了數(shù)據(jù)在串行通信線上的傳輸速率。使用示波器來測(cè)量串口波特率是一種常見且有效的方法,尤其是在沒有專業(yè)
的頭像 發(fā)表于 05-27 16:25 ?6448次閱讀

串口通信中的波特率你真的了解嗎?差距竟如此重要!

波特率串口通信中的作用在串口通信中,波特率起著至關(guān)重要的作用。因?yàn)樵趥鬏敂?shù)據(jù)時(shí),發(fā)送方和接收方需要以相同的波特率進(jìn)行通信。如果兩端的
的頭像 發(fā)表于 08-27 11:46 ?2318次閱讀
<b class='flag-5'>串口</b>通信中的<b class='flag-5'>波特率</b>你真的了解嗎?差距竟如此重要!

電子發(fā)燒友

中國電子工程師最喜歡的網(wǎng)站

  • 2931785位工程師會(huì)員交流學(xué)習(xí)
  • 獲取您個(gè)性化的科技前沿技術(shù)信息
  • 參加活動(dòng)獲取豐厚的禮品