• 正文
  • 相关推荐
申请入驻 产业图谱

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

05/09 12:15
2198
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

本文介绍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所示:

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

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

图44. 拨号上网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_16:35:55:164] Quectel_QConnectManager_Linux_V1.6.0.16[06-05_16:35:55:166] Find /sys/bus/usb/devices/5-1 idVendor=0x2c7c idProduct=0x125, bus=0x005, dev=0x002[06-05_16:35:55:173] Auto find qmichannel = /dev/qcqmi0[06-05_16:35:55:178] Auto find usbnet_adapter = usb0[06-05_16:35:55:183] netcard driver = GobiNet, driver version = 5.10.110[06-05_16:35:55:190] ioctl(0x89f3, qmap_settings) failed: Operation not supported, rc=-1[06-05_16:35:55:197] Modem works in QMI mode[06-05_16:35:55:246] Get clientWDS = 7[06-05_16:35:55:278] Get clientDMS = 8[06-05_16:35:55:310] Get clientNAS = 9[06-05_16:35:55:342] Get clientUIM = 10[06-05_16:35:55:374] Get clientWDA = 11[06-05_16:35:55:406] requestBaseBandVersion EC20CEHCLGR06A05M1G[06-05_16:35:55:534] requestGetSIMStatus SIMStatus: SIM_READY[06-05_16:35:55:535] requestSetProfile[1] ///0[06-05_16:35:55:598] requestGetProfile[1] ///0[06-05_16:35:55:630] requestRegistrationState2 MCC: 460, MNC: 0, PS: Attached, DataCap: LTE[06-05_16:35:55:662] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED[06-05_16:35:55:664] ifconfig usb0 0.0.0.0[06-05_16:35:55:683] ifconfig usb0 down[06-05_16:35:56:366] requestSetupDataCall WdsConnectionIPv4Handle: 0xe179e250[06-05_16:35:56:527] ifconfig usb0 up[06-05_16:35:56:545] busybox udhcpc -f -n -q -t 5 -i usb0udhcpc: started, v1.30.1udhcpc: sending discoverudhcpc: sending select for10.42.9.32udhcpc: lease of 10.42.9.32 obtained, lease time 7200

查看是否获取到IP:

root@epc356x-devel:/home/zlg# ifconfig usb0usb0: flags=4291<UP,BROADCAST,RUNNING,NOARP,MULTICAST>  mtu 1500        inet 10.42.9.32  netmask 255.255.255.192  broadcast 10.42.9.63        inet6 fe80::f41b:5cff:fe06:a979  prefixlen 64  scopeid 0x20<link>        ether f6:1b:5c:06:a9:79  txqueuelen 1000  (Ethernet)        RX packets 2  bytes 612 (612.0 B)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 22  bytes 3031 (2.9 KiB)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

测试网络连通性:

root@epc356x-devel:/home/zlg# ping www.baidu.comPING www.baidu.com (183.240.99.169) 56(84) bytes of data.64 bytes from 183.240.99.169 (183.240.99.169): icmp_seq=1 ttl=52 time=90.3 ms64 bytes from 183.240.99.169 (183.240.99.169): icmp_seq=2 ttl=52 time=69.4 ms64 bytes from 183.240.99.169 (183.240.99.169): icmp_seq=3 ttl=52 time=57.9 ms64 bytes from 183.240.99.169 (183.240.99.169): icmp_seq=4 ttl=52 time=60.8 ms64 bytes from 183.240.99.169 (183.240.99.169): icmp_seq=5 ttl=52 time=64.2 ms

4.2 ECM拨号切换为ECM模式:

echo -e "AT+QCFG="usbnet",1rn" > /dev/ttyUSB2

重启后查看是否切换成功:

cat /dev/ttyUSB2 & echo -e "AT+QCFG="usbnet"rn" > /dev/ttyUSB2

返回如下则成功切换为ECM模式:

root@epc356x-devel:/home/zlg# cat /dev/ttyUSB2 & root@epc356x-devel:/home/zlg# echo -e "AT+QCFG="usbnet"rn" > /dev/ttyUSB2 +QCFG: "usbnet",1OK

配置PDP:

//运营商为电信 echo -e "AT+CGDCONT=1,"IP","CTNET"rn" > /dev/ttyUSB2 //运营商为联通 echo -e "AT+CGDCONT=1,"IP","3GNET"rn" > /dev/ttyUSB2 //运营商为移动 echo -e "AT+CGDCONT=1,"IP","CMNET"rn" > /dev/ttyUSB2

拨号:

echo -e "AT+QNETDEVCTL=1,1,1rn" > /dev/ttyUSB2

获取IP地址:

udhcpc -i usb0

测试网络连通性:

ping www.baidu.com

Q&A

Q1 拨号失败/获取不到IP可按如下步骤进行排查:

1. 模块未配置为QMI模式:检查模块的拨号模式是否正确配置,使用如下命令查看拨号模式。

cat /dev/ttyUSB2 & echo -e "AT+QCFG="usbnet"rn" > /dev/ttyUSB2

若返回+QCFG: "usbnet",1 则为ECM拨号模式,如果使用QIM拨号则需执行如下命令切换回QMI拨号模式:

echo -e "AT+QCFG="usbnet",0rn" > /dev/ttyUSB2

2. 驱动未加载或存在其他冲突在确认好模块插好,天线接上,sim卡状态(可正常上网)的情况下,排查驱动加载情况。使用dmesg命令查看是否有以下内核打印:在QMI模式下驱动默认自动加载GobiNet驱动, 如需切换为QMI_WWAN驱动,可移除/usr/lib/modules/5.10.110/kernel/drivers/net/usb/GobiNet.ko后重新上电启动。可根据应用场景选择所需的驱动。

[ 17.794334] usb 5-1: new high-speed USB device number 2using xhci-hcd [ 17.930536] usb 5-1: New USB device found, idVendor=2c7c, idProduct=0125, bcdDevice= 3.18 [ 17.930575] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0[ 17.930588] usb 5-1: Product: Android [ 17.930601] usb 5-1: Manufacturer: Android [ 18.081294] option 5-1:1.0: GSM modem (1-port) converter detected [ 18.082787] usb 5-1: GSM modem (1-port) converter now attached to ttyUSB0 [ 18.085663] option 5-1:1.1: GSM modem (1-port) converter detected [ 18.087365] usb 5-1: GSM modem (1-port) converter now attached to ttyUSB1 [ 18.090730] option 5-1:1.2: GSM modem (1-port) converter detected [ 18.092486] usb 5-1: GSM modem (1-port) converter now attached to ttyUSB2 [ 18.094562] option 5-1:1.3: GSM modem (1-port) converter detected [ 18.096265] usb 5-1: GSM modem (1-port) converter now attached to ttyUSB3 [ 18.098028] find the interface for QUECTEL_VENDOR [ 18.239528] GobiNet: Quectel_Linux&Android_GobiNet_Driver_V1.6[ 18.271607] GobiNet::GobiNetDriverBind in 88, out 5[ 18.273915] GobiNet 5-1:1.4 usb0: register'GobiNet' at usb-xhci-hcd.0.auto-1, GobiNet Ethernet Device, 02:26:e6:16: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 -m 0  --------------------------------  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           |         primary port: 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 mode of operation: csps-2  --------------------------------  SIM      |            dbus path: /org/freedesktop/ModemManager1/SIM/0
    firmware revision: EC20CEHCLGR06A05M1G  4G模块的固件版本,由4G模块厂家维护signal quality: 80% (recent)  4G信号质量,百分比值越大,信号越好。如果为0%,请检查天线连接、SIM卡状态(是否欠费、或者卡座接触不良、松动)等情况。state: registered  SIM卡注册正常operator name: CHINA MOBILE  当前注册的运营商CHINA MOBILE为中国移动

4. 网络配置异常情况一般使用quectel-CM拨号时会自动获取IP,但如果获取不到IP,可尝试手动获取IP地址。

udhcpc -i usb0 或者dhclient usb0

尝试ping一个外部服务器测试网络连通性:

ping 8.8.8.8

尝试ping 测试域名解析:

ping www.baidu.com

若ping 8.8.8.8正常,但上不了网,则检查DNS设置以及网关设置

DNS设置:

//添加如下: vim /etc/resolv.conf ...nameserver 8.8.8.8

检查网关、路由配置:

ip route route -n 如果没有默认网关,可以手动添加: ip route add default via <gateway-ip> 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?rn" > /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,0rn" > /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            sleep 2            echo "Try again" >> $LOG_FILE            continue        fi        quectel-CM -s >> $LOG_FILE 2>&1 &        sleep 3        ping 8.8.8.8 -W 1 -c 1 > /dev/null        if [[ $? -ne 0 ]];then        sleep 1             killall quectel-CM             continue      else        echo "ec20 startup success." >> $LOG_FILE        break;      fi     done}
case"$1" in start)        ec20_start        sleep 1        ;;stop)    killall quectel-CM    ;;restart)    # First stop the service    $0 stop    # Then start the service again    $0 start;;  *)    echo "Usage: $0 {start|stop|restart}"    exit1esacexit0

给脚本添加执行权限:

sudo chmod +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 -m 0  --------------------------------  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           |         primary port: 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 mode of operation: csps-2  --------------------------------  SIM      |            dbus path: /org/freedesktop/ModemManager1/SIM/0

从以上信息中获取到primary port端口号为ttyUSB2,使用以下命令创建4G网络连接:

sudo nmcli con add type gsm ifname ttyUSB2 con-name test-ec20-con apn "cmnet" ipv4.method auto ipv6.method ignore

启动连接

sudo nmcli c up test-ec20-con

停止连接

sudo nmcli c down test-ec20-con

查看连接状态

sudo nmcli c show test-ec20-con

测试网络连接

ping www.baidu.com

设置开机自动连接

sudo nmcli con modify test-ec20-con connection.autoconnect yes

设置断线自动重连(默认已启用)

sudo nmcli con modify test-ec20-con connection.autoconnect-retries 5

 

5G工业物联网边缘计算智能网关

EPCM3568系列

5G链接

多协议

工业级

云平台

 

致远电子

致远电子

广州致远电子股份有限公司成立于2001年,注册资金5000万元,国家级高新技术认证企业,广州市高端工控测量仪器工程技术研究开发中心,Intel ECA全球合作伙伴和微软嵌入式系统金牌合作伙伴。

广州致远电子股份有限公司成立于2001年,注册资金5000万元,国家级高新技术认证企业,广州市高端工控测量仪器工程技术研究开发中心,Intel ECA全球合作伙伴和微软嵌入式系统金牌合作伙伴。收起

查看更多

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录