---
title: "A CAN gateway based on W5500 with N32G457 and RT-Thread"
url: "https://maker.wiznet.io/chen/projects/a-can-gateway-based-on-w5500-with-n32g457-and-rt-thread/"
markdown_url: "https://maker.wiznet.io/chen/projects/a-can-gateway-based-on-w5500-with-n32g457-and-rt-thread/md"
type: "UCC: User Created Content"
author: "安小芯"
author_url: "https://bbs.21ic.com/icview-3212888-1-1.html"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "安小芯"
original_url: "https://bbs.21ic.com/icview-3212888-1-1.html"
license: "Apache License 2.0 (Apache-2.0)"
published: "2022-12-05"
language: "en"
tags: ["W5500"]
hardware: ["WIZnet W5500"]
likes: 4
views: 821
comments: 1
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# A CAN gateway based on W5500 with N32G457 and RT-Thread

> This is a CAN gateway solution using W5500 module with N32G457 MCU and RT-Thread.

Original author: 安小芯 (source: https://bbs.21ic.com/icview-3212888-1-1.html)

## Components

- **WIZnet W5500** x 1 ([docs](https://docs.wiznet.io/Product/Chip/Ethernet/W5500))

WIZnet parts: W5500 ([Datasheet](https://docs.wiznet.io/Product/Chip/Ethernet/W5500/datasheet?utm_source=maker&utm_medium=project&utm_campaign=w5500), [product hub](https://maker.wiznet.io/products/w5500/))

## Documents and links

- source code (code)

## Article

**基于RT-Thread和N32G457的CAN网关**

作品出处：RT-Thread

作者：Explorer

应用背景
由于CAN总线的优异性能，且低成本、高可靠性、实时性、灵活性、抗干扰能力强等特点，广泛应用于各种自动化控制场景中，尤其在汽车电子、自动控制、电力系统等领域。
在复杂网络系统中，常常设计高、低速两种速率不同的CAN通讯网络，甚至3种不同功能相互独立的CAN子网。实现隔离与智能化处理。确保特定信息网络传输的安全性。并且随着时代的发展，工业领域逐渐引入以太网，其高数据吞吐量是CAN总线无法比拟的。但在不改变传统工业总线的前提下，实现不同网络之间的转换，有着迫切的需求。CAN网关即是在这样的需求下应允而生。

实现功能
CAN网关的功能主要实现CAN总线网络的安全隔离、分发与智能化处理。包括隔离高速、低速两部分总线，实现高低速CAN总线的智能中继；以及实现CAN总线与以太网的协议转换，增强工业系统的数据吞吐量并提供广域网互联的可能性。

开发板使用情况
本项目基于RT-Thread系统和N32G457开发板开发的一款CAN网关；硬件部分由W5500以太网模块，SN65HVD234D收发器、TJA1050收发器，N32G457主控板等组成；开发板上使用到两路CAN外设、SPI外设、LED灯等资源。软件层面基于Rt-Thread实时操作系统进行代码开发。将一路高速CAN（CAN1控制器）与一路以太网作为网关输入，低速CAN（CAN2控制器）作为网关输出实现隔离收发数据功能。实现一个CAN网络到另一个CAN网络、以太网的中继转发。

![](https://oss-club.rt-thread.org/uploads/20220325/4b8250f249f16824ae6e526176819411.jpg.webp)

硬件框架

![](https://oss-club.rt-thread.org/uploads/20220325/74143d586669794bf2c4965871789370.png)

硬件框架说明：
如上图所示，硬件部分由W5500以太网模块，SN65HVD234D收发器，N32G457主控板，TJA050收发器等组成；其中：
W5500以太网模块，负责网关输入端网口数据收发功能，采用SPI接口与主控通讯，工作模式为TCPServer。
SN65HVD234D收发器，负责网关输入端高速CAN数据收发功能，通过主控板CAN1控制器进行控制。
TJA1050收发器，负责网关输出端低速CAN数据收发功能，通过主控板CAN2控制器进行控制。
N32G457主控板，负责网关输入输出端之间的通讯协议转换。
其中LED灯用来指示网关数据输入状态以及运行状态，红灯500MS闪烁表示网关运行正常，蓝灯闪烁表示高速CAN有数据输入，绿灯闪烁表示网口有数据输入。

软件框架

![](https://oss-club.rt-thread.org/uploads/20220325/8877309e81f63d144c024219cf39be36.png)

![](https://oss-club.rt-thread.org/uploads/20220325/66ef203ed04d41ed6652a87a10548481.png)

软件框架说明：
软件模块包括N32G457的原厂BSP、RT-Thread实时操作系统、W5500原厂BSP、自定义的CAN代码、逻辑代码等。其中原厂的BSP和RT-Thread系统部分已适配好，并未做大范围的更改。RT-Thread操作系统版本为4.1.0
如上图所示，该项目软件架构主要采用上图所示的几个线程完成，其中：
ETH_Thread_Task：负责将网口接收到的数据通过低速CAN发出
ETH_HEARTBEAT_Thread_Task：负责检测客户端是否断开连接，并做好网口重连准备
CAN1_Thread_Task：负责将高速CAN接收到的数据通过低速CAN发出
CAN2_Thread_Task：负责将低速CAN接收到的数据通过网口和高速CAN发出

作品完整图片

![](https://oss-club.rt-thread.org/uploads/20220302/c0c14090539dac3a4da7b084f8325bb9.png.webp)

效果演示视频地址：<https://www.bilibili.com/video/BV1mS4y1g7tn/>
代码地址：[https://gitee.com/xiere/N32G457_ ... -thread_CAN-gateway](https://gitee.com/xiere/N32G457_Project/tree/master/rt-thread_CAN-gateway)

---

Source: https://maker.wiznet.io/chen/projects/a-can-gateway-based-on-w5500-with-n32g457-and-rt-thread/
