IrDial協(xié)議及其應(yīng)用和實現(xiàn)
隨著以計算機(jī)技術(shù)、通訊技術(shù)、消費電子技術(shù)為主的IT產(chǎn)業(yè)的快速發(fā)展和互聯(lián)網(wǎng)的廣泛應(yīng)用,過去許多由純硬件實現(xiàn)的嵌入式系統(tǒng)與產(chǎn)品已轉(zhuǎn)向由軟、硬件共同來實現(xiàn)。當(dāng)前,以具有無線通訊功能的個人數(shù)字助理PDA、手持個人電腦HPC、交互式網(wǎng)絡(luò)信息家電為代表的新一輪智能型3C(Computer,Communication,Consumer)合一的類PC嵌入式系統(tǒng)與技術(shù)[1]進(jìn)入了一個嶄新的智能化、網(wǎng)絡(luò)化的發(fā)展階段。類PC嵌入式系統(tǒng)[1]與產(chǎn)品所采用的嵌入式操作系統(tǒng)及其應(yīng)用軟件也同時得到了空前的發(fā)展與繁榮。
掌上電腦是一種采用了嵌入式操作系統(tǒng)的設(shè)備,它具有強(qiáng)大的功能,正在成為一種越來越普及的集個人信息管理與娛樂功能于一身的攜式設(shè)備。但是目前的掌上電腦大多不具有無線上網(wǎng)的功能。目前業(yè)界看好的采用藍(lán)牙技術(shù)[7]的無線互聯(lián)方案,由于成本高、兼容性差,還得不到實際應(yīng)用。紅外技術(shù)是一種成熟的、低成本的技術(shù)。目前的大多數(shù)掌上電腦和手機(jī)都具備紅外設(shè)備。因此利用紅外技術(shù)來進(jìn)行無線互聯(lián)就成為一種不錯的選擇。
1 IrDial協(xié)議簡介
IrDial協(xié)議是一種為了使支持IrDA協(xié)議棧的設(shè)備使用PPP協(xié)議棧與Internet或其它網(wǎng)絡(luò)相連而設(shè)計的紅外撥號協(xié)議。IrDial協(xié)議并不是IrDA組織所規(guī)定的標(biāo)準(zhǔn),它由微軟、諾基牙和愛立信公司共同推出,其目的是為移動設(shè)備的互聯(lián)網(wǎng)接入提供一種方便的、價格低廉的手段。IrDial協(xié)議除規(guī)定了基于AT命令集的modem撥號協(xié)議外,還規(guī)定了在IrDA協(xié)議中的PPP幀封裝。
IrDial支持兩臺計算機(jī)間的直接點對點連接、計算機(jī)-網(wǎng)絡(luò)間的訪問點(access point)連接以及計算機(jī)-網(wǎng)絡(luò)間通過modem的訪問點連接。
IrDial以兩種模式工作:直接連接(Direct Connect)或撥號連接(Dial Connect):
· 直接連接模式:用于對網(wǎng)絡(luò)和網(wǎng)絡(luò)訪問點連接。它忽略撥號信息,直接進(jìn)入PPP協(xié)議協(xié)商階段。使用TinyTP service data unit (SDU)[16]進(jìn)行PPP封裝[17]來成幀。撥號連接通過modem的網(wǎng)絡(luò)訪問點連接。
· 撥號連接模式:通過modem的網(wǎng)絡(luò)訪問點連接。撥號連接模式在進(jìn)入PPP pass-through模式前必須進(jìn)行成功的AT撥號命令交換。使用傳統(tǒng)的PPP 高級數(shù)據(jù)鏈路控制協(xié)議(HDLC)來對數(shù)據(jù)封裝和成幀。
1.1 直接連接模式
直接連接有兩種方式:對等網(wǎng)絡(luò)中的直接連接和網(wǎng)絡(luò)中的直接連接,其網(wǎng)絡(luò)協(xié)議模型如圖1和圖2所示。IrDial協(xié)議工作在IrLMP/TinyTP之上,為PPP協(xié)議提供服務(wù)。
1.1.1 連接建立
為初始化一個直接連接模式的連接,客戶必須先調(diào)用Information Access Service (IAS)。IAS是一個紅外服務(wù)的數(shù)據(jù)庫,它提供了系統(tǒng)所能提供的設(shè)備和服務(wù)的一個列表,使用GetValueByClass 函數(shù),將參數(shù)中的類名設(shè)為 “IrNetv1”,類屬性設(shè)為“IrDA:TinyTP:LsapSel”。然后再初始化一個IrDA Tiny Transport Protocol (TinyTP)連接以返回Link Service Access Point selector(LSAP-SEL)。
1.1.2 PPP封裝和成幀
所有的IP(或者其它的網(wǎng)絡(luò)協(xié)議)包都以RFC1661中規(guī)定的PPP封裝來進(jìn)行封裝。以PPP封裝的包直接以TinyTP SDU的格式來成幀。一個PPP封裝的包可以分成幾個TinyTP 協(xié)議數(shù)據(jù)單元。 [!--empirenews.page--]
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能被傳送。
1.3.2 在IrDial中使用的AT命令
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]。 [!--empirenews.page--]
2 IrDial協(xié)議的應(yīng)用模型
IrDial協(xié)議設(shè)計是為方便具有紅外設(shè)備的移動裝置能夠通過帶紅外設(shè)備的移動通信設(shè)備實現(xiàn)與網(wǎng)絡(luò)的互聯(lián)。這里的移動裝置可以是掌上電腦和筆記本電腦等。最常用的移動通信設(shè)備是手機(jī)。大多數(shù)的掌上電腦和筆記本電腦都具有紅外端口。目前已經(jīng)有越來越多的手機(jī)開始支持紅外通信方式。目前的手機(jī)上網(wǎng)采用WAP方式,但是由于WAP所能提供的網(wǎng)絡(luò)服務(wù)內(nèi)容十分有限,而且在手機(jī)的小屏幕上來瀏覽網(wǎng)絡(luò)的內(nèi)容十分不便。使用IrDial協(xié)議則可以把手機(jī)作為一個無線的Modem,直接可以通過撥號ISP來瀏覽WWW頁面的內(nèi)容。這對于那些攜帶筆記本和掌上電腦,經(jīng)常需要在外面跑的人來說很重要。這種方式使它們可以在任何時候、任何地方,只要有一個支持紅外通信和IrDial協(xié)議及數(shù)據(jù)通信的手機(jī)就可以很容易地實現(xiàn)上網(wǎng)瀏覽、收發(fā)郵件等。
IrDial協(xié)議的應(yīng)用模型如圖4所示。
在圖4的模型中,筆記本與手機(jī)通過紅外通信來進(jìn)行數(shù)據(jù)交換。手機(jī)通過無線網(wǎng)絡(luò)訪問ISP服務(wù)器,并通過ISP服務(wù)器訪問WWW服務(wù)器。處理流程如下:
(1)筆記本與手機(jī)間建立紅外連接;
(2)筆記本在已建立的紅外連接上,通過IrDial協(xié)議向手機(jī)發(fā)送AT命令進(jìn)行撥號;
(3)手機(jī)接收AT命令并向ISP服務(wù)器撥號;
(4)撥號成功,則在筆記本和ISP間建立一個網(wǎng)絡(luò)連接。
然后用戶就可以使用筆記本上的瀏覽器來進(jìn)行網(wǎng)絡(luò)的瀏覽了。由圖4可以看出,要實現(xiàn)通過IrDial的無線上網(wǎng),要求筆記本(掌上電腦)和手機(jī)必須都支持IrDial協(xié)議。目前大部分的筆記本電腦和掌上電腦都帶有紅外裝置,以方便信息的交換。但是要通過紅外手機(jī)上網(wǎng)還需要安裝新的驅(qū)動程序。在Windows系統(tǒng)上,一般是將紅外手機(jī)看做是一個Modem,將其按照Modem驅(qū)動程序的設(shè)計規(guī)范來實現(xiàn)。手機(jī)除了要具有紅外裝置,支持IrDial協(xié)議外,還必須開通數(shù)據(jù)服務(wù)功能。只有這樣,系統(tǒng)才能夠?qū)崿F(xiàn)無線上網(wǎng)。
3 IrDial協(xié)議的實現(xiàn)方案
IrDial協(xié)議實際上包括兩部分:在移動通信設(shè)備上的實現(xiàn)和在便攜式設(shè)備如掌上電腦上的實現(xiàn)。目前大多數(shù)的手機(jī)都支持IrDial協(xié)議,即可以作為一個外置的紅外modem,因此這一部分的實現(xiàn)由手機(jī)廠商完成。在便攜式設(shè)備如掌上電腦上的實現(xiàn),根據(jù)所采用的操作系統(tǒng)的不同,筆者采用了Windows CE操作系統(tǒng)。
Windows CE操作系統(tǒng)支持NDIS網(wǎng)絡(luò)驅(qū)動程序接口規(guī)范[14,19],NDIS支持IRDA協(xié)議。這使用戶可以使用NDIS所提供IRDA協(xié)議函數(shù)來實現(xiàn)紅外撥號協(xié)議。在NDIS中可以包含一個miniport的可插入模塊,采用miniport的方式將IrDial協(xié)議加入到IRDA協(xié)議棧中。在IrDial的小端口驅(qū)動程序中,其上層接口為PPP協(xié)議,下層接口為IRDA協(xié)議。IrDial的小端口驅(qū)動程序負(fù)責(zé)PPP協(xié)議和IRDA協(xié)議之間的數(shù)據(jù)包的轉(zhuǎn)換。
本文介紹了IrDial協(xié)議及其應(yīng)用和實現(xiàn)。IrDial協(xié)議為用戶提供了一種通過紅外方式來進(jìn)行無線網(wǎng)絡(luò)接入的方式。與其它無線互聯(lián)方案相比,采用IrDial協(xié)議有它獨特的優(yōu)點。首先它是一種價格低廉、易于實現(xiàn)的無線解決方案,目前的大多數(shù)移動終端設(shè)備(筆記本和掌上電腦)都具有紅外設(shè)備,只需要添加IrDial協(xié)議的實現(xiàn)就可以了;而使用WAP方式進(jìn)行無線聯(lián)網(wǎng)則需要運營商增加新的設(shè)備,成本較高。其次,使用它不僅可以瀏覽WAP網(wǎng)頁,也可以瀏覽WWW網(wǎng)頁,而使用WAP方式的無線互聯(lián)方案則只能瀏覽WAP網(wǎng)頁。此外,由于大多數(shù)手機(jī)、掌上電腦和筆記本電腦都支持紅外通信,使其實現(xiàn)更加簡單,成本更低。目前已經(jīng)有很多支持IrDial的產(chǎn)品出現(xiàn)。