【视频】M460 用 PDMA 接收不定长 UART 数据


通过PDMA将UART接收到的数据搬运到内存,无需软件参与
UART 即通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),是一种在数字电路中广泛使用的串行通信接口,用于在设备之间进行异步数据传输。下面从工作原理、特点、通信协议、应用场景等方面为你详细介绍:
工作原理
UART 主要由发送器和接收器两部分组成。在发送数据时,并行数据首先被送入发送器的缓冲区,然后发送器按照一定的格式将并行数据转换为串行数据,通过发送引脚(TX)逐位发送出去。在接收数据时,接收器通过接收引脚(RX)逐位接收串行数据,并将其转换为并行数据存储在接收器的缓冲区中,供其他设备读取。
特点
异步通信:UART 不需要传输时钟信号来同步发送和接收设备,发送和接收双方各自使用自己的时钟源,通过约定好的波特率来保证数据传输的准确性。这种方式降低了硬件成本和复杂度,适用于大多数低速数据传输场景。
全双工通信:UART 支持全双工通信,即发送和接收可以同时进行。这意味着两个使用 UART 通信的设备可以同时发送和接收数据,提高了通信效率。
简单易用:UART 的硬件结构相对简单,只需要两根信号线(TX 和 RX)即可实现数据的发送和接收,在很多微控制器和其他数字设备中都有集成,使用方便。
通过PDMA将UART接收到的数据搬运到内存,无需软件参与
对于RL78系列的MCU,为了提高运行效率,减少CPU的占用,建议UART数据收发使用DMA功能。DMA(Direct Memory Access)是RL78 MCU内置的一个控制器,能在支持DMA外围硬件的SFR和内部RAM之间不经过CPU而自动传送数据。
上回说到单片机的Uart发送,我们编写了一个发送函数循环发送固定的字符串,这回我们讲Uart的中断接收功能。
LIN是一种串行通信协议,旨在作为汽车分层网络的最底层,当不需要CAN的所有功能时,LIN可以低成本地实现与传感器和执行器的通信。
半双工即Half duplex Communication,是指在通信过程的任意时刻,信息既可由A传到B,又能由B传A,但同时只有一个方向上的传输存在。由于这种方式要频繁变换信道方向,故效率低,但可以节约传输线路。半双工方式适用于终端与终端之间的会话式通信。
CW32L083 内部集成 6 个通用异步收发器 (UART),支持异步全双工、同步半双工和单线半双工模式,支持硬件数据流控和多机通信。
通用异步收发器(Universal Asynchronous Receiver/Transmitter:UART),是一种通用串行数据总线,常用于系统内各子模块间的数据交换。
UART即通用异步收发器,是一种串行通信方式。
在本文中,将介绍使用该中断来进行不定长串口数据接收的办法。通过该中断,可以省却用于检测数据传输是否完成的判断操作。