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

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

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

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

再談 HPM6700/6400/6300 產(chǎn)品系列串口接收不定長(zhǎng)數(shù)據(jù)的方式

先楫半導(dǎo)體HPMicro ? 2023-04-19 09:39 ? 次閱讀

概 述

2023年3月底,先楫半導(dǎo)體官方發(fā)布了新的hpm_sdk版本,相比上一次發(fā)布的版本,串口外設(shè)多了一個(gè)uart_hardware_rx_idle的sample。目前,這個(gè)硬件的空閑中斷僅適用于HPM6200系列產(chǎn)品,而HPM6750/6400/6300系列的MCU只能使用 uart_software_rx_idle 通過(guò)軟件利用額外的定時(shí)器實(shí)現(xiàn)空閑中斷機(jī)制。

ed855090-da9b-11ed-ad0d-dac502259ad0.png

首先,我們簡(jiǎn)單介紹一下以上4個(gè)串口相關(guān)的sample:

(1) uart_dma:此demo 的串口均使用DMA掌管進(jìn)行收發(fā),判斷收發(fā)完成只需要一次DMA傳輸完成中斷,但只能定長(zhǎng)收發(fā),適用于固定長(zhǎng)度的收發(fā)場(chǎng)景。此demo適用于先楫半導(dǎo)體所有MCU系列產(chǎn)品。

(2) uart_hardware_rx_idle:此demo 使用硬件空閑機(jī)制和DMA接收進(jìn)行接收不定長(zhǎng)。適合接收不定長(zhǎng)數(shù)據(jù)的場(chǎng)景,但此demo僅適用先楫半導(dǎo)體HPM6200系列MCU產(chǎn)品。

(3)uart_irq:此demo 的串口均使用中斷來(lái)進(jìn)行收發(fā),可適用于任何應(yīng)用場(chǎng)景。中斷進(jìn)行接收帶來(lái)的一個(gè)問(wèn)題就是每接收一個(gè)字節(jié)就會(huì)進(jìn)入一次中斷,在數(shù)據(jù)量稍大的場(chǎng)景下會(huì)比較耗費(fèi)中斷次數(shù)。此demo適用于先楫半導(dǎo)體所有MCU系列產(chǎn)品。

(4)uart_software_rx_idle:此demo需要定時(shí)器的兩個(gè)通道,并且互聯(lián)到一個(gè)IO,這個(gè)IO需要接到串口的RX引腳。一個(gè)通道作為捕獲RX引腳下降沿以此判斷開(kāi)始接收,另一個(gè)通道作為同步輸入SYNC(觸發(fā)會(huì)重置計(jì)數(shù)器)以此來(lái)判斷接收完成。利用定時(shí)器來(lái)實(shí)現(xiàn)空閑機(jī)制實(shí)現(xiàn)接收不定長(zhǎng)數(shù)據(jù)。在資源利用不緊張的情況下可以選擇使用此demo,因?yàn)槊總€(gè)串口都需要定時(shí)器的兩個(gè)通道作為輔助外設(shè)。此demo適用于先楫半導(dǎo)體所有MCU系列產(chǎn)品。

對(duì)于某些應(yīng)用場(chǎng)合,比如接收不定長(zhǎng)數(shù)據(jù),有硬件空閑中斷的支持,可以再配合DMA,用最小的中斷損耗(只需要一次中斷)以及最少的外設(shè)輔助(不需要定時(shí)器查詢)實(shí)現(xiàn)接收不定長(zhǎng)數(shù)據(jù)。


本文將探討一種利用串口FIFO接收超時(shí)機(jī)制而不依賴額外定時(shí)器在HPM6700/6400/6300 產(chǎn)品系列上實(shí)現(xiàn)串口不定長(zhǎng)數(shù)據(jù)接收。

實(shí)現(xiàn)方案

先楫半導(dǎo)體 HPM6700/6400/6300 產(chǎn)品系列串口特性如下:

ed989c22-da9b-11ed-ad0d-dac502259ad0.png


先楫半導(dǎo)體所有產(chǎn)品系列的串口 FIFO都支持閾值觸發(fā)中斷,也就是FIFO存儲(chǔ)到多少個(gè)字節(jié)認(rèn)為一次有效數(shù)據(jù)進(jìn)而觸發(fā)中斷。這樣可以大大減少觸發(fā)中斷的次數(shù),有了FIFO閾值中斷,就可以在進(jìn)入中斷后,一次性把FIFO的所有數(shù)據(jù)取出來(lái)。


開(kāi)發(fā)者可以在SDK中找到詳細(xì)描述閾值范圍的內(nèi)容:

接收觸發(fā)閾值為 0 (uart_rx_fifo_trg_not_empty):代表RX FIFO不為空就一次觸發(fā)中斷。

接收觸發(fā)閾值為 1 (uart_rx_fifo_trg_gt_one_quarter):代表RX FIFO接收到超過(guò)FIFO的四分之一就觸發(fā)一次中斷。

接收觸發(fā)閾值為 2 (uart_rx_fifo_trg_gt_half):代表RX FIFO接收到超過(guò)FIFO的一半就觸發(fā)一次中斷。

接收觸發(fā)閾值為 3 (uart_rx_fifo_trg_gt_three_quarters):代表RX FIFO接收到超過(guò)FIFO的四分之三就觸發(fā)一次中斷。

edaf6a42-da9b-11ed-ad0d-dac502259ad0.png

有了FIFO閾值設(shè)置,先楫半導(dǎo)體MCU產(chǎn)品的串口還具備了FIFO timeout 的中斷

edca7bf2-da9b-11ed-ad0d-dac502259ad0.png

產(chǎn)生中斷需要同時(shí)具備以下條件

① 需要使能FIFO;

② RXFIFO里面需要存在至少一個(gè)字符;

③ RXFIFO在四個(gè)字符的時(shí)間再也沒(méi)有收到新的字符。

結(jié)合以上特點(diǎn)可知,當(dāng)接收閾值產(chǎn)生中斷的時(shí)候,系統(tǒng)能夠把接收到的數(shù)據(jù)從FIFO提取出來(lái);當(dāng)FIFO timeout中斷觸發(fā)時(shí),系統(tǒng)能夠在最后把接收的數(shù)據(jù)從FIFO提取出來(lái)。通過(guò)這種方式來(lái)實(shí)現(xiàn)一幀不定長(zhǎng)數(shù)據(jù)的接收。


此外,開(kāi)發(fā)者可以結(jié)合以下特征以及自己的應(yīng)用開(kāi)發(fā)需求來(lái)決定是否采用此方案:


相比單個(gè)字節(jié)接收,接收中斷次數(shù)能減少10倍以上。比如接收1000個(gè)字節(jié),單個(gè)字節(jié)接收需要進(jìn)入1000次中斷,而使用rx fifo閾值+fifo超時(shí)機(jī)制,只需要進(jìn)入77次,相比減少12倍以上中斷次數(shù)。

接收閾值中斷和超時(shí)中斷是一起使能觸發(fā)的。

使用這種方式的話,接收無(wú)法配合DMA,但是發(fā)送可以使用DMA。

超時(shí)條件是四個(gè)字符時(shí)間。也就是在四個(gè)字符時(shí)間沒(méi)收到新數(shù)據(jù),則判斷超時(shí)。

方案驗(yàn)證

結(jié)合以上的論述,我們開(kāi)發(fā)一個(gè)sample進(jìn)行驗(yàn)證。接收使用RX FIFO 和 FIFO timeout方式,發(fā)送則使用DMA。使用100到1000字節(jié)隨機(jī)幾組進(jìn)行驗(yàn)證接收的中斷次數(shù)。

對(duì)于RX FIFO 和 FIFO timeout方式,代碼配置如下:

ede397f4-da9b-11ed-ad0d-dac502259ad0.png

中斷進(jìn)行提取FIFO的數(shù)據(jù):

ee029a46-da9b-11ed-ad0d-dac502259ad0.png

實(shí)驗(yàn)現(xiàn)象

通過(guò)本次實(shí)驗(yàn)結(jié)果可見(jiàn)相對(duì)于中斷方式接收,采用本文提到的方案可以顯著減少中斷次數(shù)。本法在進(jìn)行不定長(zhǎng)大數(shù)據(jù)量傳輸?shù)膱?chǎng)景下尤為有利,假設(shè)接收1000個(gè)字節(jié),單個(gè)字節(jié)中斷需要產(chǎn)生1000次中斷,而本文提到的方案在不使用其他額外定時(shí)器的條件下,只需要77次中斷就可完成傳輸。

ee2b5936-da9b-11ed-ad0d-dac502259ad0.png

以上是針對(duì)先楫半導(dǎo)體HPM6700/6400/6300這三個(gè)系列的MCU產(chǎn)品操作串口外設(shè)的一種方式的介紹。在實(shí)際操作過(guò)程中,希望能帶給各位開(kāi)發(fā)者一點(diǎn)啟發(fā)。

聲明:本文內(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)投訴
  • 半導(dǎo)體
    +關(guān)注

    關(guān)注

    335

    文章

    28666

    瀏覽量

    233292
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7246

    瀏覽量

    91148
收藏 人收藏

    評(píng)論

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

    【RA-Eco-RA4M2開(kāi)發(fā)板評(píng)測(cè)】定時(shí)器輔助串口不定長(zhǎng)數(shù)據(jù)接收

    assert(status==FSP_SUCCESS); } ??2.定時(shí)器輔助串口接收,實(shí)現(xiàn)不定長(zhǎng)數(shù)據(jù)接收。定時(shí)器回調(diào)函數(shù)實(shí)現(xiàn)如下:
    發(fā)表于 04-30 14:44

    重磅更新 | 先楫半導(dǎo)體HPM_SDK v1.9.0 發(fā)布

    版本更新概況[New]增加HPM6P00系列MCU以及hpm6p00evk支持[New]增加了開(kāi)發(fā)板已知問(wèn)題說(shuō)明[Update]將全系列開(kāi)發(fā)板VCore電壓調(diào)節(jié)至1.275V,
    的頭像 發(fā)表于 04-02 08:31 ?323次閱讀
    重磅更新 | 先楫半導(dǎo)體<b class='flag-5'>HPM</b>_SDK v1.9.0 發(fā)布

    艾默生推出全新數(shù)據(jù)采集產(chǎn)品系列

    近日,艾默生公司正式發(fā)布了其最新的數(shù)據(jù)采集(DAQ)產(chǎn)品系列,為用戶帶來(lái)了更加高效和經(jīng)濟(jì)的測(cè)試和測(cè)量解決方案。此次發(fā)布的新品包括NI? cDAQ-9187和cDAQ-9183以太網(wǎng)機(jī)箱,以及NI
    的頭像 發(fā)表于 02-19 14:28 ?373次閱讀

    如何使用DMA進(jìn)行USART不定長(zhǎng)接收

    在上一講中,我們對(duì)USART進(jìn)行了簡(jiǎn)單介紹,并講解了如何在不使用DMA的情況下進(jìn)行不定長(zhǎng)度數(shù)據(jù)接收,本講將著重講解如何使用DMA進(jìn)行USART不定長(zhǎng)接收
    的頭像 發(fā)表于 02-18 17:01 ?809次閱讀
    如何使用DMA進(jìn)行USART<b class='flag-5'>不定長(zhǎng)</b>度<b class='flag-5'>接收</b>

    【代碼分享】基于樂(lè)鑫ESP32的串口不定長(zhǎng)數(shù)據(jù)接收方法

    【代碼分享】基于樂(lè)鑫ESP32的串口不定長(zhǎng)數(shù)據(jù)接收方法
    的頭像 發(fā)表于 11-15 01:02 ?1345次閱讀
    【代碼分享】基于樂(lè)鑫ESP32的<b class='flag-5'>串口</b><b class='flag-5'>不定長(zhǎng)</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>接收</b>方法

    【AG32開(kāi)發(fā)板免費(fèi)試用】+串口不定長(zhǎng)收超時(shí)設(shè)置閾值多少合適?

    串口不定長(zhǎng)收發(fā)超時(shí)設(shè)置閾值多少合適?這個(gè)和波特率有關(guān)系嗎? 考慮最大接收長(zhǎng)度嗎?
    發(fā)表于 10-31 18:26

    HPM6750evkmini如何實(shí)現(xiàn)可信的執(zhí)行環(huán)境?

    HPM6700的datasheet中的1.2.15 信息安全系統(tǒng)有提到“基于BOOT ROM 的安全啟動(dòng)機(jī)制,支持加密啟動(dòng),支持可信的執(zhí)行環(huán)境”,請(qǐng)問(wèn)可信的執(zhí)行環(huán)境如何實(shí)現(xiàn)的?有相關(guān)的Demo或者資料嗎?是類似于TFM這樣的嗎?
    發(fā)表于 09-25 09:27

    快速整數(shù)除法C2000產(chǎn)品系列的差異化產(chǎn)品

    電子發(fā)燒友網(wǎng)站提供《快速整數(shù)除法C2000產(chǎn)品系列的差異化產(chǎn)品.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 13:36 ?0次下載
    快速整數(shù)除法C2000<b class='flag-5'>產(chǎn)品系列</b>的差異化<b class='flag-5'>產(chǎn)品</b>

    STM32CUBEMX(8)--USART通過(guò)定時(shí)器中斷方式接收不定長(zhǎng)數(shù)據(jù)

    概述 本文利用中斷實(shí)現(xiàn)串口不定長(zhǎng)接收(非DMA),使用HAL庫(kù),將接收數(shù)據(jù)打印出去。 DMA接收
    發(fā)表于 09-06 16:48

    STM32CUBEMX(6)--移植雅特力AT32F403AVGT7,雙串口通過(guò)DMA方式接收不定長(zhǎng)數(shù)據(jù)

    每個(gè)外設(shè)都需要實(shí)現(xiàn)自己的本地數(shù)據(jù)存儲(chǔ))相比,DMA解決方案在硅片成本和功耗方面的成本較低。 根據(jù)使用的產(chǎn)品型號(hào)的不同,有一個(gè)或兩個(gè)DMA模塊。 本篇文章主要介紹如何使用STM32CubeMX實(shí)現(xiàn)串口
    發(fā)表于 09-06 16:37

    STM32CUBEMX(2)--USART通過(guò)DMA方式接收不定長(zhǎng)數(shù)據(jù)

    (\"數(shù)據(jù)內(nèi)容:\"); for(int i=0;i<Rx_len;i++) { printf(\"%c\",ReceiveBuff);//向串口打印接收
    發(fā)表于 09-04 11:48

    hpm_manufacturing_tool linux 版本 選擇 hidraw 連接等待超時(shí)

    ] load firmware: hpm6700_hpm6400_blfw_unsigned.bin 077fc599b4af4a98 [16:34:34] Load Image. DeviceId
    發(fā)表于 08-07 16:43

    在GD32F407跑了freeRTOS,中斷調(diào)用xEventGroupSetBitsFromISR函數(shù)后就會(huì)死機(jī),為什么?

    在GD32F407跑了freeRTOS,串口接收使用了DMA+IDLE中斷來(lái)實(shí)現(xiàn)不定長(zhǎng)接收串口的IDLE中斷中
    發(fā)表于 07-26 06:37

    國(guó)產(chǎn)高性能MCU又一力作,集成授權(quán)EtherCAT,助力工業(yè)伺服走向海內(nèi)外

    電子發(fā)燒友網(wǎng)報(bào)道(文/黃晶晶)成立不到4年的先楫半導(dǎo)體HPMicro陸續(xù)推出并量產(chǎn)6款高性能MCU,包含HPM6700/6400HPM6300HPM6200、
    的頭像 發(fā)表于 07-02 08:17 ?1975次閱讀
    國(guó)產(chǎn)高性能MCU又一力作,集成授權(quán)EtherCAT,助力工業(yè)伺服走向海內(nèi)外

    esp32如何接收1M以上的數(shù)據(jù)

    手里有1塊ESP32_WROVER 模組 ,服務(wù)器發(fā)送不定長(zhǎng)數(shù)據(jù)可能最大會(huì)到1M-2M,我不太清楚怎么處理,目前使用recv接收1K左右的數(shù)據(jù)正常,希望有這方面的思路 ,可以使用PSR
    發(fā)表于 06-21 14:56
    主站蜘蛛池模板: 欧美极品另类xxx | 1024国产看片在线观看 | 亚洲一区二区中文字幕 | 五月天在线婷婷 | 成人黄色免费看 | 美女被免费网站91色 | 一二三区电影 | 男女交性特一级 | 亚洲大色 | 欧美一区二区三区不卡片 | 五月婷婷网站 | 四虎影院永久网址 | 色图视频 | 四虎永久在线视频 | 久久精品国产99国产精品免费看 | 男女视频在线看 | 黄色日本视频网站 | 久久免费特黄毛片 | 一区二区三区视频网站 | 久久精品美女久久 | 成人欧美网站 | 美国一级大黄香蕉片 | 国内黄色精品 | 午夜精品久久久久蜜桃 | 性欧美处| 人与牲动交xx | 成人欧美精品久久久久影院 | 噜噜噜动态图超猛烈 | 午夜88| 伊人久久影院大香线蕉 | 欧美精品福利 | 激情综合亚洲 | 一区二区三区在线观看免费 | 欧美成人精品一级高清片 | 一级特级毛片免费 | 国产精品夜夜春夜夜爽久久 | 亚洲www在线| 狠狠狠狼鲁欧美综合网免费 | jizz免费一区二区三区 | 中文字幕在线观看第一页 | 天堂网www在线资源链接 |