国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

再談 HPM6700/6400/6300 產品系列串口接收不定長數據的方式

先楫半導體HPMicro ? 2023-04-19 09:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

概 述

2023年3月底,先楫半導體官方發布了新的hpm_sdk版本,相比上一次發布的版本,串口外設多了一個uart_hardware_rx_idle的sample。目前,這個硬件的空閑中斷僅適用于HPM6200系列產品,而HPM6750/6400/6300系列的MCU只能使用 uart_software_rx_idle 通過軟件利用額外的定時器實現空閑中斷機制。

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

首先,我們簡單介紹一下以上4個串口相關的sample:

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

(2) uart_hardware_rx_idle:此demo 使用硬件空閑機制和DMA接收進行接收不定長。適合接收不定長數據的場景,但此demo僅適用先楫半導體HPM6200系列MCU產品。

(3)uart_irq:此demo 的串口均使用中斷來進行收發,可適用于任何應用場景。中斷進行接收帶來的一個問題就是每接收一個字節就會進入一次中斷,在數據量稍大的場景下會比較耗費中斷次數。此demo適用于先楫半導體所有MCU系列產品。

(4)uart_software_rx_idle:此demo需要定時器的兩個通道,并且互聯到一個IO,這個IO需要接到串口的RX引腳。一個通道作為捕獲RX引腳下降沿以此判斷開始接收,另一個通道作為同步輸入SYNC(觸發會重置計數器)以此來判斷接收完成。利用定時器來實現空閑機制實現接收不定長數據。在資源利用不緊張的情況下可以選擇使用此demo,因為每個串口都需要定時器的兩個通道作為輔助外設。此demo適用于先楫半導體所有MCU系列產品。

對于某些應用場合,比如接收不定長數據,有硬件空閑中斷的支持,可以再配合DMA,用最小的中斷損耗(只需要一次中斷)以及最少的外設輔助(不需要定時器查詢)實現接收不定長數據。


本文將探討一種利用串口FIFO接收超時機制而不依賴額外定時器在HPM6700/6400/6300 產品系列上實現串口不定長數據接收。

實現方案

先楫半導體 HPM6700/6400/6300 產品系列串口特性如下:

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


先楫半導體所有產品系列的串口 FIFO都支持閾值觸發中斷,也就是FIFO存儲到多少個字節認為一次有效數據進而觸發中斷。這樣可以大大減少觸發中斷的次數,有了FIFO閾值中斷,就可以在進入中斷后,一次性把FIFO的所有數據取出來。


開發者可以在SDK中找到詳細描述閾值范圍的內容:

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

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

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

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

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

有了FIFO閾值設置,先楫半導體MCU產品的串口還具備了FIFO timeout 的中斷

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

產生中斷需要同時具備以下條件

① 需要使能FIFO;

② RXFIFO里面需要存在至少一個字符;

③ RXFIFO在四個字符的時間再也沒有收到新的字符。

結合以上特點可知,當接收閾值產生中斷的時候,系統能夠把接收到的數據從FIFO提取出來;當FIFO timeout中斷觸發時,系統能夠在最后把接收的數據從FIFO提取出來。通過這種方式來實現一幀不定長數據的接收。


此外,開發者可以結合以下特征以及自己的應用開發需求來決定是否采用此方案:


相比單個字節接收,接收中斷次數能減少10倍以上。比如接收1000個字節,單個字節接收需要進入1000次中斷,而使用rx fifo閾值+fifo超時機制,只需要進入77次,相比減少12倍以上中斷次數。

接收閾值中斷和超時中斷是一起使能觸發的。

使用這種方式的話,接收無法配合DMA,但是發送可以使用DMA。

超時條件是四個字符時間。也就是在四個字符時間沒收到新數據,則判斷超時。

方案驗證

結合以上的論述,我們開發一個sample進行驗證。接收使用RX FIFO 和 FIFO timeout方式,發送則使用DMA。使用100到1000字節隨機幾組進行驗證接收的中斷次數。

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

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

中斷進行提取FIFO的數據:

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

實驗現象

通過本次實驗結果可見相對于中斷方式接收,采用本文提到的方案可以顯著減少中斷次數。本法在進行不定長大數據量傳輸的場景下尤為有利,假設接收1000個字節,單個字節中斷需要產生1000次中斷,而本文提到的方案在不使用其他額外定時器的條件下,只需要77次中斷就可完成傳輸。

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

以上是針對先楫半導體HPM6700/6400/6300這三個系列的MCU產品操作串口外設的一種方式的介紹。在實際操作過程中,希望能帶給各位開發者一點啟發。

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

    關注

    339

    文章

    30741

    瀏覽量

    264078
  • 數據
    +關注

    關注

    8

    文章

    7335

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    為什么串口接收數據就會觸發中斷呢?

    為什么串口接收數據就會觸發中斷呢? 串口接收喚醒機制有哪些注意事項?
    發表于 01-08 06:45

    LT6700/LT6700HV:低功耗雙比較器的卓越之選

    ,看看它在實際應用中能為我們帶來哪些優勢。 文件下載: LT6700.pdf 產品概述 LT6700/LT6700HV將兩個微功耗、低電壓比較器與一個400mV參考電壓集成在一個6引腳
    的頭像 發表于 01-07 15:25 ?212次閱讀

    請問CW32L的UART是不是沒有空閑中斷?

    CW32L083的UART是不是沒有空閑中斷?大家一般怎么實現不定長數據接收?是串口中斷+定時器嗎?
    發表于 12-15 07:28

    串口空閑中斷與串口超時中斷介紹

    。 特點 依賴總線物理狀態,而非時間。 常用于檢測不定長數據幀的結束,無需依賴特定結束符。 應用場景 Modbus通信:不定長數據包的接收
    發表于 11-21 08:31

    串口通信有哪些方式

    串口通信(Serial Communication)是一種通過串行方式逐位傳輸數據的通信方式,廣泛應用于嵌入式系統、工業控制、儀器儀表等領域。其通信
    的頭像 發表于 09-28 18:02 ?1090次閱讀

    求助,關于串口設備驅動fifo問題

    目前在做高頻數據采集分析,使用串口設備驅動(使用rs485),開啟DMA+空閑中斷,接收不定長數據接收
    發表于 09-12 08:18

    【RA4M2-SENSOR】—— 12.串口接收不定長度數據

    ;, U1_RxBuff);//打印收到的數據 user_uart_clear();//清空接收緩沖區 } HAL_Delay(10); } 編譯代碼,燒錄到板子 打開串口助手 發送
    發表于 09-01 11:22

    CYT2B7串口接收會漏接數據怎么解決?

    串口中斷方式接收會漏接數據串口工具發送 :1234567芯片接收到 :1357硬件是CYTVI
    發表于 08-14 07:29

    先楫半導體高性能MCU入駐立創商城,國產芯勢力再添新動能

    HPM6E00、HPM5300、HPM6700系列明星產品線及其開發板,主頻最高達816GHz,集成EtherCAT工業總線、高精度PWM
    的頭像 發表于 07-31 08:32 ?1180次閱讀
    先楫半導體高性能MCU入駐立創商城,國產芯勢力再添新動能

    STM32407使用串口閑時中斷+DMA方式接收最大接收字節是多少?

    使用串口閑時中斷+DMA方式接收數據,波特率為460800,DMA接收長度為1024個字節,并開啟串口
    發表于 07-22 08:16

    易飛揚低延遲光模塊產品系列為客戶帶來納秒使用價值

    為滿足數據中心及高性能計算場景對超低延遲、高可靠性的迫切需求,易飛揚正式推出全新低延遲光模塊產品系列。該系列產品通過優化光學性能與信號處理技術,實現在無需前向糾錯(FEC)的條件下達到極低誤碼率,顯著降低鏈路傳輸延遲,為金融交易
    的頭像 發表于 05-21 15:05 ?797次閱讀
    易飛揚低延遲光模塊<b class='flag-5'>產品系列</b>為客戶帶來納秒使用價值

    【RA-Eco-RA4M2開發板評測】定時器輔助串口不定長數據接收

    assert(status==FSP_SUCCESS); } ??2.定時器輔助串口接收,實現不定長數據接收。定時器回調函數實現如下:
    發表于 04-30 14:44

    重磅更新 | 先楫半導體HPM_SDK v1.9.0 發布

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

    先輯半導體HPM6E00系列產品能用來做EtherCAT的主站嗎

    雖然明確說明了先輯半導體HPM6E00系列產品能用來做EtherCAT的從站,但它可以用來做主站嗎,還是說必須用其他芯片做主站呢
    發表于 03-16 10:16