查看EC20基本信息
执行命令systemctl start ModemMnager 启动ModemManager
执行命令mmcli -m 0查看模块的基本信息
执行AT命令时需要将该服务关掉,因为该服务会不断的连接USB端口导致串口命令无法正常打开。
使用端口
通信使用的是USB端口,当连接模块并加载 USB 驱动成功后,在 /dev 目录下将会创建出几个 tty 设备节点
其中 ttyUSB0 为模块的 DM 端口,ttyUSB1 为 GPS NMEA 数据输出端口,ttyUSB2 为 AT 指令通信端口,ttyUSB3 为 PPP 连接端口。
lsof /dev/ttyUSB2 检查是否有其他进程使用端口
串口交互工具
-
- picocom -b 115200 /dev/ttyUSB2 打开终端就可以输入at命令
退出终端命令Ctrl +a+x
- busybox microcom -s 115200 /dev/ttyUSB2 打开终端就可以输入at命令
退出终端命令Ctrl+x
AT命令
通用AT指令
AT 测试指令,返回 OK。
ATE0 关闭回显,返回 OK。(ATE1 为开启模块回显), 输入的命令是否能在屏幕打印。
AT+CGMM 查询模块型号,返回 EC20。
AT+CGMR 查询软件版本号,返回如 EC20CEQAR02A03E2G_BETA1126。
AT+CGSN 查询产品 IMEI 序列号,返回如 864977045287475。
AT+CCLK? 获取网络时间,返回格式详见参考手册。
(注意此处返回的时间是基站本地时间,可能需要自己转换成北京时间)
AT+CPIN? 查询 SIM 卡状态,返回 READY 表示该 SIM 没有设定锁定模式。
AT+QCCID 获取 SIM 卡号。返回格式详见参考手册。
AT+CIMI 获取 IMSI 号,即国际移动用户识别码。
AT+QPOWD 模块关机。
AT+COPS? 返回当前SIM卡的相关信息, 格式如下:
+COPS: <mode>[,<format>[,<oper>][,<Act>]]
<stat> 0 —— 未知 1 —— 位操作员可用 2 —— 当前操作员 3 —— 禁止操作员 <oper> 符合<mode>格式的运算符 <mode> 0 —— 自动模式。 <oper>字段被忽略 1 —— 手动操作员选择。 <oper>字段应存在,并且可选 2 —— 手动从网络注销 3 —— 仅设置<format>(对于AT + COPS?Read Command),不要尝试注册/取消注册(<oper>和<Act>字段将被忽略)。 该值在读取命令的响应中无效。 4 —— 手动/自动选择。 将显示|字段。 如果手动选择失败,进入自动模式(<mode> = 0) <format> 0 —— 长格式字母数字<oper>,最长16个字符 1 —— 短格式字母数字<oper> 2 —— 数字<oper>。 GSM位置区域识别号码 <Act> 选择了访问技术。 值3、4、5、6仅在读取响应中出现 MS处于数据服务状态且不适用于AT + COPS写入时的命令 0 —— GSM 2 —— UTRAN 3 —— GSM W/EGPRS 4 —— UTRAN W/HSDPA 5 —— UTRAN W/HSUPA 6 —— UTRAN W/HSDPA and HSUPA 7 —— E-UTRAN 100 ——CDMA |
AT+COPS=? 返回支持的stat,运营商的长名称,短名称,FDD-LTE以及Act
网络连接 AT 指令
AT+CREG? 查询网络是否注册成功,成功返回 OK。
AT+QICSGP=xxx 配置 TCP/IP 环境,成功返回 OK。
AT+QIACT=1 激活 TCP/IP 环境,成功返回 OK。
AT+QIOPEN=1,0,"TCP","ip",port,0,2 建立 TCP 连接(透传模式),连接成功返回 CONNECT。
AT+QIOPEN=1,2,"UDP SERVICE","127.0.0.1",0,3030,1 创建 UDP 服务器。成功返回 OK。
AT+QISEND=2,len,"ip",port UDP 准备发送数据指令,收到 ">" 后将数据发送出去,发送成功收到 SEND OK。
AT+QICLOSE=0/2 关闭连接(此处的0/2是连接号,由之前的 AT+QIOPEN 指令开启)。
短信收发
AT+CPMS? 查询短信存储区。
AT+CNMI=1,2,0,1,0 选择如何接收短信息。
AT+CSCA? 查询短信服务中心地址。
AT+CMGF=1 设置短信发送为文本格式(Text mode),如果设为 0,
则表示 PDU 编码格式。
AT+CMGS="13450231024" 准备发送短信,收到 ">" 后填入短信内容,按 Ctrl-Z(0x1A)发送短信,取消发送按 Ctrl+ESC(0x1B)。
AT+CMGR=0 读取相对应序号的短信。
AT+CMGD=1 删除短信,只能逐条删除。
ATI 显示产品标识信息
AT+GMI,AT+CGMI 获取制造商
AT+GMM , AT+CGMM 申请TA模型识别, 和查型号差不多
AT+GMR , AT+CGMR 请求软件版本的TA修订标识
AT+GSN , AT+CGSN 获取模块IMEI号, IMEI号,即国际移动设备识别码(International Mobile Equipment Identity,IMEI),通常所说的手机序列号,移动通信设备都会有一个IMEI号,就像身份证
AT&F 将所有当前参数设置为制造商默认值
AT&V 显示当前配置
AT&W 保存设置, 将当前参数存储到用户定义的配置文件
AT&Z 将所有当前参数设置为用户定义的配置文件, 该命令以非易失性方式将当前AT命令设置恢复到用户定义的配置文件内存(如果之前已将它们存储在AT&W中)。 同一命令行上的任何其他AT命令,可能会被忽略
ATQ 设置结果代码演示模式, 此参数设置确定TA是否将任何结果代码发送到TE。 信息文字以响应方式传输不受此设置影响
ATV TA响应格式 该命令确定与AT命令结果代码一起发送的标题和尾部的内容和信息回复。
结果代码,它们的数字等效形式以及每种用法的简要说明在列表中列出
A/ 该命令重复上一个AT命令行,“ /”充当行终止符。
ATS3 设置命令行终止符
该命令确定模块识别的字符以终止传入的命令行。 它还为结果代码和信息文本以及通过ATS5设置的字符值生成。
ATS4 设置响应格式字符
该命令确定模块为结果代码和信息文本生成的字符,以及通过ATS3设置的命令行终止字符。
ATS5 设置命令行编辑字符
该命令确定模块用来删除紧靠其前的字符值,AT命令行中的字符(即等于退格键)。
AT+CFUN 设置电话功能, AT+CFUN=1,1 重启模块。
AT+CFUN=? 列出所有功能对应序号
AT+CFUN? 查询当前设置的电话功能,返回的是fun的值
AT+CFUN=<fun>[,<rst>] 设置电话功能
<fun>
0 —— 最低功能
1 —— 完整功能(默认)
4 —— 禁止ME发送和接收RF信号
<rst>
0 —— 将ME设置为功能级别之前,请勿重置ME。当未给出时,这是默认设置。
1 —— 重置ME。 复位后,该设备可以正常使用。 该值仅用于 = 1
AT+CMEE 错误讯息格式
AT+CMEE=? 列出支持的功能
AT+CMEE? 查看当前设置
AT+CMEE=<n> 设置错误讯息格式
0 —— 禁用结果代码
1 —— 启用结果代码并使用数值
2 —— 启用结果代码并使用详细值
AT+CSCS 选择字符集, AT指令集支持三种字符集,分别是GSM,IPA与UCS2字符集
AT+CSCS? 查看当前字符集
AT+CSCS=? 查看支持的字符集
AT+CSCS=<charset> 设置字符集
串口控制命令
AT&C 设置数据载波检测模式
1 表示总是开启数据载波检测功能
0 表示仅在有数据载体的情况下才打开
AT&D 设置DTR功能模式
该命令确定在数据模式期间,如果DTR线路从低电平更改为高电平,UE将如何响应。
AT&D[\value>]
<value>
0 —— TA忽略DTR上的状态
1 —— DTR上的低→高:在保持连接的呼叫的同时切换到命令模式。
2 —— DTR上的低→高:断开数据调用,然后更改为命令模式。 当DTR处于高级别时,自动应答功能已禁用。
AT+IFC 设置TE-TA本地数据流控制
AT+IFC=? 列出支持的设置
AT+IFC? 查看当前设置
AT+IFC=<dce_by_dte>,<dte_by_dce> 设置值
<dce_by_dte> 指定TE从TA接收数据时将使用的方法
0 —— 无
2 —— RTS流量控制
<dte_by_dce> 指定TA从TE接收数据时将使用的方法
0 —— 无
2 —— CTS流量控制
AT+ICF 设置TE-TA控制字符框
AT+ICF=? 查询支持的设置
AT+ICF? 查看当前设置
AT+ICF=[<format>,[<parity>]] 设置
<format>
3 —— 8 数据 0 奇偶校验 1 停止
<parity>
0 —— 奇数
1 —— 偶数
AT+IPR 设置波特率
AT+IPR=? 支持列表
AT+IPR? 查询当前波特率
AT+IPR=<> 设置波特率
状态控制命令
AT+CPAS 移动设备活动状态。
AT+CPAS=? 查看支持的状态
AT+CPAS TA返回ME的活动状态<pa>
<pa>
0 —— 准备Ready
3 —— 响 Ringing
4 —— 正在通话或保持通话 Call hold
AT+CLCC是列出当前呼叫列表
树莓派重启4G模块命令
raspi-gpio set 10 op dh
sleep 0.5
raspi-gpio set 10 op dl
拨号
pppd call 脚本名称
pppd /dev/ttyUSB3/ call 1-1.4 unit 0
/etc/ppp/peers/
脚本内容
921600
logfile logpath
debug
connect 'chat -v -f /etc/ppp/scripts/chat_EX25_1-1.4'
disconnect 'chat -v -f /etc/ppp/scripts/disconnect_EX25_1-1.4'
modem
lock
noauth
noipdefault
defaultroute
usepeerdns
noproxyarp
novj
novjccomp
nobsdcomp
nodeflate
nomagic
idle 95
active-filter 'inbound'
persist
holdoff 1
maxfail 5
connect-delay 1000
连接脚本chat_EX25_1-1.4
ABORT "BUSY"
ABORT "VOICE"
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT "NO DIAL TONE"
ABORT "ERROR"
"" \rAT
TIMEOUT 1
"OK-+++\c-OK" ATH0
TIMEOUT 45
OK at+cgdcont=4,"IP","3gnet"
OK "\d\d\d"
"" "atd*99***4#"
CONNECT "\c"
断开脚本disconnect_EX25_1-1.4
ABORT "BUSY"
ABORT "VOICE"
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT "NO DIAL TONE"
"" BREAK
"" "+++ATH"
拨号成功后添加ppp0网络接口
AT+CSQ
获取信号强度,返回 0-31,返回 99 为无信号。
Value RSSI dBm Condition
0 -113 Marginal
1 -112 Marginal
2 -109 Marginal
3 -107 Marginal
4 -105 Marginal
5 -103 Marginal
6 -101 Marginal
7 -99 Marginal
8 -97 Marginal
9 -95 Marginal
10 -93 OK
11 -91 OK
12 -89 OK
13 -87 OK
14 -85 OK
15 -83 Good
16 -81 Good
17 -79 Good
18 -77 Good
19 -75 Good
20 -73 Excellent
21 -71 Excellent
22 -69 Excellent
23 -67 Excellent
24 -65 Excellent
25 -63 Excellent
26 -61 Excellent
27 -59 Excellent
28 -57 Excellent
29 -55 Excellent
30 -53 Excellent
参考连接
https://getiot.tech/iot-module/quectel-ec20/
https://getiot.tech/linux-note/use-of-quectel-ec20-dialup-on-linux/
https://blog.csdn.net/ZHNEYU/article/details/126082256
https://blog.csdn.net/weixin_45121946/article/details/107032711
https://hacperme.com/posts/notes/2021-06-06-at_csq_in_dbm/