嵌入式GPS由GPRS接入Internet的实现

[11-20 17:13:22]   来源:http://www.88dzw.com  嵌入式系统   阅读:8681

文章摘要:3.1.1 uip与PPP的接口 当PPP协议从网络接收到一个IP包时,把它放入到uip_buf中,系统调用uip_input()函数。此函数将处理这个包,在需要时会调用应用程序。当uip_input()返回时,uip_buf中放入了一个输出包,包的大小由全局变量uip_len约束,若uip_len为0,则说明没有包要发送,否则,PPP将此包加上PPP包头发送到网上。3.1.2 uip与应用的接口uip使用基于事件的编程模式,在响应一定的事件时,应用被当作uip调用的一个C函数UIP_APPCALL来实现,故在应用中要设置#define UIP_APPCALL appcomm,在uip中的标志

嵌入式GPS由GPRS接入Internet的实现,标签:嵌入式系统开发,嵌入式开发,http://www.88dzw.com

3.1.1 uip与PPP的接口

  当PPP协议从网络接收到一个IP包时,把它放入到uip_buf中,系统调用uip_input()函数。此函数将处理这个包,在需要时会调用应用程序。当uip_input()返回时,uip_buf中放入了一个输出包,包的大小由全局变量uip_len约束,若uip_len为0,则说明没有包要发送,否则,PPP将此包加上PPP包头发送到网上。

  3.1.2 uip与应用的接口

  uip使用基于事件的编程模式,在响应一定的事件时,应用被当作uip调用的一个C函数UIP_APPCALL来实现,故在应用中要设置#define UIP_APPCALL appcomm,在uip中的标志uip_flags用于uip与应用之间的联系,在接收到数据、数据发送成功、建立了新的连接或数据被重发时,uip调用应用,应用根据uip_flags标志进行相应的处理。

  3.2 PPP协议的实现

  PPP是运行在硬件接口之上的,它提供LCP、PAP和IPCP协商所需要的合适的机制。这些协商由被PPPEntery()函数调用的固定的状态机执行,它基于接受到的内容建立响应。而PPPReceived()函数,对接收到的每个字节进行转义处理,当一个完整的PPP帧准备好要处理时,PPPReceived()设置整帧标示Isframe,此标志在应用主循环中被PPPEntery()函数轮询。PPP包格式如图1所示:

嵌入式GPS由GPRS接入Internet的实现

  图1 PPP包格式

  PPP模块在RAM中定义了两个缓冲区InBuffer[] 和OutBuffer[]分别存储从PPP来的包或向外输出的包,该缓冲区是全局的。为了建立点对点链路通信,在拨号成功连接后,GGSN发送LCP设置包,以便设定和测试数据链路,在链路建立以后,LCP可选设备才可以被认证,本系统拒绝所有的设置并请求(REQ)PAP方式验证。然后,进行PAP验证用户名和密码过程,在GPRS中用户名和密码都为空,如果验证成功,GGSN会返回IPCP报文,分配动态IP地址。此时,就完成了与GGSN的协商过程。协商完成后,进入IP数据报通信阶段[4]。根据应用的不同,IP报文可以携带UDP报文,也可以携带TCP或ICMP报文,本系统为了数据的可靠传输,采用TCP报文传输数据。此时,GPS终端向GGSN发送的所有包含IP报文的PPP报文都会被传送给Internet网中相应的IP地址,此处为GPS监控中心的IP地址。中心向GPS终端IP地址发送的数据也会经过GPRS网传送到GPS终端上,从而实现GPS终端与远程中心主机通过互联网传送数据。PPP协商过程如图3所示[5]:

嵌入式GPS由GPRS接入Internet的实现

  3.3 GPRS Modem命令及串口读写

  3.3.1 GPRS Modem 命令

  若想通过GPRS Modem拨号上网,建立PPP连接,就必须先对其进行配置,本系统中设置上网用到的主要的AT命令有一下两个:

  1.transmit(AT+CGDCONT=1,IP,CMNET n,25); 传送此命令到GPRS Modem,以设置中国移动GPRS节点服务器的APN名称和属性,如果设置成功则返回“OK”,出错返回“ERROR”。其中“CMNET”是登陆GPRS网的缺省APN.

  2.transmit(ATD*99***1#rn,13);此命令拨通中国移动的GPRS节点服务器,如果设置成功,则返回“CONNECT”,出错返回“ERROR”。程序可以根据返回值做相应处理。

  3.3.2 串口读写API

  GPS多任务实时操作系统中提供了对串口读写的API函数,本系统在用户初始化时采用信号触发方式来读取串口,具体的串口API的应用如下所述:

  1. 打开串口

PORT __y * _pUserPort;  //其中_pUserPort为定义的串口变量
_pUserPort = (PORT __y *)UART_Open(¶mcom);
if (_pUserPort)
  {
    PORT_SignalWhenDataAvailable(_pUserPort, 1, ISYS_ThisTaskId());

上一页  [1] [2] [3]  下一页


Tag:嵌入式系统嵌入式系统开发,嵌入式开发嵌入式系统

《嵌入式GPS由GPRS接入Internet的实现》相关文章