“
在嵌入式系统设计中,串口通信被广泛应用。传统轮询方式需要 CPU 持续参与数据收发,在多接口并发或控制任务负载较高时,可能造成CPU 占用较高、硬件 FIFO 溢出、数据丢失或系统响应延迟等问题。
”
在嵌入式系统设计中,串口通信被广泛应用。传统轮询方式需要 CPU 持续参与数据收发,在多接口并发或控制任务负载较高时,可能造成CPU 占用较高、硬件 FIFO 溢出、数据丢失或系统响应延迟等问题。
针对上述资源占用与数据吞吐问题,本文以纳芯微NSSine™系列实时控制MCU/DSP芯片NS800RT1137 为载体,重点解析:
• 核心方案:基于DMA自动触发数据搬运,减少CPU对串口数据搬运的参与;
• 性能提升:在不提升波特率的前提下,提高数据吞吐效率,降低系统延迟与CPU资源占用;
• 应用价值:为串口吞吐受限、CPU资源紧张及大数据量传输场景提供可落地的解决方案。
硬件信号驱动DMA搬运
事件触发与自动搬移机制剖析
本方案的核心在于利用芯片内的DMA(负责数据搬运)和DMAMUX(负责信号路由)模块,与UART模块协同工作,实现“信号触发-自动搬运”的闭环。
整个系统的数据流可以清晰地概括为:
1. 事件触发:UART接收到数据,当其FIFO达到预设水位时会产生接收满信号,线路变为空闲时会产生空闲信号;
2. 信号路由:DMAMUX模块负责将UART的硬件事件信号路由至指定的DMA通道,作为DMA传输的硬件触发信号;
3. 自由搬运:DMA通道被触发后,无需CPU干预,自动将数据从UART数据寄存器搬运到指定的内存缓冲区(对于发送功能则反之);
4. 状态管理:软件通过查询DMA传输状态(如已传输字节数)或结合串口空闲状态标志位,来感知数据接收完成,从而在应用层进行处理。
在UART与内存之间,DMA模块承担了数据搬运的工作:数据到达后由DMA直接完成传输,整个过程无需 CPU干预,从而大幅提升数据吞吐效率。
实战详解
如何配置关键模块(以接收为例)
第一步:配置UART,使其产生接收空闲信号(通知应用已完成接收)与接收满信号(触发DMA自动搬运)。
接收空闲信号(IDLE):用于判断一帧不定长数据的结束。通过配置ILT(空...
猜你喜欢
纳芯微NSSine™实时控制MCU获ISO 26262 ASIL B认证,筑牢车载电机电源安全底座
国民技术发布N32H49x系列MCU:以澎湃性能与全链路可靠赋能工业控制、储能与光通信
Ceva Wi-Fi 6 和蓝牙 IP 为瑞萨电子首款面向物联网和 智能家居的组合式 MCU 提供支持
Microchip推出PIC32CM PL10 MCU系列,进一步扩展其 Arm@ Cortex@-M0+产品组合
中微半导发布CMS80F263x系列8位MCU 以高度集成理念重塑家电及显示控制核心
贸泽开售ROHM Semiconductor ML63Q25x AI MCU 助力实现更高效可靠的自动化、机器人及智能应用
新品三连发!纳芯微NSSine实时控制MCU/DSP矩阵完善,覆盖高中低实时控制场景
南芯科技发布车规级高端MCU PMIC