无线MODEM是为数据通信的数字信号在具有有限带宽的模拟信道上进行无线传输而设计的。它一般由基带处理、调制解调、信号放大和滤波、均衡等几部分组成。无线MODEM又名“无线调制解调器”,差别于传统modem之处在于调制后的信号是通过无线传输的。无线modem有2G和3G各种网络的,如GPRS、CDMA、EDGE、WCDMA、CDMA2000(EVDO)、TD-SCDMA等。
无线MODEM一般常见的接口有RS232串行口、USB口和PC卡式接口。
RS232串行口和USB口一般都是外置式, PC卡式是为内置式。直接插在标准的PCMCIA插槽中,可与用户终端设备接口直接连接就可以。
无线MODEM应用主要可分为两个部分:一种是GSM(CDMA)通讯模式,还有一种是TCP/IP通讯模式。现有的高端无线MODEM均能向下兼容GSM(CDMA)网络平台。
当中。GSM通讯方式主要有电路交换和短信通讯两种。前者电路交换主要应用于语音通讯,后者短信通讯相同类似于手机收发短信方式。
TCP/IP通讯方式是基于IP网络通讯的方式,无线MODEM基于IP网络通讯之前,首先要进行拔号过程,进行拔号过程时须要后台计算机(也可能是其他设备)软硬件资源支持。
Modem需依附于计算机操作系统(或者具有拔号功能设备)之上才干完毕拔号过程。获取到无线网络IP地址进行通讯。通常与计算机配合使用。
本文即是描写叙述无线modem的TCP/IP通讯模式拨号、获取IP地址、进而去建立TCP/IP连接的过程。
本文不涉及移动通信找网和注冊过程中的附着和PDP上下文激活等复杂过程,即如果GSM(CDMA)已经能够正常通讯的前提下以GPRS为例介绍用户在PC上进行拨号连接的过程。例如以下图是GSM无线modem的连接示意图。
1,无线网络连接的基本流程
无线网络连接的步骤为:
(i) PC端控制模块(如超级终端)通过接口(串口、USB或其它)AT指令集向无线模块发送控制命令,配置无线模块參数,进行一系列初始化,然后发送AT指令拨上中国移动GPRS的WAP网关;
(ii) PC端通过协议与GPRS的WAP网关进行三阶段协商建立连接链路。获得暂时分配的IP地址、DNS地址和暂时port号,拨号成功,无线模块就能够进行TCP/IP数据包传输,訪问GPRS网内的主机,完毕无线网络的连接。
利用AT命令无线模块拨号上网以及建立连接的流程图例如以下图所看到的。
2,AT 命令
AT命令集是调制解调器通信接口的工业标准。是调制解调器能够识别并运行的命令,计算机和单片机通过port(UART、USB等)对Modem发出对应的AT命令,调整Modem的工作方式。AT命令简单、easy掌握,使用它能够配置调制解调器,配合通信软件工作,与远端系统通信,发起或应答一个呼叫。使用AT命令设置调制解调器时,用户使用的通信软件必须提供一个到modem的直接连接状态,使用户能够从命令行输入所需的AT命令。如在WINDOWS下的“超级终端”。
AT指令在当代手机通讯中起着关键的数据,用户可以通过AT指令控制手机的很多行为。包含进行呼叫、拨叫号码、按键控制、短信、电话本、数据业务、补充业务、传真、GPRS等方面的控制。GSM07.07协议对AT指令做了具体的介绍,其定义的AT Command接口,提供了一种移动平台与数据终端设备之间的通用接口。
GSM模块提供的命令接口符合GSM07.07规范。在短消息模块收到网络发来的短消息时。可以通过串口发送指示消息,数据终端设备可以向GSM模块发送各种命令。
AT命令的语法是在每行命令的开头都必须有“AT”或者“at”作前缀。用输入<CR>来结束这个命令。"ATXX”及少量“AT十XXX”为V.25标准命令集;"AT+CXXX "为GSM标准所扩展的AT命令;"AT+SXXX”为SIEMENS定义扩展的AT命令。
发送AT指令时,应注意下面几点:
(1)每一个AT命令字符串的最后面必须加上CR(也就是键盘上的Enter键)字符,否则无线模块将不识别此命令。这个字符就是结束符;
(2)除了“A/”及“+++”命令外,其他的命令必须加上AT两个字符;
(3)命令字符串能够合成一个字符串后再一次送给调制解调器,但总的字符串长度不得超过40个字符,并且全部的字符必须一律大写或小写。
用AT命令设置无线模块的參数时。必须先要将命令写入串口,读取串口的应答数据来推断是否成功。一般命令发送成功时,模块会返回数据“OK",表示命令运行成功。假设没有成功,要继续发送命令,发送3次后还是没有成功,就又一次初始化串口。
对无线模块GPRS拨号上网,须要用到AT+CGDCONT和ATD这两条指令
1) AT+CGDCONT=l,"IP”,“CMWAP”
此命令用于设置GPRS接入网关。其中第二个数表示PDP (Packet Data Protocol)类型为:IP或PPP,第三个数表示接入网关为移动梦网。APN是CMWAP,表示中国移动网应用接口。
眼下仅仅有中国移动全球通卡才干够使用CMNET功能。而动感地带仅仅能使用CMWAP功能。
2) ATD *99***1#
ATD用于设置拨号方式。进行拨号。并设法进入在线(on-line)状态。与传统的电话线Modem相比較,ATD指令在GPRS中有些变化,採用例如以下两种格式:
格式一:ATD*99[*[<called address>][*[<L2P>][*[<cid>]]]]#
当中99是个服务码,也可用98的(见格式二),国内一般用99: <called address>是w.x.y.z格式的IP V4地址;<L2P>是用于TE和ME连接的Layer2协议或用于协议的Layer2协议;<cid>是PDP上下文的一个数字编号,用AT+CGDCONT命令创建,一般为1, 20。
格式二:ATD*98[*<cid>]#。含义同上。
举比例如以下:
ATD*99# //用服务码99建立一个连接
ATD*99* 123.124.125.126*PPP* 1#//用服务码99建立一个连接
HIP地址123.124.125.124, L2P=PPP//用CID 1, CID的值由AT十CGDCONT事先指定
ATD*99***1# //用服务码99建立连接,CID =1。其他用事先指定的值
ATD*98*1#//用服务码98建立一个IP连接,CID =1
国内最经常使用的是:ATD *99***1#,本文就採用了此种格式。用ATD指令若能拨号上线则返回“CONNECT",否则返回“NO CARRIER"。
这样,就完毕了拨号上GPRS网络的功能,即接收到无线模块返回的“CONNECT",说明无线模块已经连上了移动GPRS的WAP网关。然后GPRS MODEM就转入状态机,充当一个PPP server。之后即为通过三阶段协商建立链路的过程。
3,PPP协议
2G、3G无线modem拨号採用的是点对点协议(Point to Point Protocol, PPP)。
协议是为在同等单元之间数据传输包这种简单链路设计的链路层协议。这种链路提供全双工操作。并依照顺序传递数据包。其目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方式。协议提供了一整套方案来解决链路建立、维护、拆除、上层协议协商、认证等问题。协议包括下面几个部分:
.链路控制协议LCP (Link Control Protocol):LCP负责创建。维护或终止一次物理连接;
.网络控制协议NCP (Network Control Protocol):NCP是一族协议,负责解决物理连接上执行什么网络协议。以及解决上层网络协议发生的问题;
.认证协议,协议支持两种验证协议:口令验证协议PAP (PasswordAuthentication Protocol)和挑战握手验证协议CHAP (Challenge-Handshake AuthenticationProtocol)。
验证过程在协议中为可选项,在连接建立后进行连接者身份验证的目的是为了防止有人在未经授权的情况下成功连接,从而导致泄密。PAP是一种简单的明文验证方式,安全性较差。
而CHAP是对PAP的改进,是一种加密的验证方式,使用挑战口令以哈希算法对口令进行加密,用三次握手的方法周期性地检验对端的节点,长处在于密钥不在网络中传送,不会被窃听。本课题中採用的是挑战握手验证协议CHAP.
协议的基本工作过程可用下图所看到的的状态图来描写叙述。
① 从精巧状态開始。用户拨ISP号码。准备接入ISP。
② 路由器的Modem对拨号做出应答,并与用户的Modem建立一条物理连接。线路进入建立状态。
③ PC机向路由器发送一系列的LCP分组(封装成多个帧) ,协商參数。协商结束后进入鉴别状态。
④ 若通信的两方鉴别身份成功,则进入网络状态。
⑤ 開始配置网络层,NCP给新接入的PC机分配一个暂时的IP地址。
随后进入可进行数据通信的打开状态。
⑥传输数据结束后,NCP释放网络层连接,收回原来分配出去的IP地址。
接着,LCP释放数据链路层连接。就转到终止状态。最后释放物理层连接。载波停止后则回到精巧状态。
以下简要阐述连接建立主要经过的三个阶段,各自是LCP连接协商、CHAPpassword认证以及NCP网络层协议配置。
第一阶段:LCP连接协商
在这个阶段,将对主要的通讯方式进行选择。
链路两端设备通过LCP向对方发送LCP数据报配置请求(Configure-Request),对方允许接收后两方互发LCP数据报配置应答(Configure-Ack )。一旦一个配置成功信息包(Configure-Ack packet)被发送且被接收,就完毕了交换,进入LCP开启状态。
第二阶段:CHAPpassword认证
在这个阶段,client会将自己的身份发送给远端的接入server。
server向用户发PPP CHAP安全性认证挑战,接着用户给server送PPP CHAP安全性认证响应。server再向用户发送 PPP CHAP安全性认证成功。
该阶段使用一种安全验证方式避免第三方窃取数据或冒充远程客户接管与client的连接。
在认证完毕之前。禁止从认证阶段前进到网络层协议阶段。
假设认证失败,认证者应该跃迁到链路终止阶段。
第三阶段:NCP网络层协议配置
认证阶段完毕之后,将调用在链路创建阶段(阶段一)选定的各种网络控制协议(NCP )。选定的NCP解决链路之上的高层协议问题,比如,在该阶段IP控制协议(IPCP)能够向拨入用户分配动态IP地址。 在这个阶段,先是用户向server发送PPP NCP网络控制数据包(网络协议配置。要求server提供IP地址和DNS,信息),接着server向用户发送配置请求PPP NCP网络控制数据包(为用户分配IP地址),用户向server发送配置应答PPP NCP网络控制数据包(接受所分配的IP地址),最后server向用户发送配置应答PPP NCP网络控制数据包(允许用户的IP地址和DNS地址)。
这样。经过三个阶段以后。一条完整的链路就建立起来了。用户就可以向server发送IP数据包。
4,结语
2G、3G以及不同制式的移动通信的无线modem的拨号上网过程是相似的。差别在于AT指令集的详细格式略有不同。因为PPP协议数据包的复杂性等原因,在更高传输速率的移动通信制式中如LTE中已经不在使用PPP协议封装,转而採用RawIP的形式数据传输。如USB Ethernet +DHCP的方式或者新一代移动宽带接口管理技术MBIM。