关于PPP拨号 和 AT指令实现GPRS模块联网的疑问
以下内容摘抄自互联网:
问:
我刚接触GPRS,了解AT指令方式如何实现的GPRS网络通信,但对PPP拨号不太了解,有以下问题:
1)ppp拨号与用at命令实现gprs网络通信有什么区别?ppp拨号完成的哪一步骤?
2)看了一些资料,ppp拨号是不是只是联网,自己还要按TCP或UDP编写socket,实现网络通信?
3)一般目前的使用gprs模块的产品采用哪一种开发的方式?在嵌入式linux项目开发中,这两种方式如何进行选择?
4)3G模块开发上与之有哪些区别?
我看资料来理解这两种方式使用协议栈不同,ppp是外置协议栈,AT命令一般把tcp/ip协议栈内嵌到模块处理软件中。
对嵌入式linux系统而言ppp协议在内核中加载,还要加自动拨号处理。但之后还要做哪些工作,如数据收发是否要写socket或经处理后发送,其流程如何就不清楚了。
at命令是gprs模块通过RS232与系统进行数据交互,底层不需要做处理。
但两者的优缺点,并不太了解。
答1:
1)ppp拨号与用at命令实现gprs网络通信有什么区别?ppp拨号完成的哪一步骤?
先通过AT命令,让设备激活PDP,然后PC切换到数据模式,由操作系统发起PPP协商,获取IP地址和鉴权,然后就可以上网了。
2)看了一些资料,ppp拨号是不是只是联网,自己还要按TCP或UDP编写socket,实现网络通信?
拨号已经不需要你自己做了,因为已经建立了Modem的通道,就等于插上网线了,其他的自己的功能自己玩。
3)一般目前的使用gprs模块的产品采用哪一种开发的方式?在嵌入式linux项目开发中,这两种方式如何进行选择?
不明白你啥意思,基本上都采用Modem拨号即可。
4)3G模块开发上与之有哪些区别?
没有区别,都是上网,功能复杂了一些,你根据需要选择,如果只是上网,基本上没有变化。
答2:
1)ppp拨号与用at命令实现gprs网络通信有什么区别?ppp拨号完成的哪一步骤?
ppp拨号处理实现at的方式,还虚拟出了网卡,让网络通信标准化。
2)看了一些资料,ppp拨号是不是只是联网,自己还要按TCP或UDP编写socket,实现网络通信?
ppp只是做到网卡这一步,通信还需要socket编程。
3)一般目前的使用gprs模块的产品采用哪一种开发的方式?在嵌入式linux项目开发中,这两种方式如何进行选择?
linux我觉得用ppp比较好。可以使编程结构简单,移植好。当然如果程序特别特别小,还是可以用at的
4)3G模块开发上与之有哪些区别?
对于ppp来说,才不管你3G, 2G.这就是好处。
中国移动在GPRS网中建立了许多相当于ISP的GPRS网关支持结点(GGSN),以连接GPRS网与外部的Internet网络。要使用GPRS功能首先要登录GPRS网络中的GGSN,这个工作可以通过相关AT命令完成。
登录的基本过程如下:通过AT+CGATT=?命令检查MC35i是否附着GPRS,返回0为未附着,返回1为已附着。若没有附着,则发送AT+CGATT=1命令进行附着。"AT+CGDCONT=1,IP,CMNET"定义PDP(分组数据协议)上下文,其中1为PDP上下文标识,IP表明将要传输的数据包类型为IP数据包,CMNET为中国移动的GPRS网关;ATD*99***1#命令进行数据拨号,其中1与上面的PDP上下文标识对应。在上述AT命令正常执行后,MC35i就登录到GPRS网络。但由于MC35i没有TCP/IP协议栈,控制器必须自行处理相关的协议解析工作才能进行数据传输。为了能够进行IP数据包的传输,就必须首先实现数据链路层PPP协议。
以PPP拨号实现GPRS与因特网的数据通信的具体实现流程:
1、GPRS 模块的ECHO关闭,MCU发送ATEOV1到GPRS模块。
2、完成接入初始化:AT+CGDCONT=1,“IP”,“CMNET”。
3、呼叫CMNET:ATD*99***1#。
4、MODEN返回正确的CENNECT信息。
5、终端主动发送LCP数据包(REQ,ACK,Reject)进行链路协商,据服务器ISP提供商的 不同可能也有不同
ISP发生的选项若终端不接爱,则返回Reject
服务器ISP发送LCP(Request)终端ACK则无需拒绝Reject;
任何一方接受请求时发ACK,不处理NAK数据包
不可链路则重复发送(程序和MCU机制完成)直至连接成功
6、LCP配置成功进入PAP认证,目前中移动用明文密码认证身份,认证通过读取SIM卡信息来完成身份认证,以电话号码来识别用户名和密码,因此发送用户名和密码的数据包可以为NULL。
7、PAP通过以后需要进行IP协调配置(IPCP),选项3配置(IP地址)而网关与DNS配置信息可省略,发送NAK选项3配置,发00.00.00.00到服务器,返回终端目前的IP,
这一IP可用否,要看CMNET的设置
若CMNET将局域网内部直接路由关闭后,可以通过PC+GPRS方式利用PING测试,测试通过则可用。
否则就要进行IP地址和端口的映射转换后才可进行通讯。
8、IPCP通过后,要有相关NCP协议进行网络层协议的选择TCP/IP或UDP,进行数据传输。本方案之中,可以无需考虑相关的网络层数据传输协议
9、模式转换,无需中断连接的前提下GRRS的数据模式――― AT Command状态使用 +++命令切换,若切回数据状态输入ATO到CMS91 GPPRS MODULE。
10.中断GPRS 的PPP连接,可用LCP包完成///或用AT Command状态的ATH指令挂断目前的连接。
11. GPRS接到INTERNET后,信道正在通信时,任何外来的呼叫都会没有响应。
若无数据传输,这时呼叫信息可达GPRS MODULE ,由于MODULE 此时,在数据状态,在没有使用MULTIPLEX情况下只能通过RING脚得到信息,MCU如要处理过个呼叫可切换到AT Command状态。
wen的d
关于PPP拨号 和 AT指令实现GPRS模块联网的疑问的更多相关文章
- sim900GPRS模块ppp拨号上网
--------------------------------------------- 主机操作系统:Centos 6.5 交叉编译器环境:arm-linux-gcc-4.5.4 开发板平台: F ...
- linux下利用GPRS模块发短信、打电话
一.开发环境 内核版本:linux-3.0 开发板:FL2440(nandflash:K9F1G08 128M) GPRS模块:SIM900 二.与发短信和拨号相关的 AT 指 ...
- GSM/GPRS模块 AT指令集C语言编程——基于有方M660+和MSP430单片机
GSM/GPRS芯片是手机中负责收发短信.拨打电话以及访问GPRS网络的核心器件.有方M660+为深圳有方公司生产的一款超小封装的GSM/GPRS工业无线模块,可以提供高品质的语音.短信.数据业务等功 ...
- Linux-C实现GPRS模块发送短信
“GSM模块,是将GSM射频芯片.基带处理芯片.存储器.功放器件等集成在一块线路板上,具有独立的操作系统.GSM射频处理.基带处理并提供标准接口的功能模块.GSM模块根据其提供的数据传输速率又可以分为 ...
- linux下GPRS模块的应用程序
---------------------------------------------------------------------------------------------------- ...
- 0710 mux协议的作用(ppp拨号时如何和gprs进行at指令交互)
ppp拨号使gprs上网的同时如何和gprs模块进行at指令的交互,这是一个问题. 在linux中,ppp拨号上网是内核中支持的,只需要在内核配置中选上. ppp拨号的方式使gprs进行上网与at指令 ...
- GPRS模块在Linux平台上ppp拨号上网总结与心得
linux平台的ppp拨号上网,(注明:这里只谈命令行拨号,用linux就要习惯和熟练使用命令行) 在网上常见的有三种方式:1.使用智能的ppp拨号软件wvdial:参考案例:本博客的<使用wv ...
- 树莓派实现SIM868 ppp拨号上网
环境:raspbian-stretch(2018-06-27) 树莓派:3代B型 SIM868模块具有GPRS数据传输功能(2G网络),但是模块是通过AT指令控制的,在树莓派上用AT指令控制会非常不方 ...
- SIM7600CE TCP/IP连接与PPP拨号上网 4G上网
SIM7600CE联网测试分为两部分: 1.TCP/IP连接 2.PPP拨号上网 实验环境:ubuntu-meta 16.04 硬件:树莓派3B,SIM7600CE 上网卡:移动的NB-IOT物联网卡 ...
随机推荐
- centos6.8 ssh 问题
xshell用ROOT不能登录 需要把 /etc/ssh/sshd_config 中的端口新建一个 不能用默认的
- html的css背景图的repeat
HTML里background-image中,可以设置background-repeat实现平铺,前面博文中关于css样式换行的(相关博文:超文本css样式换行),其中有个三个div组合的,中间的di ...
- pytest文档20-pytest-html报告优化(添加Description)
前言 pytest-html测试报告默认是不展示用例描述Description内容,之前用unittest生成的报告是可以展示用例的描述,也就是test开头的用例下三个引号里面的注释(docstrin ...
- 图像Resize中0.5像素中心对齐的问题
目录 0.5像素对齐的问题 0.5像素对齐的问题 1. 问题提出 在进行图像缩放时,偶尔会看到一些比较奇怪的代码,其中有一个就是0.5像素中心对齐的问题,例如在OpenCV线性插值的代码中有类似如下操 ...
- webpack官网demo起步中遇到的问题
在webpack官网demo一开始搭建中
- 用户字符串操作,这里面包括字符串的decode、encode、substract等等操作
工具类描述:用户字符串操作,这里面包括字符串的decode.encode.substract等等操作 package cn.hgnulb; import java.io.UnsupportedEnco ...
- 【ZOJ】4012 Your Bridge is under Attack
[ZOJ]4012 Your Bridge is under Attack 平面上随机n个点,然后给出m条直线,问直线上有几个点 \(n,m \leq 10^{5}\) 由于共线的点不会太多,于是我们 ...
- java输入输出 -- Java NIO之套接字通道
一.简介 前面一篇文章讲了文件通道,本文继续来说说另一种类型的通道 – 套接字通道.在展开说明之前,咱们先来聊聊套接字的由来.套接字即 socket,最早由伯克利大学的研究人员开发,所以经常被称为Be ...
- Java基础---Java常量
常量:在程序运行期间不变的量 分类: 类型 含义 数据举例 整数常量 所有整数 0,1, 567, -9 小数常量 所有小数 0.0, -0.1, 2.55 字符常量 单引号引起来,只能写一个字符, ...
- PPT 中用 LaTeX 插入公式、PowerPoint 中用 LaTeX 插入公式(4)
步骤: 1. 安装 CTex 2. 安装 IguanaTex >> 下载链接1:官网 >> 下载链接2:复制链接到迅雷或IDM下载很快 3. 将「IguanaTex_v1_56 ...