移远4G模块调试笔记

移远4G模块调试笔记在项目中集成 4G 网络模块 便可远程实时监控仪器运行状态 收集仪器数据等功能 EC20 的 USB 接口符合 USB2 0 规范 支持高速 480Mbps 和全速 12Mbps 模式 该接口可用于 AT 命令传送 数据传输 GNSSNMEA 输出 软件调试 软件升级和 USB 语音

前言:

        在项目中集成 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,不建议用边缘值电压,电压波动会造成模块工作不稳定。

移远4G模块调试笔记

         

        工作指示灯如下表所示:

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 调制解调器,网络拔号设备节点

移远4G模块调试笔记

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 only echo -e "AT+QCFG=\"NWSCANMODE\",2,1\r\n" >/dev/ttyUSB2 //设置3G WCDMA only echo -e "AT+QCFG=\"NWSCANMODE\",1,1\r\n" >/dev/ttyUSB2 //设置2G GSM only echo -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卡 

移远4G模块调试笔记

       

        信号强度值正常范围为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 

        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

移远4G模块调试笔记

        注意:所提供的解决方案只是有可能解决问题,并不绝对。

7.调试注意事项(4G模块与SIM卡)

       1.使用方法:直接放入使用

        2.注意事项:

                1)SIM卡会绑定模块,一旦使用就不能换

                2)一个月可以解绑一次,需要后台操作

                3)需要跟模组商确定模块固件(搜网机制因卡不同)

        3.调试方法

                1)先确定硬件,用手机卡测试模块

                2)再确定固件,用物联SIM卡调试模块固件

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231715.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 原地算法矩阵置0_矩阵归一化处理

    原地算法矩阵置0_矩阵归一化处理给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。进阶:一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最好的解决方案。你能想出一个仅使用常量空间的解决方案吗?示例 1:输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]示例 2:输入:matrix

    2022年8月9日
    6
  • 基于Auto.js的萌猫跳辅助

    基于Auto.js的萌猫跳辅助许久不见,甚是想念被学长唤醒的博客魂ing…这次是一个失去时效性的小脚本,但是其中包括一些东西或许对你们可以有帮助撒一些要点因为Auto.js并没有直接的对于触控位置的监听,所以需要对安卓API进行调用2.涉及对于画布的使用importClass(android.graphics.PorterDuffXfermode);importClass(android.graphics.PorterDuff);constBG_COLOR=colors.parseColor(“#2d

    2022年6月6日
    43
  • oh my zsh配置_setlanguage?lang=classic-zh-cn

    oh my zsh配置_setlanguage?lang=classic-zh-cn什么是Shell?相对于内核来说,Shell是Linux/Unix的一个外壳,它负责外界与Linux内核的交互,接收用户或其他应用程序的命令,然后把这些命令转化成内核能理解的语言,传给内核,内核是真

    2022年8月5日
    6
  • 安卓中listview的使用步骤_安卓listview控件的用法

    安卓中listview的使用步骤_安卓listview控件的用法1)排序ListView通过适配器得到内容数据,可以对数据list先排序再提供给ListView:privateList>getData(){List>list=newArrayList>();//addData…//对list进行排序if(!list.isEmpty()){Collections.sort(list,newComparator&g…

    2022年9月28日
    4
  • MySQL最全整理!西安java培训机构排名榜

    MySQL最全整理!西安java培训机构排名榜MySQL为何不选择平衡二叉树既然平衡二叉树解决了普通二叉树的问题,那么mysql为何不选择平衡二叉树作为索引呢?索引需要存储什么让我们想一想,如果我们要把索引存起来,那么应该存哪些信息呢,它应该存储三块信息:索引的值:就是表里面索引列对应的值。数据的磁盘地址(通过磁盘地址找到当前数据)或者直接存储整条数据。子节点的引用:我们需要从根节点往下走,所以需要知道左右子节点的地址。根据这三点,可以有如下大致的一个简单的结构图:上图中数字表示的是索引的值,0x开头的表示磁盘地址,根

    2022年9月25日
    3
  • css中的clear_html clear用法

    css中的clear_html clear用法之前一直不明白clear的意义何在,一直以为clear就是去掉元素本身都浮动属性(即float:none)。最近再次接触到clear才弄明白clear的本来意义。下面直接看实例:1.没有清除浮动.div1{float:left;

    2025年11月1日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号