赞
踩
EC20官网的DataSheet管控比较严重,需要用心搜索一下文档资料或者找厂商或卖家去要。
想要把模块用起来,硬件设计指导手册、AT指令手册和TCP/IP应用指导,三个手册必不可少。
最重要的电源设计就不用说了,硬件按照官方文档参考进行设计即可。
主要说一下软件如何控制:
必要的几个IO:
EC20烧录、调试接口
主串口Rx、Tx
复位控制IO
(单独)电源控制IO
PowerKey引脚
其它如SPI、I2C、ADC、SDIO、RTS/CTS等模块,用不到的都可以浮空。
一般的,一个模块的开机、关机和复位,三种操作都是需要符合时序的,都要去对应的硬件设计手册去参考如何实现。
如EC200U模块,开机时序就需要拉低2s以上,再拉高(再严谨一点,电源拉低一段时间再拉高,再将PowerKey引脚拉低2s)。
模块启动成功之后,会主动吐 “RDY” 消息给主串口。
如果需要上电自动开机,可以直接下拉,注意下拉电阻的阻值按照官方来。
复位控制引脚拉低生效,一般在初始化时就直接赋高电平。
官方文档已经给出了“使用TCP/IP AT命令的流程”,可以参考着来。
流程表述:
1. 上电先开机,等待模块吐"RDY",进入就绪
2. 就绪之后,先执行查询命令,如CSGN | CCID | QLTS 用于同步模块信息
3. 查询SIM卡状态
4. 查询网络交换业务状态
5. 配置场景并激活
6. 打开socket网络
7. 进行socket网络数据交互
其中3,4,5命令,如果多次失败,建议直接重启模组,或者重新开机。
6、7命令,可以多次尝试连接。
重新打开socket网络时,必须要先关闭才能再打开。
重新激活场景时,也必须要先反激活才能再打开。
socket网络打开时,根据自己的需求选择对应的模式:
缓存模式需要手动读取数据;
只吐模式最常用;
透传模式要注意默认传输的是string类型数据还是hex格式数据,亦或者是hex字符串。
具体命令:
AT命令以“AT”开头,以‘\r’结尾。
超时时间一般以秒为单位,撰写发送接口时可以将传参设计为秒数。
1、查询IMEI
AT+CGSN
AT+CGSN
869523054669669OK
超时时间:300ms
2、查询ICCID
AT+QCCID
AT+QCCID
+QCCID: 89860425101950045915OK
超时时间:300ms
3、查询SIM卡状态
AT+CPIN?
AT+CPIN?
+CPIN: READYOK
超时时间:5s
返回参数:+CPIN: <code>
正常回复READY,SIM PIN/SIM PIN2 表示SIM卡上锁,SIM PUK/SIM PUK2表示需要密码
4、查询CS业务
AT+CREG?
AT+CREG?
+CREG: 0,0OK
AT+CREG?
+CREG: 0,1OK
超时时间:300ms
返回参数:+CREG: <n>,<stat>
查询网络注册状态,n表示回显信息的类型,0是默认;stat表示网络注册状态,1是注册成功,其它都可以认为是错误。
5、配置场景
AT+QICSGP=1,1,"CMNET","","",1
AT+QICSGP=1,1,"CMNET",""."",1
OK
输入参数:<id>,<ip_type>,<APN>,<username>,<password>,<APN_style>
id即场景ID,一般应用只会用到1个,即0;
ip类型,1表示IPV4,2表示IPV6,3表示IPV4/IPV6;
APN,表示接入点名称,“CMNET”表示中国移动,“UNINET”表示中国联通;
username和password,即用户名和密码;
APN_style,APN鉴权方式,默认用0。
6、激活场景
AT+QIACT=1
AT+QIACT=1
OK
超时时间:150s
注意1:如果150S超时或者激活失败,建议直接重启模组
注意2:重新激活场景之前,必须要先反激活场景,输入参数中的1表示场景ID。
7、反激活
AT+QIDEACT=1
AT+QIDEACT=1
OK
超时时间:40s,超时或者失败,建议直接重启模组
8、连接TCP
AT+QIOPEN=1,0,"TCP","mqtt.51gonggui.com",1883,1,1
AT+QIOPEN=1,0,"TCP","mqtt.51gonggui.com",1883,1,1
OK
+QIOPEN: 0,0
输入参数:<pdp_id>,<socket_id>,<socket_type>,<ip1/ip2>,<port>,<local>,<mode>
pdp_id,场景ID对应上面的场景配置ID;
socket_id,从0开始;
socket_type,TCP/UDP分别表示对应的客户端,服务端一般用的少;
ip1/ip2,可以是具体的ip地址,或者域名;
port,为远程端口号;
local,为本地端口号,从0开始;
mode,0表示缓存模式(收到数据通知后,需要手动去读取缓存),1是只吐模式(收到数据会直接通过主串口吐出来),2是透传模式(主串口收到的数据直接通过网络发出去,接收到的数据直接通过主串口吐出来)
但是,但是!!!透传模式默认传输的字符串类型数据,无法传输hex格式数据。(需要厂商修改和优化版本,,目前的量产版本仍是不支持的)
9、关闭TCP连接
AT+QICLOSE=0
AT+QICLOSE=0
OK
如果TCP主动连接失败或者连接断开,需要先手动关闭TCP连接,再尝试TCP连接;
如果持续的TCP连接失败,则需要反激活场景,在重新激活场景。
以上9条命令,都是联网处理过程中必要的命令。
此外还需要处理模块主动吐出来的消息:
+QIURC: “closed”
+QIURC: “recv”
+QIOPEN: 0,0
查询当前时间
AT+QLTS=2
+QLTS: "2022/07/19,22:13:16+32,0"OK
查询信号强度
AT+CSQ
+CSQ: 18,99OK
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。