本帖最后由 xiangxistu 于 2019-9-27 15:06 编辑
PPP 拨号上网是一种有别于解析 AT 命令实现联网的一种新的联网方式。
最近看在折腾 4G 模块 Air720,网上一查,发现在RT-Thread已经实现了它的适配,项目地址是:
packages.rt-thread.org/itemDetail.html?package=ppp_device (复制到浏览器打开)
TIM截图20190927150546.jpg (230.46 KB, 下载次数: 0)
下载附件
2019-9-27 15:05 上传
整体用下来资源占用还是不错的,速度比直接使用 AT 命令透传上网快多了,跟大家简单分享下:
-----------------------------------------------------
PPP 实现的原理,还有应用场景
1. PPP 连接的五个阶段
1.1 PPP链路建立准备阶段
使RF射频模块接入指定的APN,并且配置PDP上下文,并拨号;接入无线信号
物理连接,UART<->UART ETH<->ETH USB<->USB;准备进行初始化,并准备发送LCP数据包
1.2 链路建立阶段
LCP控制连接,LCP协议相互交换配置数据建立连接,一旦一个配置成功信息包(Configure-Ack packet)被发送且被接收,就完成了交换,进入了LCP开启状态。
此阶段之前,所有的非LCP数据包都将被丢弃。而重复接收LCP配置数据包将忽略当前状态,直接返回到链路建立阶段;
1.3 认证阶段
认证不缺省的话,认证是不可缺少的分为PAP方式和CHAP方式。
1.4 网络层协议阶段
此阶段确认网络协议,每一个网络层协议(例如IP协议、IPX协议、Appletalk)必须单独由相应的NCP配置。
1.5 链路终止阶段
PPP连接可以随时终止,原因可能是载波丢失、认证失败、连接质量失败、超时计数器溢出,或者网络管理员关闭连接。
LCP通过交换连接终止包来终止连接。
所以在实现 PPP 连接方便需要借助 lwIP 里 ppp 相关协议的帮助,来实现链路的创建和连接。以及监控链路状态,设置链路状态回调函数,数据的收发。
2. 对于想使用 PPP 方式连接网络的需求,是针对满足 PPP 协议的 GPRS 模块。
由于GPRS 模块都会支持 AT 命令,所以使模块进入 PPP 模式 这段过程仍然需要少量 AT 命令的帮助,这些 AT 命令的作用一般是:
+++ 从数据模式退出进入命令模式 ATH 挂断拨号 AT 测试命令 ATE0 关闭回显 ATD*99# 拨号命令 AT+CGDCONT=1,"IP","CMNET" ISP 的接入点名称,主要指 "CMNET"的更改
嗯嗯, 确实挺好用的。ENV工具配置很贴心,移植的代码量也不大。
一周热门 更多>