1008 RPi0 to 4B(CAT4 RS485)
关键词
树莓派、 Raspberry Pi Zero、Cat4 4G 、4B、USB2.0-A、以太网、扩展板、USB HUB 集线器、RS485、串口、顶针连接
一、简介
树莓派Zero 2W作为第一代Zero的垂直替换产品,不仅保持了接口类型和接口位置不变,而且大幅升级了CPU,使得总体性能有了2-10倍的提升。而目前3B/3B+/4B缺货比较严重,价格也比较高,所以我们设计了这款Zero 2W转4B形态的扩展板,目的是为了提供4B缺货的替代方案(当然性能和4B还是差很多,另有3B形态的扩展板可选),同时也是作为Zero 2 W的功能扩展。
Zero 2W转4B形态扩展板具备四路USB2.0主机接口,一路USB2.0转干兆以太网(可以跑到300Mbps)。同时还扩展了4G LTE Cat4模组和带隔离的RS485。整个系统采用USB-C供电,扩展板通过镀金顶针和Zero 2连接,提供电源供应和USB2.0扩展,不占用Zero 2W的40pin扩展接口。
带隔离模块的RS485速度可达737Kbps。
二、硬件资源
1. 顶针通讯与供电:
pogopin顶针连接,供电和通讯,简洁可靠;不占用树莓派的GPIO引脚;
板载USB Type-C供电接口,可通过此Type-C供电,树莓派Zero无需再供电;
2. CAT4 4G:
4G LTE免驱
3. 千兆以太网
高速以太网实测可达300Mbps;
4. RS485:
采用USB转串口再加外挂带隔离的RS485模块的方案;
自动流控型高速RS485隔离模块,2500V隔离耐压保护;
波特率稳定可靠支持500Kbps,实测高达737000bps传输速率,128个节点;
可作为从机介入RS485总线,也可作为主机,接收处理各从机信息。
三、树莓派系统下使用演示
本文档使用基于树莓派Zero 2W的硬件,
树莓派OS(Raspberry Pi OS with desktop),镜像为2024-07-04-raspios-bookworm-arm64.img.xz。
(若使用树莓派Zero一代系列的板子,只支持32位系统,请注意下载版本。)
树莓派OS下载地址:
https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit
3.1 查看硬件设备
3.1.1 查看USB设备
打开树莓派OS的终端,输入命令lsusb
,如下图所示:
可以看到系统识别到了USB HUB和4G模组等外设。其中:
Device 002:外挂USB Hub;
Device 003:USB转RS485;
Device 004:外挂USB Hub;
Device 005:USB转千兆网卡;
Device 006:USB2.0-A接口;
Device 007:USB2.0-A接口;
Device 008:4G模组;
Device 009:USB2.0-A接口;
Device 011:USB2.0-A接口。
如果系统卡在树莓派logo处无法启动:
或者启动后键盘鼠标及4G模组都无法使用,请仔细观察顶针是否对准了镀金触点,并请在PC端打开TF卡系统分区根目录下的config.txt检查USB的初始化脚本:
需要确认下图中的三处红框的位置是否都配置成完全,如果没有,请手动添加完整并保存文件:
# otg_mode=1
(建议按此注释掉)
dtoverlay=dwc2,dr_mode=host
(两处必须确保加上)
3.1.2 查看网络设备
打开树莓派OS的终端,输入命令ifconfig -a
,如下图所示:
可以看到eth0为USB转千兆以太网,eth1为Cat4 4G,wlan0为Zero 2W的无线网卡。
为了操作方便,建议使用PC端的SSH软件连接系统并进行终端操作,我们使用与树莓派的无线网卡的IP地址在同一网段内的PC,通过MobaXterm进行连接:
连接后,大部分操作都可以通过PC端的MobaXterm进行,使得整套硬件系统可以脱离显示器运作。以下测试操作将通过MobaXterm在PC端进行演示。
3.2 测试网络设备
3.2.1 ping包测试
测试的时候有优先级,优先级可以通过可以执行route
命令来查看,哪个网卡的metric值小就从优先从哪个网卡通讯,如有内外网特殊优先级需要请调整各网络的metric值以及DNS服务器设置。
可以用-I参数指定从哪个网卡开始ping包,如下所示:
ping www.mcuzone.com -I eth0
ping www.mcuzone.com -I eth1
ping www.mcuzone.com -I wlan0
我们也可以通过关闭某个网卡,达到强制指定通过另一个网络进行通讯,如需关闭eth0,可执行下面的命令:
sudo ifconfig eth0 down
以及通过执行下面的命令来开启eth0:
sudo ifconfig eth0 up
3.2.2 设置网卡优先级与指定DNS服务器
关于该部分的知识,可参阅以下链接:
建议通过udhcpc软件,而不是编辑resolv.conf文件来指定DNS服务器,这样会比较稳定。
3.2.3 固定MAC地址
千兆网口为RTL8153网卡,在使用过程中的MAC地址是不固定的,每次重新上电后MAC地址都会随机改变。下面讲解如何为RTL8153网卡设置固定MAC地址。
本讲解也适用于Ubuntu系统。
首先在树莓派终端中,执行ifconfig -a
,查看RTL8153网卡的识别信息,之前已经确认RTL8153网卡的识别名称为eth0。
然后输入:
sudo mousepad /etc/systemd/system/macspoof@eth0.service
或:
sudo nano /etc/systemd/system/macspoof@eth0.service
eth0为上面显示的网卡识别名称。
运行上面的命令后会新建一个文档,输入以下文本:
[Unit]
Description=MAC Address Change %I
Wants=network-pre.target
Before=network-pre.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device
[Service]
Type=oneshot
ExecStart=/usr/bin/ip link set dev %i address xx:xx:xx:xx:xx:xx
ExecStart=/usr/bin/ip link set dev %i up
[Install]
WantedBy=multi-user.target
其中“xx:xx:xx:xx:xx:xx”为想要指定的MAC地址,可以按MAC地址格式自行确定(不要和其它网络设备重复),例如这里我们改为“e6:b8:37:f7:22:93”。设置完成后保存并退出。
随后输入下面的命令使能服务:
sudo systemctl enable macspoof@eth0.service
这样就完成了对eth0的固定MAC地址。
全部操作完毕后重启系统,系统重启完毕后,执行ipconfig -a
即可看到MAC地址更改成功:
这样即使重新上电,MAC地址也不会改变了。
3.2.4 iperf3测速
Windows版iperf3下载:
http://www.mcuzone.com/down/Software.asp?ID=10000634
Linux下iperf3安装:
sudo apt-get install iperf3
千兆以太网测速结果,client模式75Mbps左右:
server模式94Mbps左右: