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