色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

USART波特率與SPI速率對比

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 作者:黃工的嵌入式技術 ? 2020-01-15 16:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文主要結合STM32,講述UART和SPI有關速率相關的知識。

1.串口和SPI內部時鐘 在回答上面問題之前,需要先了解STM32內部時鐘的概念,尤其是串口和SPI的內部時鐘。

STM32里包含有系統時鐘、AHB時鐘和APB時鐘。APB時鐘來源于AHB,AHB時鐘來源于系統時鐘。

從上圖中可以看出,時鐘就像流水一樣,從時鐘源匯聚到系統時鐘上,再從系統時鐘繼續分頻或者說是繼續分發到AHB、APB。

通常我們談論的MCU能跑到多少M、主頻多少M,其實所指的就是系統時鐘。

這些時鐘在不同的STM32系列中是不一樣的,我們以STM32F401為例,手冊上說它的APB1的最高時鐘是42MHz,APB2的最高時鐘是84MHz,不同的外設因為掛在不同的總線上,所以速度就不太相同了。比如USART1掛在APB2上,所以它的時鐘最高就是84MHz, USART2是掛在APB1上,它的總線時鐘最快就是42MHz。當我們配置串口的時候會發現,USART2的baudrate最高是2.625Mbit/s,但是同樣配置的USART1卻可以達到5.25Mbit/s,這就是因為所在的總線時鐘的不同而不同。

那我們怎么知道使用的USART1、USART2到底掛在哪條總線上呢?去從數據手冊里尋找,直接在手冊里搜索關鍵詞APB1或者APB2就可以快速找到列表。 2.串口的過采樣技術規范

比如說做數據的接收,我們可以看到串口是通過過采樣技術來實現對數據的接收,因為它沒有時鐘線,只能通過高于波特率的16倍或者8倍對總線上的數據一個一個地進行采集,根據最后采集到的情況來判斷信號的狀態。

舉個例子,當我們采集START信號的時候,實際上它要求采集到1110 x0x0x0 000這樣固定的序列的時候才認為是一個起始信號。START信號在串口里是一個bit的低電平信號,我們用16倍的速率進行采樣,首先它在前面會做一個下降沿檢測,這個檢測是要在前面的4個bit能檢測到1110,硬件會對總線上的數據根據采樣點一直進行檢測,這里的采樣點就是APB的時鐘,串口掛在不同的APB上用的時鐘不一樣。采樣的時候采集到1110就知道是一個下降沿,后面的x意思是任意的,后面的幾個位中至少需要檢測到三個0,而最后邊的三個位需要是連續的三個0,這樣才能被判定是一個起始位。其實只是判斷了3、5、7、8、9、10這六個點,只要是0,就可以確認了。這里我們是以START信號為例,其他信號也是這樣的。

可能有人會有疑問,x是任意的,不去檢測,如果0不滿足要求應該怎么辦呢?

如果3、5、7、8、9、10這六個點都是0,那就可以認為這是一個起始信號;如果在3、5、7和8、9、10這兩個階段都滿足至少有兩個bit是0的話,那就可以確認它是起始信號,確認的意思是說它里面的接收緩沖區非空,標志位就已經置上了,承認這個信號,但是還要給一個NE的標志位,因為雖然承認了這個信號,但里面是存在噪聲的。我們看串口的中斷標志位的時候就可以看到,在它的錯誤事件里就有一個NOISE FLAG,這個位就表示當串口在接收的時候,在總線上檢測到的電平并不是一個標準的、完整的高電平或者低電平,會有錯誤但不影響整個數據的接收,如果在接收的時候開啟了EIE位,錯誤可以產生一個中斷,讓MCU對總線上的情況有一個了解。

如果前三個bit滿足條件,而后三個bit沒有滿足的話,那就說明這個數據是錯誤的,就不會置標志位了,只要在3、5、7和8、9、10這兩個階段中有一個階段不滿足條件,就不會置位,并且還會有噪聲的說明。

當然了,這些都是在檢測下降沿沒有問題的情況下來說的,如果說在檢測下降沿1110都不完整或者是錯誤的,直接就會回到ideal狀態,重新等待下一個數據發送過來。

3.SPI的速度為什么這么快?

我們可以看一下SPI的時序圖,圖中上面兩根線是CLOCK線,它根據配置的不同而不同,在CPHA=0時,即在第一個時鐘沿進行采樣,CPOL表示的是時鐘的默認電平是高電平(CPOL=1)還是低電平(CPOL=0),這里看到的每個時鐘都可以傳輸一個bit。

4.SPI速率是不是應該和系統時鐘一樣? 其實不是,因為系統需要時間去獲取采集到的數據,所以SPI的時鐘分頻系數最小是二分之一的分頻,那么就是說SPI的速度是系統時鐘的一半了。

有人覺得同步傳輸明顯優于異步傳輸,因為有時鐘線,傳輸速率會更高。

但其實這種說法并不是完全正確的,因為每一種傳輸方式都有自己的優勢。比如串口有自動波特率的功能,就是說在接收的時候并不知道主機是按照什么樣的波特率進行傳輸的,那就只能等主機發一個特定字節的數據過來并且檢測數據的狀態,然后自己硬件去設置波特率的寄存器,這樣就可以在下一次傳輸的時候和主機使用相同的波特率。其次,在不同的溫度范圍內,內部的RC振蕩器是有溫漂的并且很大,最標準的校準方法是給它一個時鐘沿,但是很多時候并沒有這個時鐘沿,那我們就可以用自動波特率。每次通訊的時候都采用自動波特率,就是每次都先接收,接收之后BRR寄存器里面的值就會隨著溫度的變化發生改變,MCU就可以根據BRR的值來調節HSITRIM。這個方法的好處是不需要提供一個非常標準的時鐘,通過串口通訊這種異步的方式就可以把時鐘信息傳給單片機內部。

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

    關注

    2295

    文章

    11033

    瀏覽量

    365500
  • 波特率
    +關注

    關注

    2

    文章

    314

    瀏覽量

    34990
  • spi模式、spi速率

    關注

    0

    文章

    2

    瀏覽量

    2355
收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    波特率是什么

    波特率是串行通信中的一個核心參數,用于描述數據在傳輸線路上的傳輸速率。以下從定義、單位、與比特的關系、實際應用及設置注意事項等方面進行詳細說明: 一、定義與本質 波特率(Baud R
    的頭像 發表于 07-22 11:11 ?116次閱讀

    CAN總線十萬個為什么 | CAN自定義波特率有什么用?

    導讀CAN總線通信中,波特率一致并不總能保證通信順暢。本文將揭秘自定義波特率的原理和應用,探討如何通過優化采樣點和提高容忍度解決通信問題,助力工程師提升通信穩定性。通常情況下,CAN總線通信只需確保
    的頭像 發表于 02-07 11:36 ?740次閱讀
    CAN總線十萬個為什么 | CAN自定義<b class='flag-5'>波特率</b>有什么用?

    RS232通信的波特率設置說明

    RS232通信中,波特率的選擇需要根據設備的通信能力和通信距離來確定。 二、波特率的設置范圍 RS232通信的波特率可以設置多種不同的速率,常見的
    的頭像 發表于 12-10 16:26 ?4504次閱讀

    波特率設置中的常見問題解析

    在數字通信系統中,波特率是一個關鍵參數,它直接影響數據傳輸的效率和可靠性。然而,在實際應用中,波特率的設置往往會引起一些常見的問題。 一、波特率與數據速率的混淆 問題描述: 許多人會將
    的頭像 發表于 11-22 10:06 ?1753次閱讀

    波特率與串行通信的關系 各種設備波特率轉換的方法

    波特率(Baud Rate)是串行通信中的一個重要參數,它指的是信號傳輸的速率,即單位時間內傳輸的符號(或信號狀態)的數量。在串行通信中,波特率決定了數據傳輸的速度,因此對于通信效率和設備兼容性
    的頭像 發表于 11-22 10:01 ?1688次閱讀

    常見的波特率標準和協議

    波特率是指在數據通信中,每秒鐘傳輸的符號數(或比特數),是衡量數據通信速度的重要指標。在不同的通信協議和場景中,常見的波特率標準和協議有所不同。以下是一些常見的波特率標準和協議: 一、串口通信
    的頭像 發表于 11-22 09:56 ?6389次閱讀

    Wi-Fi與藍牙的波特率對比分析

    Wi-Fi與藍牙是兩種不同的無線通信技術,它們在波特率(或稱數據傳輸速率)方面存在顯著的差異。以下是對Wi-Fi與藍牙波特率對比分析: 一、Wi-Fi的
    的頭像 發表于 11-22 09:54 ?1913次閱讀

    波特率設置在串口通信中的重要性

    參數,直接影響著數據傳輸的速率和穩定性。 一、波特率的定義與作用 波特率,也稱為波特,是衡量串口通信速率的單位,表示每秒傳輸的信號單位數。在
    的頭像 發表于 11-22 09:51 ?3082次閱讀

    波特率的定義和計算方法 波特率與數據傳輸速度的關系

    波特率的定義 波特率(Baud Rate),又稱調制速率或傳符號,是指每秒傳輸的符號數目,單位為波特(Bd)。它是一個數字信號通信中重要的
    的頭像 發表于 11-22 09:49 ?9348次閱讀

    MCU串口自動識別波特率原理分析

    現在的單片機資源越來越豐富了,其中我們常用的串口也是內部集成了多個,關鍵功能也越來越強了。 我們有些應用可能會用到串口自動識別波特率,今天就來講講MCU串口自動識別波特率底層的常見的原理,以及MCU的案例。
    的頭像 發表于 10-23 16:12 ?2026次閱讀
    MCU串口自動識別<b class='flag-5'>波特率</b>原理分析

    波特率9600和115200的區別

    在現代通信技術中,數據傳輸速率是一個關鍵的性能指標。對于串行通信,波特率是衡量數據傳輸速度的基本單位。波特率9600和115200是兩種常見的設置,它們在不同的應用場景中有著各自的優勢和局
    的頭像 發表于 10-18 14:56 ?5752次閱讀

    波特率與比特有何關系 波特率與數據傳輸速率的關系

    狀態變化的次數,即每秒鐘傳輸的符號數。它通常用于衡量調制解調器、無線通信設備等的數據傳輸速率波特率的單位是波特(Baud),1波特等于每秒傳輸一個符號。 比特
    的頭像 發表于 10-18 14:55 ?2590次閱讀

    uart波特率和傳輸頻率的關系 UART串口的常用波特率為多少

    UART(Universal Asynchronous Receiver/Transmitter)是一種廣泛使用的異步串行通信技術,它允許兩臺設備之間進行雙向數據傳輸。在UART通信中,波特率和傳輸
    的頭像 發表于 10-06 16:12 ?7137次閱讀
    uart<b class='flag-5'>波特率</b>和傳輸頻率的關系 UART串口的常用<b class='flag-5'>波特率</b>為多少

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

    波特率在串口通信中的作用在串口通信中,波特率起著至關重要的作用。因為在傳輸數據時,發送方和接收方需要以相同的波特率進行通信。如果兩端的波特率不同,那么就會出現數據丟失、傳輸錯誤等問題,
    的頭像 發表于 08-27 11:46 ?3316次閱讀
    串口通信中的<b class='flag-5'>波特率</b>你真的了解嗎?差距竟如此重要!

    關于比特波特率的定義與區別介紹

    比特波特率都是衡量數字通信中數據傳輸速率的重要參數。比特率直接表示了單位時間內傳輸的數據量(以比特為單位),而波特率則表示了信號變化的速率
    的頭像 發表于 08-05 14:31 ?1123次閱讀
    主站蜘蛛池模板: 中文中幕无码亚洲视频 | 国产人妻精品久久久久久很牛 | 亚洲精品久久区二区三区蜜桃臀 | 办公室韩国电影免费完整版 | 扒开校花粉嫩小泬喷潮漫画 | 久久免费电影 | 无码国产精品高潮久久9 | 久热人人综合人人九九精品视频 | 午夜伦4480yy妇女久久 | 国产乱妇乱子在线播视频播放网站 | 久久大香线蕉综合爱 | 福利一区国产 | 国产精品亚洲二线在线播放 | 在线观看成年人免费视频 | 麻豆最新免费版 | 最近2019年日本中文免费字幕 | 九九在线免费视频 | 国产成人在线观看网站 | 久久精品一区二区三区资源网 | 福利社的阿姨 | 少妇高潮惨叫久久久久久电影 | 琪琪婷婷五月色综合久久 | 91精品国产91热久久p | 国产女高清在线看免费观看 | 果冻传媒2021一二三在线观看 | 999视频精品全部免费观看 | 亚洲AV久久无码精品蜜桃 | 日韩 国产 欧美视频二区 | 亚洲国产日韩a精品乱码 | 天天摸夜添狠狠添高 | 永久免费在线看mv | bbbbbxxxxx肥胖 | 无止侵犯高H1V3无止侵犯 | 美女内射视频WWW网站午夜 | 翁熄性放纵交换01 | 亚洲合集综合久久性色 | 久久亚洲人成网站 | 女人高潮了拔出来了她什么感觉 | 儿子日母亲B好爽 | 99久久亚洲精品影院 | 羽月希被黑人吃奶dasd585 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品