基于Windows CE的通信技術(shù)研究
摘要:討論Windows CE所支持的兩種基本通信技術(shù),即串行通信和網(wǎng)絡(luò)通信,并通過Win32 API描述了基于Windows CE的平臺如何建立各種串行連接和網(wǎng)絡(luò)連接。對于各種連接實(shí)現(xiàn)途徑,指出其與桌面計(jì)算機(jī)的區(qū)別。
1 Windows CE通信簡介
Windows CE是一個面向移動計(jì)算和嵌入式應(yīng)用的操作系統(tǒng),其突出的優(yōu)點(diǎn)是模塊化、可定制、完備性、實(shí)時性、通信功能強(qiáng)大和基于Win32應(yīng)用程序編程接口。目前,隨著運(yùn)行于Windows CE平臺的手持電腦(HPC)、掌上電腦(PPC)、個人數(shù)字助理(PDA)的逐漸普及,許多諳熟Windows桌面平臺的Win32開發(fā)者開始轉(zhuǎn)向?yàn)檫@些數(shù)據(jù)終端和移動設(shè)備開發(fā)應(yīng)用軟件。盡管Windows CE平臺上的應(yīng)用軟件也基于應(yīng)用編程接口API,但Wndows CE API與Win32 API是有明顯區(qū)別的,前者只是后者的一個子集,而且,為了滿足不同設(shè)備的硬件功能,Windows CE API還進(jìn)行了許多特殊擴(kuò)展。在這些擴(kuò)展中較為人所關(guān)注的是Windows CE平臺上各種通信功能的實(shí)現(xiàn)方法。
Windows CE對通信的支持是十分靈活的,可完成的通信任務(wù)包括:從網(wǎng)絡(luò)或臺式機(jī)下載文件;基于Windows CE的設(shè)備之間的信息交換;發(fā)送和接收電子郵件;向服務(wù)器發(fā)送數(shù)據(jù);瀏覽Internet;閱讀條形碼等。為了實(shí)現(xiàn)這些不同的通信要求,Windows CE能支持多種通信硬件,如串行電纜、紅外線收發(fā)器,無線收發(fā)器、調(diào)制解調(diào)器和條形碼閱讀器等。針對這些硬件,Windows CE支持兩種基本的通信技術(shù):串行通信和網(wǎng)絡(luò)通信。
2 Windows CE中的串行通信
串行通信要求收、發(fā)雙方有直接的點(diǎn)對點(diǎn)的連接。通過串行電纜或紅外線收發(fā)器(即IR收發(fā)器)均可實(shí)現(xiàn)這種通信方式。從軟件的觀點(diǎn)來看,各種串行通信設(shè)備都是用COM端口名來標(biāo)識的(如COMl、COM2等)。在Windows CE 2.x中,COM端口被存貯在注冊表的\HKEY_LOCAL_MACHINE\Drivers主鍵下,如果系統(tǒng)中已經(jīng)安裝了某種串行設(shè)備,則可以通過注冊表的\HKEY_LOCAL_MACHINE\Active主鍵來查看;贑OM端口的串行通信與文件的讀、寫所使用的API函數(shù)是相同的。
與桌面平臺情況不同的是,當(dāng)使用IR收發(fā)器時,Windows CE支持兩種紅外串行通信途徑。一種途徑是將IR收發(fā)器當(dāng)作串行電纜對待,稱為raw IR方式。“raw”的含義是指傳送的數(shù)據(jù)未經(jīng)任何方式的加工處理,收、發(fā)雙方的應(yīng)用程序負(fù)責(zé)沖突檢測和其它潛在問題的處理。分配給raw IR的COM口由原始設(shè)備制造商(OEM)確定且列于注冊表中。特別需要引起注意的是必須通過EscapeCommfunction函數(shù)將該串口設(shè)置為IR模式(SETIR),而不是普通串行模式(CLRID)。另一種途徑是源于一種IrDA網(wǎng)絡(luò)協(xié)議的簡化串行通信方式,稱為IrComm方式。它允許應(yīng)用程序采用與raw IR方式完全相同的方法去使用IrDA網(wǎng)絡(luò)協(xié)議。從編程者的觀點(diǎn)來看,raw IR與IrComm兩種方式較主要的區(qū)別在于它們有不同的COM端口的分配。此外,對于IrComm,也不必調(diào)用EscapeCommFunction函數(shù)來指明相應(yīng)串口為IR模式。無論是采用串行電纜的普通連接方式,還是采用紅外線收發(fā)器的raw IR或IrComm方式,在Windows CE的應(yīng)用程序中實(shí)現(xiàn)串行通信的步驟均可描述如下:
1)通過注冊表確定需要打開的COM端口;
2)調(diào)用CreateFile,用lpFileName設(shè)置COM端口名(如COMl);
HANDLE CreateFile (LPCTSTR lpFileName,DWORD dwDesiredAccess );
lpFileName為COM端口名指針,dwDesiredAccess為訪問(讀、寫)模式。
3)如果是raw IR方式,調(diào)用EscapeCommFunction,設(shè)置COM端口為IR模式;
BOOL EscapeCommFunction(HANDLE hFile,DWORD dwFunc);
hFile為通信設(shè)備句柄,該句柄由CreateFile返回,dwFunc取值SETIR,即串口為IR模式。
4)調(diào)用SetCommTimeouts,設(shè)置通信暫停時間參數(shù);
BOOL SetCommTimeouts (HANDLE hFile,LPCOMMTIMEOUTS lpCommTimeouts);
其中,lpCommTimeouts為用來設(shè)置時間參數(shù)的結(jié)構(gòu)指針變量。
5)調(diào)用ReadFile和WriteFile發(fā)送和接收數(shù)據(jù);
BOOL ReadFile(HANDLE hFile,LPVOID lpBuffer,DWORD nNumberOfBytesToRead);
BOOL WriteFile(HANDLE hFile,LPCVOID lpBuffer,DWORD nNumberOfBytesToWrite);
其中,hFile為讀/寫文件句柄,lpBuffer為讀/寫數(shù)據(jù)緩沖區(qū)指針,nNmnberOfBytesToRead為讀/寫數(shù)據(jù)字節(jié)數(shù)。
6)調(diào)用CloseHandle,關(guān)閉串口。
BOOL CloseHandle(HANDLE hObject);
上述步驟除第3步外,對三種串行通信方式都是相同的。
3 Windows CE中的網(wǎng)絡(luò)通信
Windows CE的網(wǎng)絡(luò)通信基于一個按層組織的網(wǎng)絡(luò)堆棧(network stack),如圖1所示。
網(wǎng)絡(luò)堆棧實(shí)際上是Windows CE的一個組件,它負(fù)責(zé)對網(wǎng)絡(luò)中的數(shù)據(jù)傳輸進(jìn)行處理,將來自于應(yīng)用程序的數(shù)據(jù)分解成若干小段,并為每小段加上相關(guān)地址和段的分割信息,組成可以存貯轉(zhuǎn)發(fā)的信息包(packets),信息包中的地址確保數(shù)據(jù)達(dá)到較終的目的端點(diǎn)。訪問網(wǎng)絡(luò)堆棧有如下三種方式:第一種是Winsock(端口套接字)方式。這是一個中間層的傳輸接口協(xié)議,WinSock負(fù)責(zé)對建立的信息包的所有頭信息細(xì)節(jié)進(jìn)行處理,但可以不管其數(shù)據(jù)格式。Windows CE的網(wǎng)絡(luò)通信都直接或間接地使用Winsock。采用IrDA協(xié)議實(shí)現(xiàn)基于紅外線套接字(Irsock)的客戶/服務(wù)器網(wǎng)絡(luò)通信是Windows CE平臺的一個特色。第二種為WinInet API方式。WinInet API是微軟公司基于Win32平臺的互聯(lián)網(wǎng)函數(shù)接口。Windows CE的WinInet API對其進(jìn)行了某些限制或擴(kuò)展,它提供的高級數(shù)據(jù)協(xié)議除了常見的超文本傳輸協(xié)議(HTTP)和文件傳輸協(xié)議(FTP)外,還提供了對Internet密碼協(xié)議SST和PCT的支持。API方式避免了直接使用WinSock訪問網(wǎng)絡(luò)的操作,簡化了網(wǎng)絡(luò)編程。第三種為CIFS重定位器方式。Windows CE通過對遠(yuǎn)程訪問服務(wù)(RAS)客戶的支持,允許基于Windows CE的設(shè)備與遠(yuǎn)程主機(jī)建立連接。這里針對Windows CE較常用的幾種高層協(xié)議,討論其網(wǎng)絡(luò)通信實(shí)現(xiàn)方法。
摘要:討論Windows CE所支持的兩種基本通信技術(shù),即串行通信和網(wǎng)絡(luò)通信,并通過Win32 API描述了基于Windows CE的平臺如何建立各種串行連接和網(wǎng)絡(luò)連接。對于各種連接實(shí)現(xiàn)途徑,指出其與桌面計(jì)算機(jī)的區(qū)別。
1 Windows CE通信簡介
Windows CE是一個面向移動計(jì)算和嵌入式應(yīng)用的操作系統(tǒng),其突出的優(yōu)點(diǎn)是模塊化、可定制、完備性、實(shí)時性、通信功能強(qiáng)大和基于Win32應(yīng)用程序編程接口。目前,隨著運(yùn)行于Windows CE平臺的手持電腦(HPC)、掌上電腦(PPC)、個人數(shù)字助理(PDA)的逐漸普及,許多諳熟Windows桌面平臺的Win32開發(fā)者開始轉(zhuǎn)向?yàn)檫@些數(shù)據(jù)終端和移動設(shè)備開發(fā)應(yīng)用軟件。盡管Windows CE平臺上的應(yīng)用軟件也基于應(yīng)用編程接口API,但Wndows CE API與Win32 API是有明顯區(qū)別的,前者只是后者的一個子集,而且,為了滿足不同設(shè)備的硬件功能,Windows CE API還進(jìn)行了許多特殊擴(kuò)展。在這些擴(kuò)展中較為人所關(guān)注的是Windows CE平臺上各種通信功能的實(shí)現(xiàn)方法。
Windows CE對通信的支持是十分靈活的,可完成的通信任務(wù)包括:從網(wǎng)絡(luò)或臺式機(jī)下載文件;基于Windows CE的設(shè)備之間的信息交換;發(fā)送和接收電子郵件;向服務(wù)器發(fā)送數(shù)據(jù);瀏覽Internet;閱讀條形碼等。為了實(shí)現(xiàn)這些不同的通信要求,Windows CE能支持多種通信硬件,如串行電纜、紅外線收發(fā)器,無線收發(fā)器、調(diào)制解調(diào)器和條形碼閱讀器等。針對這些硬件,Windows CE支持兩種基本的通信技術(shù):串行通信和網(wǎng)絡(luò)通信。
2 Windows CE中的串行通信
串行通信要求收、發(fā)雙方有直接的點(diǎn)對點(diǎn)的連接。通過串行電纜或紅外線收發(fā)器(即IR收發(fā)器)均可實(shí)現(xiàn)這種通信方式。從軟件的觀點(diǎn)來看,各種串行通信設(shè)備都是用COM端口名來標(biāo)識的(如COMl、COM2等)。在Windows CE 2.x中,COM端口被存貯在注冊表的\HKEY_LOCAL_MACHINE\Drivers主鍵下,如果系統(tǒng)中已經(jīng)安裝了某種串行設(shè)備,則可以通過注冊表的\HKEY_LOCAL_MACHINE\Active主鍵來查看;贑OM端口的串行通信與文件的讀、寫所使用的API函數(shù)是相同的。
與桌面平臺情況不同的是,當(dāng)使用IR收發(fā)器時,Windows CE支持兩種紅外串行通信途徑。一種途徑是將IR收發(fā)器當(dāng)作串行電纜對待,稱為raw IR方式。“raw”的含義是指傳送的數(shù)據(jù)未經(jīng)任何方式的加工處理,收、發(fā)雙方的應(yīng)用程序負(fù)責(zé)沖突檢測和其它潛在問題的處理。分配給raw IR的COM口由原始設(shè)備制造商(OEM)確定且列于注冊表中。特別需要引起注意的是必須通過EscapeCommfunction函數(shù)將該串口設(shè)置為IR模式(SETIR),而不是普通串行模式(CLRID)。另一種途徑是源于一種IrDA網(wǎng)絡(luò)協(xié)議的簡化串行通信方式,稱為IrComm方式。它允許應(yīng)用程序采用與raw IR方式完全相同的方法去使用IrDA網(wǎng)絡(luò)協(xié)議。從編程者的觀點(diǎn)來看,raw IR與IrComm兩種方式較主要的區(qū)別在于它們有不同的COM端口的分配。此外,對于IrComm,也不必調(diào)用EscapeCommFunction函數(shù)來指明相應(yīng)串口為IR模式。無論是采用串行電纜的普通連接方式,還是采用紅外線收發(fā)器的raw IR或IrComm方式,在Windows CE的應(yīng)用程序中實(shí)現(xiàn)串行通信的步驟均可描述如下:
1)通過注冊表確定需要打開的COM端口;
2)調(diào)用CreateFile,用lpFileName設(shè)置COM端口名(如COMl);
HANDLE CreateFile (LPCTSTR lpFileName,DWORD dwDesiredAccess );
lpFileName為COM端口名指針,dwDesiredAccess為訪問(讀、寫)模式。
3)如果是raw IR
相關(guān)閱讀:
- ...2009/12/07 10:37·基于W78E516B的液晶顯示控制器顯示系統(tǒng)設(shè)計(jì)
- ...2009/12/07 10:24·基于WinCE5.0的電子紙系統(tǒng)設(shè)計(jì)
- ...· “芯創(chuàng)杯”首屆高校未來汽車人機(jī)交互設(shè)計(jì)大賽報名正式啟動
- ...· 探秘第二屆衛(wèi)藍(lán)山鷹“創(chuàng)新·共享”試驗(yàn)技術(shù)論壇!
- ...· “2018中國半導(dǎo)體生態(tài)鏈大會”在江蘇省盱眙舉行
- ...· 新主題新規(guī)劃,CITE 2019瞭望智慧未來
- ...· 從汽車到工廠,TI毫米波傳感器致力于創(chuàng)造更智能的世界
- ...· 意法半導(dǎo)體(ST)、Cinemo和Valens在CES 2018展上聯(lián)合演示汽車信息娛樂解決方案
- ...· 北京集成電路產(chǎn)業(yè)創(chuàng)新發(fā)展高峰論壇即將在京召開
- ...· 三菱電機(jī)強(qiáng)勢出擊PCIM亞洲2017展
- ...· GPGPU國產(chǎn)替代:中國芯片產(chǎn)業(yè)的空白地帶
- ...· 物聯(lián)網(wǎng)產(chǎn)品設(shè)計(jì)中Wi-Fi連接的四個關(guān)鍵因素
- ...· 第三屆中國MEMS智能傳感器產(chǎn)業(yè)發(fā)展大會即將于蚌埠拉開帷幕
- ...· IAIC專項(xiàng)賽演繹“中國芯“應(yīng)用創(chuàng)新,信息安全高峰論壇亮劍海寧
- ...· 智能控制有源鉗位反激
- ...· 解讀5G毫米波OTA 測試技術(shù)
- ...· 多個市場高速增長推動Molex加強(qiáng)汽車領(lǐng)域的發(fā)展
- ...· 中國綠色制造聯(lián)盟成立大會召開在即 政產(chǎn)學(xué)研用共探綠色發(fā)展新模式
- ...· Efinix® 全力驅(qū)動AI邊緣計(jì)算,成功推出Trion™ T20 FPGA樣品, 同時將產(chǎn)品擴(kuò)展到二十萬邏輯單元的T200 FPGA
- ...· 英飛凌亮相進(jìn)博會,引領(lǐng)智慧新生活
- ...· 三電產(chǎn)品開發(fā)及測試研討會北汽新能源專場成功舉行
- ...· Manz亞智科技跨入半導(dǎo)體領(lǐng)域 為面板級扇出型封裝提供化學(xué)濕制程、涂布及激光應(yīng)用等生產(chǎn)設(shè)備解決方案
- ...· 中電瑞華BITRODE動力電池測試系統(tǒng)順利交付北汽新能源
- ...· 中電瑞華FTF系列電池測試系統(tǒng)中標(biāo)北京新能源汽車股份有限公司
- ...· 中電瑞華大功率高壓能源反饋式負(fù)載系統(tǒng)成功交付中電熊貓
- ...· 中電瑞華國際在電動汽車及關(guān)鍵部件測評研討會上演繹先進(jìn)測評技術(shù)
- ...· 數(shù)據(jù)采集終端系統(tǒng)設(shè)備
- ...· 簡儀科技踏上新征程
- ...· 易靈思® 宣布 AEC-Q100 資質(zhì)認(rèn)證和汽車系列產(chǎn)品計(jì)劃
- ...· 易靈思® 宣布擴(kuò)充高性能 鈦金系列™ FPGA 產(chǎn)品 鈦金系列產(chǎn)品擴(kuò)充至包含 1M 邏輯單元的 FPGA
- ...· 易靈思® 宣布Trion® Titanium 在臺積電 (TSMC) 16納米工藝節(jié)點(diǎn)流片
- ...· TI杯2019年全國大學(xué)生電子設(shè)計(jì)競賽頒獎典禮在京舉行
- ...· BlackBerry QNX虛擬機(jī)獲得全球首個汽車安全完整性等級(ASIL) ‘D’認(rèn)證
- ...· 威馬汽車選擇BlackBerry助力下一代汽車