一、任务简介
- 基本任务:硬件TCP/IP以太网通信模块
设计一款基于硬件TCP/IP协议栈控制器的以太网通信模块,使MCU无需运行软件协议栈即可实现稳定的10/100M有线联网,基本要求:
- 使用硬件TCP/IP以太网控制器(推荐W5500或同类)
- SPI接口与MCU相连,支持多路独立Socket
- 完整以太网物理层:网络变压器(中心抽头型,W5500是电流型PHY)+ RJ45接口
- 25MHz高精度晶振,时钟走线远离敏感信号
- 差分对TX±/RX±等长布线,特性阻抗100Ω(速率低可以不关注)
- 本项目:在基础以太网模块上,本项目增加了Seeed Studio XIAO ESP32-C3,用于扫描蓝牙设备并通过W5500上传数据,从而形成面向Home Assistant的以太网蓝牙网关。
二、方案介绍

基于W5500和ESP32-C3的以太网蓝牙网关模块:系统主要由XIAO ESP32-C3、W5500和HR911105A网络接口组成。
ESP32-C3通过蓝牙扫描周围设备,获取设备地址、广播数据和信号强度等信息;随后通过SPI控制W5500,将数据以TCP、UDP或MQTT等方式上传至Home Assistant服务器。
相比“蓝牙+Wi-Fi”方案,有线以太网受无线干扰影响较小,连接更加稳定,适合长期运行的智能家居网关。
三、模块介绍
1. W5500(DigiKey链接:W5500 WIZnet | 控制器 - DigiKey)
W5500是一款集成硬件TCP/IP协议栈、以太网MAC和10/100 Mbps PHY的网络控制器,主要特点包括:
- SPI通信接口;
- 支持TCP、UDP、IPv4、ARP和ICMP等协议;
- 支持8路独立Socket;
- 内置32 KB收发缓存;
- 支持10/100 Mbps自协商。
使用W5500可以降低ESP32-C3处理网络协议的负担,提高通信稳定性。
2. XIAO ESP32-C3(DigiKey链接:113991054 Seeed Technology Co., Ltd | 射频、RFID、无线评估板 - DigiKey)
XIAO ESP32-C3是一款小型ESP32-C3开发模块,采用32位RISC-V处理器,集成Wi-Fi和Bluetooth Low Energy功能,并提供SPI、I²C、UART和GPIO接口。
本项目主要使用其BLE扫描、数据处理、SPI控制和网络连接管理功能。
3. HR911105A
HR911105A是一款集成网络变压器和状态指示灯的RJ45接口,可实现网络隔离、信号传输及连接状态显示,从而简化外围电路设计。
四、原理图和PCB介绍
1. 原理图

原理图主要包括以下部分:
- USB Type-C 5 V供电;
- ESP32-C3主控模块;
- W5500最小系统;
- 25 MHz晶振;
- SPI通信接口;
- HR911105A以太网接口。
2. PCB



PCB设计要点:
- W5500与RJ45接口尽量靠近;
- TX±和RX±采用差分布线,阻抗满足100Ω,并尽量等长;
- 差分线下方保持完整地平面;
- 25 MHz晶振靠近W5500放置;
- 去耦电容尽量靠近芯片电源引脚。
五、性能指标和管脚定义
模块外部只需连接USB Type-C 5 V电源和网线即可工作。
主要性能指标如下:
项目 | 参数 |
|---|---|
主控 | XIAO ESP32-C3 |
以太网芯片 | W5500 |
网络速率 | 10/100 Mbps |
通信接口 | SPI |
Socket数量 | 8路 |
蓝牙功能 | BLE扫描 |
供电方式 | USB Type-C 5 V |
应用场景 | Home Assistant蓝牙网关 |
ESP32-C3与W5500推荐连接如下:
XIAO ESP32-C3引脚 | ESP32-C3 GPIO | 网络名称 | W5500引脚 | 功能 |
|---|---|---|---|---|
D0 / A0 | GPIO2 | RST | RSTn | W5500硬件复位,低电平有效 |
D1 / A1 | GPIO3 | INT | INTn | W5500中断输出,低电平有效 |
D2 / A2 | GPIO4 | CS | SCSn | SPI片选,低电平有效 |
D8 / A8 | GPIO8 | SCLK | SCLK | SPI时钟 |
D9 / A9 | GPIO9 | MISO | MISO | W5500向ESP32-C3发送数据 |
D10 / A10 | GPIO10 | MOSI | MOSI | ESP32-C3向W5500发送数据 |
5V | — | +5V | 电源输入 | USB Type-C 5 V供电 |
3V3 | — | 3V3 | VDD/AVDD | W5500的3.3 V工作电源 |
GND | — | GND | GND/AGND | 系统公共地 |
六、配置代码
本项目可以通过在ESPHOME中配置如下的代码,即可实现以太网+蓝牙网关的功能:
esphome:
name: seeed-xiao-c3-w5500
friendly_name: seeed-xiao-c3-w5500
platformio_options:
board_build.flash_mode: dio
board_build.mcu: esp32c3
board_build.f_cpu: 160000000L
esp32:
board: seeed_xiao_esp32c3
variant: esp32c3
framework:
type: esp-idf
# Enable logging
logger:
# Enable Home Assistant API
api:
ota:
ethernet:
type: W5500
mosi_pin: 10
miso_pin: 9
clk_pin: 8
cs_pin: 4
reset_pin: 2
interrupt_pin: 3
clock_speed: 25MHz
i2c:
scl: 7
sda: 6
scan: True
id: bus_a
sensor:
- platform: bmp280
temperature:
name: "Temperatuur"
unit_of_measurement: °C
accuracy_decimals: 1
pressure:
name: "Luchtdruk"
unit_of_measurement: hPa
accuracy_decimals: 0
i2c_id: bus_a
address: 0x76
binary_sensor:
- platform: status
name: "Status"
text_sensor:
- platform: ethernet_info
ip_address:
name: IP Address
switch:
- platform: restart
name: "Restart"
七、心得体会
本次项目完成了W5500以太网通信模块的设计,并结合ESP32-C3实现了蓝牙扫描与有线数据上传功能。
通过本次设计,我进一步掌握了W5500最小系统、SPI通信、网络变压器连接及以太网差分布线等知识。同时认识到,硬件TCP/IP芯片虽然能够完成底层网络协议处理,但主控仍需负责设备初始化、IP获取、Socket管理和断线重连等工作。
该模块将蓝牙设备接入能力与有线网络的稳定性结合,适合用于Home Assistant蓝牙网关。后续还可以增加PoE供电、ESD保护、OTA升级和网页配置等功能,进一步提高模块的实用性和可靠性。

