《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > Windows CE中實現藍牙串口驅動程序

Windows CE中實現藍牙串口驅動程序

2008-08-04
作者:張 敬 高 強

??? 摘??要: 藍牙通信平臺在嵌入式系統" title="嵌入式系統">嵌入式系統的實現過程中,OBEX(對象交換)始終是很重要的一部分,基于OBEX的藍牙文件傳輸得到廣泛應用。而OBEX的實現是基于藍牙仿真串口" title="串口">串口,所以藍牙串口驅動程序的實現就有了很重要的意義。介紹了Windows CE下串口驅動程序的結構和一種具體的實現方法。
??? 關鍵詞: 藍牙? OBEX? 嵌入式系統? 驅動程序

?

??? Windows CE作為一種典型的嵌入式操作系統,通過將藍牙應用移植到Windows CE中,對于如pSOS+、Nucleus等其它嵌入式系統,具有典型意義。由于OBEX上的文件傳輸應用建立在RFCOMM實現的藍牙仿真串口上,本文介紹OBEX文件傳輸的藍牙虛擬串口驅動程序的實現。
1 Windows CE 設備驅動程序" title="設備驅動程序">設備驅動程序概述
??? Windows CE 支持廣泛的基于各種CE平臺的設備驅動程序。目前,它提供了四種設備模型,其中兩種是專用于Windows CE的模型,另外兩種外部模型來自其它操作系統?;赪indows CE的兩種模型是本機的設備驅動程序和流接口驅動程序。兩種外部模型用于通用串行總線(USB)和網絡驅動器接口標準(NDIS)的驅動程序。
??? 由于藍牙協議是在無線技術下的仿真串口,藍牙中OBEX的許多應用正是基于藍牙仿真串口。而流接口驅動程序通過一組流接口函數" title="接口函數">接口函數使得應用程序" title="應用程序">應用程序可以通過文件系統中的特殊文件而與設備接口,因此藍牙仿真串口的功能性更適合流接口驅動程序的結構。
2 Windows CE下藍牙串口驅動程序的實現
??? 雖然藍牙設備驅動程序的實現采用流接口驅動程序設計,但由于兩種驅動程序的基本結構與原理相似,所以下文從本機設備驅動程序結構開始,可以更清楚地認識藍牙設備驅動程序的實現原理。
2.1?本機設備驅動程序結構
??? Windows CE 中包含的樣本設備驅動程序分為兩種類型:單片驅動程序(Monolithic device driver)和分層的驅動程序(Layered Device driver)。單片驅動程序基于單個碼片,該碼片直接把硬件設備的功能性通過設備驅動程序接口傳遞給操作系統。與單片驅動程序相比,分層的驅動程序由兩個設置好的層組成:上層是模型設備驅動程序(MDD),下層是依賴平臺的驅動程序(PDD)。本文采用分層的驅動程序來連接藍牙硬件和上面的文件傳輸應用。圖1說明了兩種驅動程序是如何在Windows CE操作系統中集成的。

?


??? 設備驅動程序接口(DDI)是在MDD中實現的函數集,GWES模塊通過這個接口調用設備驅動程序;設備驅動程序服務器提供接口(DDSI)是在PDD中實現的函數集并由MDD調用。由于微軟提供了所有與MDD模塊相關的源代碼,所以對這部分不用做任何改動,只需將自己的PDD模塊與MDD模塊鏈結成一個公用庫。
??? 理解了本機設備驅動程序的結構后,從圖1右邊不難看出,流接口驅動程序只是把流接口作為它們的DDI使用。在這種情況下,不必要把這些驅動程序與GWES模塊鏈接起來。它們以普通的DLL方式存在并根據需要被調用。
2.2 藍牙仿真串口驅動程序實現
??? 藍牙仿真串口是用藍牙RFCOMM協議實現無電纜的無線串口通信,與本機設備驅動程序一樣,實現流接口的串口驅動程序同樣只需實現藍牙的PDD模塊。
??? PDD模塊包括四部分:第一部分是必須自己實現的所有DDSI接口;第二部分是藍牙協議棧包括RFCOMM、SDP、L2CAP以及HCI實體;第三部分是HCI傳輸層通過UART或者USB接口連接到藍牙硬件;最后一部分是為藍牙應用提供的圖形界面接口和控制端口模塊,用來對整個協議棧初始化、藍牙硬件初始化、搜索附近的藍牙設備以及發現指定設備上的服務。如圖2所示。

?


??? 在圖2所示的藍牙仿真串口驅動程序的系統結構中,設備管理程序是用戶層的程序,在基于Windows CE的平臺上不停地運行著。設備管理程序不是內核的一部分,但它是與內核、注冊表和流接口驅動程序DLL有相互影響的單獨部分。它主要執行以下任務:
??? ·在系統啟動時或收到用戶在基于Windows CE的平臺上增加了外圍設備的信息時,初始化驅動程序的加載;
??? ·向內核注冊特定文件名,該文件名把應用程序使用的流I/O函數映射到流接口驅動程序的那些函數的實現;
??? ·通過從外圍設備獲得即插即用標識符或激活一個檢查子程序來發現可以處理該設備的驅動程序,為外圍設備找到合適的設備驅動程序;
??? ·通過讀寫注冊值加載和跟蹤驅動程序;
??? ·當不再需要設備時,卸載驅動程序。
??? 流接口驅動程序是用戶一級的動態鏈接庫,用來實現一組固定的流接口函數,這些流接口函數使得應用程序可以通過文件系統中的特殊文件而與設備進行接口,因此對上面的OBEX應用程序來說,使用非常方便。?
??? 從圖2可以看出, 藍牙流接口驅動程序中一個MDD模塊對應著兩個PDD模塊,即實現了兩個仿真串口設備:一個是控制端口,用來完成藍牙協議和硬件的初始化,給OBEX 應用程序提供一個發現設備和服務的接口,這個串口只供具體應用內部使用;另一個才是真正的為其它藍牙應用使用的藍牙仿真串口,它通過實現一組系統提供的標準串口DDSI接口函數,實現藍牙RFCOMM協議的串口仿真。
??? 加載驅動程序是由設備管理程序通過查找注冊表中HKEY_LOCAL_MACHINEDrivers目錄,注冊的串口驅動程序的相關信息完成,因此必須至少注冊兩個藍牙串口設備。Windows CE中,一個串口被初始化前MDD層會先調用GetSerialObject()函數得到串口驅動程序中實現的串口設備數目。因此在藍牙串口驅動程序的初始化時,由如下代碼實現:
??? HWOBJ BluetoothObj = {?? ?/*描述藍牙仿真串口特征*/
?? ??? (PDEVICE_LIST) &SerDL,
?? ??? THREAD_IN_PDD,?/*中斷處理全部由PDD層 處理*/
?? ??? 0,
?? ??? NULL,
????? (PHW_VTBL) &BluetoothVTbl?/*包含需要實現的所有標準串口DDSI函數的列表*/
??? };
??? HWOBJ BluetoothCTRLObj = {?/*描述藍牙控制端口特征*/?
????? (PDEVICE_LIST) &SerDL,
????? THREAD_IN_PDD,
????? 0,
????? NULL,
? ??? (PHW_VTBL) &CTRLVTbl
??? };
??? PHWOBJ? rgpHWObjects[] = {?/*包含兩個PDD實例的數組*/
?? ??? &BluetoothObj,
?????? &BluetoothCTRLObj
?? ??? };
??? DEVICE_LIST SerDL = {?/*存儲設備驅動程序中所有串口設備*/
????? “CESerial.dll”,???/* 串口驅動程序的名字*/
?????? sizeof(rgpHWObjects)/sizeof(PHWOBJ),/*串口設備的數目*/
?????? rgpHWObjects
??? };
??? ?
??? PDEVICE_LIST GetSerialObject(VOID)
??? {???
?? ??? return (&SerDL);
??? }
??? 在串口驅動程序中注冊了兩個串口設備后,就要實現這兩個PDD實例對應的流接口函數。微軟為要實現的串口PDD模塊提供了一個HWOBJ(Haredware Object)類型的串行對象表,這個結構列出了實現串口驅動的所有接口函數指針。見下面的描述:
??? typedef struct __HW_VTBL {
??? PVOID (*HWInit)(ULONG Identifier, PVOID pMDDContext, PHWOBJ pHWObj);
??? …,
??? …,
??? BOOL (*HWIoctl)(PVOID pHead, DWORD dwCode,
??? PBYTE pBufIn,DWORD dwLenIn,PBYTE pBufOut,DWORD dwLenOut,PDWORD pdwActualOut);
??? } HW_VTBL, *PHW_VTBL;
??? 用戶通過修改串行口PDD的串行對象表改變函數集或函數名。下面的結構BluetoothVTbl定義了藍牙仿真串口DDSI函數的名稱。
??? const HW_VTBL BluetoothVTbl = {
????? ??BluetoothInitSerial,
????? ??…,
????? ??…,
????? ??BluetoothIoctl
??? };
??? 同樣用結構變量CTRLVTbl定義了控制端口的DDSI函數名列表。由于這個串口設備用作內部實現特殊的功能,下面只列出了需要關心的主要函數名。
??? const HW_VTBL CTRLVTbl = {
??????? CTRLInitSerial,
??????? CTRLDeinit,
??? ??? CTRLOpen,
??? ??? CTRLClose,
??? ???? …,
??? ???? …,
??? ??? CTRLIoctl
??? };
??? 藍牙作為一個驅動新經濟的引擎,將會對以嵌入式系統為主的“后PC機”時代的到來產生巨大的推動作用,同時它還將面臨來自象IrDA、802.11、HomeRF等無線通信技術的挑戰。而將OBEX成功引入藍牙,使得在嵌入式系統下工作的藍牙通信設備上傳輸文件、同步、打印等應用成為可能,因此在藍牙中起著舉足輕重的作用。
參考文獻
1 Draft Founation. Specification of the Bluetooth System. v1.0’July,1999
2 ATI.Nucleus Plus Internals. 1999
3 isi. PSOS+ V2.3 User's Reference Manual.1999
4 金 純,許光辰,孫 睿. 藍牙技術. 北京:電子工業出版社

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国产精品亚洲综合色区韩国| 在线看不卡av| 久久中文欧美| 欧美大片一区二区三区| 久久激情综合| 久久国产成人| 欧美三级视频在线观看| 亚洲欧美一区二区激情| 精品二区久久| 国产精品一区一区| 亚洲国产91精品在线观看| 欧美视频在线看| 亚洲综合色在线| 亚洲网站在线播放| 老**午夜毛片一区二区三区| 一区二区三区波多野结衣在线观看| 亚洲伊人第一页| 国产一区二区三区的电影| 国产自产女人91一区在线观看| 国产美女搞久久| 伊人婷婷久久| 欧美日韩在线免费| 欧美精品福利| 你懂的国产精品永久在线| 久久黄金**| 一区二区三区回区在观看免费视频| 亚洲素人一区二区| 亚洲专区在线视频| 久久成人一区| 国产亚洲精品一区二区| 99热在线精品观看| 亚洲国产日韩欧美综合久久| 狠狠色综合日日| 日韩午夜视频在线观看| 欧美无乱码久久久免费午夜一区| 欧美视频一二三区| 欧美好骚综合网| 韩国成人精品a∨在线观看| 国产精品免费小视频| 国产精品入口日韩视频大尺度| 久久一二三区| 中文精品一区二区三区| 国产区日韩欧美| 免费在线观看成人av| 欧美国产一区在线| 久久成人免费日本黄色| 久久精品国产77777蜜臀| 久久国产精品99久久久久久老狼| 国产综合色一区二区三区| 午夜精品亚洲| 欧美日韩免费观看一区三区| 欧美综合二区| 午夜在线不卡| 亚洲国产成人久久综合一区| 欧美日韩黄色一区二区| 亚洲一二三区视频在线观看| 久久免费视频在线观看| 亚洲第一网站免费视频| 国产综合在线看| 一区二区三区国产在线观看| 欧美日韩精品在线视频| 欧美网站大全在线观看| 欧美日韩高清区| 欧美/亚洲一区| 亚洲尤物在线视频观看| 国产一区二区三区自拍| 日韩一级欧洲| 免费在线看成人av| 亚洲人成绝费网站色www| 国产亚洲欧美日韩在线一区| 樱桃国产成人精品视频| 亚洲国产一区二区a毛片| 欧美视频精品一区| 久久久久成人精品| 欧美日韩一二三区| 国产亚洲一区二区精品| 免费人成网站在线观看欧美高清| 国产精品第一页第二页第三页| 欧美丝袜第一区| 激情综合自拍| 亚洲激情欧美激情| 久久三级福利| 亚洲欧美日韩精品综合在线观看| 欧美性天天影院| 一区二区三区在线观看视频| 欧美一级在线播放| 亚洲免费影院| 亚洲免费在线播放| 久久国产乱子精品免费女| 欧美mv日韩mv国产网站| 国产一区二区三区成人欧美日韩在线观看| 欧美大秀在线观看| 欧美二区在线播放| 亚洲高清精品中出| 欧美大片一区二区三区| 一本色道久久综合亚洲精品高清| 欧美日韩国产另类不卡| 欧美无乱码久久久免费午夜一区| 欧美日韩一区二区三区四区五区| 亚洲精品一区二区三区福利| 国产精品视频午夜| 亚洲人精品午夜在线观看| 国产精品视频导航| 亚洲国产精品久久人人爱蜜臀| 欧美精品v日韩精品v国产精品| 午夜精品影院| 免费在线欧美视频| 亚洲欧美卡通另类91av| 99热在线精品观看| 欧美日韩三级视频| 亚洲免费影视| 欧美成人免费在线| 亚洲乱码国产乱码精品精天堂| 欧美日韩一区二区三区高清| 亚洲国产精品久久久久婷婷884| 久色婷婷小香蕉久久| 99在线精品免费视频九九视| 欧美午夜精品久久久久久人妖| 国产精品mv在线观看| 亚洲精品在线免费| 欧美亚洲免费| 久久精品国产亚洲一区二区| 欧美日韩综合另类| 国产精品久久福利| 久久综合九色99| 久久久99久久精品女同性| 午夜在线电影亚洲一区| 国产精品私人影院| 欧美一区二区三区免费大片| 最新成人在线| 一区二区三区精品| 欧美精品在线一区| 欧美精品国产一区二区| 日韩一级欧洲| 欧美在线地址| 欧美人在线视频| 久久另类ts人妖一区二区| 亚洲欧美清纯在线制服| 小黄鸭视频精品导航| 免费一级欧美片在线观看| 午夜久久电影网| 久久综合九色欧美综合狠狠| 欧美猛交免费看| 亚洲韩国日本中文字幕| 一区二区三区高清在线观看| 国产麻豆一精品一av一免费| 永久免费精品影视网站| 亚洲全黄一级网站| 亚洲国产另类久久久精品极度| 久久久久久久久久久久久9999| 亚洲日本中文字幕免费在线不卡| 狠狠色狠狠色综合日日小说| 国产日韩精品在线| 久久精品女人天堂| 亚洲一区二区三区在线视频| 国内揄拍国内精品久久| 久久精品视频播放| 亚洲小视频在线观看| 国产精品国产三级国产aⅴ无密码| 亚洲精品久久久久久久久久久| 欧美国产精品一区| 亚洲国产美女精品久久久久∴| 91久久国产综合久久蜜月精品| 久久婷婷久久| 久久九九久精品国产免费直播| 男女精品网站| 狠狠爱www人成狠狠爱综合网| 久久亚洲精品伦理| 欧美激情综合色| 久久久精品国产免费观看同学| 亚洲精品在线一区二区| 久久成人精品| 国产拍揄自揄精品视频麻豆| 欧美日韩国产成人在线观看| 亚洲一区二区三区在线| 欧美成人日韩| 激情成人亚洲| 欧美一区二区三区在线观看视频| 美女被久久久| 久久综合电影一区| 黄色一区二区三区| 欧美jizz19性欧美| 久久久久久久久久久久久9999| 一区二区欧美日韩| 国产精品一区久久久久| 欧美日韩伦理在线| 久久婷婷蜜乳一本欲蜜臀| 亚洲夫妻自拍| 亚洲黑丝在线| 亚洲精品小视频在线观看| 欧美成人精品福利| 免费日韩av片| 91久久久精品| 国产精品v日韩精品v欧美精品网站| 亚洲精品国产无天堂网2021| 久久精品国产一区二区电影| 一区二区三区成人| 亚洲国产成人不卡| 国产日韩欧美中文在线播放| 亚洲欧美日韩国产成人精品影院| 亚洲国产高清在线观看视频| 国产欧美日韩另类视频免费观看| 亚洲精品日韩激情在线电影| 久久久高清一区二区三区| 亚洲色图自拍| 久久精品国产免费观看| 亚洲一区二区三区激情| 亚洲国产aⅴ天堂久久| 99精品免费视频| 久久婷婷久久一区二区三区| 国产精品久久久久91| 国产欧美一区二区精品秋霞影院| 欧美日韩一区二区视频在线观看| 国内精品久久久久久久影视蜜臀| 一区二区三区在线免费观看| 久久久不卡网国产精品一区| 欧美三日本三级少妇三2023| 亚洲欧美国产高清| 国产精品一区二区久久国产| 欧美成人免费一级人片100| 欧美午夜在线视频| 亚洲国产精品第一区二区| 欧美成人高清| 国产日韩欧美夫妻视频在线观看| 亚洲一区二区精品视频| 国产精品va在线播放我和闺蜜| 欧美一区影院| 欧美日韩国产综合新一区| 国产精品xnxxcom| 欧美1区视频| 欧美日韩八区| 国产精品久久久一本精品| 亚洲另类黄色| 欧美视频一区二区三区…| 亚洲伦理中文字幕| 亚洲一区二区三区午夜| 亚洲免费视频在线观看| 欧美精品999| 久久成人18免费网站| 欧美成人在线影院| 亚洲综合色视频| 欧美激情综合| 亚洲一区二区三区四区中文| 欧美在线电影| 国产午夜精品久久久久久免费视| 国产精品久久久久久久午夜片| 国产精品乱子乱xxxx| 欧美人妖另类| 亚洲一区在线直播| 国产情侣一区| 欧美一区二区三区另类| 国产亚洲欧美日韩精品| 久久亚洲精品一区| 亚洲每日在线| 亚洲欧美日韩一区二区| 欧美mv日韩mv亚洲| 香蕉久久久久久久av网站| 亚洲综合视频在线| 久久精品女人的天堂av| 亚洲成人在线视频播放| 欧美激情网友自拍| 欧美成人午夜剧场免费观看| 在线欧美日韩| 欧美日韩一区二区视频在线| 日韩一二在线观看| 国产在线不卡| 9l视频自拍蝌蚪9l视频成人| 狼人社综合社区| 另类激情亚洲| 欧美高清不卡在线| 亚洲国产精品一区二区第四页av| 国产精品热久久久久夜色精品三区| 亚洲免费一在线| 国产精品99久久久久久宅男| 国产精品视频男人的天堂| 在线看片第一页欧美| 国产精品九色蝌蚪自拍| 欧美精品在线免费观看| 亚洲桃花岛网站| 亚洲国产乱码最新视频| 麻豆精品视频| 欧美日韩亚洲视频一区| 亚洲深夜影院| 国产精品久久久久久影院8一贰佰| 亚洲天堂av综合网| 国产欧美日韩精品a在线观看| 欧美连裤袜在线视频| 午夜性色一区二区三区免费视频| 韩国三级电影久久久久久| 欧美三级中文字幕在线观看| 欧美日韩亚洲视频一区| a91a精品视频在线观看| 国产亚洲在线观看| 女人色偷偷aa久久天堂| 亚洲欧美日韩国产| 亚洲精品偷拍| 免费在线成人| 亚洲精品久久久一区二区三区| 国产日韩在线一区| 亚洲一区二区三区中文字幕在线| 国产日韩av一区二区| 亚洲第一级黄色片| 欧美日韩精品不卡| 一区二区日本视频| 午夜性色一区二区三区免费视频| 国产精品sss| 欧美一区二区在线| 亚洲激情一区二区三区| 一区二区精品国产| 在线观看三级视频欧美| 日韩一级裸体免费视频| 在线视频你懂得一区二区三区| 亚洲欧洲精品一区二区三区| 国产精品高潮久久| 欧美日韩免费观看一区=区三区| 欧美一区二区三区男人的天堂| 免费成人网www| 久久只有精品| 亚洲三级电影全部在线观看高清| 欧美激情bt| 国产精品视频九色porn| 一区二区三区精品在线| 欧美视频一区二区三区| 欧美日韩影院| 欧美欧美天天天天操| 欧美日韩一区三区四区| 国产精品av免费在线观看| 一区二区三区视频在线播放|