1.2 拨号连接模式
拨号连接的网络协议模型如图3所示。在应用中,由于要使用手机作为无线连接设备,即把手机作为一个外置modem,主要采用拨号连接协议。
1.2.1 连接建立
为了初始化一个拨号连接模式的连接,客户必须先执行Information Access Service (IAS) GetValueByClass 函数,它的参数中的类名是“IrModem”,类属性为“IrDA:TinyTP:LsapSel”。然后再初始化一个IrDA Tiny Transport Protocol (TinyTP)连接以返回 (LSAP-SEL)。拨号命令和数据帧的交换都在TinyTP连接中进行。
MODEM或Host能够中断连接,只要发送一个LM-Disconnect IrLMP消息即可。
1.2.2 拨号命令成帧
AT命令序列成帧时要在命令前后加上字符串。AT命令序列长度不能超过一个TinyTP PDU的长度。
1.2.3 PPP封装和成帧
所有的IP包都以RFC1661中规定的PPP封装来进行封装。以PPP封装的包按RFC1662中规定的HDLC来进行成帧。这与TinyTP成帧不同。
1.3 拨号协议简介
1.3.1 Modem工作模式
Modem有两种工作模式:
· 离线命令模式(Offline Command Mode):在此模式下没有电话拨号,Modem正在接收AT命令。会话正是在这种模式下被启动。
· 在线数据模式(Online Data Mode): 在此模式下,有一个电话连接,modem能够接收和传输数据;只有一个命令+++ATH能被传送。
1.3.2 在IrDial中使用的AT命令
AT命令在TinyTP帧中传输。不能把一个AT命令字符串分成几部分在几个帧中传输。但是可以在一个帧中传输几个AT命令,这时命令的间隔必须符合V.25ter中的规定。回复和应答则没有这个限制,可以在几个TinyTP帧中传输。
所有的命令必须以结尾, modem回复所有发出的命令。每个命令有一个响应,每个响应均为如下格式:
Response
1.3.3 链接控制命令
(1) ATD, Dial
这个命令初始化一个数据呼叫,后跟电话号码和其它符号来建立一个连接。在ATD连接过程中,接收到CONNECT前发送任何字符就可以放弃连接。
命令执行的格式如下:
D n为电话号码。如:ATD+65768678.
(2) ATH, Hook Control. 中断一个连接。
(3) ATA, Answer. 应答呼入的数据呼叫。为了接收呼入的数据呼叫,Modem必须是以IrDA连接并且处于离线命令模式。如果有一个呼入呼叫,modem以如下形式发送一个结果代码:
RING
然后就可以使用ATA来应答呼入的数据呼叫。
1.3.4初始化命令
AT+DS 数据压缩模式(Data Compression Mode)。
定义了V.42bis使用的压缩参数和协议。
命令格式如下:
+DS=[
,[,[,[]]]]。
关于modem拨号的详细文档可以参考Windows Modem设备驱动开发包的帮助文档[13]。