IrDial協(xié)議及其應(yīng)用和實(shí)現(xiàn)
1.2 撥號連接模式
撥號連接的網(wǎng)絡(luò)協(xié)議模型如圖3所示。在應(yīng)用中,由于要使用手機(jī)作為無線連接設(shè)備,即把手機(jī)作為一個外置modem,主要采用撥號連接協(xié)議。
1.2.1 連接建立
為了初始化一個撥號連接模式的連接,客戶必須先執(zhí)行Information Access Service (IAS) GetValueByClass 函數(shù),它的參數(shù)中的類名是“IrModem”,類屬性為“IrDA:TinyTP:LsapSel”。然后再初始化一個IrDA Tiny Transport Protocol (TinyTP)連接以返回 (LSAP-SEL)。撥號命令和數(shù)據(jù)幀的交換都在TinyTP連接中進(jìn)行。
MODEM或Host能夠中斷連接,只要發(fā)送一個LM-Disconnect IrLMP消息即可。
1.2.2 撥號命令成幀
AT命令序列成幀時要在命令前后加上字符串。AT命令序列長度不能超過一個TinyTP PDU的長度。
1.2.3 PPP封裝和成幀
所有的IP包都以RFC1661中規(guī)定的PPP封裝來進(jìn)行封裝。以PPP封裝的包按RFC1662中規(guī)定的HDLC來進(jìn)行成幀。這與TinyTP成幀不同。
1.3 撥號協(xié)議簡介
1.3.1 Modem工作模式
Modem有兩種工作模式:
? 離線命令模式(Offline Command Mode):在此模式下沒有電話撥號,Modem正在接收AT命令。會話正是在這種模式下被啟動。
? 在線數(shù)據(jù)模式(Online Data Mode): 在此模式下,有一個電話連接,modem能夠接收和傳輸數(shù)據(jù);只有一個命令+++ATH能被傳送。
AT命令在TinyTP幀中傳輸。不能把一個AT命令字符串分成幾部分在幾個幀中傳輸。但是可以在一個幀中傳輸幾個AT命令,這時命令的間隔必須符合V.25ter中的規(guī)定?;貜?fù)和應(yīng)答則沒有這個限制,可以在幾個TinyTP幀中傳輸。
所有的命令必須以結(jié)尾, modem回復(fù)所有發(fā)出的命令。每個命令有一個響應(yīng),每個響應(yīng)均為如下格式:
Response
1.3.3 鏈接控制命令
(1) ATD, Dial
這個命令初始化一個數(shù)據(jù)呼叫,后跟電話號碼和其它符號來建立一個連接。在ATD連接過程中,接收到CONNECT前發(fā)送任何字符就可以放棄連接。
命令執(zhí)行的格式如下:
D n為電話號碼。如:ATD+65768678.
(2) ATH, Hook Control. 中斷一個連接。
(3) ATA, Answer. 應(yīng)答呼入的數(shù)據(jù)呼叫。為了接收呼入的數(shù)據(jù)呼叫,Modem必須是以IrDA連接并且處于離線命令模式。如果有一個呼入呼叫,modem以如下形式發(fā)送一個結(jié)果代碼:
RING
然后就可以使用ATA來應(yīng)答呼入的數(shù)據(jù)呼叫。
1.3.4初始化命令
AT+DS 數(shù)據(jù)壓縮模式(Data Compression Mode)。
定義了V.42bis使用的壓縮參數(shù)和協(xié)議。
命令格式如下:
+DS=[
,[,[,[]]]]。
關(guān)于modem撥號的詳細(xì)文檔可以參考Windows Modem設(shè)備驅(qū)動開發(fā)包的幫助文檔[13]。
評論