在工业数据收集处理等应用场景中,高速稳定的 UART 通信至关重要。RZ/G2L 作为一款具有丰富外设的 MPU,如配备千兆以太网、CANFD 以及多个 UART 接口,为相关应用提供了硬件基础。本文将详细介绍基于瑞萨 RZ/G2L SMARC 开发板的一种虚拟(Virtual UART)实现方案,以满足工业客户在 Linux 环境下对高速 UART 通信的需求。
虚拟(Virtual UART)方案背景 许多工业客户在 Linux 环境下有高速 UART 需求,要求波特率达到 1Mbps 以上。然而,RZ/G2L 的 UART(SCIg,SCIF)在 Linux 环境中存在一定局限性。由于 Linux 操作系统本身实时性以及硬件 FIFO 等方面的限制,当运行在 1Mbps 以上波特率时,很容易出现数据丢失、帧错误等异常情况,且这些问题不太容易解决。
虚拟(Virtual UART)方案实现 考虑到 RZ/G2L 集成了 200MHz 的 CM33 实时 CPU 核,该核可用于执行实时性要求较高的任务。因此,可以利用 CM33 小核来管理 UART 硬件模块,同时通过 MHU 模块与 Linux 端的 CA55 大核进行通信,从而实现虚拟串口方案。在这种方案下,Linux 端的 UART 应用程序无需修改,可直接访问对应的虚拟串口设备(/dev/ttySCx)。
具体方案已在开发板上实现并测试通过。测试结果显示,SCIF 可以稳定工作在 10Mbps 波特率,没有 FIFO 的 SCIg 可以稳定工作在 1Mbps。此外,SCIg 支持 8 和 9 - bit 数据帧,而 SCIF 仅支持 8 - bit 数据帧。这种配置能够满足众多需要高速 UART 的工业客户需求。
该方案的系统框图如下:
由于 MHU 硬件资源限制,CM33 多可管理两路 UART 设备,具体组合方式有:
SCIg x1 + SCIF x1
SCIg x1 + SCIg x1
SCIF x1 + SCIF x1
SCI x1
SCIF x1
RZ/G2L 产品介绍
RZ/G2L 是一款通用 MPU,采用多核异构的处理器架构,配备双核 Arm Cortex - A55 CPU 和单核 Cortex - M33 CPU,还具备 3D 图形和视频编解码器。其中,A55 CPU 运行 Linux 操作系统以处理复杂控制任务,M33 核运行 RTOS 操作系统以处理实时任务,核间通过 OPENAMP 实现通信。
主要功能 2xCortex - A55(1.2GHz),Cortex - M33(200MHz)
16 - bit DDR3L/DDR4 - 1600(in line ECC)
摄像头接口;MIPI CSI - 2(4 lanes)或 Parallel
显示接口;MIPI DSI(4 lanes)或 Parallel
3D 图形加速(Arm Mali - G31)
H.264 codec(RZ/G2L only)
丰富连接性及外设:2xGigabit Ethernet,2xCAN - FD,8xADC,7xUART
产品应用
家用电器、工业 HMI
对讲机 / 门铃、智能摄像头
PLC、数据集中器等