当前位置: 首页 > >

单片机与GPRS模块通讯开发的注意事项

发布时间:

单片机微控制器以其体积小、功耗低、使用方便等特点,广泛应用于各种工业、 民用的嵌入式系统中;而随着互联网(Internet)的兴起与普及,使微控制器通 过互联网传送数据就变得非常有意义。 目前使微控制器上网的解决方案一般有两 种:一种是采用微控制器驱动网卡,通过以太网连接 Internet;另一种是使微控 制器直接驱动调*獾髌鳎∕ODEM)通过电话线向 ISP 拨号上网。这两种方案 的缺点在于都要使用有线的网络,无法应用于在边远地区或可移动系统中。 针对这一问题,提出一种基于 GPRS 的单片机上网的解决方案,即在单片机中实 并通过驱动 GPRS 模块经过 GPRS 无线网连接到 Internet 实现上网。 现 PPP 协议, 这种方案的优点在于:① 覆盖面广,适用于广大偏远地区;② 无线上网,适用 于可移动目标;③使用廉价的微控制器实现简单、成本低;④ 安装简便,维护 方便。 GPRS 技术及其特点 GPRS(General Packet Radio Service)是通用分组无线业务的简称,是在 GSM 基础上发展起来的一种分组交换的数据承载和传输方式。 与原有的 GSM 比较, GPRS 在数据业务的承载和支持上具有非常明显的优势:通过多个 GSM 时隙的复 用,支持的数据传输速率更高,理论峰值达 115kb/s;不同的网络用户共享同一 组 GPRS 信道,但只有当某一个用户需要发送或接收数据时才会占用信道资源。 这样,通过多用户的业务复用,更有效地利用无线网络信道资源,特别适合突发 性、频繁的小流量数据传输,很好地适应数据业务的突发性特点;GPRS 计费方 式更加灵活,可以支持按数据流量来进行计费;与无线应用协议(WAP)技术不 同,GPRS 能够随时为用户提供透明的 IP 通道,可直接访问 Internet 中的所有 站点和资源;采用信道复用技术,每一个 GPRS 用户都能够实现永远在线;另外, GPRS 还能支持在进行数据传输的同时进行语音通话等等,而且相对于短消息等 其它无线数据通信业务, GPRS 的价格优势比较明显。 目前, 我国移动推出的 GPRS 上网业务最高每千字节也只有 3 分钱,而且用户可以根据自己的需要,以月租、 包月等多种形式进一步降低 GPRS 通信的费用。 因此使用 GPRS 实现远程数据的传送是非常经济实用的,特别是对于不易架设有 线网络的边远地区和可移动装置。 硬件连接和 GPRS 模块设置 通过 GPRS 网进行数据传输一般需要使用 GPRS 模块。目前,GPRS 模块一般 是指带有 GPRS 功能的 GSM 模块,可以利用 GPRS 网进行数据通信。 其中比较流行的有法国 Wave 公司的 WISMO 系列和西门子公司的 S 系列等等。 WAVECOM 的 WISMO 模块接口简单、使用方便且功能非常强大 其中 GPRS 模块与单片机间是通过串行口进行通信的,通信速率最快可以达 到 115 200b/s。模块与控制器间的通信协议是 AT 命令集,其中大部分命令是符 合协议“AT command set for GSM Mobile Equipment (ME) (GSM 07.07 version 6.4.0 Release 1997)”的,但也有一些是 Wavecom 自己定义的 AT 命令。除了串 口发送(TX)、串口接收(RX)之外,微控制器与 GPRS 模块之间还有一些硬件 握手信号,如 DTR、CTS、DCD 等。 为了简化微控制器的控制,硬件设计时不要使用全部的硬件握手信号,而只使用

数据载波检测(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 CONT="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 网中间建立了许多相当于 ISP 的网关支持节点 (GGSN),以连接 GPRS 网与外部的 Internet 网。GPRS 模块可以通过拨 “*99***1#”登录到 GGSN 上动态分配到 Internet 网的 IP 地址。 其间 GPRS 模块 与网关的通信要符合点对点协议(Point to Point Protocol, PPP),其中身份 验证时用户名、密码都为空。使用 PPP 协议登录上之后,就可以通过 GGSN 接上 Internet 了。 软件整体结构 程序中的所有代码最好采用 C 语言编写,并采用分层的结构,从底到上分别 为:串口驱动层、GPRS 模块驱动层、PPP 协议层、IP 协议层、UDP 协议层与应用 层。上层函数的实现需要应用到底层函数,而底层函数的任务就是为上层函数提 供服务,最终完成应用层任务——传送数据。 驱动程序编写 首先是串行口驱动层。它实现打开串口、关闭串口、读串口数据、写串口数据 等函数。然后,在这些串口函数的基础上编写 GPRS 模块的驱动函数。单片机通 过串行口控制 GPRS 模块,进行拨号、设置等操作。控制的方法是采用 AT 命令。 在控制 GPRS 模块拨打移动梦网 GGSN 的登录号码“*99***1#”之后,GPRS 模块 就转入在线模式(On-Line)。此时单片机向串行口发送的所有数据都透明地传 送给了 GGSN,同样 GGSN 的回答也传回单片机的串行口。 当数据传送完成后,单片机需要通知 GPRS 模块结束会话,并从在线模式转* 通的命令模式,这可以通过置高 DTR 线完成。同时,如果线路由于异常断开,CD 线会回复到*常的低电*,所以处于在线模式下也要不断检测 CD 线是否处于高 电*。根据这些操作,可以编写 GPRS 驱动函数:初始化 GPRS 模块函数、拨号函 数、断开连接函数、检测是否处于在线状态函数。 这些底层的驱动函数将会使上层协议的编写很方便,更重要的是,它为我们提

供了一个驱动抽象层。当底层硬件做出改动的时候,只需要对底层的驱动函数进 行改动,而上层函数的代码不变。 PPP 协议的实现 由于移动梦网的 GGSN 与 GPRS 模块通信时遵循 PPP 协议, 所以要在单片机中 也实现一部分 PPP 协议才能与之对话。GPRS 模块在拨号后首先要与 GPRS 网关进 行通信链路的协商, 即协商点到点的各种链路参数配置。 协商过程遵守 LCP (Link Control Protocol) PAP Password Authentication Protocol) IPCP Internet 、 ( 和 ( Protocol Control Protocol)等协议。其中 LCP 协议用于建立、构造、测试链 路连接;PAP 协议用于处理密码验证部分;IPCP 协议用于设置网络协议环境,并 分配 IP 地址。协商机制用有限状态机的模型来实现。一旦协商完成,链路已经 创建,IP 地址已经分配就可以按照协商的标准进行 IP 报文的传输了。根据应用 的不同,IP 报文中可以携带 UDP 报文,也可以是 TCP 或 ICMP 报文。本系统正是 采用 UDP 报文传送数据信息的。数据传输完成之后,单片机会向 GGSN 发送 LCP 的断开连接报文,以终止网络连接。 PPP 协议的帧结构(图略)。单片机的串口中断接收程序首先以包起始和结 束符来判断是否有完整的 PPP 包,并对 PPP 包的内容进行校验,以确定数据包的 完整性和正确性。然后,在主循环中进入 PPP 报文解析模块。 登录 GGSN 的过程 系统的一个难点是单片机登陆 GPRS 网关(GGSN)并与网关通过 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 的协商过程。协商过程的状态转换如图 4 所示。 协商完成后进入 IP 数据报通信阶段。此时,单片机向 GGSN 发送的所有包含 IP 报文的 PPP 报文都会被传送给 Internet 网中相应的 IP 地址;而远端所有向 单片机 IP 地址发送的报文也都会经 GPRS 网传送到单片机上, 从而完成单片机与 远程主机通过互联网的数据传输。




友情链接: