一、AT通用上网过程
网络初始化流程 一般情况如下
1、先上电复位模块;
2、间隔一直发送 AT\r 等待模组响应,表示模组启动,并且调试好了波特率;
3、发送AT+CPIN?\r 测试卡是否插好;
4、发送 AT+CSQ\r 查询信号质量,只有信号质量在 17-31 之间,模块才能稳定工作;
5、间隔发送AT+CGATT?\r 查询网络状态,直到返回为 1 表示附着了网络,如果一直没附着,卡肯定停机了;
6、发送 AT+CSTT=“CMNET”,“”,“”\r 设置 APN,不同的卡或者不同的供应商 APN 可能不同,需要询问对应供应商,也可以设置为””,让模块自己注册,APN 如果不清楚,可以天线为空:AT+CSTT=“”,“”,“” \r,让模块自动处理;
7、发送 AT+CIICR\r 激活网络,这个命令只能发一次,并且等待时间最长 30 秒;
8、发送 AT+CIFSR\r 查询是否获取到 IP;
如果获取到 IP 表示模块网络正常了,就表示初始化正常,可以创建其他的网络连接。如果其中某一步一直错误,可以复位模块,重新初始化。发的命令的间隔和次数,根据业务来定即可,不用太过于频繁。
二、PPP Device的介绍
PPP Device 软件包,是 RT-Thread 针对不同模块的 lwIP PPP 功能实现的软件包。它使蜂窝模块不再需要发送 AT 命令,使用 PPP 方式即可实现网络数据传输。
PPP Device 软件包特点如下:
1.支持多种蜂窝模块;
2.无缝兼容多种应用层网络协议(HTTP、MQTT、TLS 等);
3.支持数据差错检测,提供可靠数据传输;
4.提供 CHAT 方式初始化功能,方便设备移植;
目前 PPP 功能支持 Luat Air720,Quectel EC20,China mobile M6312, SIMCOM SIM800 模块,后续会接入更多蜂窝模块。
框架图
1.ppp_device 软件包是 lwIP 协议栈中 ppp 功能针对不同设备的具体实现;
2.ppp_device 软件包中实现 netdev 网卡设备,并对接 SAL 抽象层,应用层可直接使用 BSD Socket API 进行网络编程;
依赖
1.RT-Thread 3.1.0+
2.lwIP 组件( ppp 功能)
PPP Device 软件包相关配置选项介绍
三、工程添加软件包
添加 PPP Device软件包,并进行配置。
目录结构
直接保存,退出。
编译,发现报错,提示如下:
../packages/ppp_device-v1.1.0/src/ppp_device.c:52:2: error: #error "tcpip stack is too small, should greater than 2048."
52 | #error "tcpip stack is too small, should greater than 2048."
按照要求修改即可
使用的串口3 ,需要增加串口3的驱动,如下:
重新编译,编译通过,下载到开发板。
参考:<Core-Air724 AT 固件用户手册>