本文是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