RZ/G2L具有丰富的外设,比如千兆以太网,CANFD以及丰富的UART接口,可以满足工业数据收集处理相关的应用。本文主要介绍基于瑞萨RZ/G2L SMARC开发板的一种虚拟(Virtual UART)实现方案,以实现高速Linux UART通信,供客户参考。
虚拟(Virtual UART)方案介绍
很多工业客户,都有Linux下高速UART需求(1Mbps以上波特率),但是RZ/G2L的UART(SCIg,SCIF)在Linux环境下,由于Linux操作系统本身实时性以及硬件FIFO等限制,运行在1Mbps以上波特率时,很容易出现数据丢失,帧错误等异常,而且不太容易解决。考虑到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的工业客户需求。
扫描下方二维码或复制链接查看关于Github的更多内容:
renesas-rz/rz-virtual-uart: SubCore based UART solution for Linux UART application. Baudrate can be up to 10Mbps. (github.com)
这里,简单介绍一下方案基本实现方式。系统框图如下:
系统框图
RZ/G2L MPU里面集成的MHU模块,可以用于CA55大核和CM33小核之间相互触发外部中断,配合共享内存,可以用于实现UART数据通信。由于MHU硬件资源限制,只能由CM33最多管理两路UART设备:
● SCIg x1 + SCIF x1
● SCIg x1 + SCIg x1
● SCIF x1 + SCIF x1
● SCI x1
● SCIF x1
RZ/G2 产品介绍
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) or Parallel
● 显示接口; MIPI DSI (4 lanes) or Parallel
● 3D图形加速(Arm® Mali™-G31)
● H.264 codec (RZ/G2L only)
● 丰富连接性及外设:2xGigabit Ethernet,2xCAN-FD,8xADC,7xUART
● 家用电器、工业HMI
● 对讲机/门铃、智能摄像头
● PLC、数据集中器等
扫描下方二维码或复制链接查看更多内容:
https://www.renesas.cn/cn/zh/products/microcontrollers-microprocessors/rz-mpus/rzg2l-getting-started
扫描下方二维码或复制链接查看关于RZ产品的更多内容:
https://renesas.info/wiki/Main_Page
如您在使用瑞萨MCU/MPU产品中有任何问题,可识别下方二维码或复制网址到浏览器中打开,进入瑞萨技术论坛寻找答案或获取在线技术支持。
https://community-ja.renesas.com/zh/forums-groups/mcu-mpu/
END
推荐阅读
学习Modbus的快速方法 - RZ MPU工业控制教程连载(23)
初识Modbus - RZ MPU工业控制教程连载(24)
虚拟串口与Modbus互联 - RZ MPU工业控制教程连载(25)