??? 摘? 要: 介紹清華嵌入式操作系統的掌上電腦中所使用的IrDial協議,并提出IrDial協議在移動互聯網中的應用模型以及具體的實現方案。?
??? 關鍵詞: IrDial? PPP協議棧? Modem命令集? NDIS
?
??? 隨著以計算機技術、通訊技術、消費電子技術為主的IT產業的快速發展和互聯網的廣泛應用,過去許多由純硬件實現的嵌入式系統與產品已轉向由軟、硬件共同來實現。當前,以具有無線通訊功能的個人數字助理PDA、手持個人電腦HPC、交互式網絡信息家電為代表的新一輪智能型3C(Computer,Communication,Consumer)合一的類PC嵌入式系統與技術[1]進入了一個嶄新的智能化、網絡化的發展階段。類PC嵌入式系統[1]與產品所采用的嵌入式操作系統及其應用軟件也同時得到了空前的發展與繁榮。?
??? 掌上電腦是一種采用了嵌入式操作系統的設備,它具有強大的功能,正在成為一種越來越普及的集個人信息管理與娛樂功能于一身的攜式設備。但是目前的掌上電腦大多不具有無線上網的功能。目前業界看好的采用藍牙技術[7]的無線互聯方案,由于成本高、兼容性差,還得不到實際應用。紅外技術是一種成熟的、低成本的技術。目前的大多數掌上電腦和手機都具備紅外設備。因此利用紅外技術來進行無線互聯就成為一種不錯的選擇。?
1 IrDial協議簡介?
??? IrDial協議是一種為了使支持IrDA協議棧的設備使用PPP協議棧與Internet或其它網絡相連而設計的紅外撥號協議。IrDial協議并不是IrDA組織所規定的標準,它由微軟、諾基牙和愛立信公司共同推出,其目的是為移動設備的互聯網接入提供一種方便的、價格低廉的手段。IrDial協議除規定了基于AT命令集的modem撥號協議外,還規定了在IrDA協議中的PPP幀封裝。?
??? IrDial支持兩臺計算機間的直接點對點連接、計算機-網絡間的訪問點(access point)連接以及計算機-網絡間通過modem的訪問點連接。?
??? IrDial以兩種模式工作:直接連接(Direct Connect)或撥號連接(Dial Connect): ?
??? · 直接連接模式:用于對網絡和網絡訪問點連接。它忽略撥號信息,直接進入PPP協議協商階段。使用TinyTP service data unit (SDU)[16]進行PPP封裝[17]來成幀。撥號連接通過modem的網絡訪問點連接。?
??? · 撥號連接模式:通過modem的網絡訪問點連接。撥號連接模式在進入PPP pass-through模式前必須進行成功的AT撥號命令交換。使用傳統的PPP 高級數據鏈路控制協議(HDLC)來對數據封裝和成幀。?
1.1 直接連接模式?
??? 直接連接有兩種方式:對等網絡中的直接連接和網絡中的直接連接,其網絡協議模型如圖1和圖2所示。IrDial協議工作在IrLMP/TinyTP之上,為PPP協議提供服務。?
?
?
?
1.1.1 連接建立?
??? 為初始化一個直接連接模式的連接,客戶必須先調用Information Access Service (IAS)。IAS是一個紅外服務的數據庫,它提供了系統所能提供的設備和服務的一個列表,使用GetValueByClass 函數,將參數中的類名設為 “IrNetv1”,類屬性設為“IrDA:TinyTP:LsapSel”。然后再初始化一個IrDA Tiny Transport Protocol (TinyTP)連接以返回Link Service Access Point selector(LSAP-SEL)。?
1.1.2? PPP封裝和成幀?
??? 所有的IP(或者其它的網絡協議)包都以RFC1661中規定的PPP封裝來進行封裝。以PPP封裝的包直接以TinyTP SDU的格式來成幀。一個PPP封裝的包可以分成幾個TinyTP 協議數據單元。?
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命令序列成幀時要在命令前后加上
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幀中傳輸。?
??? 所有的命令必須以
???
1.3.3 鏈接控制命令?
??? (1) ATD, Dial?
??? 這個命令初始化一個數據呼叫,后跟電話號碼和其它符號來建立一個連接。在ATD連接過程中,接收到CONNECT前發送任何字符就可以放棄連接。?
??? 命令執行的格式如下:?
??? D
??? (2) ATH, Hook Control. 中斷一個連接。?
??? (3) ATA, Answer. 應答呼入的數據呼叫。為了接收呼入的數據呼叫,Modem必須是以IrDA連接并且處于離線命令模式。如果有一個呼入呼叫,modem以如下形式發送一個結果代碼:?
?? ?
??? 然后就可以使用ATA來應答呼入的數據呼叫。?
1.3.4初始化命令?
??? AT+DS 數據壓縮模式(Data Compression Mode)。?
??? 定義了V.42bis使用的壓縮參數和協議。?
??? 命令格式如下:?
??? +DS=[
??? 關于modem撥號的詳細文檔可以參考Windows Modem設備驅動開發包的幫助文檔[13]。?
2 IrDial協議的應用模型?
??? IrDial協議設計是為方便具有紅外設備的移動裝置能夠通過帶紅外設備的移動通信設備實現與網絡的互聯。這里的移動裝置可以是掌上電腦和筆記本電腦等。最常用的移動通信設備是手機。大多數的掌上電腦和筆記本電腦都具有紅外端口。目前已經有越來越多的手機開始支持紅外通信方式。目前的手機上網采用WAP方式,但是由于WAP所能提供的網絡服務內容十分有限,而且在手機的小屏幕上來瀏覽網絡的內容十分不便。使用IrDial協議則可以把手機作為一個無線的Modem,直接可以通過撥號ISP來瀏覽WWW頁面的內容。這對于那些攜帶筆記本和掌上電腦,經常需要在外面跑的人來說很重要。這種方式使它們可以在任何時候、任何地方,只要有一個支持紅外通信和IrDial協議及數據通信的手機就可以很容易地實現上網瀏覽、收發郵件等。
??? IrDial協議的應用模型如圖4所示。 ?
?
?
??? 在圖4的模型中,筆記本與手機通過紅外通信來進行數據交換。手機通過無線網絡訪問ISP服務器,并通過ISP服務器訪問WWW服務器。處理流程如下:?
??? (1)筆記本與手機間建立紅外連接;?
??? (2)筆記本在已建立的紅外連接上,通過IrDial協議向手機發送AT命令進行撥號;?
??? (3)手機接收AT命令并向ISP服務器撥號;?
??? (4)撥號成功,則在筆記本和ISP間建立一個網絡連接。?
??? 然后用戶就可以使用筆記本上的瀏覽器來進行網絡的瀏覽了。由圖4可以看出,要實現通過IrDial的無線上網,要求筆記本(掌上電腦)和手機必須都支持IrDial協議。目前大部分的筆記本電腦和掌上電腦都帶有紅外裝置,以方便信息的交換。但是要通過紅外手機上網還需要安裝新的驅動程序。在Windows系統上,一般是將紅外手機看做是一個Modem,將其按照Modem驅動程序的設計規范來實現。手機除了要具有紅外裝置,支持IrDial協議外,還必須開通數據服務功能。只有這樣,系統才能夠實現無線上網。?
3 IrDial協議的實現方案?
??? IrDial協議實際上包括兩部分:在移動通信設備上的實現和在便攜式設備如掌上電腦上的實現。目前大多數的手機都支持IrDial協議,即可以作為一個外置的紅外modem,因此這一部分的實現由手機廠商完成。在便攜式設備如掌上電腦上的實現,根據所采用的操作系統的不同,筆者采用了Windows CE操作系統。?
??? Windows CE操作系統支持NDIS網絡驅動程序接口規范[14,19],NDIS支持IRDA協議。這使用戶可以使用NDIS所提供IRDA協議函數來實現紅外撥號協議。在NDIS中可以包含一個miniport的可插入模塊,采用miniport的方式將IrDial協議加入到IRDA協議棧中。在IrDial的小端口驅動程序中,其上層接口為PPP協議,下層接口為IRDA協議。IrDial的小端口驅動程序負責PPP協議和IRDA協議之間的數據包的轉換。?
??? 本文介紹了IrDial協議及其應用和實現。IrDial協議為用戶提供了一種通過紅外方式來進行無線網絡接入的方式。與其它無線互聯方案相比,采用IrDial協議有它獨特的優點。首先它是一種價格低廉、易于實現的無線解決方案,目前的大多數移動終端設備(筆記本和掌上電腦)都具有紅外設備,只需要添加IrDial協議的實現就可以了;而使用WAP方式進行無線聯網則需要運營商增加新的設備,成本較高。其次,使用它不僅可以瀏覽WAP網頁,也可以瀏覽WWW網頁,而使用WAP方式的無線互聯方案則只能瀏覽WAP網頁。此外,由于大多數手機、掌上電腦和筆記本電腦都支持紅外通信,使其實現更加簡單,成本更低。目前已經有很多支持IrDial的產品出現。?
參考文獻?
1 梁金千.清華嵌入式操作系統的設計與實現.清華大學碩士研究生論文,2001年4月?
2 梁金千,張躍,甄成.Linux設備驅動程序的設計與實現,計算機應用,2001,(12)?
3 Liang Jinqian, Zhang Yue.The Description of HAL in?Embedded OS.International Conference on eCommerce Engineering:New Challenges for Global Manufacture in the 21?Century. 2001.?
4 Zhen Chen, Zhang Yue,Liang Jinqian. Design and Implementation of File System With Real-time Data Compression.International Conference on eCommerce Engineering:New Challenges for Global Manufacture in the 21 Century.2001.?
5 劉森,何希順,何榮森.HPC相關新技術的發展及其應用.電子技術應用,2000,26(12)?
6 劉森,何希順,慕春棣.掌上電腦研制中的關鍵技術,電子產品世界,2001,(4)。?
7 何榮森,王宏寶,張躍.Bluetooth(藍牙)協議體系結構和硬件設計.電子技術,2001,(10)?
8 張 躍,慕春棣.數字電視系統.計算機世界,2001,(7):C1~C6?
9 張 躍,張衍圣.現行數字電視的局限性.計算機世界,2001,(7):C7?
10 張 躍,施 陽.清華-賽格高清晰度數字電視HDTV.計算機世界,2001,(7)C8~C9?
11 張 躍,梁金千.數字電視向何處去.計算機世界,2001,(7):C9?
12 IrDial:PPP Over IrDA. microsoft?
13 Preliminary Windows Modem Device Driver Kit. Microsoft?
14 Window CE驅動程序開發.Microsoft Press,1999?
15 IRDA TTP: Tiny Transport Protocol, TinyTP, Version?1.0, Infrared Data Association?
16 RFC 1661: Point-to-Point Protocol (PPP)?
17 RFC 1662: PPP in HDLC-like Framing?
18 V.25ter:ITU-T Recommendation for datacom. over the?telephone network: Serial Asynchronous Automatic Dialing?and Control?
19 Infrared Extensions to the NDIS Version 4.0 Functional?Specification. MSDN of Microsoft Visual Studio