<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

串口通訊波特率出現誤差的因素

GReq_mcu168 ? 來源:嵌入式技術開發 ? 作者:嵌入式技術開發 ? 2022-07-03 17:40 ? 次閱讀

串口通訊(UART)是一種異步通訊,收發雙方需要按照約定的波特率進行通訊。當波特率出現誤差時,會導致通訊出錯。那導致波特率出現誤差的因素都有哪些呢,今天就來分析一下。

1.分頻誤差

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

2.時鐘誤差

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

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

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

原文標題:UART波特率對時鐘精度的要求有多高?

文章出處:【微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • uart
    +關注

    關注

    22

    文章

    1163

    瀏覽量

    100286
  • 串口通訊
    +關注

    關注

    1

    文章

    250

    瀏覽量

    24582
  • 波特率
    +關注

    關注

    2

    文章

    284

    瀏覽量

    33842
  • 誤差
    +關注

    關注

    0

    文章

    49

    瀏覽量

    14318

原文標題:UART波特率對時鐘精度的要求有多高?

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    什么是串口波特率?串口波特率的分類及應用詳解

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

    USBH CDC如何修改通訊波特率?

    硬件平臺:正點原子探索者 + CH340 軟件:CubeMX,MDK 已經實現USBH接口通過CH340和外部串口通訊,波特率19200。 目前無法修改通訊
    發表于 05-31 06:07

    USB串口的特殊波特率通信

    USB串口轉換器是實現USB與RS-232/RS-485/RS-422串口設備相互通訊的一種協議轉換裝置。一般的USB串口轉換器支持的波特率
    發表于 10-14 13:17

    請問串口配置的波特率和實際發送的誤差能達到多少?

    原子哥,你知不知道STM32串口波特率誤差能達到多少???
    發表于 05-10 02:40

    STM32F4波特率的計算方法

    單片機的波特率寄存器配置方法,導致實際的波特率與200000相差很大,往往當誤差大于2%時就不能穩定通訊了。因此,在獲得盡量高的波特率的同時
    發表于 08-17 09:14

    怎么測量實際的波特率

    平時使用串口打印出現亂碼的絕大部分原因是串口波特率沒對。那么我們怎么測量實際的波特率呢?在這之前,順便一起回顧一下
    發表于 01-13 06:47

    STM8L串口通訊的設置波特率與實際波特率不一致是怎么回事

    最近調試STM8L串口通訊,發現設置了波特率115200,實際波特率卻是57600。心想這種問題一般是串口的時鐘分頻設置不對,找了半天沒有找
    發表于 02-21 06:46

    請問arduino如何自動設置串口波特率?

    arduino 如何自動設置串口波特率? 根據通訊機的波特率自動設置本身的波特率
    發表于 11-10 07:16

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

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

    串口通訊實際的波特率測量

    平時使用串口打印出現亂碼的絕大部分原因是串口波特率沒對。那么我們怎么測量實際的波特率呢?在這之前,順便一起回顧一下
    的頭像 發表于 04-04 17:27 ?6469次閱讀
    <b class='flag-5'>串口</b><b class='flag-5'>通訊</b>實際的<b class='flag-5'>波特率</b>測量

    串口波特率誤差產生的原因

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

    什么是波特率?為什么要設置波特率?

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

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

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

    什么是串口波特率?串口通信為什么要設置波特率?

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

    什么是串口波特率?串口通信為什么要設置波特率?

    什么是串口波特率?串口通信為什么要設置波特率?波特率與比特率的關系 如何選擇串口
    的頭像 發表于 01-22 16:10 ?934次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>