<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > Windows CE通訊模式

          Windows CE通訊模式

          ——
          作者: 時間:2007-02-28 來源:/www.21tx.com 收藏
          這篇白皮書概述了微軟的Windows CE操作系統(tǒng)的通訊能力。因?yàn)椴煌膽?yīng)用程序和設(shè)備在通訊方面的要求不同,所以Windows CE提供了支持廣泛的硬件和通訊技術(shù)。對于用電纜、調(diào)制解調(diào)器或者紅外傳輸介質(zhì)連接的設(shè)備之間的通訊提供了串行通訊支持。Windows CE網(wǎng)絡(luò)通訊支持的選擇范圍從通過串行口與SLIP或PPP連在一起的網(wǎng)絡(luò)到局域網(wǎng)(LAN)和用TCP/IP協(xié)議的無線網(wǎng)絡(luò)。

            對Windows CE通訊的瀏覽

            通訊能力是基于Windows CE設(shè)備的一個關(guān)鍵性特征。實(shí)際上,所有的這些設(shè)備都將至少有內(nèi)置的通訊硬件,例如一個串行電纜或者紅外(IR)傳送器。PC卡或者緊湊的映射卡(Compact Flash Card)支持容許廣泛的各種各樣的市場上的附加的通訊設(shè)備被加在一個基本的單元之中。這樣,Windows CE就能夠采用各種各樣的通訊形式,從通過電纜傳送的串行通訊到采用TCP/IP協(xié)議的無線網(wǎng)絡(luò)。

            Windows CE支持兩種基本的通訊,在許多情況下,他們使用相同的硬件。不同點(diǎn)在于數(shù)據(jù)包不同,當(dāng)在發(fā)送器和接受器之間有一個一對一連接時,你就可以采用串行通訊。數(shù)據(jù)簡單地從一個設(shè)備流到另一個設(shè)備。網(wǎng)絡(luò)通訊允許你給定一個目標(biāo)地址,以傳送到多臺設(shè)備中的一臺。它也提供了高度的可靠性以防止數(shù)據(jù)丟失。
          Windows CE能支持三種類型的通訊: 串行通訊能夠通過下列設(shè)備傳送:

            串行電纜;

            紅外傳送器,無論有沒有使用IrDA協(xié)議,
            串行通訊和快速IR都被支持。
            調(diào)制解調(diào)器
            網(wǎng)絡(luò)通訊能夠通過幾乎任何類型的硬件通訊設(shè)備進(jìn)行通訊。Windows CE網(wǎng)絡(luò)支持:

            ICMP請求或連接;

            基于HTTP和FTP協(xié)議的Internet通訊;
            網(wǎng)絡(luò)文件和打印機(jī)訪問;
            Windows Sockets,包括用于紅外通訊的IrSock擴(kuò)展和用于通訊安全的secure sockets擴(kuò)展;
            用于無線網(wǎng)絡(luò)的TCP/IP協(xié)議;
            用于紅外通訊的IrDA協(xié)議;
            用于局域網(wǎng)和IrDA的網(wǎng)絡(luò)的IDIS4.0
            用于帶有串行電纜或者調(diào)制解調(diào)器連接的網(wǎng)絡(luò)的PPP協(xié)議和SLIP協(xié)議;
            遠(yuǎn)程訪問服務(wù)器(RAS)客戶支持。
            Windows CE也提供支持管理通過TAPI(telephoy API)連接的調(diào)制解調(diào)器。TAPI處理的任務(wù)有:電話撥號、建立連接和終止呼叫。

            下面扼要地表示了通訊模式:

            串行通訊

            串行通訊實(shí)際上將被所有的Windows CE設(shè)備所支持,在硬件水平上,通過電纜和紅外傳送器進(jìn)行串行通訊是很普通的。調(diào)制解調(diào)器也支持串行通訊。

            每一個串行設(shè)備都匹配有一個COM口,例如“COM1”。Windows CE為打開串口和管理接收設(shè)備上的連接提供了一個API。一旦連接成功,將用相同的函數(shù)進(jìn)行數(shù)據(jù)傳送,這些函數(shù)用以讀一個文件或者寫一個文件。數(shù)據(jù)只是簡單的從一個設(shè)備傳送到另一個設(shè)備。不支持同步和異步I/O。

            有些設(shè)備可能允許紅外傳送器用以串行通訊。這種傳送將是“原始的”,即沒有進(jìn)行沖突檢測。用以原始串行紅外傳送的程序?qū)嶋H上和那些用以電纜傳送的程序是完全相同的。

            利用IrDA協(xié)議,通過IRsock(網(wǎng)絡(luò)堆的一部分,將在后面進(jìn)行訴論)可以得到更加強(qiáng)健的串行紅外通訊。作為一種直接采用Irsock的替換,IrComn模仿串行通訊但是內(nèi)部采用IRSock和IrDA協(xié)議。用于IrComn的程序和那些用于串行電纜和“原始”IR的程序?qū)嶋H上是完全相同的。

            網(wǎng)絡(luò)通訊

            Windows CE支持網(wǎng)絡(luò)通訊所用的各種硬件設(shè)備包括:

            串行電纜;
            紅外傳送器;
            廣播傳送器;
            局域網(wǎng)絡(luò);
            調(diào)制解調(diào)器。

            Windows CE也提供了幾個API以簡化在一個應(yīng)用程序中包含網(wǎng)絡(luò)通過的過程。

            Internet瀏覽以及訪問遠(yuǎn)程文件和打印機(jī)

            Windows CE提供了兩種高水平的API,這兩種API簡化了網(wǎng)絡(luò)通訊中的一些更普通的應(yīng)用。

            WinInet API支持HTTP 1.0和FTP Internet瀏覽協(xié)議。它大大地簡化了編寫一個Internet客戶應(yīng)用程序的過程。但是不支持*。WinInet也支持安全通訊。有三種安全協(xié)議:Secure Sockets層(SSL)2.0版和3.0版,以及私有通訊技術(shù)(PCT)1.0版。

            Wnet API提供了訪問普通Internet文件系統(tǒng)(IFS)和改更遠(yuǎn)程訪問打印機(jī)和文件的地址?,F(xiàn)在僅支持Windows 95和Windows NT操作系統(tǒng)的連接。地址更換支持全球名字轉(zhuǎn)稱(UNC),這里的名稱(例如\SeverXXShareXX)不包括驅(qū)動器字符。

            WinSock和IRSock

            所有的網(wǎng)絡(luò)通訊都通過Windows Sockets接口,一般稱作Winsock、WinInef和Wnet在內(nèi)部應(yīng)用Winsock,并能夠減輕為了清晰地建立和管理Socket連接所需要的應(yīng)用程序。你也可以直接使用Winsock。

            Windows CE支持標(biāo)準(zhǔn)的WinSock 1.1版的函數(shù),但是不支持異步的WinSock函數(shù)。然而,可以通過微軟基礎(chǔ)類(MFC)的CleSocket類獲得支持異步消息。一個WSAIoctl的執(zhí)行是用來支持安全服務(wù)提供者。Windows CE支持安全Sockets層的2.0版和1.0版,以及PCT1.0版的安全協(xié)議。

            IrSock是WinSock的一個擴(kuò)展,它能應(yīng)用IrDA協(xié)議加強(qiáng)基于Socket的紅外通訊。盡管IrSock這個應(yīng)用工具和傳統(tǒng)的WinSock在幾個函數(shù)的用法上有一些不同,但是在許多方面它們都是相同的。

            對遠(yuǎn)程訪問客戶的支持

            Windows CE支持遠(yuǎn)程訪問服務(wù)器(RAS)的客戶,RAS是一個用于連接遠(yuǎn)程設(shè)備的多協(xié)議規(guī)則。Windows CE RAS客戶支持實(shí)際上和標(biāo)準(zhǔn)的Windows工具是完全相同的,但是一次只支持一個點(diǎn)對點(diǎn)的連接。

            TCP/IP和IrDA

            TCP/IP協(xié)議簇是為Internet而開發(fā)的,也是一個最靈活的、應(yīng)用最廣泛的網(wǎng)絡(luò)協(xié)議,它被廣泛的各種系統(tǒng)所支持,并形成了Windows CE網(wǎng)絡(luò)棧的核心。當(dāng)你不能夠直接訪問TCP/IP協(xié)議棧時,你可以通過修改它的一些參數(shù)來優(yōu)化它。

            常規(guī)的TCP/IP協(xié)議棧被設(shè)計成在有線網(wǎng)上具有高效功能的協(xié)議。他們可以正確地運(yùn)行在基于Windows CE的用在無線網(wǎng)絡(luò)上的機(jī)動設(shè)備。Windows CE的TCP/IP棧被設(shè)計成參數(shù)可以重新設(shè)置的,這樣就能夠高效的支持無線網(wǎng)絡(luò)。這種參數(shù)的一個例子是:acknowledgement timeout。

            經(jīng)外數(shù)據(jù)聯(lián)合(IRDA)協(xié)議是一個廣泛用在紅外通訊上的標(biāo)準(zhǔn)。它比數(shù)據(jù)簡單地從源端傳送到接收器要可靠得多,Windows CE IRDA棧被調(diào)慶成支持NDIS4.0 SIRt FIR驅(qū)動器。

            網(wǎng)絡(luò)的硬件設(shè)備

            當(dāng)兩個設(shè)備之間一對一的連接允許串行通訊時,就要經(jīng)常用到網(wǎng)絡(luò)通訊技術(shù)。例如,許多基于Windows CE的設(shè)備將通過串行通訊連接(如調(diào)制解調(diào)器)連接到它們的網(wǎng)絡(luò)上。甚至可以用一根串行電纜來連接兩個設(shè)備,TCP/IP協(xié)議提供了內(nèi)置的可靠性,以防止丟失數(shù)據(jù)。

            為了支持串行連接網(wǎng)絡(luò),Windows CE支持廣泛應(yīng)用的串行線接口(SLIP)和點(diǎn)對點(diǎn)(PPP)協(xié)議。證實(shí)是通過口令證實(shí)協(xié)議(PAP),挑戰(zhàn)證實(shí)協(xié)議(CHAP)和微軟的CHAP來提供的。

            為了支持局域網(wǎng)和IrDA網(wǎng),Windows CE包含了一個NDIS4.0的招待程序?,F(xiàn)在,Windows CE僅支持以太網(wǎng)和IrDA小口驅(qū)動器,現(xiàn)在不支持廣域網(wǎng)。

            管理電話連接

            用串行或者網(wǎng)絡(luò)API通過調(diào)制解調(diào)器連接都能進(jìn)行數(shù)據(jù)傳輸。然而,任何一個API都不能對諸如電話撥號這樣的任務(wù)提供任何幫助。為了簡化編寫和管理電話連接的過程,Windows CE包括了一個Telephoy API(TAPI),可以通過內(nèi)置式或PC卡式調(diào)制解調(diào)器來使用它。它包括了一個為基于調(diào)制解調(diào)器AT命令的聯(lián)合式調(diào)制解調(diào)器的服務(wù)提供者。對于其他類型的調(diào)制解調(diào)器,TAPI支持可安裝服務(wù)的供應(yīng)商。

            TAPI是一個設(shè)備的集合,它允許你利用廣泛的各種電報和通訊服務(wù)而不需要你有詳細(xì)的專門技術(shù)的知識。它處理各種任務(wù),諸如電話撥號、管理調(diào)制解調(diào)器連接和終止呼叫,它僅支持呼叫的外界。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();