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模式282Mbps左右:
server模式270Mbps左右:
注意:USB转百兆有线受Zero 2W性能和USB Hub以及Cat4 4G带宽占用影响并不能跑满,请知悉。
3.2.5 4G网络测速
因为Zero 2W性能限制,在其上运行Chromeium等浏览器进行网页测速时,系统运行会非常慢,因此我们使用轻量浏览器surf进行测速。
安装轻量浏览器surf:
sudo apt install surf
然后关闭WiFi,拔掉网线,只剩下4G网络连接,进入https://test.ustc.edu.cn/进行测速。在树莓派终端中运行
surf https://test.ustc.edu.cn
结果如下:
注意:网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。
3.3 AT命令演示
3.3.1 打开AT命令串口方法
在树莓派下要对4G进行AT命令操作,首先要打开AT命令串口,打开方法如下:
首先打开ttyUSB串口:
输入命令lsusb
,如下图所示:
记下4G模块的ID值:1286 4e3d
使用下列命令打开ttyUSB串口,其中echo后面的值就是上面记录的ID值:
sudo modprobe option
sudo sh -c 'echo 1286 4e3d > /sys/bus/usb-serial/drivers/option1/new_id'
执行上述两条命令之后执行:
ls /dev
此时应该能看到dev设备下有ttyUSB0-3四个设备:
3.3.2 执行AT命令
通过minicom打开AT命令串口:
sudo minicom -D /dev/ttyUSB2
(注意:使用哪个串口,应以在进入此串口后,可输入运行AT命令,显示不乱码,不乱跳结果为准)
也可以安装CuteCom:
sudo apt install cutecom
下面以CuteCom为例,打开CuteCom:
sudo cutecom
如果需要查看回显,请键入命令:ate1
,然后回车,继续键入其它命令,回车可以看到结果。
用AT+CPIN?来检查SIM是否正常插入并识别;
用AT+CSQ来检查信号强度,第一个值是0-31,需要25以上才算信号质量良好;
用AT+COPS?来检查注网情况,双引号内是运营商代码,最后一个数字是网络模式,7代表4G。
常用AT命令:
1) 检查SIM卡是否识别到:
at+cpin?
返回ready表示卡已识别,返回error要检查硬件
2) 检查天线信号质量:
at+csq
返回值在26-31表示信号OK,信号满格31;返回值在20-25表示信号勉勉强强;返回值在20以下表示信号比较糟糕或者天线没接
3) 检查注网情况:
at+cops?
正常应该返回运营商代码和7,7代表4G
注意,以上命令只有at+csq
不要加问号,另外两条命令需要加问号。
4) 查看4G模块的IMEI码:
at+cgsn
5) 重启4G模块(有时候如果重插SIM卡,热插拔不一定管用,可以用这个reset命令来复位模块):
at+reset
6) 关闭射频:
at+cfun=0
开启射频:
at+cfun=1
上述两条命令成对使用,可以在不重启4G模组的情况下让模组重新注网。
3.4 RS485串口测试
四、Ubuntu Sever系统下使用演示
本文档使用基于树莓派Zero 2W的硬件,
Ubuntu系统(Ubuntu Server 24.04 LTS服务器版,树莓派Zero 2W因为性能关系不能用Desktop版)。镜像为ubuntu-24.04-preinstalled-server-arm64+raspi.img.xz
Ubuntu系统下载地址:
https://ubuntu.com/download/raspberry-pi
建议使用树莓派镜像烧录器烧录系统,并在烧写前在烧录器设置中设置好一些预设置参数:
在弹出的窗口中,GENERAL页面中,可以主机名、用户名和密码、默认连接的WiFi、区域:
在SERVICES页面中,请设置开启SSH服务:
这样烧录完毕的系统,启动后就是预先设置的用户名和密码,并且能使用预设置的WiFi(需在该WiFi热点覆盖范围内)和SSH功能。
4.1 编辑初始化脚本
Ubuntu Server烧写完毕后,请在PC端打开TF卡系统分区根目录下的config.txt检查USB的初始化脚本,Ubuntu Server对USB初始化了两遍,前面一遍没有配置成host模式,需要确认下图中的红框的位置是否配置成完全,如果没有,请手动添加完整:
dtoverlay=dwc2,dr_mode=host