摘要:以先进的精简指令(RISC)的ARM9 S3C2410X微处理器为核心,通用无线分组业务(GPRS)和全球移动通讯系统(GSM)模块等组成无线上网系统。通过对网络拨号功能的程序设计,并充分利用Qt/Embedded系统关于网络资源的特点,实现无线MODEM经GPRS连接到Internet的无线网络通信,为了使程序设计更加合理,本文将网络拨号分成两部分,即网络和拨号。经过在嵌入式Linux操作系统上验证测试,本设计既可较好地完成网络拔号功能,又可方便地应用在PDA等智能嵌入式系统中。
随着网络时代的深入,Internet己成为重要的基础信息设施,越来越多的设备需要接入Internet,对于PDA等一些嵌入式智能系统,实现无线通信是十分必要的。拨号上网方式是家用电器利用互联网实现智能化的途径之一,目前在接入网络的众多方式中,比较经济实用的方式是通过拨号连接ISP的接入模式。这种模式下使用的数据链路层协议主要是PPP。
本文分析了拨号上网的PPP协商过程,对网络拔号功能程序设计进行了深入研究,并在基于ARM9处理器为核心的嵌入式硬件平台上验证实现。
1 系统硬件平台的搭建
本文采用基于ARM920T内核的芯片S3C2410X,它是美国ARM公司推出的一款32位嵌入式RISC微处理器。该处理器主要面向手持式设备以及高性价比、低功耗的应用。
无线通信模块采用GPRS模块。wavecom Q2403A是一款基于GPRS网络传送数据的无线Modem,能够实现语音呼叫、短消息服务、数据传输等功能。Q2403A对用户提供了多种接口,包括电源接口、液晶显示器接口、SIM卡接口、充电器接口、耳机接口、麦克风接口,以及用于其他特殊目的的多种外围设备接口。Q2403A通过GPRS发送数据时的下载速度是26.8 Kb/s,上传速度为13.4 Kb/s。基于ARM微处理器的系统硬件结构如图1所示。
2 网络拨号连接过程
在众多接入网络的方式中,本文以GPRS为例,说明具体网络拨号连接过程。网络拨号接入Internet是使用PPP协议创建连接,利用GPRS进行数据传输的。其中PPP链路建立过程分为创建阶段、认证阶段和网络协商阶段。
(1)创建PPP链路
链路控制协议LCP(Link Control Protocol)负责创建链路。在这个阶段,将对基本的通信方式进行选择。
(2)用户验证
在这个阶段,客户端会将自己的身份发送给远端的接入服务器。该阶段使用一种安全验证方式避免第三方窃取数据或冒充远程客户接管与客户端的连接。在认证完成之前,禁止从认证阶段前进到网络层协议阶段。如果认证失败,认证者应该跃迁到链路终止阶段。
最常用的认证协议有口令验证协议PAP(Password Authentication Protoc01)和取得IP选项和IP地址IPCP(Internet Protocol Control Protocol)。
(3)调用网络层协议
认证阶段完成后,PPP将调用在链路创建阶段选定的网络控制协议NCP(Network Control Protocol)。选定的NCP解决PPP链路之上的高层协议问题。例如,在该阶段IP控制协议(IPCP)可以向拨入用户分配动态地址。
这样,经过三个阶段以后,一条完整的PPP链路就建立起来了。
3 网络拨号设计实现
本文选用嵌入式Linux操作系统,因为Linux自带TCP/IP协议,所以该系统省去了TCP/IP协议的移植。当系统上电后,首先启动Linux系统,建立主任务,进行串口和GPRS模块的初始化,然后通过串口信号线驱动Q2403A串口,通过AT指令集进行一系列串口参数设置,并附着与GPRS网络,拨号到GGSN,新建PPP任务进行数据链路层和网络层的协商,得到IP地址,完成上网过程。本文采用Qt作为网络拨号功能程序开发的基础。同时在功能架构设计方面,为了使程序更加合理,将网络拨号分成两部分,即网络(network.h和network.cpp)和拨号(dailup.cp-p)。它们之间的调用由network.h完成。关系类图如图2所示。
(1)network.h头文件定义了拨号请求结果和网络状态。
①请求结果定义如下:
②状态定义如下: