本文介绍4G 模块在EPCM3568B-LI 5G智能边缘计算网关设备上的使用。
引言
EPCM3568B-LI/EPCM3568C-LI 是ZLG致远电子打造的一款性能强劲的工业EMC边缘计算网关产品,该款产品采用硬件兼容性设计,将通信模块接口统一化设计,通过接口预留M.2座子可接入5G/RedCap模组,也可通过转接板兼容MiniPCIE接口的4G模块。EPCM3568B-LI/EPCM3568C-LI的4G/5G/RedCap全兼容设计使得其轻松应对物联网碎片化场景下需要广覆盖、高性能、低功耗等多种通信需求。
4G模块的使用
系统默认已适配移远EC20模块,接下来介绍该模块的使用步骤。1. 前期准备
- EPCM3568B-LI/EPCM3568C-LI整机一台;
- MiniPCIe-to-M.2转接板一个,如图1(左)所示;
- EC20CE模块一个,如图1(右)所示。

图1 MiniPCIe-to-M.2转接板(左)、EC20CE MiniPCIE 4G模块配件(右)
2. 4G模块的安装
将EPCM3568B-LI/EPCM3568C-LI设备外壳拆开后,把MiniPCIE EC20 4G模块插在M.2 B KEY接口转MiniPCIE接口座子上并接到主板的M.2 B KEY座子上,接上4G天线,并插入(U)SIM卡。如图2所示:

图2
3. 模块识别
EPCM3568B-LI设备出厂固件驱动配置为自动加载模式。EPCM3568B-LI设备上电后,检查4G模块是否识别。3.1 在/dev目录下有以下设备节点生成

图33.2 使用ifconfig指令查看,有usb0节点生成,说明已经4G模块已识别并且成功加载驱动。

图4
4. 拨号上网
4.1 QMI拨号注:默认使用QMI拨号方式使用quectel-CM工具拨号,并获取IP,测试移动4G卡上网:电信卡:ctnet 移动卡:cmnet 联通卡:3gnet
root@epc356x-devel:/home/zlg# quectel-CM -s &[1]1099root@epc356x-devel:/home/zlg# [06-05_1655:164] Quectel_QConnectManager_Linux_V1.6.0.16[06-05_1655:166] Find /sys/bus/usb/devices/5-1idVendor=0x2c7cidProduct=0x125, bus=0x005, dev=0x002[06-05_1655:173] Auto find qmichannel = /dev/qcqmi0[06-05_1655:178] Auto find usbnet_adapter = usb0[06-05_1655:183] netcard driver = GobiNet, driver version =5.10.110[06-05_1655:190] ioctl(0x89f3, qmap_settings) failed: Operationnotsupported, rc=-1[06-05_1655:197] Modem worksinQMI mode[06-05_1655:246] Get clientWDS =7[06-05_1655:278] Get clientDMS =8[06-05_1655:310] Get clientNAS =9[06-05_1655:342] Get clientUIM =10[06-05_1655:374] Get clientWDA =11[06-05_1655:406] requestBaseBandVersion EC20CEHCLGR06A05M1G[06-05_1655:534] requestGetSIMStatus SIMStatus: SIM_READY[06-05_1655:535] requestSetProfile[1]///0[06-05_1655:598] requestGetProfile[1]///0[06-05_1655:630] requestRegistrationState2 MCC:460, MNC:0, PS: Attached, DataCap: LTE[06-05_1655:662] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED[06-05_1655:664] ifconfig usb00.0.0.0[06-05_1655:683] ifconfig usb0 down[06-05_1656:366] requestSetupDataCall WdsConnectionIPv4Handle:0xe179e250[06-05_1656:527] ifconfig usb0 up[06-05_1656:545] busybox udhcpc -f -n -q -t5-i usb0udhcpc: started, v1.30.1udhcpc: sending discoverudhcpc: sendingselectfor10.42.9.32udhcpc: lease of10.42.9.32obtained, lease time7200
查看是否获取到IP:
root@epc356x-devel:/home/zlg# ifconfig usb0usb0: flags=4291 mtu1500 inet10.42.9.32 netmask255.255.255.192 broadcast10.42.9.63 inet6fe80:5cffa979 prefixlen64 scopeid0x20 etherf6:1b:5c:0679 txqueuelen1000 (Ethernet) RXpackets2 bytes612(612.0B) RXerrors0 dropped0 overruns0 frame0 TXpackets22 bytes3031(2.9KiB) TXerrors0 dropped0overruns0 carrier0 collisions0
测试网络连通性:
root@epc356x-devel:/home/zlg# ping www.baidu.comPINGwww.baidu.com (183.240.99.169)56(84) bytes of data.64bytes from183.240.99.169(183.240.99.169): icmp_seq=1ttl=52time=90.3ms64bytes from183.240.99.169(183.240.99.169): icmp_seq=2ttl=52time=69.4ms64bytes from183.240.99.169(183.240.99.169): icmp_seq=3ttl=52time=57.9ms64bytes from183.240.99.169(183.240.99.169): icmp_seq=4ttl=52time=60.8ms64bytes from183.240.99.169(183.240.99.169): icmp_seq=5ttl=52time=64.2ms
4.2 ECM拨号切换为ECM模式:
echo-e"AT+QCFG="usbnet",1\r\n">/dev/ttyUSB2
重启后查看是否切换成功:
cat/dev/ttyUSB2&echo-e"AT+QCFG="usbnet"\r\n">/dev/ttyUSB2
返回如下则成功切换为ECM模式:
root@epc356x-devel:/home/zlg# cat/dev/ttyUSB2&root@epc356x-devel:/home/zlg# echo-e"AT+QCFG="usbnet"\r\n">/dev/ttyUSB2+QCFG:"usbnet",1OK
配置PDP:
//运营商为电信echo-e"AT+CGDCONT=1,"IP","CTNET"\r\n">/dev/ttyUSB2//运营商为联通echo-e"AT+CGDCONT=1,"IP","3GNET"\r\n">/dev/ttyUSB2//运营商为移动echo-e"AT+CGDCONT=1,"IP","CMNET"\r\n">/dev/ttyUSB2
拨号:
echo-e"AT+QNETDEVCTL=1,1,1\r\n">/dev/ttyUSB2
获取IP地址:
udhcpc -iusb0
测试网络连通性:
pingwww.baidu.com
Q&AQ1 拨号失败/获取不到IP可按如下步骤进行排查:1. 模块未配置为QMI模式:检查模块的拨号模式是否正确配置,使用如下命令查看拨号模式。
cat/dev/ttyUSB2&echo-e"AT+QCFG="usbnet"\r\n">/dev/ttyUSB2
若返回+QCFG: "usbnet",1 则为ECM拨号模式,如果使用QIM拨号则需执行如下命令切换回QMI拨号模式:
echo-e"AT+QCFG="usbnet",0\r\n">/dev/ttyUSB2
2. 驱动未加载或存在其他冲突在确认好模块插好,天线接上,sim卡状态(可正常上网)的情况下,排查驱动加载情况。使用dmesg命令查看是否有以下内核打印:在QMI模式下驱动默认自动加载GobiNet驱动, 如需切换为QMI_WWAN驱动,可移除/usr/lib/modules/5.10.110/kernel/drivers/net/usb/GobiNet.ko后重新上电启动。可根据应用场景选择所需的驱动。
[17.794334] usb5-1:newhigh-speed USB device number 2using xhci-hcd[17.930536] usb5-1: New USB device found, idVendor=2c7c, idProduct=0125, bcdDevice=3.18[17.930575] usb5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0[17.930588] usb5-1: Product: Android [17.930601] usb5-1: Manufacturer: Android [18.081294] option5-1:1.0: GSMmodem(1-port)converter detected[18.082787] usb5-1: GSMmodem(1-port)converter now attached to ttyUSB0[18.085663] option5-1:1.1: GSMmodem(1-port)converter detected[18.087365] usb5-1: GSMmodem(1-port)converter now attached to ttyUSB1[18.090730] option5-1:1.2: GSMmodem(1-port)converter detected[18.092486] usb5-1: GSMmodem(1-port)converter now attached to ttyUSB2[18.094562] option5-1:1.3: GSMmodem(1-port)converter detected[18.096265] usb5-1: GSMmodem(1-port)converter now attached to ttyUSB3[18.098028] find theinterfaceforQUECTEL_VENDOR[18.239528] GobiNet: Quectel_Linux&Android_GobiNet_Driver_V1.6[18.271607] GobiNet::GobiNetDriverBind in88, out5[18.273915] GobiNet5-1:1.4usb0: register'GobiNet'at usb-xhci-hcd.0.auto-1, GobiNet Ethernet Device,02:2616:80:93[18.276874] creating qcqmi0
查看是否生成设备节点:
ls-l /dev/ | grep qcqmi0
查看是否生成网络节点usb0/wwan0
ifconfig -a
3. 通过查看4G模块信息,排查问题列出当前可用的4G模块
root@epc356x-devel:/home/zlg# mmcli-L /org/freedesktop/ModemManager1/Modem/0[Quectel]EC20F
获得4G模块的详细信息:
root@epc356x-devel:/home/zlg# mmcli-m0 -------------------------------- General | dbus path:/org/freedesktop/ModemManager1/Modem/0 | device id: cb8803df26fff3ec0b293197bea9c1a099be1e8d -------------------------------- Hardware| manufacturer: Quectel | model: EC20F | firmware revision: EC20CEHCLGR06A05M1G | supported: gsm-umts, lte | current: gsm-umts, lte | equipment id:869446074787727 -------------------------------- System | device:/sys/devices/platform/usbhost/fd000000.dwc3/xhci-hcd.0.auto/usb5/5-1 | drivers: option1, GobiNet | plugin: quectel | primaryport: ttyUSB2 | ports: ttyUSB0 (qcdm), ttyUSB1 (gps), ttyUSB2 (at), ttyUSB3 (at), | usb0 (net) -------------------------------- Numbers | own: xxx -------------------------------- Status | unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (3), sim-puk2 (10) | state: registered | power state:on | access tech: lte | signal quality:80%(recent) -------------------------------- Modes | supported: allowed:2g,3g,4g; preferred:none | current: allowed:2g,3g,4g; preferred:none -------------------------------- IP | supported: ipv4, ipv6, ipv4v6 -------------------------------- 3GPP | imei:869446074787727 | operator id:46000 | operator name: CHINA MOBILE | registration: home -------------------------------- 3GPP EPS|ue modeofoperation: csps-2 -------------------------------- SIM | dbus path:/org/freedesktop/ModemManager1/SIM/0
- firmware revision: EC20CEHCLGR06A05M1G 4G模块的固件版本,由4G模块厂家维护
- signal quality: 80% (recent) 4G信号质量,百分比值越大,信号越好。如果为0%,请检查天线连接、SIM卡状态(是否欠费、或者卡座接触不良、松动)等情况。
- state: registeredSIM卡注册正常
- operator name: CHINA MOBILE 当前注册的运营商CHINA MOBILE为中国移动
4. 网络配置异常情况一般使用quectel-CM拨号时会自动获取IP,但如果获取不到IP,可尝试手动获取IP地址。
udhcpc -iusb0 或者dhclient usb0
尝试ping一个外部服务器测试网络连通性:
ping8.8.8.8
尝试ping 测试域名解析:
pingwww.baidu.com
若ping 8.8.8.8正常,但上不了网,则检查DNS设置以及网关设置
DNS设置:
//添加如下:vim/etc/resolv.conf...nameserver8.8.8.8
检查网关、路由配置:
ip routeroute -n如果没有默认网关,可以手动添加:ip routeadddefaultvia dev usb0
Q2 quectel-CM拨号时,SIM卡状态一直显示SIM_ABSNET

图51. 确认SIM卡物理连接正常
- 关闭设备电源,取出SIM卡,检查是否有物理损坏(如划痕、氧化);
- 使用其他设备(如手机)测试该SIM卡是否能正常识别,排查SIM卡损坏问题;
- 若使用的是物联卡需确认其是否有设备强制性绑定等问题,可先换成手机卡测试,排除SIM卡问题;
- 重新插入SIM卡,确保方向正确(缺口对齐卡槽方向)正确安装。
2. 使用AT指令查看SIM卡状态
cat/dev/ttyUSB2 &echo-e"AT+CPIN?\r\n"> /dev/ttyUSB2
可能返回值以及含义:
- CPIN: READY : SIM卡正常,无需PIN码。
- CPIN: SIM PIN: 需要输入PIN码(需发送AT+CPIN=1234,1234替换为实际PIN码)。
- CPIN: SIM ABSENT: 模块未检测到SIM卡。
- ERROR: AT指令格式错误或模块未响应。
3. 尝试关闭模块的SIM卡自动检测功能,重新上电启动。
echo-e"AT+QSIMDET=0,0\r\n">/dev/ttyUSB2
4. 硬件故障排查
- 更换SIM卡槽或尝试使用另一块EC20模块;
- 检查PCB焊接是否存在虚焊(尤其是SIM卡接口电路)。
Q3 识别不到模块、没有/dev/ttyUSB*设备节点生成检查模块是否插好,模块是否有损坏、确认固件版本是否自带相关驱动等。如果使用的是其他4G模块,原因可能是该设备ID没有写入驱动,需要每次启动先从启动信息中获取4G模块的设备vid和pid,然后再通过如下命令写入驱动。
echo"2c7c 6005 ff"> /sys/bus/usb-serial/drivers/option1/new_id
2c7c为实际使用的4G模块的vid,6005为实际使用的4G模块的pid。Q4 如何设置开机自动拨号在/etc/init.d目录中,创建拨号脚本,如下:
#!/bin/bash### BEGIN INIT INFO# Provides: zlg# Required-Start:# Required-Stop:# Default-Start:# Default-Stop:# Short-Description: EC20_startup_script### END INIT INFO# set -x
LOG_FILE="/var/log/4G_init.log"
# 每次运行前清空日志文件>"$LOG_FILE"echo"Startup 4g">>$LOG_FILEec20_start() { whiletrue do if[ -e"/sys/class/net/usb0"];then echo"Detected modem on usb0">>$LOG_FILE else sleep2 echo"Try again">>$LOG_FILE continue fi quectel-CM -s >>$LOG_FILE2>&1 & sleep3 ping 8.8.8.8 -W 1 -c 1 > /dev/null if[[ $? -ne 0 ]];then sleep1 killall quectel-CM continue else echo"ec20 startup success.">>$LOG_FILE break; fi done}
case"$1"instart) ec20_start sleep1 ;;stop) killall quectel-CM ;;restart) # First stop the service $0stop # Then start the service again $0start;;*) echo"Usage:$0{start|stop|restart}" exit1esacexit0
给脚本添加执行权限:
sudochmod+x /etc/init.d/ec20_startup_script.sh
在/etc/rc.local文件最后exit 0之前 添加该脚本启动命令,如:
vim/etc/rc.local.../etc/init.d/ec20_startup.sh start&exit0
最后执行sync保存后,重新上电启动,测试4G模块自动拨号情况。Q5 如何使用NetworkManager接管4G网络检查4G模块是否已经启动,列出当前4G模块列表。
root@epc356x-devel:/home/zlg# mmcli-L /org/freedesktop/ModemManager1/Modem/0[Quectel]EC20F
当前演示只有一个4G模块,/org/freedesktop/ModemManager1/Modem 末尾的 0 是4G模块的索引。要记住这个索引,该索引将用于与4G模块通信的其余命令中。查询4G模块的详细信息:
root@epc356x-devel:/home/zlg# mmcli-m0 -------------------------------- General | dbus path:/org/freedesktop/ModemManager1/Modem/0 | device id: cb8803df26fff3ec0b293197bea9c1a099be1e8d -------------------------------- Hardware| manufacturer: Quectel | model: EC20F | firmware revision: EC20CEHCLGR06A05M1G | supported: gsm-umts, lte | current: gsm-umts, lte | equipment id:869446074787727 -------------------------------- System | device:/sys/devices/platform/usbhost/fd000000.dwc3/xhci-hcd.0.auto/usb5/5-1 | drivers: option1, GobiNet | plugin: quectel | primaryport: ttyUSB2 | ports: ttyUSB0 (qcdm), ttyUSB1 (gps), ttyUSB2 (at), ttyUSB3 (at), | usb0 (net) -------------------------------- Numbers | own: xxx -------------------------------- Status | unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (3), sim-puk2 (10) | state: registered | power state:on | access tech: lte | signal quality:80%(recent) -------------------------------- Modes | supported: allowed:2g,3g,4g; preferred:none | current: allowed:2g,3g,4g; preferred:none -------------------------------- IP | supported: ipv4, ipv6, ipv4v6 -------------------------------- 3GPP | imei:869446074787727 | operator id:46000 | operator name: CHINA MOBILE | registration: home -------------------------------- 3GPP EPS|ue modeofoperation: csps-2 -------------------------------- SIM | dbus path:/org/freedesktop/ModemManager1/SIM/0
从以上信息中获取到primary port端口号为ttyUSB2,使用以下命令创建4G网络连接:
sudo nmcli con addtypegsm ifname ttyUSB2 con-nametest-ec20-conapn"cmnet"ipv4.method auto ipv6.method ignore
启动连接
sudonmcli c up test-ec20-con
停止连接
sudonmcli c down test-ec20-con
查看连接状态
sudonmcli c show test-ec20-con
测试网络连接
pingwww.baidu.com
设置开机自动连接
sudonmcli con modify test-ec20-con connection.autoconnectyes
设置断线自动重连(默认已启用)
sudo nmcli con modifytest-ec20-conconnection.autoconnect-retries5
-
4G
+关注
关注
15文章
5607浏览量
123242 -
无线模块
+关注
关注
12文章
671浏览量
50032 -
边缘计算
+关注
关注
22文章
3472浏览量
52682
发布评论请先 登录
4G模块是什么4G模块的类别4G模块的选择
4G模块的原理是什么,4G模块的拨号原理是什么
从中心到边缘:5G智能边缘计算网关为环境监测带来变革
基于EPCM3568A-LI的LoRa快速使用指南来了
如何一键将EPCM3568边缘网关接入ZWS云
EPCM3568A-LI如何实现WiFi冲浪和热点共享
探秘EPCM3568A-LI:国产高性能工控机的CAN通信之旅
EPCM3568A-LI屏幕分辨率和开机logo设置

基于EPCM3568B-LI的无线模块应用 — 4G篇
评论