跳转到内容

1001 RPi0 4G Cat1-ETH/RS485

来自Mcuzone Wiki

Change the language to English

关键词

树莓派、 Raspberry Pi Zero、Zero W、Zero WH、Zero2 W、Cat1 4G LTE、USB2.0-A、以太网、扩展板、USB HUB 集线器、RS485、串口

一、简介

树莓派Zero系列(包括Zero、Zero W(H)以及Zero 2W)是一款具备极高性价比的嵌入式系统平台,尺寸小巧功耗较低性能尚可,适合很多轻量型应用场景。Zero系列虽然小巧,但预留了扩展接口,特别是板子反面引出了USB和电源的镀金测试点,我们可以借助这两组USB和电源测试点进行多种类型的外设扩展。

本扩展板实际就是一个USB HUB集线器,通过顶针将扩展板和Zero的USB口连接起来,通过USB扩展四路USB口,其中一路USB转百兆有线以太网,一路USB接4G Cat1模组以及两路USB2.0-A主机接口。另有RS485版本可选,RS485版本可选将一路USB转为RS485接口,且是工业级带隔离。

4G Cat1是针对10Mbps左右的中速物联网应用的高性价比模组,10Mbps下行5Mbps上行的速率可以满足绝大多数联网和传输需求;4G在树莓派OS和Ubuntu系统,免驱,自动识别;4G全网通,支持联通,电信和移动。

二、硬件资源

2.1 创新性采用镀金顶针和树莓派Zero系列进行连接,免去外接线缆;

2.2 两组镀金顶针分别用于供电和USB通讯;板载USB HUB芯片;

2.3 一路USB-C 5V供电接口,可通过此接口给整个系统供电,也可以用Zero上的MicroUSB口供电(供电二选一使用);

2.4 两路USB-A host接口;

2.5 一路百兆网口;

2.6 一路CAT1 4G LTE;

2.7 一个Nano SIM卡座;

2.8 一个1代IPEX座或SMA座;

2.9 三盏LED灯:PWR/MODE/ACT LED指示灯;

2.10 一个4G复位按键;

2.11 其中一路USB口可选配为带电源隔离的工业级RS485模块;

2.12 尺寸:70*56mm; 外壳尺寸:80*58*38mm;

2.13 PCB板沉金工艺,无铅生产;通过UL和ROHS认证,防火等级为94V-0;

2.14 可选配铝合金外壳。

注意1:连接了此扩展板后,Zero上的MicroUSB口将不可使用。

注意2:部分系统下需要禁用OTG功能并将USB模式设置为Host模式。

0007_Zero_4G_Cat1_78.jpg

RS485隔离模组特点:

本模组采用自动流控型高速RS485隔离模块,是一款采用IC集成化技术,实现了电源隔离、信号隔离、RS-485通信和总线保护于一体的RS-485协议收发模组。模组自带定压隔离电源,可实现2500VDC电气隔离耐压保护;可作为从机接入RS485总线,也可作为主机,接收处理各从机信息。

  • 最多可以连接64/128个节点;
  • 高达500Kbps传输速率;
  • 电磁辐射EMI极低;
  • 工作温度范围:-40℃ - +85℃;
  • 集成电源隔离、信号隔离和总线ESD保护功能。

RPi0_CAT1-ETH:

0007_Zero_4G_Cat1_79.jpg

0007_Zero_4G_Cat1_80.jpg

0007_Zero_4G_Cat1_82.jpg

0007_Zero_4G_Cat1_83.jpg

4G参数
model CAT1 CAT1-EU
Band FDD:B1/B3/B5/B8 FDD:B1/B3/B5/B7/B8/B20/28
TDD:B34/B38/B39/B40/B41 TDD:B38/B40/B41
DATA FDD: Max 10Mbps(DL)/Max 5Mbps(UL)

TDD:Max 8Mbps(DL)/Max 2Mbps(UL)

Max 6Mbps(DL)/Max 4Mbps(UL)

三、树莓派OS的使用

本文档使用基于树莓派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

不同的树莓派系统版本,对于网络管理的策略有差异,基于64位系统版本,测试结果如下:

系统版本 测试结果
2023-02-21-bullseye 免驱免拨号,自动识别,即插即用,自动联网。
2023-05-03-bullseye
2023-12-05-bookworm 免驱免拨号,自动识别,但是可能会碰到联网失败,系统需要安装DNS软件。
2024-07-04-bookworm
2024-11-19-bookworm
2025-05-13-bookworm
2025-10-01-trixie

3.1 查看硬件设备

3.1.1 查看USB设备

扩展板的USB口接了无线键鼠,打开树莓派OS的终端,输入命令lsusb,如下图所示:

RPi0_RS485CAT1:

RPi0_CAT1-ETH:

注意,若扩展板USB口不接设备,那lsusb里是不会出现相应的设备编号的。

3.1.2 查看网络设备

打开树莓派OS的终端,输入命令ifconfig -a,如下图所示:

可以看到eth1为4G Cat1(上图中IP地址默认为192.168.5.8)。

3.2 测试网络设备

3.2.1 ping包测试

测试的时候有优先级,如果eth0已连接则优先走eth0。如有内外网特殊优先级需要请调整各网络的metric值以及DNS服务器设置。

可以用-I参数指定从哪个网卡开始ping包,如下所示:

ping www.mcuzone.com -I eth0

ping www.mcuzone.com -I eth1

优先级可以通过可以执行route命令来查看,哪个网卡的metric值小就从优先从哪个网卡通讯。

我们也可以通过关闭某个网卡,达到强制指定通过另一个网络进行通讯,如需关闭eth0,可执行下面的命令:

sudo ifconfig eth0 down

以及通过执行下面的命令来开启eth0:

sudo ifconfig eth0 up

3.2.2 网卡优先级的设置

如果要设置网卡的优先级,需要修改网卡的metric值,我们首先需要安装ifmetric软件:

sudo apt install ifmetric

安装完毕后就可以修改网卡的metric值,如需要将eth0的metric值修改为102,可执行:

sudo ifmetric eth0 102

修改完毕后再用route命令查看,我们可以看到eth0的metric值已修改为102:

但是这样修改仅仅是临时修改,如果系统重启的话还是会恢复到原样,如果我们需要永久修改eth0的metric值为102,则需通过编辑启动文件rc.local来达到目的。

开启rc-local服务:

sudo systemctl enable --now rc-local

通过下面的命令打开rc.local:

sudo nano /etc/rc.local

在exit 0上面添加你要开机执行的命令,如sudo ifmetric eth0 102,然后保存文件,这样就可以实现每次启动系统修改eth0的metric:

修改完metric值后,有可能系统的nameserver(即DNS服务器)还是原来优先级高的网卡的,因为此时默认网卡已改变,就会造成域名无法解析,所以我们还需要修改nameserver。

通过下面的命令打开resolv.conf文件:

sudo nano /etc/resolv.conf

查看此时的nameserver是否正确,如果不正确,请将其改为目前优先级高的网卡的nameserver或者一些通用的nameserver地址(如114.114.114.114等)。

3.2.3 利用udhcpc指定DNS服务器

上一节我们讲了通过修改nameserver来指定DNS服务器,其实我们也可以通过使用udhcpc来完成该任务。

首先需要安装udhcpc软件:

sudo apt install udhcpc

本节我们测试的例子中,eth0为USB转以太网,eth1为4G Cat1,如果我们需要使用USB转以太网(eth0)的网络DNS,请使用下面的命令:

sudo udhcpc -i eth0

如果我们需要使用4G Cat1(eth1)的网络DNS,请使用下面的命令:

sudo udhcpc -i eth1

3.2.4 udhcpc应用场景举例

例1:百兆网口接Internet,4G Cat1正常联网。

这时我们ping某个域名,是可以成功的:

此时拔了百兆网口的网线,就无法ping成功了:

执行sudo udhcpc -i usb0,将DNS服务器切换到4G Cat1上,就可以正常ping了:

例2:百兆网口接内网(不连通Internet),4G Cat1正常联网。

这时我们ping某个域名,无法ping成功:

执行sudo udhcpc -i usb0,将DNS服务器切换到4G Cat1上,就可以正常ping了,同时还可以通过IP地址正常访问内网设备:

3.2.5 iperf3测速

Windows版iperf3下载:

http://www.mcuzone.com/down/Software.asp?ID=10000634

Linux下iperf3安装:

sudo apt-get install iperf3

3010_RPi_4B-4G_Probe_56.jpg

百兆以太网测速结果,client模式70Mbps左右,server模式90Mbps左右:

注意:USB转百兆有线受Zero 2W性能和USB Hub以及4G Cat1带宽占用影响并不能跑满,请知悉。

4G CAT1的测速结果如下:

注意:网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。

3.3 4G的AT命令操作

3.3.1 打开AT命令串口方法

以CAT1ETH为例,其余4G模块也是同样操作:

在终端中执行命令:

lsusb

记下4G模块的ID值:19d1 0001

使用下列命令打开串口,其中echo后面的值就是上面记录的ID值:

sudo modprobe option

sudo sh -c 'echo 19d1 0001 > /sys/bus/usb-serial/drivers/option1/new_id'

执行以上两条命令后系统应该会在dev设备下有ttyACM0-2三个设备,输入ls /dev可以查看:

▶ 如果是RS485CAT1,设备中识别的4G串口设备为ttyUSB0-2;

▶ 如果是RS485CAT1EU或CAT1ETH,设备中识别的4G串口设备为ttyACM0-2。

下载minicom工具:

sudo apt-get install minicom

通过minicom打开AT命令串口:

▶ 如果是RS485CAT1:

sudo minicom -D /dev/ttyUSB0

(注意,典型情况下会出现ttyUSB0-2三个端口,一般系统下AT口是ttyUSB0,如果不行,可以尝试其它端口如ttyUSB1。如果有多个USB转串口设备,则需要进一步的尝试直至找到正确的AT端口。)

▶ 如果是RS485CAT1EU或CAT1ETH:

sudo minicom -D /dev/ttyACM0

(注意,典型情况下会出现ttyACM0-2三个端口,一般系统下AT口是ttyACM0,如果不行,可以尝试其它端口如ttyACM2。如果有多个USB转串口设备,则需要进一步的尝试直至找到正确的AT端口。)

第一次输入AT命令可能没有回显,此时如果输入命令at后回车,有返回OK,就说明工作正常。如果需要查看回显,请键入命令:ate1,然后回车,继续键入其它命令,回车可以看到结果。

3.3.2 常用AT命令

常用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模组的情况下让模组重新注网。

7. APN设置

普通手机SIM卡,不需要任何设置,直接使用;有些物联网卡需要设置APN才能使用,以下是用户使用提供的参考,具体的APN代码需要SIM卡运营商提供。

移动卡:

AT+CPNETAPN=0,"cmnet","",""

电信卡:

AT+CPNETAPN=0,"ctnet","",""

3.4 测试RS485

RPi0_RS485CAT1扩展板带有RS485模块,此RS485是由一路USB转换而来,和树莓派Zero自身的40PIN GPIO无关,此RS485操作如下。

首先需要安装串口软件CuteCom,安装命令为:

sudo apt install cutecom

安装完毕后,点击桌面左上角的树莓派图标,在“System Tools”有CuteCom的快捷方式:

0012_MPUUART_MP4232_01.jpg

如果在使用过程中有权限不足的问题,请打开树莓派OS终端,输入:

sudo cutecom

来运行CuteCom。

本扩展板带有4G模组,

▶ 如果是RS485CAT1:

4G模组占用了ttyUSB0-2三个串口,因此RS485串口的串口号向后顺延,为ttyUSB3。

在终端中执行:

ls /dec/ttyUSB*

0007_Zero_4G_Cat1_100.jpg

即可看到这4个串口。

▶ 如果是RS485CAT1EU或CAT1ETH:

RS485串口的串口号为ttyUSB0。

在PC端插上一个USB转485的转换器,与扩展板上的485接口相连,各自打开串口软件进行收发,结果如下(以ttyUSB3为例):

树莓派OS端:■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■Windows端:

经过实测,波特率最高可达到2.06M(以传输数据不发生乱码为准)。

3.5 FAQ

问:如果系统卡在树莓派logo处无法启动,或者启动后键盘鼠标及4G模组都无法使用怎么办?

0007_Zero_4G_Cat1_58.jpg

答:请仔细观察顶针是否对准了镀金触点,并请在PC端打开TF卡系统分区根目录下的config.txt检查USB的初始化脚本:

0007_Zero_4G_Cat1_41.jpg

需要确认下图中的三处红框的位置是否都配置成完全,如果没有,请手动添加完整并保存文件:

# otg_mode=1(建议按此注释掉)

dtoverlay=dwc2,dr_mode=host(两处必须确保加上)

0007_Zero_4G_Cat1_57.jpg

四、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

4.1 编辑初始化脚本

Ubuntu Server烧写完毕后,请在PC端打开TF卡系统分区根目录下的config.txt检查USB的初始化脚本,Ubuntu Server对USB初始化了两遍,前面一遍没有配置成host模式,需要确认下图中的红框的位置是否配置成完全,如果没有,请手动添加完整:

dtoverlay=dwc2,dr_mode=host

0007_Zero_4G_Cat1_32.jpg

4.2 配置用户名和密码

将TF卡插入Zero 2W,启动系统。第一次启动后会要求登录,用户名和密码均为ubuntu,登录成功后会要求修改密码。

0007_Zero_4G_Cat1_31.jpg

修改完毕后就自动进入系统。

4.3 配置网络

Ubuntu Server系统出于安全考虑,有非常多的限制,默认很多服务器和组件也都是关闭状态。因为网络接口被关闭,所以系统启动后并无网络可用,需要进行开启设置后才能使用。

注意,系统默认并没有集成ifconfig工具,只有ip命令可用。

执行ip addr查看并记录下网卡名称:

其中2号网卡(enx00e0996df1cd)为USB转百兆网卡,3号网卡(enxac4bb3b9ebe5)为4G模组。

然后运行下面的命令,打开网卡配置文件:

sudo nano /etc/netplan/50-cloud-init.yaml

按照下图编辑网卡配置文件:

0007_Zero_4G_Cat1_34.jpg

保存退出,然后重启。

重启后即可联网,安装net-tools工具以便于使用ifconfig命令:

sudo apt install net-tools

4.4 网络及4G模组测试

执行命令ifconfig -a,查看网卡信息:

可见第一块网卡为USB转百兆网卡,第二块网卡为4G模组。

通过使用-I参数,在ping包时加上网卡名称,可指定哪块网卡进行ping包。通过这两块网卡对腾讯的网站的ping包测试可知,第二块网卡即4G模组支持ipv6:

4.5 使用AT命令

安装minicom工具:

sudo apt-get install minicom

0007_Zero_4G_Cat1_38.jpg

然后和树莓派OS一样,先配置并开启tty串口,再通过minicom打开AT命令串口:

▶ 如果是RS485CAT1:

sudo minicom -D /dev/ttyUSB0

(注意,典型情况下会出现ttyUSB0-2三个端口,一般系统下AT口是ttyUSB0,如果不行,可以尝试其它端口如ttyUSB1。如果有多个USB转串口设备,则需要进一步的尝试直至找到正确的AT端口。)

▶ 如果是RS485CAT1EU或CAT1ETH:

sudo minicom -D /dev/ttyACM0

(注意,典型情况下会出现ttyACM0-2三个端口,一般系统下AT口是ttyACM0,如果不行,可以尝试其它端口如ttyACM2。如果有多个USB转串口设备,则需要进一步的尝试直至找到正确的AT端口。)

0007_Zero_4G_Cat1_39.jpg

第一次输入AT命令可能没有回显,此时如果输入命令at后回车,有返回OK,就说明工作正常。如果需要查看回显,请键入命令:ate1,然后回车,继续键入其它命令,回车可以看到结果。

0007_Zero_4G_Cat1_40.jpg

4.6 测试RS485

▶ 如果是RS485CAT1:

4G模组占用了ttyUSB0-2三个串口,因此RS485串口的串口号向后顺延,为ttyUSB3。

▶ 如果是RS485CAT1EU或CAT1ETH:

RS485串口的串口号为ttyUSB0。

在PC端插上一个USB转485的转换器,与扩展板上的485接口相连,各自打开串口软件进行收发,Ubuntu系统端使用minicom(以ttyUSB3为例):

sudo minicom -D /dev/ttyUSB3

Ubuntu系统端:■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■Windows端:

经过实测,波特率最高可达到2.00M(以传输数据不发生乱码为准):

五、OpenWrt的使用

5.1 概述

此扩展板搭配树莓派Zero 2W,在OpenWrt系统下可配置为一进一出的交换机模式,扩展板上的4G可作为WAN口(直接4G上网),网口配置为LAN口,用于连接PC。

5.2 准备工作

本文使用的OpenWrt系统为:openwrt-bcm27xx-bcm2709-rpi-2-squashfs-sysupgrade-linux-6.1.98-20240723.img.gz

烧写OpenWrt系统并上电启动后,我们通过树莓派自带网口连接网线至PC网口,待PC的网卡与树莓派的网口连接成功后,我们在Windows设置中找到网络和Internet,在以太网中打开连接的网络查看默认网关的IP地址,这个地址就是OpenWrt系统的后台配置页面地址,如图所示,本文测试的地址为192.168.198.1:

然后打开网页浏览器输入192.168.198.1进入OpenWrt系统。默认用户名为root,默认密码为password。

5.3 设置OpenWrt系统

进入OpenWrt系统后,如前所述,用网线把树莓派的网口和PC的网口直连,等PC的网卡获取了IP地址后,即可让PC直接通过4G模块上网(无需设置)。

5.4 测试4G模块网速

在PC端打开https://www.speedtest.cn/进行测速,此时流量走的是4G模块,测试结果如下:

注意:4G网络测速受网络信号和测试方法影响,速度请以实际为准。

5.5 挂载U盘及文件操作

将U盘插入USB口,则在“系统 - 磁盘管理”中直接可以看到该U盘的信息及挂载情况:

在“系统 - 挂载点”中可以看到各个挂载点的情况,也可以在此页面对其进行配置。

在“网络存储 - 文件助手”中,可以对系统中的文件进行操作。

5.6 TTYD终端

OpenWrt系统自带一个网页版的TTYD终端,可在“系统 - TTYD终端”中打开。默认用户名为root,默认密码为password,因为是使用root账号登录,登录后即有root权限。

六、香橙派Zero 2W的测试

香橙派Zero 2W的尺寸和设计结构兼容树莓派Zero开发板,所以也可适用于我们扩展板。本章介绍香橙派Zero 2W搭配RPi0_RS485CAT1使用。

测试使用Ubuntu24.04,版本为:Orangepizero2w_1.0.4_ubuntu_noble_desktop_xfce_linux6.1.31.img

下载地址:

http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Zero-2W.html

扩展板上插上USB键鼠,打开终端,输入lsusb,显示如下:

6.1 测试网络

打开终端,输入ifconfig -a,显示如下:

可见4G模组都已经正确获得了IP地址。

执行route,显示如下:

以太网排第一位,表示此时优先通过以太网上网,我们操作ping外网IP和域名都成功,说明以太网工作正常:

0007_Zero_4G_Cat1_93.jpg

如果要使用4G模组优先上网,则需将4G模组的优先级改到最高,步骤如下:

安装ifmetric软件:

sudo apt install ifmetric

然后执行:

sudo ifmetric enxac4bb3b9ebe5 99

这样就将4G模组的优先级改到最高,执行route后可见4G模组排第一位,此时通过4G模组上网。:

我们ping外网IP和域名,都成功,说明4G模组工作正常:

0007_Zero_4G_Cat1_95.jpg

6.2 测试RS485

经测试发现,此系统中的盲文软件brltty占用了扩展板上的RS485串口 ID,所以需要先在brltty中屏蔽被占用的ID。

在终端中执行:

sudo nano /usr/lib/udev/rules.d/85-brltty.rules

将下面的语句屏蔽(语句前加“#”):

ENV{PRODUCT}=="1a86/7523/*", ATTRS{idVendor}=="1a40", ATTRS{idProduct}=="0101", ENV{BRLTTY_BRAILLE_DRIVER}="bm", GOTO="brltty_usb_run"

保存后重启系统即可。

在终端中执行:

ls /dev/ttyUSB*

0007_Zero_4G_Cat1_97.jpg

ttyUSB0即为RS485串口。

安装串口软件CuteCom:

sudo apt install cutecom

打开CuteCom,选择ttyUSB0,在PC端插上一个USB转485的转换器,与扩展板上的485串口相连,各自打开串口软件进行收发,结果如下:

Ubuntu系统端:■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■Windows端:

经过实测,波特率最高可达到0.41K(以传输数据不发生乱码为准)。

打开AT命令串口的方法和树莓派系统一样,在终端中执行:

sudo modprobe option

sudo sh -c 'echo 1782 4e00 > /sys/bus/usb-serial/drivers/option1/new_id'

执行完毕后再执行:

ls /dev/ttyUSB*

0007_Zero_4G_Cat1_108.jpg

可见多出了ttyUSB1-3三个串口,这三个串口即为4G模组的串口。

经测试,ttyUSB1为AT命令串口,AT命令其余操作与树莓派系统相同。

七、扩展板选型表

1006_RPi0_4G_MiniPCIe_64.jpg

联系我们

4f7e81daf8791971.jpg 79c020da7ad0af9b.jpg 2851e01a0549e6f7.gif 0003_bb.jpg 0005_qq.jpg QQ:8204136

邮件:mcuzone@vip.qq.com

电话:13957118045

如本页面有任何疏漏、错误或者侵权,请通过上述途径联系我们,谢谢!

Copyright 2004-2025 野芯科技

T