以下内容摘抄自互联网:

ppp拨号 与 at命令的疑问

GPRS模块在Linux平台上ppp拨号上网总结与心得

以PPP拨号实现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模块联网的疑问的更多相关文章

  1. sim900GPRS模块ppp拨号上网

    --------------------------------------------- 主机操作系统:Centos 6.5 交叉编译器环境:arm-linux-gcc-4.5.4 开发板平台: F ...

  2. linux下利用GPRS模块发短信、打电话

    一.开发环境     内核版本:linux-3.0    开发板:FL2440(nandflash:K9F1G08 128M)    GPRS模块:SIM900   二.与发短信和拨号相关的 AT 指 ...

  3. GSM/GPRS模块 AT指令集C语言编程——基于有方M660+和MSP430单片机

    GSM/GPRS芯片是手机中负责收发短信.拨打电话以及访问GPRS网络的核心器件.有方M660+为深圳有方公司生产的一款超小封装的GSM/GPRS工业无线模块,可以提供高品质的语音.短信.数据业务等功 ...

  4. Linux-C实现GPRS模块发送短信

    “GSM模块,是将GSM射频芯片.基带处理芯片.存储器.功放器件等集成在一块线路板上,具有独立的操作系统.GSM射频处理.基带处理并提供标准接口的功能模块.GSM模块根据其提供的数据传输速率又可以分为 ...

  5. linux下GPRS模块的应用程序

    ---------------------------------------------------------------------------------------------------- ...

  6. 0710 mux协议的作用(ppp拨号时如何和gprs进行at指令交互)

    ppp拨号使gprs上网的同时如何和gprs模块进行at指令的交互,这是一个问题. 在linux中,ppp拨号上网是内核中支持的,只需要在内核配置中选上. ppp拨号的方式使gprs进行上网与at指令 ...

  7. GPRS模块在Linux平台上ppp拨号上网总结与心得

    linux平台的ppp拨号上网,(注明:这里只谈命令行拨号,用linux就要习惯和熟练使用命令行) 在网上常见的有三种方式:1.使用智能的ppp拨号软件wvdial:参考案例:本博客的<使用wv ...

  8. 树莓派实现SIM868 ppp拨号上网

    环境:raspbian-stretch(2018-06-27) 树莓派:3代B型 SIM868模块具有GPRS数据传输功能(2G网络),但是模块是通过AT指令控制的,在树莓派上用AT指令控制会非常不方 ...

  9. SIM7600CE TCP/IP连接与PPP拨号上网 4G上网

    SIM7600CE联网测试分为两部分: 1.TCP/IP连接 2.PPP拨号上网 实验环境:ubuntu-meta 16.04 硬件:树莓派3B,SIM7600CE 上网卡:移动的NB-IOT物联网卡 ...

随机推荐

  1. 树形DP入门学习

    这里是学习韦神的6道入门树形dp进行入门,本来应放在day12&&13里,但感觉这个应该单独放出来好点. 这里大部分题目都是参考的韦神的思想. A - Anniversary part ...

  2. css3实现左右锯齿效果

    要实现的效果:css3实现左右锯齿效果 <!DOCTYPE html> <html> <head> <meta charset=" utf-8&qu ...

  3. iOS自定义遮盖

    @interface TGCover : UIView+ (id)cover;+ (id)coverWithTarget:(id)target action:(SEL)action; - (void) ...

  4. iOS——数据安全

    在移动互联网快速发展的今天,iOS应用直接运行在用户的手机上,与运行在服务器后台服务相比,更有可能被黑客攻击. a.网络安全: 1.1 安全地传输用户密码 事先生成一对用于加密的公私钥,客户端登录的时 ...

  5. 三节课MINI计划第五周

    一.任务及干货 二.作品 (一)小组分工 (二)社群运营方案

  6. [学习笔记] Blender 模型编辑-挤出

    按TAB键进入模型编辑模式,再次按TAB键退出编辑模式. 或者在菜单按 Modeling 也会进入编辑模式. 进入编辑模式之后,会显示如下额外的工具栏: 下面分别对应点.线.面三种选择方式:选择了两个 ...

  7. wxPython之BoxSizer

    1 函数原型 sizer = wx.BoxSizer( integer orient ) 其中的方向(orient)可以是 wx.VERTICAL(垂直) 或 wx.HORIZONTAL(水平). 将 ...

  8. 乐字节Java反射之四:反射相关操作

    大家好,乐字节小乐继续为Java初学者讲述Java基础知识.上次说到乐字节Java反射之三:方法.数组.类加载器,这次是Java反射之四:反射相关操作 1.操作属性 //1.获取Class对象 Cla ...

  9. Ctrl+Tab

    很好用的快捷键. 可以在浏览器中自由切换,也可以在编辑器中自由切换.

  10. SpringBoot(二)启动原理

    SpringBoot自动配置模块 该配置模块的主要使用到了SpringFactoriesLoader,即Spring工厂加载器,该对象提供了loadFactoryNames方法,入参为factoryC ...