《单片机与GPRS模块通讯开发的注意事项.pdf》由会员分享,可在线阅读,更多相关《单片机与GPRS模块通讯开发的注意事项.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机与单片机与 GPRSGPRSGPRSGPRS 模块通讯开发的注意事项模块通讯开发的注意事项单片机微控制器以其体积小、功耗低、使用方便等特点,广泛应用于各种工业、民用的嵌入式系统中;而随着互联网(Internet)的兴起与普及,使微控制器通过互联网传送数据就变得非常有意义。目前使微控制器上网的解决方案一般有两种:一种是采用微控制器驱动网卡,通过以太网连接 Internet;另一种是使微控制器直接驱动调制解调器(MODEM)通过电话线向 ISP 拨号上网。这两种方案的缺点在于都要使用有线的网络,无法应用于在边远地区或可移动系统中。针对这一问题,提出一种基于 GPRS 的单片机上网的解决方案,
2、即在单片机中实现 PPP协议,并通过驱动 GPRS 模块经过 GPRS 无线网连接到 Internet 实现上网。这种方案的优点在于:覆盖面广,适用于广大偏远地区;无线上网,适用于可移动目标;使用廉价的微控制器实现简单、成本低;安装简便,维护方便。GPRSGPRSGPRSGPRS 技术及其特点技术及其特点GPRS(General Packet Radio Service)是通用分组无线业务的简称,是在 GSM 基础上发展起来的一种分组交换的数据承载和传输方式。与原有的 GSM 比较,GPRS 在数据业务的承载和支持上具有非常明显的优势:通过多个 GSM 时隙的复用,支持的数据传输速率更高,理论
3、峰值达115kb/s;不同的网络用户共享同一组 GPRS 信道,但只有当某一个用户需要发送或接收数据时才会占用信道资源。这样,通过多用户的业务复用,更有效地利用无线网络信道资源,特别适合突发性、频繁的小流量数据传输,很好地适应数据业务的突发性特点;GPRS 计费方式更加灵活,可以支持按数据流量来进行计费;与无线应用协议(WAP)技术不同,GPRS 能够随时为用户提供透明的 IP 通道,可直接访问 Internet 中的所有站点和资源;采用信道复用技术,每一个 GPRS 用户都能够实现永远在线;另外,GPRS 还能支持在进行数据传输的同时进行语音通话等等,而且相对于短消息等其它无线数据通信业务,
4、GPRS 的价格优势比较明显。目前,我国移动推出的 GPRS 上网业务最高每千字节也只有3分钱,而且用户可以根据自己的需要,以月租、包月等多种形式进一步降低 GPRS 通信的费用。因此使用 GPRS 实现远程数据的传送是非常经济实用的,特别是对于不易架设有线网络的边远地区和可移动装置。硬件连接和硬件连接和 GPRSGPRSGPRSGPRS 模块设置模块设置通过 GPRS 网进行数据传输一般需要使用 GPRS 模块。目前,GPRS 模块一般是指带有GPRS 功能的 GSM 模块,可以利用 GPRS 网进行数据通信。其中比较流行的有法国 Wave公司的 WISMO 系列和西门子公司的等等。今年进入
5、中国市场的意大利模块 Telit 也有不俗表现。其中 GPRS 模块与单片机间是通过串行口进行通信的,通信速率最快可以达到115 200b/s。模块与控制器间的通信协议是 AT 命令集,其中大部分命令是符合协议“AT command set for GSM Mobile Equipment(ME)(GSM 07.07 version 6.4.0 Release 1997)”的,Wavecom 的模块也有一些是 Wavecom 自己定义的 AT 命令。除了串口发送(TX)、串口接收(RX)之外,微控制器与 GPRS 模块之间还有一些硬件握手信号,如 DTR、CTS、DCD 等。为了简化微控制器的
6、控制,硬件设计时不要使用全部的硬件握手信号,而只使用数据载波检测(Data Carrier Detect,DCD)和终端准备(Data Terminal Ready,DTR)信号。DCD 信号可以检测 GPRS 模块是处于数据传送状态还是处于 AT 命令传送状态。DTR 信号用来通知 GPRS 模块传送工作已经结束。硬件连接完成后,在进行 GPRS 上网操作之前,首先要对 GPRS 模块进行一定的设置。主要的设置工作有:设置通信波特率,可以使用 AT+IPR=38400命令,把波特率设为38 400b/s 或其它合适的波特率,默认的通信速度为9600b/s。设置接入网关,通过 AT+CGD C
7、ONT=1,“IP”,“CMNET”命令设置 GPRS 接入网关为移动梦网。设置移动终端的类别,通过 AT+CGCLASS=“B”设置移动终端的类别为 B 类,即同时监控多种业务;但只能运行一种业务,即在同一时间只能使用 GPRS 上网,或者使用 GSM 的语音通信。测试 GPRS 服务是否开通,使用 AT+CGACT=1,1命令激活 GPRS 功能。如果返回 OK,则 GPRS 连接成功;如果返回 ERROR,则意味着 GPRS 失败。这时应检查一下 SIM 卡的 GPRS 业务是否已经开通,GPRS 模块天线是否安装正确等问题。中国移动在 GPRS 与 Internet 网中间建立了许多相
8、当于 ISP 的网关支持节点(GGSN),以连接 GPRS 网与外部的 Internet 网。GPRS模块可以通过拨“*99*1#”登录到 GGSN上动态分配到 Internet 网的 IP 地址。其间 GPRS 模块与网关的通信要符合点对点协议(Point to Point Protocol,PPP),其中身份验证时用户名、密码都为空。使用 PPP协议登录上之后,就可以通过 GGSN 接上 Internet 了。软件整体结构软件整体结构程序中的所有代码最好采用 C语言编写,并采用分层的结构,从底到上分别为:串口驱动层、GPRS 模块驱动层、PPP 协议层、IP 协议层、UDP 协议层与应用层
9、。上层函数的实现需要应用到底层函数,而底层函数的任务就是为上层函数提供服务,最终完成应用层任务传送数据。驱动程序编写驱动程序编写首先是串行口驱动层。它实现打开串口、关闭串口、读串口数据、写串口数据等函数。然后,在这些串口函数的基础上编写 GPRS 模块的驱动函数。单片机通过串行口控制 GPRS模块,进行拨号、设置等操作。控制的方法是采用 AT 命令。在控制 GPRS 模块拨打移动梦网 GGSN 的登录号码“*99*1#”之后,GPRS 模块就转入在线模式(On-Line)。此时单片机向串行口发送的所有数据都透明地传送给了 GGSN,同样 GGSN 的回答也传回单片机的串行口。当数据传送完成后,
10、单片机需要通知 GPRS 模块结束会话,并从在线模式转回普通的命令模式,这可以通过置高 DTR 线完成。同时,如果线路由于异常断开,CD 线会回复到平常的低电平,所以处于在线模式下也要不断检测 CD 线是否处于高电平。根据这些操作,可以编写 GPRS 驱动函数:初始化 GPRS 模块函数、拨号函数、断开连接函数、检测是否处于在线状态函数。这些底层的驱动函数将会使上层协议的编写很方便,更重要的是,它为我们提供了一个驱动抽象层。当底层硬件做出改动的时候,只需要对底层的驱动函数进行改动,而上层函数的代码不变。PPPPPPPPPPPP 协议的实现协议的实现由于移动梦网的 GGSN 与 GPRS 模块通
11、信时遵循 PPP 协议,所以要在单片机中也实现一部分 PPP协议才能与之对话。GPRS 模块在拨号后首先要与 GPRS 网关进行通信链路的协商,即协商点到点的各种链路参数配置。协商过程遵守 LCP(Link Control Protocol)、PAP(Password Authentication Protocol)和IPCP(Internet Protocol Control Protocol)等协议。其中 LCP协议用于建立、构造、测试链路连接;PAP 协议用于处理密码验证部分;IPCP 协议用于设置网络协议环境,并分配 IP 地址。协商机制用有限状态机的模型来实现。一旦协商完成,链路已经
12、创建,IP 地址已经分配就可以按照协商的标准进行 IP 报文的传输了。根据应用的不同,IP 报文中可以携带 UDP 报文,也可以是 TCP 或 ICMP 报文。本系统正是采用 UDP报文传送数据信息的。数据传输完成之后,单片机会向 GGSN 发送 LCP 的断开连接报文,以终止网络连接。PPP 协议的帧结构(图略)。单片机的串口中断接收程序首先以包起始和结束符来判断是否有完整的 PPP包,并对 PPP包的内容进行校验,以确定数据包的完整性和正确性。然后,在主循环中进入 PPP报文解析模块。登录登录 GGSNGGSNGGSNGGSN 的过程的过程系统的一个难点是单片机登陆 GPRS 网关(GGS
13、N)并与网关通过 LCP、PAP、IPCP 协议进行协商的过程。LCP、PAP 与 IPCP 协议的帧结构大同小异,最常用的为请求(REQ)、同意(ACK)和拒绝(NAK)三种帧。单片机与 GGSN 各为一方进行协商,任何一方都可以发送 REQ帧请求某方面的配制,另一方觉得配置不能接受会回应 NAK 帧,如果可以则回应ACK 帧。为了节省资源,我们只处理这三种数据帧,其它链路问题都由单片机在程序控制下自己重新拨号解决。协商过程大致描述如下:在拨号成功连接后,GGSN 首先会返回一个 PAP REQ数据帧。我们发送一个空 LCP REQ 帧,以强迫进行协议协商阶段。随后,GGSN 发送 LCP设置帧,我们拒绝所有的设置并请求验证模式。GGSN 选择 CHAP 或 PAP 方式验证,我们只接受 PAP方式。然后,进行 PAP 验证用户名和密码过程,在 GPRS 中用户名与密码都为空,如果成功,GGSN 会返回 IPCP 报文分配动态 IP 地址。此时,就完成了与 GGSN 的协商过程。协商完成后进入 IP 数据报通信阶段。此时,单片机向 GGSN 发送的所有包含 IP 报文的PPP 报文都会被传送给 Internet 网中相应的 IP 地址;而远端所有向单片机 IP 地址发送的报文也都会经 GPRS 网传送到单片机上,从而完成单片机与远程主机通过互联网的数据传输。
限制150内