中电网移动|移动中电网|高清图滚动区

NSSine™ MCU 串口性能优化实战:如何用 DMA 提升数据吞吐效率

在嵌入式系统设计中,串口通信被广泛应用。传统轮询方式需要 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干预,从而大幅提升数据吞吐效率。

实战详解

如何配置关键模块(以接收为例)

..

查看全文

猜你喜欢
中电网移动|移动中电网|频道导航区
Baidu
map