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

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

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

SPI通訊速度與容錯(cuò)率

嵌入式應(yīng)用開(kāi)發(fā) ? 來(lái)源:嵌入式應(yīng)用開(kāi)發(fā) ? 作者:嵌入式應(yīng)用開(kāi)發(fā) ? 2022-12-04 10:21 ? 次閱讀

通訊速率

對(duì)于SPI通信并沒(méi)有規(guī)范最高的通信速率,在我的開(kāi)發(fā)經(jīng)驗(yàn)中有見(jiàn)過(guò)達(dá)到50Mbit/s的應(yīng)用場(chǎng)景,但通常比較常見(jiàn)的還是10Mbit/s左右。

具體選用多快的通信速度,還得在實(shí)際項(xiàng)目中根據(jù)情況具體設(shè)計(jì),比如:

1、當(dāng)前主從機(jī)的主頻和項(xiàng)目的具體應(yīng)用都與SPI數(shù)據(jù)的處理能力有著直接關(guān)系,一般SPI通信的時(shí)鐘頻率都是來(lái)源于主頻分頻,這就在一定程度上限制了其通信速率上限。

即使能夠達(dá)到較高速的速率,而處理器還需要處理更多的業(yè)務(wù)邏輯,再去處理SPI數(shù)據(jù)也是不夠及時(shí)的,此時(shí)高速率并沒(méi)有太大的意義了。

2、SPI硬件PCB布線長(zhǎng)度等等影響著線路阻抗,這也同樣限制了通信速率,一般通信距離越長(zhǎng),通信速度越低,否則容易造成通信不穩(wěn)定。

特別是通信線路經(jīng)過(guò)一些干擾源更是影響其穩(wěn)定性,所以SPI作為一種相對(duì)高速的通信方式,一般都不會(huì)用于長(zhǎng)距離通信中,而是大量用于微處理器與外部SPI接口的設(shè)備之間的通信,比如高速采樣芯片ADC、處理器之間等等。

3、前面說(shuō)了即使SPI主機(jī)能夠達(dá)到較高的通信速率,但從機(jī)主頻或者數(shù)據(jù)處理能力不夠,這樣也是沒(méi)有太大意義的,當(dāng)你可以通過(guò)配置從機(jī)為接收隊(duì)列或者DMA等方式進(jìn)行優(yōu)化,當(dāng)然高速率在多機(jī)中能夠減少同步延時(shí)。

值得注意的是一些芯片標(biāo)稱的最高通信速率,是在比較好的外界條件下的測(cè)試值,超過(guò)了該標(biāo)稱值可能也能用,但并不會(huì)很穩(wěn)定,容易導(dǎo)致通信異常。

所以具體選用多快的通信速度,還需根據(jù)實(shí)際情況分析確認(rèn)。

pYYBAGOLLdGAQ3X9AAGNtuJ6_do508.png

容錯(cuò)性

SPI不像IIC那樣存在應(yīng)答機(jī)制,也沒(méi)有流控制機(jī)制,當(dāng)從機(jī)配置較低,如果一個(gè)報(bào)文還沒(méi)處理完,后一個(gè)報(bào)文又到來(lái),導(dǎo)致傳輸錯(cuò)亂,其通信過(guò)程幾乎都是靠硬件來(lái)保證數(shù)據(jù)的傳輸穩(wěn)定性,是一種不可靠傳輸。

當(dāng)然如果是用于多機(jī)通信倒是可以通過(guò)制定可靠性校驗(yàn)協(xié)議來(lái)保證傳輸數(shù)據(jù)的穩(wěn)定,但這也在一定程度上會(huì)降低通信的有效數(shù)據(jù)傳輸速度。

stm32的SPI外設(shè)發(fā)送和接收都存在獨(dú)立的CRC校驗(yàn)功能,大致的原理就是使用CRC在每個(gè)位上進(jìn)行串行計(jì)算,然后在最后一次數(shù)據(jù)傳輸結(jié)束時(shí)來(lái)傳輸CRC校驗(yàn)值,接受方接收到CRC以后自動(dòng)拿著數(shù)據(jù)和CRC值進(jìn)行比對(duì),看是與否有數(shù)據(jù)故障,如果存在傳輸問(wèn)題就會(huì)置位相應(yīng)的CRC故障標(biāo)志位告知。

當(dāng)然如果所選用的芯片SPI外設(shè)沒(méi)有獨(dú)立CRC模塊可以模擬類似的操作進(jìn)行處理,只是相對(duì)比較耗時(shí),畢竟這個(gè)CRC得軟件自己處理。

stm32的SPI外設(shè)的靈活度遠(yuǎn)不止這些,比如配置成雙線單向模式等,可以把MISO和MOSI都向一個(gè)方向傳輸,從而提高一倍的傳輸速度,感興趣可以參考一下手冊(cè)玩一下。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1669

    瀏覽量

    90742
  • PCB布線
    +關(guān)注

    關(guān)注

    19

    文章

    462

    瀏覽量

    41938
  • SPI通信
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

    11319
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    關(guān)于STM32的SPI主從雙機(jī)通訊問(wèn)題

    大家,我想問(wèn)下,我用兩塊STM32進(jìn)行SPI通訊,一個(gè)主機(jī)一個(gè)從機(jī),開(kāi)始主從機(jī)是可以通訊成功的,而且數(shù)據(jù)也是對(duì)的,但是不知為什么,通訊一段時(shí)間后,從機(jī)接收主機(jī)發(fā)過(guò)來(lái)的數(shù)據(jù)會(huì)出現(xiàn)錯(cuò)誤,感
    發(fā)表于 10-11 21:06

    SPI通訊錯(cuò)誤問(wèn)題解決

    SPI接口,與串口接口相似,是單片機(jī)中最基本的兩個(gè)通訊接口,都有T(發(fā))、R(收), 不同的是SPI還有時(shí)鐘與片選 。我初入研發(fā)時(shí),設(shè)計(jì)過(guò)一個(gè)SPI接口的
    發(fā)表于 09-30 23:59

    nrf24l01+和stm32的spi通訊需要設(shè)置nrf24l01+的spi波特

    nrf24l01+和stm32的spi通訊需要設(shè)置nrf24l01+的spi波特嗎如果需要,想問(wèn)下是在哪段代碼設(shè)置的nrf24l01+的spi
    發(fā)表于 01-21 17:16

    Compact Rio下NI9401如何通過(guò)SPI通訊采集加速度信號(hào)?

    我想用C-rio下的NI9401 進(jìn)行SPI通訊采集加速度信號(hào),類似于使用NI9401采集ADXL345加速度信號(hào),這樣可以采集信號(hào)進(jìn)行實(shí)時(shí)處理,盡可能的降低系統(tǒng)的延時(shí)。但是我機(jī)械出身
    發(fā)表于 04-16 09:13

    nrf24l01+和stm32的spi通訊要設(shè)置nrf24l01+的spi波特嗎?是在哪段代碼設(shè)置的

    nrf24l01+和stm32的spi通訊需要設(shè)置nrf24l01+的spi波特嗎如果需要,想問(wèn)下是在哪段代碼設(shè)置的nrf24l01+的spi
    發(fā)表于 06-09 04:35

    容錯(cuò)CAN收發(fā)器TJA1054電子資料

    概述:TJA1054是飛利浦半導(dǎo)體公司生產(chǎn)的一款容錯(cuò)CAN收發(fā)器。該TJA1054是在一個(gè)控制區(qū)域網(wǎng)絡(luò)的公交線路的協(xié)議控制器和物理線路(CAN)之間的接口。它主要用于forlow速度的應(yīng)用,高達(dá)125K波特,在乘用...
    發(fā)表于 04-21 06:52

    硬件SPI與軟件模擬SPI速度區(qū)別

    硬件SPI與軟件模擬SPI速度區(qū)別實(shí)測(cè)目前為了程序移植方便,許多以SPI接口的芯片所提供的參考代碼大多都使用的是軟件SPI,比如筆者用過(guò)的存
    發(fā)表于 07-01 06:40

    RN8302spi通訊例程2011.5.30

    RN8302spi通訊例程2011.5.30
    發(fā)表于 08-24 08:41 ?42次下載

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

    USART波特 vs SPI速率
    的頭像 發(fā)表于 01-15 16:37 ?1.2w次閱讀

    兩塊STM32之間SPI通訊進(jìn)行的注意事項(xiàng)

    之前分享過(guò)的SPI通訊實(shí)例:STM32硬件SPI主從通信實(shí)例,是基于一塊STM32的兩個(gè)SPI通訊。如果要進(jìn)行兩塊STM32之間的
    的頭像 發(fā)表于 04-04 17:24 ?1.5w次閱讀

    硬件SPI與軟件模擬SPI速度區(qū)別實(shí)測(cè)

    硬件SPI與軟件模擬SPI速度區(qū)別實(shí)測(cè)目前為了程序移植方便,許多以SPI接口的芯片所提供的參考代碼大多都使用的是軟件SPI,比如筆者用過(guò)的存
    發(fā)表于 12-22 19:13 ?9次下載
    硬件<b class='flag-5'>SPI</b>與軟件模擬<b class='flag-5'>SPI</b><b class='flag-5'>速度</b>區(qū)別實(shí)測(cè)

    SPI通訊協(xié)議介紹

    來(lái)到SPI通訊協(xié)議了。廢話兩句,“SPI很重要”,這是我在學(xué)校時(shí)候聽(tīng)那些單片機(jī)開(kāi)發(fā)工程師說(shuō)的。出來(lái)實(shí)習(xí),到后來(lái)工作,確實(shí)如此,SPI的使用很常見(jiàn),那么自然重要咯。
    發(fā)表于 12-22 19:18 ?11次下載
    <b class='flag-5'>SPI</b><b class='flag-5'>通訊</b>協(xié)議介紹

    SPI通訊協(xié)議必備知識(shí)。

    SPI被廣泛地使用在 ADC、LCD 等設(shè)備與 MCU 間,要求通訊速率較高的場(chǎng)合,也是學(xué)習(xí)STM32必需要掌握的知識(shí)。...
    發(fā)表于 12-22 19:21 ?13次下載
    <b class='flag-5'>SPI</b><b class='flag-5'>通訊</b>協(xié)議必備知識(shí)。

    該如何提高代碼容錯(cuò)、降低代碼耦合度?

    提高RT-Thread代碼的容錯(cuò)和降低耦合度是確保代碼質(zhì)量和可維護(hù)性的關(guān)鍵,下面列舉了幾種在編寫(xiě)代碼時(shí),提高代碼容錯(cuò)和降低耦合度的思路。讓我們一起來(lái)看看吧~一、提高代碼
    的頭像 發(fā)表于 06-26 08:10 ?386次閱讀
    該如何提高代碼<b class='flag-5'>容錯(cuò)</b><b class='flag-5'>率</b>、降低代碼耦合度?