前言:
在项目中集成 4G 网络模块,便可远程实时监控仪器运行状态、收集仪器数据等功能。EC20的USB接口符合USB2.0规范,支持高速(480Mbps)和全速(12Mbps)模式。该接口可用于AT 命令传送、数据传输、GNSS NMEA 输出、软件调试、软件升级和USB语音。
系统:Ubuntu 16.04
交叉编译器:arm-linux-gnueabihf-gcc-4.9.4
Qt开发工具:qt-creator-5.12.8
目标机:TWCore-IMX6UL
目标机内核:linux 4.1.15
网络模块:4G-EC20
1. 4G 模块介绍
4G 模块如下图所示。4G 模块接口供电电压为DC-5V,EC20 芯片工作电压 3.3-4.3V,推荐工作电压 3.88V,不建议用边缘值电压,电压波动会造成模块工作不稳定。
工作指示灯如下表所示:
LED2 | 电源指示灯 | 正常供电亮红色 | |
LED1 | 模块状态指示灯 | 模块正常亮绿灯 | |
LED3 | 网络指示灯 | 慢闪(200ms 高/1800ms 低) | 找网状态 |
慢闪(1800ms 高/200ms 低) | 待机状态 | ||
快闪(125ms 高/125ms 低) | 数据传输模式 | ||
高电平 | 通话中 |
2. 4G 模块设备节点
EC20支持三种驱动:USB Serial Driver,GobiNet Driver,QMI WWAN Driver,本项目使用USB Serial Driver。
4G模块的驱动加载后,在/dev下生成三个设备节点:
ttyUSB1 | GPS数据通讯设备节点,用于GPS输出 |
ttyUSB2 | AT指令通讯设备节点 |
ttyUSB3 | 调制解调器,网络拔号设备节点 |
3. 4G 常用的AT指令
1)常用的AT指令
cat /dev/ttyUSB2 &echo -e "AT+QCCID\r\n" >/dev/ttyUSB2 //查询SIM卡echo -e "AT+CFUN=1,1\r\n" >/dev/ttyUSB2 //重启模块echo -e "AT+QSIMDET=1\r\n" >/dev/ttyUSB2 //开启SIM卡热插拔状态报告echo -e "AT+QSIMDET=1,1\r\n" >/dev/ttyUSB2 //开启SIM卡检测功能echo -e "AT+CSQ\r\n" >/dev/ttyUSB2 //查询信号强度echo -e "AT+QNWINFO\r\n" >/dev/ttyUSB2 //查询网络状态echo -e "AT+QCFG=\"NWSCANMODE\",3,1\r\n" >/dev/ttyUSB2 //设置4G LTE onlyecho -e "AT+QCFG=\"NWSCANMODE\",2,1\r\n" >/dev/ttyUSB2 //设置3G WCDMA onlyecho -e "AT+QCFG=\"NWSCANMODE\",1,1\r\n" >/dev/ttyUSB2 //设置2G GSM onlyecho -e "AT+QCFG=\"NWSCANMODE\",0,1\r\n" >/dev/ttyUSB2 //设置自动搜索网络
2)AT 配置及测试
cat /dev/ttyUSB2 &echo -e "AT+QSIMDET=1,1\r\n" >/dev/ttyUSB2 //开启SIM卡检测功能 本模块高电平有效echo -e "AT+CFUN=1,1\r\n" >/dev/ttyUSB2 //重启模块echo -e "AT+CSQ\r\n" >/dev/ttyUSB2 //查询信号强度echo -e "AT+QCCID\r\n" >/dev/ttyUSB2 //查询SIM卡
信号强度值正常范围为0~31,数值越大表示强度越强,强度值99表示无信号。
4. 4G 模块拨号前准备事项
1)解压EC20_4G模块资料(linux-ppp-scripts_V1.2.zip),将里面的文件拷贝至/etc/ppp/peers目录;其中,quectel-pppd.sh为拨号脚本,ip-up用于设置 DNS(域名系统)。
[root@TWDZ-RK356X:/etc/ppp/peers]# ls
ip-up quectel-chat-disconnect quectel-ppp-kill readme
quectel-chat-connect quectel-ppp quectel-pppd.sh
2)复制libIoTPlugin_c.so到/usr/lib目录下;
3)校准仪器上的时间;
4)开通卡流量套餐;
5. 4G模块拨号测试
1)禁用与模块冲突的eth0网卡;
2)AT查询信号强度是否正常;
3)执行移远提供的pppd配置脚本自动拨号;
4)拨号成功后生成ppp0网卡;
5)配置DNS;
6)ping外网;
6. 常见问题
1)4G 模块电源灯不亮
解决方案:更新其核心板的固件程序。
2)4G模块电源灯正常,但后台无法启动4G功能且无4G日志输出
解决方案:仪器上配置仪器ID,并在lot后台服务器激活本仪器ID,完成后重启4G模块。
3)/dev目录没有生成4G设备节点
解决方案:检查4G连接线接线顺序是否正确
4)后台日志循环打印错误“SSL peer certificate or SSH remote key was not OK”
解决方案:仪器上的时间与4G基站时间有误差(大于1天),需要校准仪器的时间。
5)后台日志循环打印错误“network not connect”
解决方案:请校正仪器上的时区为东八区。
6)4G不稳定,其它网卡获取动态IP后自动断开
解决方案:路由表的优先级(eth0 > 4g > wlan0)以及DNS影响到4G的稳定性,需要重新配置路由表及DNS,步骤如下。
A. 4G开启成功后,配置DNS以及4G默认静态路由。
执行命令“/etc/ppp/peers/ip-up”
执行命令“/sbin/route add default gw 10.64.64.64 dev ppp0”
B. 增加路由表心跳包(如30s),查询到有默认的eth0或wlan0路由,则删除默认eth0或wlan0路由,以及重新配置DNS。
执行命令“/sbin/ip route del default dev eth0”
执行命令“/sbin/ip route del default dev wlan0”
执行命令“/etc/ppp/peers/ip-up”
注意:所提供的解决方案只是有可能解决问题,并不绝对。
7.调试注意事项(4G模块与SIM卡)
1.使用方法:直接放入使用
2.注意事项:
1)SIM卡会绑定模块,一旦使用就不能换
2)一个月可以解绑一次,需要后台操作
3)需要跟模组商确定模块固件(搜网机制因卡不同)
3.调试方法
1)先确定硬件,用手机卡测试模块
2)再确定固件,用物联SIM卡调试模块固件