【经验】先楫半导体HPM6700/6400/6300 MCU产品系列串口接收不定长数据的方式
2023年3月底,先楫半导体官方发布了新的hpm_sdk版本,相比上一次发布的版本,串口外设多了一个uart_hardware_rx_idle的sample。目前,这个硬件的空闲中断仅适用于HPM6200系列产品,而HPM6750/6400/6300系列的MCU只能使用 uart_software_rx_idle 通过软件利用额外的定时器实现空闲中断机制。
首先,我们简单介绍一下以上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 产品系列串口特性如下:
先楫半导体所有产品系列的串口 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的四分之三就触发一次中断。
有了FIFO阈值设置,先楫半导体MCU产品的串口还具备了FIFO timeout的中断。
产生中断需要同时具备以下条件:
① 需要使能FIFO;
② RXFIFO里面需要存在至少一个字符;
③ RXFIFO在四个字符的时间再也没有收到新的字符。
结合以上特点可知,当接收阈值产生中断的时候,系统能够把接收到的数据从FIFO提取出来;当FIFO timeout中断触发时,系统能够在最后把接收的数据从FIFO提取出来。通过这种方式来实现一帧不定长数据的接收。
此外,开发者可以结合以下特征以及自己的应用开发需求来决定是否采用此方案:
1.相比单个字节接收,接收中断次数能减少10倍以上。比如接收1000个字节,单个字节接收需要进入1000次中断,而使用rx fifo阈值+fifo超时机制,只需要进入77次,相比减少12倍以上中断次数。
2.接收阈值中断和超时中断是一起使能触发的。
3.使用这种方式的话,接收无法配合DMA,但是发送可以使用DMA。
4.超时条件是四个字符时间。也就是在四个字符时间没收到新数据,则判断超时。
方案验证
结合以上的论述,我们开发一个sample进行验证。接收使用RX FIFO 和 FIFO timeout方式,发送则使用DMA。使用100到1000字节随机几组进行验证接收的中断次数。
对于RX FIFO 和 FIFO timeout方式,代码配置如下:
中断进行提取FIFO的数据:
实验现象
通过本次实验结果可见相对于中断方式接收,采用本文提到的方案可以显著减少中断次数。本法在进行不定长大数据量传输的场景下尤为有利,假设接收1000个字节,单个字节中断需要产生1000次中断,而本文提到的方案在不使用其他额外定时器的条件下,只需要77次中断就可完成传输。
以上是针对先楫半导体HPM6700/6400/6300这三个系列的MCU产品操作串口外设的一种方式的介绍。在实际操作过程中,希望能带给各位开发者一点启发。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由玉鹤甘茗转载自先楫半导体HPMicro公众号,原文标题为:再谈 HPM6700/6400/6300 产品系列串口接收不定长数据的方式,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
相关研发服务和供应服务
相关推荐
【经验】先楫半导体MCU HPM6750使用JLINK调试下如何进行串口打印配置
在使用JLINK调试先楫半导体HPM6750EVK2开发板调试时遇到不知如何使用SEGGER Embedded Studio (以下简称SES)内置的虚拟串口打印工具,本文介绍正确配置串口打印工具的步骤。
先楫半导体HPM 16 位ADC+ENET开发案例:以2MSPS进行采样,通过ENET LWIP TCP方式发送到上位机
本文以先楫半导体 HPM6300 开发板为例介绍以 2MSPS 采样率进行 16 位 ADC 采样并将采样数据通过 ENET LWIP TCP 的方式发送到上位机的应用,ADC 采样使用抢占转换模式、PWM 触发的方式,ENET LWIP TCP 每次发送 1024 个 16 位采样数据。在HPM6300EVK 上进行测试验证,验证结果表明该方案是可行的。
【经验】MCU HPM6750使用ISP烧录程序步骤及注意事项
先楫半导体推出的HPM6750是一款高性能MCU,采用双RISC-V内核,主频可达816MHz,使用自主的创新总线架构、高效的L1缓存和本地存储器,高达9220CoreMark和高达4651 DMIPS的MCU性能纪录;同时整个MCU还整合了一系列高性能外设。
国产高性能MCU又一力作,集成授权EtherCAT,助力工业伺服走向海内外
最近,先楫半导体发布中国首款拥有德国倍福公司正式授权EterhCAT从站控制器的高性能MCU产品HPM6E00系列,将国产高性能MCU在工业领域的应用推向新高度。
HPMicro HPM 6700/6400系列开创了高性能MCU的新纪元
型号- HPM6450,HPM6750EVK,HPM6750EVKMINI,HPM 6400,HPM 6700,HPM 6700 SERIES,HPM 6400 SERIES,HPM6454,HPM6730,HPM6430,HPM6750,HPM6750EVK2,HPM6754
【IC】先楫半导体最新款高性能MCU HPM5301,搭载单核32位RISC-V处理器,主频高达360MHz
先楫半导体于2023年11月24日宣布推出高性能HPM5300系列MCU最新款——HPM5301芯片。这款MCU搭载单核32位RISC-V处理器,采用QFN48封装,是迄今为止先楫推出的最简单易用的产品。该芯片的开发板HPM5301EVKLite也同步上市。
媒体视角 | 先楫半导体HPM6E00系列MCU填补国内空白,EtherCAT中国首授权
2023年12月先楫半导体正式推出中国首款拥有德国倍福公司正式授权EtherCAT从站控制器的高性能MCU产品HPM6E00系列。先楫半导体HPM6E00系列产品采用国际流行的RISC-V架构,主频高达600MHz,有单双核选项,集成了德国倍福公司授权的EtherCAT从站控制器,具备高性能运动控制、高实时工业以太网互联的特性。
【应用】基于RISC-V的高主频MCU HPM6750用于LED大屏,双千兆以太网透传实现实时控制
基于RISC-V的高主频MCU能让LED大屏显示系统实现更高的驱动频率及更高的实时性。HPM6750是先楫半导体开发的采用RISC-V 内核、具有高主频及创新总线架构的双核高性能MCU,能通过双千兆以太网透传的方案加双核加持完美解决高速的链路设计。
HPM6200系列MCU双核高性能,专为精确控制而打造
型号- HPM6260,HPM6280,HPM6200 SERIES,HPM6264,HPM6220,HPM6240,HPM6284,HPM6200EVK,HPM6200
先楫半导体(HPMicro)HPM6000家族MCU选型指南
目录- HPM6000家族MCU
型号- HPM6320IEP,HPM6454IAN,HPM6754IAN,HPM6450,HPM6750IAN,HPM6350,HPM6754IVM,HPM6300系列,HPM6450IAN,HPM6454IVM,HPM6320IPA,HPM6750IVM,HPM6000家族,HPM6360IPA,HPM6360IEP,HPM6364IPA,HPM6430IVM,HPM6300,HPM6400,HPM6320,HPM6364,HPM6364IEP,HPM6700,HPM6430IAN,HPM6350IPA,HPM6340,HPM6000,HPM6340IEP,HPM6360,HPM6730IAN,HPM6730IVM,HPM6350IEP,HPM6340IPA,HPM6700系列,HPM6450IVM,HPM6454,HPM6730,HPM6400系列,HPM6430,HPM6750,HPM6754
【IC】有动静!先楫出了颗适用机器人的国内首款内嵌ESC高性能MCU——HPM6E00
先楫半导体(HPMicro)推出的新款MCU——HPM6E00,引发了外界的广泛关注。这家成立仅四年的公司,凭借“国内首款内嵌ESC的高性能MCU”,再次证明了其在MCU领域的创新实力。
HPM6000 系列 MCU Flash 使用指南(一)------如何使用片内 Flash
描述- 本文档为HPM6000系列微控制器中支持4MB片内闪存的型号提供了使用指南,包括硬件和软件开发注意事项。指南详细介绍了如何使用片内Flash,以及与其他型号产品的异同,并提供了开发时需要注意的具体步骤,如创建新板目录、修改openocd脚本文件、调整board.c文件和yaml配置文件等。此外,还强调了使用片内闪存的优势,如节省开发调试成本和缩小PCB面积。
型号- HPM6400 系列,HPM6000,HPM6264,HPM6360,HPM6284,HPM6200 系列,HPM6700 系列,HPM6000 系列,HPM6300,HPM6454,HPM6400,HPM6364,HPM6200,HPM6700,HPM6300 系列,HPM6754
电子商城
现货市场
服务
可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。
最小起订量: 1000 提交需求>
拥有IC烧录机20余款,100余台设备,可以烧录各种封装的IC;可烧录MCU、FLASH、EMMC、NAND FLASH、EPROM等各类型芯片,支持WIFI/BT模组PCBA烧录、测试。
最小起订量: 1 提交需求>
登录 | 立即注册
提交评论