跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
Mcuzone Wiki
搜索
搜索
登录
个人工具
登录
查看“1008 RPi0 to 4B(CAT4 RS485)”的源代码
页面
讨论
大陆简体
阅读
查看源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
查看源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
←
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的终端,输入命令<code>lsusb</code>,如下图所示: http://www.mcuzone.com/wiki/1008_RPi0_to_4B/1008_RPi0_to_4B_01.jpg 可以看到系统识别到了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处无法启动: http://www.mcuzone.com/wiki/0007_Zero_4G_Cat1/0007_Zero_4G_Cat1_58.jpg 或者启动后键盘鼠标及4G模组都无法使用,请仔细观察顶针是否对准了镀金触点,并请在PC端打开TF卡系统分区根目录下的config.txt检查USB的初始化脚本: http://www.mcuzone.com/wiki/0007_Zero_4G_Cat1/0007_Zero_4G_Cat1_41.jpg 需要确认下图中的三处红框的位置是否都配置成完全,如果没有,请手动添加完整并保存文件: <code># otg_mode=1</code>(建议按此注释掉) <code>dtoverlay=dwc2,dr_mode=host</code>(两处必须确保加上) http://www.mcuzone.com/wiki/0007_Zero_4G_Cat1/0007_Zero_4G_Cat1_57.jpg ==== 3.1.2 查看网络设备 ==== 打开树莓派OS的终端,输入命令<code>ifconfig -a</code>,如下图所示: http://www.mcuzone.com/wiki/1008_RPi0_to_4B/1008_RPi0_to_4B_02.jpg 可以看到eth0为USB转千兆以太网,eth1为Cat4 4G,wlan0为Zero 2W的无线网卡。 为了操作方便,建议使用PC端的SSH软件连接系统并进行终端操作,我们使用与树莓派的无线网卡的IP地址在同一网段内的PC,通过MobaXterm进行连接: http://www.mcuzone.com/wiki/1008_RPi0_to_4B/1008_RPi0_to_4B_03.jpg 连接后,大部分操作都可以通过PC端的MobaXterm进行,使得整套硬件系统可以脱离显示器运作。以下测试操作将通过MobaXterm在PC端进行演示。 === 3.2 测试网络设备 === ==== 3.2.1 ping包测试 ==== 测试的时候有优先级,优先级可以通过可以执行<code>route</code>命令来查看,哪个网卡的metric值小就从优先从哪个网卡通讯,如有内外网特殊优先级需要请调整各网络的metric值以及DNS服务器设置。 http://www.mcuzone.com/wiki/1008_RPi0_to_4B/1008_RPi0_to_4B_04.jpg 可以用-I参数指定从哪个网卡开始ping包,如下所示: <code>ping www.mcuzone.com -I eth0</code> <code>ping www.mcuzone.com -I eth1</code> <code>ping www.mcuzone.com -I wlan0</code> http://www.mcuzone.com/wiki/1008_RPi0_to_4B/1008_RPi0_to_4B_05.jpg 我们也可以通过关闭某个网卡,达到强制指定通过另一个网络进行通讯,如需关闭eth0,可执行下面的命令: <code>sudo ifconfig eth0 down</code> 以及通过执行下面的命令来开启eth0: <code>sudo ifconfig eth0 up</code> ==== 3.2.2 设置网卡优先级与指定DNS服务器 ==== 关于该部分的知识,可参阅以下链接: [[1001 RPi0 4G Cat1-ETH(百兆网络 4G Cat1 USB2.0-A 485版本可选)#4.2.2 网卡优先级的设置|1. 设置网卡优先级]] [[1001 RPi0 4G Cat1-ETH(百兆网络 4G Cat1 USB2.0-A 485版本可选)#4.2.3 利用udhcpc指定DNS服务器|2. 利用udhcpc指定DNS服务器]] [[1001 RPi0 4G Cat1-ETH(百兆网络 4G Cat1 USB2.0-A 485版本可选)#4.2.4 udhcpc应用场景举例|3. udhcpc应用场景举例]] 建议通过udhcpc软件,而不是编辑resolv.conf文件来指定DNS服务器,这样会比较稳定。 ==== 3.2.3 固定MAC地址 ==== 千兆网口为RTL8153网卡,在使用过程中的MAC地址是不固定的,每次重新上电后MAC地址都会随机改变。下面讲解如何为RTL8153网卡设置固定MAC地址。 本讲解也适用于Ubuntu系统。 首先在树莓派终端中,执行<code>ifconfig -a</code>,查看RTL8153网卡的识别信息,之前已经确认RTL8153网卡的识别名称为eth0。 然后输入: <code>sudo mousepad /etc/systemd/system/macspoof@eth0.service</code> 或: <code>sudo nano /etc/systemd/system/macspoof@eth0.service</code> eth0为上面显示的网卡识别名称。 运行上面的命令后会新建一个文档,输入以下文本: [<code>Unit]</code> <code>Description=MAC Address Change %I</code> <code>Wants=network-pre.target</code> <code>Before=network-pre.target</code> <code>BindsTo=sys-subsystem-net-devices-%i.device</code> <code>After=sys-subsystem-net-devices-%i.device</code> <code>[Service]</code> <code>Type=oneshot</code> <code>ExecStart=/usr/bin/ip link set dev %i address xx:xx:xx:xx:xx:xx</code> <code>ExecStart=/usr/bin/ip link set dev %i up</code> <code>[Install]</code> <code>WantedBy=multi-user.target</code> 其中“xx:xx:xx:xx:xx:xx”为想要指定的MAC地址,可以按MAC地址格式自行确定(不要和其它网络设备重复),例如这里我们改为“e6:b8:37:f7:22:93”。设置完成后保存并退出。 随后输入下面的命令使能服务: <code>sudo systemctl enable macspoof@eth0.service</code> 这样就完成了对eth0的固定MAC地址。 全部操作完毕后重启系统,系统重启完毕后,执行<code>ipconfig -a</code>即可看到MAC地址更改成功: http://www.mcuzone.com/wiki/1008_RPi0_to_4B/1008_RPi0_to_4B_06.jpg 这样即使重新上电,MAC地址也不会改变了。 ==== 3.2.4 iperf3测速 ==== Windows版iperf3下载: http://www.mcuzone.com/down/Software.asp?ID=10000634 Linux下iperf3安装: <code>sudo apt-get install iperf3</code> 千兆以太网测速结果,client模式282Mbps左右: http://www.mcuzone.com/wiki/1008_RPi0_to_4B/1008_RPi0_to_4B_07.jpg server模式270Mbps左右: http://www.mcuzone.com/wiki/1008_RPi0_to_4B/1008_RPi0_to_4B_08.jpg '''''注意:USB转百兆有线受Zero 2W性能和USB Hub以及Cat4 4G带宽占用影响并不能跑满,请知悉。''''' ==== 3.2.5 4G网络测速 ==== 因为Zero 2W性能限制,在其上运行Chromium等浏览器进行网页测速时,系统运行会非常慢,因此我们使用轻量浏览器surf进行测速。 安装轻量浏览器surf: <code>sudo apt install surf</code> 然后关闭WiFi,拔掉网线,只剩下4G网络连接,进入<nowiki/>https://test.ustc.edu.cn/<nowiki/>进行测速。在树莓派终端中运行 <code>surf <nowiki>https://test.ustc.edu.cn</nowiki></code> 结果如下: http://www.mcuzone.com/wiki/1008_RPi0_to_4B/1008_RPi0_to_4B_09.jpg '''''注意:网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。''''' === 3.3 AT命令演示 === ==== 3.3.1 打开AT命令串口方法 ==== 在树莓派下要对4G进行AT命令操作,首先要打开AT命令串口,打开方法如下: 首先打开ttyUSB串口: 输入命令<code>lsusb</code>,如下图所示: http://www.mcuzone.com/wiki/1008_RPi0_to_4B/1008_RPi0_to_4B_10.jpg 记下4G模块的ID值:1286 4e3d 使用下列命令打开ttyUSB串口,其中echo后面的值就是上面记录的ID值: <code>sudo modprobe option</code> <code>sudo sh -c 'echo 1286 4e3d > /sys/bus/usb-serial/drivers/option1/new_id'</code> http://www.mcuzone.com/wiki/1008_RPi0_to_4B/1008_RPi0_to_4B_11.jpg 执行上述两条命令之后执行: <code>ls /dev</code> 此时应该能看到dev设备下有ttyUSB0-3四个设备: http://www.mcuzone.com/wiki/1008_RPi0_to_4B/1008_RPi0_to_4B_12.jpg ==== 3.3.2 执行AT命令 ==== 通过minicom打开AT命令串口: <code>sudo minicom -D /dev/ttyUSB2</code> (注意:使用哪个串口,应以在进入此串口后,可输入运行AT命令,显示不乱码,不乱跳结果为准) 也可以安装CuteCom: <code>sudo apt install cutecom</code> 下面以CuteCom为例,打开CuteCom: <code>sudo cutecom</code> 如果需要查看回显,请键入命令:<code>ate1</code>,然后回车,继续键入其它命令,回车可以看到结果。 用AT+CPIN?来检查SIM是否正常插入并识别; 用AT+CSQ来检查信号强度,第一个值是0-31,需要25以上才算信号质量良好; 用AT+COPS?来检查注网情况,双引号内是运营商代码,最后一个数字是网络模式,7代表4G。 http://www.mcuzone.com/wiki/1008_RPi0_to_4B/1008_RPi0_to_4B_13.jpg 常用AT命令: 1) 检查SIM卡是否识别到: <code>at+cpin?</code> 返回ready表示卡已识别,返回error要检查硬件 2) 检查天线信号质量: <code>at+csq</code> 返回值在26-31表示信号OK,信号满格31;返回值在20-25表示信号勉勉强强;返回值在20以下表示信号比较糟糕或者天线没接 3) 检查注网情况: <code>at+cops?</code> 正常应该返回运营商代码和7,7代表4G 注意,以上命令只有<code>at+csq</code>不要加问号,另外两条命令需要加问号。 4) 查看4G模块的IMEI码: <code>at+cgsn</code> 5) 重启4G模块(有时候如果重插SIM卡,热插拔不一定管用,可以用这个reset命令来复位模块): <code>at+reset</code> 6) 关闭射频: <code>at+cfun=0</code> 开启射频: <code>at+cfun=1</code> 上述两条命令成对使用,可以在不重启4G模组的情况下让模组重新注网。 === 3.4 RS485串口测试 === 本扩展板的485串口的串口号为ttyUSB0,本节测试树莓派OS端使用的串口软件为CuteCom。在PC端插上一个USB转485的转换器,与扩展板上的485接口相连,各自打开串口软件进行收发,结果如下: 树莓派OS端/Windows端: http://www.mcuzone.com/wiki/1008_RPi0_to_4B/1008_RPi0_to_4B_21.jpg 实测最高波特率可达737kbps(以传输数据不发生乱码为准)。 == '''四、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 建议使用树莓派镜像烧录器烧录系统,并在烧写前在烧录器设置中设置好一些预设置参数: http://www.mcuzone.com/wiki/1002_Zero_4G_Cat1/1002_Zero_4G_Cat1_02.jpg 在弹出的窗口中,GENERAL页面中,可以主机名、用户名和密码、默认连接的WiFi、区域: http://www.mcuzone.com/wiki/1002_Zero_4G_Cat1/1002_Zero_4G_Cat1_03.jpg 在SERVICES页面中,请设置开启SSH服务: http://www.mcuzone.com/wiki/1002_Zero_4G_Cat1/1002_Zero_4G_Cat1_04.jpg 这样烧录完毕的系统,启动后就是预先设置的用户名和密码,并且能使用预设置的WiFi(需在该WiFi热点覆盖范围内)和SSH功能。 === 4.1 编辑初始化脚本 === Ubuntu Server烧写完毕后,请在PC端打开TF卡系统分区根目录下的config.txt检查USB的初始化脚本,Ubuntu Server对USB初始化了两遍,前面一遍没有配置成host模式,需要确认下图中的红框的位置是否配置成完全,如果没有,请手动添加完整: <code>dtoverlay=dwc2,dr_mode=host</code> http://www.mcuzone.com/wiki/0007_Zero_4G_Cat1/0007_Zero_4G_Cat1_32.jpg http://www.mcuzone.com/wiki/0007_Zero_4G_Cat1/0007_Zero_4G_Cat1_75.jpg === 4.2 配置用户名和密码 === 如果在烧录系统时配置了用户名和密码,就可以直接用所配置的用户名的密码登录系统。 如果在烧录系统时没有配置用户名和密码,则第一次启动后会要求登录,用户名和密码均为ubuntu,登录成功后会要求修改密码: http://www.mcuzone.com/wiki/0007_Zero_4G_Cat1/0007_Zero_4G_Cat1_31.jpg 修改完毕后就自动进入系统。 === 4.3 配置网络 === Ubuntu Server系统出于安全考虑,有非常多的限制,默认很多服务器和组件也都是关闭状态。因为网络接口被关闭,所以系统启动后并无网络可用,需要进行开启设置后才能使用。 '''''注意,系统默认并没有集成ifconfig工具,只有ip命令可用。''''' 执行<code>ip addr</code>查看并记录下网卡名称: http://www.mcuzone.com/wiki/1008_RPi0_to_4B/1008_RPi0_to_4B_14.jpg 网卡2(enx000c29a39b6d)为Cat4 4G,网卡3(eth0)为USB转千兆网卡,网卡4(wlan0)为已经正确获取了IP地址的无线网卡(因为在烧写系统时已经配置了无线热点信息),此时就可以使用SSH软件,通过无线网卡连接到Ubuntu系统。 然后运行下面的命令,打开网卡配置文件: <code>sudo nano /etc/netplan/50-cloud-init.yaml</code> 按照下图编辑网卡配置文件: http://www.mcuzone.com/wiki/1008_RPi0_to_4B/1008_RPi0_to_4B_15.jpg 保存退出,然后重启。 重启后即可联网,安装net-tools工具以便于使用ifconfig命令: <code>sudo apt install net-tools</code> 安装完毕后就可以使用<code>ifconfig -a</code>查看网络状态了: http://www.mcuzone.com/wiki/1008_RPi0_to_4B/1008_RPi0_to_4B_16.jpg 可见此时Cat4 4G和USB转千兆网卡也已经正确获取了IP地址。 '''''注意:在Ubuntu系统下,USB转千兆网卡的MAC地址也不是固定的,同样也是每次重启系统就会随机变化,如果需要固定MAC地址,方法和[[1008 RPi0 to 4B(CAT4 RS485)#3.2.3 固定MAC地址|在树莓派OS下的操作]]相同。''''' === 4.4 网络及4G模组测试 === 通过使用-I参数,在ping包时加上网卡名称,可指定哪块网卡进行ping包: <code>ping www.mcuzone.com -I enx000c29a39b6d</code> <code>ping www.mcuzone.com -I eth0</code> 结果如下: http://www.mcuzone.com/wiki/1008_RPi0_to_4B/1008_RPi0_to_4B_17.jpg === 4.5 AT命令交互测试 === 和[[1008 RPi0 to 4B(CAT4 RS485)#3.3 AT命令演示|在树莓派OS下的操作方法]]相同,Ubuntu系统下同样需要先开启串口: <code>sudo modprobe option</code> <code>sudo sh -c 'echo 1286 4e3d > /sys/bus/usb-serial/drivers/option1/new_id'</code> 然后安装minicom,安装完毕后通过minicom打开串口,即可使用AT命令: <code>sudo minicom -D /dev/ttyUSB2</code> http://www.mcuzone.com/wiki/1008_RPi0_to_4B/1008_RPi0_to_4B_18.jpg === 4.6 RS485串口测试 === 本扩展板的485串口的串口号为ttyUSB0,本节测试Ubuntu系统端使用的串口软件为minicom。在PC端插上一个USB转485的转换器,与扩展板上的485接口相连,各自打开串口软件进行收发,Ubuntu系统端运行: <code>sudo minicom -b 576000 -D /dev/ttyUSB0</code> '''''注意,minicom只能选择特定的波特率,列举如下:''''' 300、1200、2400、4800、9600、19200、38400、57600、115200、230400、460800、500000、576000、921600、1000000、1152000、1500000、2000000、2500000、3000000、3500000、4000000。 这里选用576000。 结果如下: Ubuntu系统端/Windows端: http://www.mcuzone.com/wiki/1008_RPi0_to_4B/1008_RPi0_to_4B_22.jpg == '''五、OpenWrt系统操作演示''' == === 5.1 概述 === 此扩展板搭配树莓派Zero 2W,在OpenWrt系统下可配置为一进一出的交换机模式,扩展板上的Cat4 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: http://www.mcuzone.com/wiki/0007_Zero_4G_Cat1/0007_Zero_4G_Cat1_18.jpg 然后打开网页浏览器输入192.168.198.1进入OpenWrt系统。默认用户名为root,默认密码为password。 http://www.mcuzone.com/wiki/0007_Zero_4G_Cat1/0007_Zero_4G_Cat1_19.jpg === 5.3 设置OpenWrt系统 === 进入OpenWrt系统后,如前所述,用网线把树莓派的网口和PC的网口直连,等PC的网卡获取了IP地址后,登录OpenWrt系统后台,进入“网络 - 接口”,可以看到此时WAN(eth1,即为Cat4 4G)已经正确获取了IP,可以连接Internet: http://www.mcuzone.com/wiki/1008_RPi0_to_4B/1008_RPi0_to_4B_19.jpg === 5.4 测试4G模块网速 === 在PC端打开<nowiki/>https://www.speedtest.cn/<nowiki/>进行测速,此时流量走的是4G模块,测试结果如下: http://www.mcuzone.com/wiki/1008_RPi0_to_4B/1008_RPi0_to_4B_20.jpg '''''注意:网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。''''' === 5.5 TTYD终端 === OpenWrt系统自带一个网页版的TTYD终端,可在“系统 - TTYD终端”中打开。默认用户名为root,默认密码为password,因为是使用root账号登录,登录后即有root权限。 http://www.mcuzone.com/wiki/0007_Zero_4G_Cat1/0007_Zero_4G_Cat1_22.jpg {{联系我们_图标}}
本页使用的模板:
模板:联系我们 图标
(
查看源代码
)
返回
1008 RPi0 to 4B(CAT4 RS485)
。
开关有限宽度模式