99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

USART波特率與SPI速率對(duì)比

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

掃碼添加小助手

加入工程師交流群

本文主要結(jié)合STM32,講述UART和SPI有關(guān)速率相關(guān)的知識(shí)。

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

STM32里包含有系統(tǒng)時(shí)鐘、AHB時(shí)鐘和APB時(shí)鐘。APB時(shí)鐘來(lái)源于AHB,AHB時(shí)鐘來(lái)源于系統(tǒng)時(shí)鐘。

從上圖中可以看出,時(shí)鐘就像流水一樣,從時(shí)鐘源匯聚到系統(tǒng)時(shí)鐘上,再?gòu)南到y(tǒng)時(shí)鐘繼續(xù)分頻或者說(shuō)是繼續(xù)分發(fā)到AHB、APB。

通常我們談?wù)摰?a target="_blank">MCU能跑到多少M(fèi)、主頻多少M(fèi),其實(shí)所指的就是系統(tǒng)時(shí)鐘。

這些時(shí)鐘在不同的STM32系列中是不一樣的,我們以STM32F401為例,手冊(cè)上說(shuō)它的APB1的最高時(shí)鐘是42MHz,APB2的最高時(shí)鐘是84MHz,不同的外設(shè)因?yàn)閽煸诓煌目偩€上,所以速度就不太相同了。比如USART1掛在APB2上,所以它的時(shí)鐘最高就是84MHz, USART2是掛在APB1上,它的總線時(shí)鐘最快就是42MHz。當(dāng)我們配置串口的時(shí)候會(huì)發(fā)現(xiàn),USART2的baudrate最高是2.625Mbit/s,但是同樣配置的USART1卻可以達(dá)到5.25Mbit/s,這就是因?yàn)樗诘目偩€時(shí)鐘的不同而不同。

那我們?cè)趺粗朗褂玫腢SART1、USART2到底掛在哪條總線上呢?去從數(shù)據(jù)手冊(cè)里尋找,直接在手冊(cè)里搜索關(guān)鍵詞APB1或者APB2就可以快速找到列表。 2.串口的過(guò)采樣技術(shù)規(guī)范

比如說(shuō)做數(shù)據(jù)的接收,我們可以看到串口是通過(guò)過(guò)采樣技術(shù)來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)的接收,因?yàn)樗鼪](méi)有時(shí)鐘線,只能通過(guò)高于波特率的16倍或者8倍對(duì)總線上的數(shù)據(jù)一個(gè)一個(gè)地進(jìn)行采集,根據(jù)最后采集到的情況來(lái)判斷信號(hào)的狀態(tài)。

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

可能有人會(huì)有疑問(wèn),x是任意的,不去檢測(cè),如果0不滿足要求應(yīng)該怎么辦呢?

如果3、5、7、8、9、10這六個(gè)點(diǎn)都是0,那就可以認(rèn)為這是一個(gè)起始信號(hào);如果在3、5、7和8、9、10這兩個(gè)階段都滿足至少有兩個(gè)bit是0的話,那就可以確認(rèn)它是起始信號(hào),確認(rèn)的意思是說(shuō)它里面的接收緩沖區(qū)非空,標(biāo)志位就已經(jīng)置上了,承認(rèn)這個(gè)信號(hào),但是還要給一個(gè)NE的標(biāo)志位,因?yàn)殡m然承認(rèn)了這個(gè)信號(hào),但里面是存在噪聲的。我們看串口的中斷標(biāo)志位的時(shí)候就可以看到,在它的錯(cuò)誤事件里就有一個(gè)NOISE FLAG,這個(gè)位就表示當(dāng)串口在接收的時(shí)候,在總線上檢測(cè)到的電平并不是一個(gè)標(biāo)準(zhǔn)的、完整的高電平或者低電平,會(huì)有錯(cuò)誤但不影響整個(gè)數(shù)據(jù)的接收,如果在接收的時(shí)候開啟了EIE位,錯(cuò)誤可以產(chǎn)生一個(gè)中斷,讓MCU對(duì)總線上的情況有一個(gè)了解。

如果前三個(gè)bit滿足條件,而后三個(gè)bit沒(méi)有滿足的話,那就說(shuō)明這個(gè)數(shù)據(jù)是錯(cuò)誤的,就不會(huì)置標(biāo)志位了,只要在3、5、7和8、9、10這兩個(gè)階段中有一個(gè)階段不滿足條件,就不會(huì)置位,并且還會(huì)有噪聲的說(shuō)明。

當(dāng)然了,這些都是在檢測(cè)下降沿沒(méi)有問(wèn)題的情況下來(lái)說(shuō)的,如果說(shuō)在檢測(cè)下降沿1110都不完整或者是錯(cuò)誤的,直接就會(huì)回到ideal狀態(tài),重新等待下一個(gè)數(shù)據(jù)發(fā)送過(guò)來(lái)。

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

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

4.SPI速率是不是應(yīng)該和系統(tǒng)時(shí)鐘一樣? 其實(shí)不是,因?yàn)橄到y(tǒng)需要時(shí)間去獲取采集到的數(shù)據(jù),所以SPI的時(shí)鐘分頻系數(shù)最小是二分之一的分頻,那么就是說(shuō)SPI的速度是系統(tǒng)時(shí)鐘的一半了。

有人覺(jué)得同步傳輸明顯優(yōu)于異步傳輸,因?yàn)橛袝r(shí)鐘線,傳輸速率會(huì)更高。

但其實(shí)這種說(shuō)法并不是完全正確的,因?yàn)槊恳环N傳輸方式都有自己的優(yōu)勢(shì)。比如串口有自動(dòng)波特率的功能,就是說(shuō)在接收的時(shí)候并不知道主機(jī)是按照什么樣的波特率進(jìn)行傳輸?shù)?,那就只能等主機(jī)發(fā)一個(gè)特定字節(jié)的數(shù)據(jù)過(guò)來(lái)并且檢測(cè)數(shù)據(jù)的狀態(tài),然后自己硬件去設(shè)置波特率的寄存器,這樣就可以在下一次傳輸?shù)臅r(shí)候和主機(jī)使用相同的波特率。其次,在不同的溫度范圍內(nèi),內(nèi)部的RC振蕩器是有溫漂的并且很大,最標(biāo)準(zhǔn)的校準(zhǔn)方法是給它一個(gè)時(shí)鐘沿,但是很多時(shí)候并沒(méi)有這個(gè)時(shí)鐘沿,那我們就可以用自動(dòng)波特率。每次通訊的時(shí)候都采用自動(dòng)波特率,就是每次都先接收,接收之后BRR寄存器里面的值就會(huì)隨著溫度的變化發(fā)生改變,MCU就可以根據(jù)BRR的值來(lái)調(diào)節(jié)HSITRIM。這個(gè)方法的好處是不需要提供一個(gè)非常標(biāo)準(zhǔn)的時(shí)鐘,通過(guò)串口通訊這種異步的方式就可以把時(shí)鐘信息傳給單片機(jī)內(nèi)部。

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

    關(guān)注

    2293

    文章

    11032

    瀏覽量

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

    關(guān)注

    2

    文章

    313

    瀏覽量

    34963
  • spi模式、spi速率
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    CAN總線十萬(wàn)個(gè)為什么 | CAN自定義波特率有什么用?

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

    RS232通信的波特率設(shè)置說(shuō)明

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

    波特率設(shè)置中的常見問(wèn)題解析

    在數(shù)字通信系統(tǒng)中,波特率是一個(gè)關(guān)鍵參數(shù),它直接影響數(shù)據(jù)傳輸?shù)男屎涂煽啃?。然而,在?shí)際應(yīng)用中,波特率的設(shè)置往往會(huì)引起一些常見的問(wèn)題。 一、波特率與數(shù)據(jù)速率的混淆 問(wèn)題描述: 許多人會(huì)將
    的頭像 發(fā)表于 11-22 10:06 ?1723次閱讀

    波特率與串行通信的關(guān)系 各種設(shè)備波特率轉(zhuǎn)換的方法

    波特率(Baud Rate)是串行通信中的一個(gè)重要參數(shù),它指的是信號(hào)傳輸?shù)?b class='flag-5'>速率,即單位時(shí)間內(nèi)傳輸?shù)姆?hào)(或信號(hào)狀態(tài))的數(shù)量。在串行通信中,波特率決定了數(shù)據(jù)傳輸?shù)乃俣?,因此?duì)于通信效率和設(shè)備兼容性
    的頭像 發(fā)表于 11-22 10:01 ?1669次閱讀

    常見的波特率標(biāo)準(zhǔn)和協(xié)議

    波特率是指在數(shù)據(jù)通信中,每秒鐘傳輸?shù)姆?hào)數(shù)(或比特?cái)?shù)),是衡量數(shù)據(jù)通信速度的重要指標(biāo)。在不同的通信協(xié)議和場(chǎng)景中,常見的波特率標(biāo)準(zhǔn)和協(xié)議有所不同。以下是一些常見的波特率標(biāo)準(zhǔn)和協(xié)議: 一、串口通信
    的頭像 發(fā)表于 11-22 09:56 ?6212次閱讀

    Wi-Fi與藍(lán)牙的波特率對(duì)比分析

    Wi-Fi與藍(lán)牙是兩種不同的無(wú)線通信技術(shù),它們?cè)?b class='flag-5'>波特率(或稱數(shù)據(jù)傳輸速率)方面存在顯著的差異。以下是對(duì)Wi-Fi與藍(lán)牙波特率對(duì)比分析: 一、Wi-Fi的
    的頭像 發(fā)表于 11-22 09:54 ?1858次閱讀

    波特率設(shè)置在串口通信中的重要性

    參數(shù),直接影響著數(shù)據(jù)傳輸?shù)?b class='flag-5'>速率和穩(wěn)定性。 一、波特率的定義與作用 波特率,也稱為波特,是衡量串口通信速率的單位,表示每秒傳輸?shù)男盘?hào)單位數(shù)。在
    的頭像 發(fā)表于 11-22 09:51 ?3024次閱讀

    波特率的定義和計(jì)算方法 波特率與數(shù)據(jù)傳輸速度的關(guān)系

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

    串口波特率是多少?

    波特率是多少
    發(fā)表于 11-05 15:40

    MCU串口自動(dòng)識(shí)別波特率原理分析

    現(xiàn)在的單片機(jī)資源越來(lái)越豐富了,其中我們常用的串口也是內(nèi)部集成了多個(gè),關(guān)鍵功能也越來(lái)越強(qiáng)了。 我們有些應(yīng)用可能會(huì)用到串口自動(dòng)識(shí)別波特率,今天就來(lái)講講MCU串口自動(dòng)識(shí)別波特率底層的常見的原理,以及MCU的案例。
    的頭像 發(fā)表于 10-23 16:12 ?2006次閱讀
    MCU串口自動(dòng)識(shí)別<b class='flag-5'>波特率</b>原理分析

    波特率9600和115200的區(qū)別

    在現(xiàn)代通信技術(shù)中,數(shù)據(jù)傳輸速率是一個(gè)關(guān)鍵的性能指標(biāo)。對(duì)于串行通信,波特率是衡量數(shù)據(jù)傳輸速度的基本單位。波特率9600和115200是兩種常見的設(shè)置,它們?cè)诓煌膽?yīng)用場(chǎng)景中有著各自的優(yōu)勢(shì)和局
    的頭像 發(fā)表于 10-18 14:56 ?5608次閱讀

    波特率與比特有何關(guān)系 波特率與數(shù)據(jù)傳輸速率的關(guān)系

    狀態(tài)變化的次數(shù),即每秒鐘傳輸?shù)姆?hào)數(shù)。它通常用于衡量調(diào)制解調(diào)器、無(wú)線通信設(shè)備等的數(shù)據(jù)傳輸速率波特率的單位是波特(Baud),1波特等于每秒傳輸一個(gè)符號(hào)。 比特
    的頭像 發(fā)表于 10-18 14:55 ?2559次閱讀

    uart波特率和傳輸頻率的關(guān)系 UART串口的常用波特率為多少

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

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

    波特率在串口通信中的作用在串口通信中,波特率起著至關(guān)重要的作用。因?yàn)樵趥鬏敂?shù)據(jù)時(shí),發(fā)送方和接收方需要以相同的波特率進(jìn)行通信。如果兩端的波特率不同,那么就會(huì)出現(xiàn)數(shù)據(jù)丟失、傳輸錯(cuò)誤等問(wèn)題,
    的頭像 發(fā)表于 08-27 11:46 ?3229次閱讀
    串口通信中的<b class='flag-5'>波特率</b>你真的了解嗎?差距竟如此重要!

    關(guān)于比特波特率的定義與區(qū)別介紹

    比特波特率都是衡量數(shù)字通信中數(shù)據(jù)傳輸速率的重要參數(shù)。比特率直接表示了單位時(shí)間內(nèi)傳輸?shù)臄?shù)據(jù)量(以比特為單位),而波特率則表示了信號(hào)變化的速率
    的頭像 發(fā)表于 08-05 14:31 ?1092次閱讀