2G模块如何实现内置协议栈上网

本文介绍了如何利用2G模块内置的TCP/IP协议栈实现上网功能,包括AT指令交互、网络连接的初始化步骤,如设置APN、激活移动场景、获取IP等。此外,还探讨了数据发送与接收的两种方式以及连接管理和关闭操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前一阵之做了一个2G模块作客户端通过内置协议栈上网的项目,我只负责库文件,业务层的实现是由别人完成的。这里想就过程中遇到的问题做个总结,算是学习笔记。

注:以下内容都是本人在工作过程中的自己思考和向前辈工程师们讨教的结果,若有侵权,请与我联系。


首先想说一下什么是内置协议栈。说白了就是模块内部已经集成了TCP/IP协议栈,开发者只需要调用模块供应商提供的AT指令接口就可以实现数据的收发。就像调用标准的LINUX库函数一样,fread就能从一个文件描述符指向的地方读取到数据。

顺带一提外置协议栈。一般指在操作系统中通过ppp的方式拨号上网,应用程序进程和内核中的ppp进程交互,建立数据链路层通道,协商IP协议,协商传输层协议(具体请查阅ppp拨号上网的流程)。拨号成功之后,开发者利用标准的socket编程接口,就可以实现网络进程间的数据传输。

之所以没用外置协议栈的方法,是因为2G模块只有一个串口,既接收AT指令,又用来做数据收发,这样造成的问题是:在拨号成功后,该串口上走的都是ppp协议封装的数据,模块将不能识别应用程序发送的AT指令(将拨号进程kil

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值