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

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

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

3天內不再提示

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

331062281 ? 來源:先楫半導體HPMicro ? 2023-04-14 16:00 ? 次閱讀

概 述

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

d079ee8c-da93-11ed-bfe3-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 產品系列串口特性如下:

d097880c-da93-11ed-bfe3-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的四分之三就觸發一次中斷。

d0b84cc2-da93-11ed-bfe3-dac502259ad0.png

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

d0dd16c4-da93-11ed-bfe3-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方式,代碼配置如下:

d0f5e05a-da93-11ed-bfe3-dac502259ad0.png

中斷進行提取FIFO的數據:

d12becb8-da93-11ed-bfe3-dac502259ad0.png

實驗現象

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

d1529b24-da93-11ed-bfe3-dac502259ad0.png

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

如果大家在開發過程中還有其他的思路或建議,歡迎到官方網站的 “先楫社區”發貼討論,MCU生態建設需要各位的積極參與,感謝您的信任與支持!

審核編輯:湯梓紅

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

    關注

    23

    文章

    3246

    瀏覽量

    114719
  • 串口
    +關注

    關注

    14

    文章

    1551

    瀏覽量

    76421
  • 引腳
    +關注

    關注

    16

    文章

    1193

    瀏覽量

    50411
  • dma
    dma
    +關注

    關注

    3

    文章

    560

    瀏覽量

    100544
  • 先楫半導體
    +關注

    關注

    10

    文章

    214

    瀏覽量

    2102

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

文章出處:【微信號:HPMicro,微信公眾號:先楫半導體HPMicro】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    CAN外設的接收過濾器設置

    /HPM6300系列產品用的是CAN,而HPM6200系列使用的是MCAN。本文統稱HPM6700/HP
    的頭像 發表于 08-24 09:03 ?1936次閱讀
    CAN外設的<b class='flag-5'>接收</b>過濾器設置

    不定長數據接收的原理是什么?怎么實現串口數據不定長接收

    不定長數據接收的原理是什么?怎么實現串口數據不定長接收
    發表于 11-16 08:11

    HPM6700/6400產品數據手冊

    HPM6700/6400產品簡介
    發表于 05-25 09:47

    HPM6700/6400系列高性能微控制器數據手冊

    HPM6700/6400數據手冊
    發表于 05-25 08:01

    HPM6700/6400系列高性能微控制器用戶手冊

    HPM6700/6400用戶手冊
    發表于 05-29 09:53

    HPM6700/6400系列高性能微控制器勘誤表

    HPM6700/6400勞動手冊
    發表于 05-30 06:21

    HPM6300系列HPM6700/6400系列微控制器之間的異同點及遷移指南

    HPM6300_HPM6700/6400遷移指南
    發表于 06-01 08:02

    HPM6700/6400微控制器硬件設計指南

    HPM6700/6400硬件設計指南
    發表于 06-05 09:14

    stm32 串口接收不定長度數據及黏包處理 + 串口DMA接收

    ,那么stm32串口是如何實現接收不定長度數據的呢? 串口接收數據一般會采用
    發表于 12-23 19:09 ?27次下載
    stm32 <b class='flag-5'>串口</b><b class='flag-5'>接收</b><b class='flag-5'>不定長度數據</b>及黏包處理 + <b class='flag-5'>串口</b>DMA<b class='flag-5'>接收</b>

    STM32 DMA串口接收不定長數據

    STM32 DMA串口接收不定長數據
    發表于 12-24 18:50 ?40次下載
    STM32  DMA<b class='flag-5'>串口</b><b class='flag-5'>接收</b><b class='flag-5'>不定長</b><b class='flag-5'>數據</b>

    STM32之串口DMA接收不定長數據

    目錄STM32之串口DMA接收不定長數據引言DMA簡介什么是DMA在STM32的DMA資源DMA接收數據
    發表于 12-24 19:03 ?30次下載
    STM32之<b class='flag-5'>串口</b>DMA<b class='flag-5'>接收</b><b class='flag-5'>不定長</b><b class='flag-5'>數據</b>

    先楫HPM6700/6400家族迎來新成員

    鮮花初放的四月,是收獲的季節。先楫HPM6700/6400家族迎來了新成員—196BGA封裝系列。196BGA封裝尺寸為10mmx10mm是超高性能MCU家族HPM6700/
    的頭像 發表于 05-10 16:48 ?1138次閱讀
    先楫<b class='flag-5'>HPM6700</b>/<b class='flag-5'>6400</b>家族迎來新成員

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

    HPM6200系列產品,而HPM6750/6400/6300系列的MCU只能使用uart_sof
    的頭像 發表于 04-19 09:39 ?1040次閱讀
    <b class='flag-5'>再談</b> <b class='flag-5'>HPM6700</b>/<b class='flag-5'>6400</b>/<b class='flag-5'>6300</b> <b class='flag-5'>產品系列</b><b class='flag-5'>串口</b><b class='flag-5'>接收</b><b class='flag-5'>不定長</b><b class='flag-5'>數據</b>的<b class='flag-5'>方式</b>

    HPM USB系列HPM6700雙USB功能介紹

    HPM6700系列MCU提供了2個USB外設端口。這些端口內置高速PHY,支持OTG模式,主機模式支持高速、全速和低速模式,設備模式支持高速和全速模式,完全兼容USB 2.0協議。
    的頭像 發表于 05-30 11:40 ?638次閱讀
    <b class='flag-5'>HPM</b> USB<b class='flag-5'>系列</b>:<b class='flag-5'>HPM6700</b>雙USB功能介紹

    HPM USB系列HPM6700雙USB功能介紹

    HPM6700系列MCU提供了2個USB外設端口。這些端口內置高速PHY,支持OTG模式,主機模式支持高速、全速和低速模式,設備模式支持高速和全速模式,完全兼容USB2.0協議。這使得HPM6700
    的頭像 發表于 05-31 08:17 ?557次閱讀
    <b class='flag-5'>HPM</b> USB<b class='flag-5'>系列</b>:<b class='flag-5'>HPM6700</b>雙USB功能介紹
    主站蜘蛛池模板: 九九热这里有精品| 兔费看少妇性L交大片免费| 伊人精品影院一本到综合| 国产精品无码久久久久不卡| 翘臀少妇被扒开屁股日出水爆乳| 中文字幕一区在线观看视频| 黑吊大战白xxxxxx| 亚洲国产精品一区二区三区在线观看| 岛国大片在线观看免费版| 欧洲内射VIDEOXXX3D| 99精品视频在线观看免费| 麻豆精品传媒卡一卡二传媒短视频| 野花韩国视频中文播放| 精品久久香蕉国产线看观看麻豆 | 午夜福利自怕| 国产 交换 丝雨 巅峰| 日韩娇小性hd| 成人手机在线| 涩涩999| 91久久精品一区二区三区| 久久综合狠狠综合狠狠| 孕妇高潮抽搐喷水30分钟| 久草视频在线观看免费4| 一个人免费观看在线视频播放| 国内精品久久久久久久999下| 无人区日本电影在线观看| 国产精品九九久久| 同居了嫂子在线观看| 国产精品视频人人做人人爽| 无码欧美喷潮福利XXXX | 久久强奷乱码老熟女| 越南女 黑人 痛苦 大叫| 久久人妻无码毛片A片麻豆| 伊人久久大香线蕉综合网站| 久久久97丨国产人妻熟女| 国产亚洲视频在线观看| 午夜神器老司机高清无码| 国产亚洲精品线视频在线| 亚洲欧洲日产国码久在线| 久久精品99国产精品日本| 最新无码国产在线视频9299|