在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

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

CHANBAEK ? 來源:硬件工程師技術(shù)干貨 ? 作者:硬件工程師技術(shù)干 ? 2023-04-13 16:20 ? 次閱讀

1、UART接口

UART全稱Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)器,是一種非常常見的異步收發(fā)協(xié)議,在嵌入式領(lǐng)域應(yīng)用十分廣泛。收發(fā)雙方按照約定好通訊波特率進(jìn)行配置,如果波特率不匹配會導(dǎo)致失敗。

2、分頻與波特率

使用單片機的朋友,經(jīng)常使用4800、9600、38400、115200等波特率。設(shè)計電路時經(jīng)常采用11.0592Mhz這樣“不規(guī)則”晶振,看起來不規(guī)則,實際上很規(guī)則,原因是可以精確分頻成常用波特率。

11.0592MHz=11059200=115200*96

11.0592MHz=11059200=57600*192

11.0592MHz=11059200=19200*576

有細(xì)心的朋友經(jīng)常采用11.0592Mhz晶體設(shè)計電路,調(diào)試完串口通訊之后更換為12MHz后單片機依然能夠正常通訊,并沒有出現(xiàn)通訊異常。可見波特率有少許誤差也是能夠容忍的。

3、串口如何采樣

串口接收方,在收到起始位后,延時1.5個位周期進(jìn)行第1位采樣,然后依次隔一個位周期采樣一位,直至把所有數(shù)據(jù)位采樣完成。如果接收方采樣位置正好在數(shù)據(jù)位的中間位置,那么采樣非常完美,不會出現(xiàn)問題。以下是8bit串口通訊數(shù)據(jù)格式示意圖。

注意,這里的采樣并不是只采樣一次,有些芯片會采樣多次,這里僅做示意。

4、誤差原因

如果接收方位周期略微大于發(fā)送方位周期,就會出現(xiàn)下圖所示的情況。采樣位置逐漸偏移數(shù)據(jù)位中心,bit7采樣位置偏移最嚴(yán)重。這就是波特率誤差。采樣點移位過多就會導(dǎo)致位錯誤,導(dǎo)致通訊失敗。當(dāng)然如果接收方位周期略微小于發(fā)送方位周期,也是同樣道理。一般測特率誤差2%-3%是沒有問題的。

5、舉例

筆者正在使用的某款cortex-M3內(nèi)核芯片,需求的波特率是460800bps。串口時鐘頻率是36MHz。此款芯片波特率配置方法是串口時鐘頻率除以16,再除以分頻因子。計算出分頻因子(分頻因子只能是整數(shù)),然后寫入相應(yīng)寄存器即可。算來算去,無論如何計算都不能準(zhǔn)確分頻出460800bps。按照如下代碼計算出的分頻因子是4。然后反推出波特率是562500bps,整除失去了小數(shù)位,導(dǎo)致差距巨大,根本無法通訊。

// baud rate = (serial clock freq) / (16 * divisor).
  tmpBaudRateDiv = (clocks.PCLK_Frequency / 16) / UART_InitStruct->UART_BaudRate;

于是乎做了個優(yōu)化,如下代碼,計算出的分頻因子是5。然后反推出波特率是450,000bps,差距比較小,測試了一下通訊性能沒問題。

// baud rate = (serial clock freq) / (16 * divisor).
  tmpBaudRateDiv = ((clocks.PCLK_Frequency / 16) + UART_InitStruct->UART_BaudRate / 2) / UART_InitStruct->UART_BaudRate;

6、不建議串口高速使用

串口畢竟是一個低速的數(shù)據(jù)傳輸協(xié)議,這種異步傳輸,沒有時鐘同步信號,在傳輸?shù)拿總€字節(jié)中采樣有誤差積累,不建議高速使用,筆者使用過幾種高波特率460800、921600、1500000等。原因是低端的單片機主頻速率較低,處理高速數(shù)據(jù)流效率低下,如需高速使用,可根據(jù)自己需求開啟串口FIFO、串口DMA、串口流控等。

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

    關(guān)注

    5125

    文章

    19438

    瀏覽量

    313018
  • 晶振
    +關(guān)注

    關(guān)注

    34

    文章

    3155

    瀏覽量

    69261
  • 串口
    +關(guān)注

    關(guān)注

    14

    文章

    1580

    瀏覽量

    78330
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1251

    瀏覽量

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

    關(guān)注

    2

    文章

    310

    瀏覽量

    34620
收藏 人收藏

    評論

    相關(guān)推薦

    STM32串口波特率大小計算案例

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

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

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

    串口波特率計算工具下載

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

    C Core芯片SCI串口波特率容限優(yōu)化

    發(fā)現(xiàn)了C*Core國芯芯片中SCI發(fā)送與接受方波特率誤差導(dǎo)致數(shù)據(jù)不匹配問題,分析了發(fā)送與接受方數(shù)據(jù)傳輸丟幀、誤幀現(xiàn)象出現(xiàn)的根本原因,總結(jié)了SCI容限值與芯片主頻及標(biāo)準(zhǔn)波特率之間規(guī)
    發(fā)表于 03-05 17:45 ?17次下載
    C Core芯片SCI<b class='flag-5'>串口</b><b class='flag-5'>波特率</b>容限優(yōu)化

    串行通信的實現(xiàn)條件和波特率自動整定問題

    串行通信在波特率誤差超過一定范圍時,會產(chǎn)生錯誤。本節(jié)介紹的內(nèi)容在51單片機上僅用軟件就實現(xiàn)了波特率自動整定,最大程度地減小了波特率
    發(fā)表于 03-23 14:52 ?4106次閱讀
    串行通信的實現(xiàn)條件和<b class='flag-5'>波特率</b>自動整定問題

    STM32的串口自動識別波特率

    STM32串口自動識別波特率
    的頭像 發(fā)表于 03-04 09:53 ?1w次閱讀

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

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

    串口波特率計算詳解

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

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

    串口通訊(UART)是一種異步通訊,收發(fā)雙方需要按照約定的波特率進(jìn)行通訊。當(dāng)波特率出現(xiàn)誤差時,會導(dǎo)致通訊出錯。那導(dǎo)致波特率出現(xiàn)
    的頭像 發(fā)表于 07-03 17:40 ?1.1w次閱讀

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

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

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

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

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

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

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

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

    如何使用示波器測量串口波特率

    在通信和電子測量領(lǐng)域,串口波特率是一個至關(guān)重要的參數(shù),它決定了數(shù)據(jù)在串行通信線上的傳輸速率。使用示波器來測量串口波特率是一種常見且有效的方法,尤其是在沒有專業(yè)
    的頭像 發(fā)表于 05-27 16:25 ?6550次閱讀
    主站蜘蛛池模板: 5252色欧美在线激情 | 很黄网站| 欧美一区二区三区视频 | 35pao免费视频 | 天天摸天天操天天爽 | 激情综合六月 | 亚洲深爱 | 亚洲综合成人网 | 男女交性无遮挡免费视频 | 2021日本三级理论影院 | 一丝不遮视频免费观看 | 久久99精品福利久久久 | 一级毛片免费全部播放 | 人人洗澡人人洗澡人人 | 91网址在线播放 | 亚洲午夜精品久久久久久抢 | 亚洲video | 欧美一区色 | 亚洲 欧美 自拍 另类 | 国产片一区二区三区 | 人人做人人爽人人爱 | 天天天天天天干 | 亚洲aⅴ久久久噜噜噜噜 | 欧美69色| 婷婷射| 天天射天天拍 | 一级片黄色免费 | 久久青草精品免费资源站 | 国产乱理论片在线观看理论 | 亚洲一区二区三区不卡视频 | 欧美猛交xxxx乱大交 | 欧美三级 欧美一级 | 国产亚洲3p一区二区三区 | 国产国产人免费人成免费视频 | 最近视频在线播放免费观看 | 午夜免费| 最新四虎4hu影库地址在线 | 爱综合网 | 四虎1515hh永久久免费 | 高清视频免费观看 | 神马影视午夜 |