本文是 RT-Thread 用户 @xiere 原创公布,是用于加入 RT-Thread 与国民技术联手推出 N32G457 RT-Thread 设计大赛,原文:https://club.rt-thread.org/as…
基于 RT-Thread 零碎和 N32G457 开发板开发的一款 CAN 网关;硬件局部由 W5500 以太网模块,2 个 VP23405MCAN 收发器,N32G457 主控板等组成;软件局部将一路高速 CAN(CAN1 控制器)与一路以太网作为网关输出,低速 CAN(CAN2 控制器)作为网关输入实现隔离收发数据性能。
硬件框架
硬件框架阐明:
如上图所示,硬件局部由 W5500 以太网模块,VP23405MCAN 收发器 1,N32G457 主控板,VP23405MCAN 收发器 2 等组成;其中:
W5500 以太网模块:负责网关输出端网口数据收发性能,采纳 SPI 接口与主控通信,工作模式为 TCPServer
VP23405MCAN 收发器 1:负责网关输出端高速 CAN 数据收发性能,通过主控板 CAN1 控制器进行管制
VP23405MCAN 收发器 2:负责网关输入端低速 CAN 数据收发性能,通过主控板 CAN2 控制器进行管制
N32G457 主控板:负责网关输入输出端之间的通信协定转换
LED 灯:用来批示网关数据输出状态以及运行状态,红灯 500MS 闪动示意网关运行失常,蓝灯闪动示意高速 CAN 有数据输出,绿灯闪动示意网口有数据输出
软件框架
软件框架阐明:
如上图所示,该我的项目软件架构次要采纳上图所示的几个线程实现,其中:
网口收发线程:负责将网口接管到的数据通过低速 CAN 收回
网口心跳包发送线程:负责检测客户端是否断开连接,并做好网口重连筹备
高速 CAN 收发线程:负责将高速 CAN 接管到的数据通过低速 CAN 收回
低速 CAN 收发线程:负责将低速 CAN 接管到的数据通过网口和高速 CAN 收回
作品残缺图片
成果演示视频地址 :https://www.bilibili.com/video/BV1mS4y1g7tn/
代码地址: https://gitee.com/xiere/N32G457_Project/tree/master/rt-thread_CAN-gateway