嵌入式爱好者

嵌入式爱好者 门户 知识库 查看内容

4G问题排查思路

2024-7-31 19:23| 发布者: Espoir| 查看: 323| 评论: 0

类目:  >  知识库     文档编号: 1480

前言

4G模组常见的拨号方式分以下几种:

  • gobinet
  • qmi_wwan
  • AT command
  • ppp

在OKMX6ULX系列板子上,常用的模组是EC20和EC200N。其中EC20使用的是gobinet拨号,通过移远提供的quectel_CM进行拨号;EC200N使用的是AT拨号,需要调用fltest_4gCat1.sh脚本拨号。本文以移远的EC20和EC200N为例,介绍当4G无法使用的排查思路,其他模组也可参考。

一、4G无法使用的常见原因

4G无法使用最常见的原因有两种,一是模组没有正常工作;二是SIM卡相关的问题,尤其是物联网卡;

1.硬件问题

模组没有正常工作常见原因有:供电不正常、模组处于复位状态、天线没插好

2.SIM卡问题

常见原因有:SIM卡插反、SIM卡接触不良、物联网卡被锁卡、信号不好、无法注网、SIM卡欠费等

二、4G问题的排查思路

1.确认USB通信是否正常

首先要确保硬件正常,可以通过以下命令查看当前板子上有没有识别到USB设备。

$ lsusb
Bus 002 Device 005: ID 2c7c:6002
Bus 002 Device 001: ID 1d6b:0002
......

一般移远的模块pid都是2c7c,如果识别不到模组的pid,vid,检查以下内容:

  • 模组的供电是否正常
  • 模组的复位是否正常
  • 板子的USB外设是否为OTG主模式

常见几块模组的id如下:

EC20

 2c7c:0125

EC200N

 2c7c:6002

EC200A(默认不支持,下文介绍如何适配)

2c7c:6005

2.确认驱动是否正常

飞凌出厂的内核源码,已经适配了EC20、EC200。

其中EC20使用gobinet驱动,用户无需改动。驱动在内核源码当中的位置如下:

drivers/net/usb/GobiUSB/

一般来说,可以通过查看是否生成虚拟串口来判断驱动有没有正常加载。EC20系列会生成4个虚拟串口,EC200系列一般是3个虚拟串口。

EC20:

$ ls /dev/ttyUSB*
/dev/ttyUSB0  /dev/ttyUSB1  /dev/ttyUSB2 /dev/ttyUSB3

EC200N

$ ls /dev/ttyUSB*
/dev/ttyUSB0  /dev/ttyUSB1  /dev/ttyUSB2

对于EC20而言,使用gobinet拨号的情况下,没有生成虚拟串口也不会影响拨号,但是无法通过虚拟串口收发AT命令。但是对于EC200A、EC200N这种依赖AT拨号的模组,需要有虚拟串口才能拨号。.

**注意:**EC20使用/dev/ttyUSB2收发AT命令,EC200系列使用/dev/ttyUSB1收发AT命令

3.查看SIM卡是否正常识别

对于EC20,可以通过拨号的打印信息判断SIM卡是否正常识别,只不过具体不识别的原因,依然需要通过AT命令查看。EC20拨号的部分打印信息如下,当SIMStatus显示为SIM_READY时,SIM卡正常识别,如果显示SIM_ABSENT,说明SIM卡识别失败;

root@fl-imx6ull:~# quectel-CM &
[1] 598
......
[04-26_19:16:07:106] requestGetSIMStatus SIMStatus: SIM_READY
......
[04-26_19:16:07:869] /etc/udhcpc.d/50default: Adding DNS 222.222.222.222
[04-26_19:16:07:869] /etc/udhcpc.d/50default: Adding DNS 222.222.202.202

同时,也可以通过AT命令来查看SIM卡状态(EC200N只能通过AT查看,注意EC200N使用的虚拟串口是/dev/ttyUSB1)

$ cat /dev/ttyUSB2 & //打开串口回显 
$ echo AT > /dev/ttyUSB2 //发送AT返回OK说明4G模块正常通信 
$ echo ATE0 > /dev/ttyUSB2 //关闭回显,减少无用打印信息
$ echo AT+CPIN? > /dev/ttyUSB2 //查询sim卡状态,显示ready说明SIM卡识别正常 

如果返回CMD+err code,常见的有两种

CME ERROR: 10 SIM not inserted
CME ERROR: 13 SIM failure

4.查看信号质量

可以通过AT命令查信号质量

$ cat /dev/ttyUSB2 & //打开串口回显 
$ echo AT > /dev/ttyUSB2 //发送AT返回OK说明4G模块正常通信 
$ echo ATE0 > /dev/ttyUSB2 //关闭回显,减少无用打印信息
$ echo AT+CSQ > /dev/ttyUSB2 //查信号质量

信号质量的返回值格式如下:

+CSQ: 25,99

信号值的范围在0-31之间,一般25以上信号就没什么问题,低于25就有拨号失败的可能。如果信号质量不好,可以检查一下天线是否插好。

5.查看注网状态

注网状态指的是模块与基站之间建立连接,可以用我们比较熟悉的方式做一个简单的类比:注网相当于是手机状态栏的信号值,注网成功才有信号;而拨号相当于是打开了数据上网的开关。因此,4G模组如果注网失败,也是不能上网的。

$ cat /dev/ttyUSB2 & //打开串口回显 
$ echo AT > /dev/ttyUSB2 //发送AT返回OK说明4G模块正常通信 
$ echo ATE0 > /dev/ttyUSB2 //关闭回显,减少无用打印信息
$ echo AT+CGREG? > /dev/ttyUSB2 //查注网状态

返回值的格式为

如果返回0,1说明注网正常,手册描述如下

<n> 	0 	Disable network registration unsolicited result code
        1 	Enable network registration unsolicited result code +CGREG:<stat>
        2 	Enable network registration and location information unsolicited result code
            +CGREG: <stat>[,<lac>,<ci>[,<Act>]]
<stat> 	0 	Not registered, MT is not currently searching an operator to register to .The UE is	in GMM state GMM-NULL or GMM-				DEREGISTERED-INITIATED. The GPRS service is disabled, the UE is allowed to attach for GPRS if requested by the user.
        1	Registered, home network .The UE is in GMM state GMM-REGISTERED or GMM-ROUTING-AREA-UPDATING-INITIATED INITIATED on 			the home PLMN.
        2 	Not registered, but MT is currently trying to attach or searching an operator to register to. The UE is in GMM state 			 GMM-DEREGISTERED or GMM-REGISTERED-INITIATED. The GPRS service is enabled, but an allowable PLMN is currently not 				available. The UE will start a GPRS attach as soon as an allowable PLMN is available.
        3 	Registration denied. The UE is in GMM state GMM-NULL. The GPRS service is disabled, the UE is not allowed to attach 			for GPRS if requested by the user.
        4 	Unknown
        5 	Registered, roaming

三、特殊情况处理

1.虚拟串口无法cat

当虚拟串口无法cat时,如下:

$ cat /dev/ttyUSB2 &
[2] 893
$ 
[2]+  Done                    cat /dev/ttyUSB2

需要确认该串口设备是不是被其他进程占用了,可以使用fuser命令查看

$ fuser /dev/ttymxc2
/dev/ttyUSB2:          884

2.在内核当中添加4G模组的虚拟串口

以EC200A为例,EC200A的id如下:

2c7c:6005

在内核当中,添加虚拟串口需要把模组的pid和vid添加到如下文件当中

drivers/usb/serial/option.c

具体步骤可以参考《虚拟串口支持》文档。

3.专网卡怎么使用

SIM卡分为专网卡和公网卡,公网卡支持APN自动纠正,专网卡需要设置APN。

设置APN的方法如下:

$ cat /dev/ttyUSB2 & //打开串口回显 
$ echo AT > /dev/ttyUSB2 //发送AT返回OK说明4G模块正常通信 
$ echo AT+CGDCONT=,,\"cmiot\",,> /dev/ttyUSB2 //设置APN

已解决

未解决

只是看看

最新评论

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2025-4-22 09:56

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部