www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀] 摘要:藍牙通信平臺在嵌入式系統(tǒng)的實現(xiàn)過程中,OBEX(對象交換)始終是很重要的一部分,基于OBEX的藍牙文件傳輸?shù)玫綇V泛應(yīng)用。而OBEX的實現(xiàn)是基于藍牙仿真接口,所以藍牙串口

 摘要:藍牙通信平臺在嵌入式系統(tǒng)的實現(xiàn)過程中,OBEX(對象交換)始終是很重要的一部分,基于OBEX的藍牙文件傳輸?shù)玫綇V泛應(yīng)用。而OBEX的實現(xiàn)是基于藍牙仿真接口,所以藍牙串口驅(qū)動程序的實現(xiàn)就有了很重要的意義。介紹了Windows CE串口驅(qū)動程序的結(jié)構(gòu)和一種具體的實現(xiàn)方法。

關(guān)鍵詞:藍牙 OBEX 嵌入式系統(tǒng) 驅(qū)動程序

Windows CE作為一種典型的嵌入式操作系統(tǒng),通過將藍牙應(yīng)用移植到Widows CE中,對于如pSOS+、Nucleus等其它嵌入式系統(tǒng),具有典型意義。由于OBEX上的文件傳輸應(yīng)用建立在RFCOMM實現(xiàn)的藍牙仿真串口上,本文介紹OBEX文件傳輸?shù)乃{牙虛擬串口驅(qū)動程序的實現(xiàn)。

1 Windows CE設(shè)備驅(qū)動程序概述

Windows CE支持廣泛的基于各種CE平臺的設(shè)備驅(qū)動程序。目前,它提供了四種設(shè)備模型,其中兩種是專用于Windows CE的模型,另外兩種外部模型來自其它操作系統(tǒng)?;赪indows CE的兩種模型是本機的設(shè)備驅(qū)動程序和流接口驅(qū)動程序。兩種外部模型用于通用串行總線(USB)和網(wǎng)絡(luò)驅(qū)動器接口標準(NDIS)的驅(qū)動程序。

由于藍牙協(xié)議是在無線技術(shù)下的仿真串口,藍牙中OBEX的許多應(yīng)用正是基于藍牙仿真串口。而流接口驅(qū)動程序通過一組流接口函數(shù)使得應(yīng)用程序可以通過文件系統(tǒng)中的特殊文件而與設(shè)備接口,因此藍牙仿真串口的功能性更適合流接口驅(qū)動程序的結(jié)構(gòu)。

2 Windows CE下藍牙串口驅(qū)動程序的實現(xiàn)

雖然藍牙設(shè)備驅(qū)動程序的實現(xiàn)采用流接口驅(qū)動程序設(shè)計,但由于兩種驅(qū)動程序的基本結(jié)構(gòu)與原理相似,所以下文從本機設(shè)備驅(qū)動程序結(jié)構(gòu)開始,可以更清楚地認識藍牙設(shè)備驅(qū)動程序的實現(xiàn)原理。

2.1 本機設(shè)備驅(qū)動程序結(jié)構(gòu)

Windows CE中包含的樣本設(shè)備驅(qū)動程序分為兩種類型:單片驅(qū)動程序(Monolithic device driver)和分層的驅(qū)動程序(Layered Devicedriver)。單片驅(qū)動程序基于單個碼片,該碼片直接把硬件設(shè)備的功能性通過設(shè)備驅(qū)動程序接口傳遞給操作系統(tǒng)。與單片驅(qū)動程序相比,分層的驅(qū)動程序由兩個設(shè)置好的層組成:上層是模型設(shè)備驅(qū)動程序(MDD),下層是依賴平臺的驅(qū)動程序(PDD)。本文采用分層的驅(qū)動程序來連接藍牙硬件和上面的文件傳輸應(yīng)用。圖1說明了兩種驅(qū)動程序是如何在Windows CE操作系統(tǒng)中集成的。

設(shè)備驅(qū)動程序接口(DDI)是在MDD中實現(xiàn)的函數(shù)集,GWES模塊通過這個接口調(diào)用設(shè)備驅(qū)動程序;設(shè)備驅(qū)動程序服務(wù)器提供接口(DDSI)是在PDD中實現(xiàn)的函數(shù)集并由MDD調(diào)用。由于微軟提供了所有與MDD模塊相關(guān)的源代碼,所以對這部分不用做任何改動,只需將自己的PDD模塊與MDD模塊鏈結(jié)成一個公用庫。

理解了本機設(shè)備驅(qū)動程序的結(jié)構(gòu)后,從圖1右邊不難看出,流接口驅(qū)動程序只是把流接口作為它們的DDI使用。在這種情況下,不必要把這些驅(qū)動程序與GWES模塊邏接起來。它們以普通的DLL方式存在并根據(jù)需要被調(diào)用。

2.2 藍牙仿真串口驅(qū)動程序?qū)崿F(xiàn)

藍牙仿真串口是用藍牙RFCOMM協(xié)議實現(xiàn)無電纜的無線串口通信,與本機設(shè)備驅(qū)動程序一樣,實現(xiàn)流接口的串口驅(qū)動程序同樣只需實現(xiàn)藍牙的PDD模塊。

PDD模塊包括四部分:第一部分是必須自己實現(xiàn)的所有DDSI接口;第二部分是藍牙協(xié)議棧包括FRCOMM、SDP、L2CAP以及HCI實體;第三部分是HCI傳輸層通過UART或者USB接口連接到藍牙硬件;最后一部分是為藍牙應(yīng)用提供的圖形界面接口和控制端口模塊,用來對整個協(xié)議棧初始化、藍牙硬件初始化、搜索附近的藍牙設(shè)備以及發(fā)現(xiàn)指定設(shè)備上的服務(wù)。如圖2所示。

在圖2所示的藍牙仿真串口驅(qū)動程序的系統(tǒng)結(jié)構(gòu)中,設(shè)備管理程序是用戶層的程序,在基于Windows CE的平臺上不停地運行著。設(shè)備管理程序不是內(nèi)核的一部分,但它是與內(nèi)核、注冊表和注接口驅(qū)動程序DLL有相互影響的單獨部分。它主要執(zhí)行以下任務(wù):

HWOBJ BluetoothObj={ /*描述藍牙仿真串口特征*/

(PDEVICE_LIST)&SerDL,

THREAD_IN_PDD,/*中斷處理全部由PDD層處理*/

0,

NULL,

(PHW_VTBL)&BluetoothVTbl/*包含需要實現(xiàn)的所有標準串口DDSI函數(shù)的列表*/

};

HWOBJ BluetoothCTRLObj={/*描述藍牙控制端口特征*/

(PDEVICE_LIST)&SerDL,

THREAD_IN_PDD,

0,

NULL,

(PHW_VTBL)&CTRLVTb1

};

PHWOBJ rgpHWObjects[]={/*包含兩個PDD實例的數(shù)組*/

&BluetoothObj,

&BluetoothCTRLObj

};

DEVICE_LIST SerDL={/*存儲設(shè)備驅(qū)動程序中所有串口設(shè)備*/

“CESerial.dll”,/*串口驅(qū)動程序的名字*/

sizeof(rgpHWObjects)/sizeof(PHWOBJ),/*串口設(shè)備的數(shù)目*/

regHWObjects

};

PDEVICE_LIST GetSerialObject(VOID)

{

return (&SerDL);

}

串口驅(qū)動程序中注冊了兩個串口設(shè)備后,就要實現(xiàn)這兩個PDD實例對應(yīng)的流接口函數(shù)。微軟為要實現(xiàn)的串口PDD模塊提供了一個HWOBJ(Haredware Object)類型的串行對象表,這個結(jié)構(gòu)列出了實現(xiàn)串口驅(qū)動的所有接口函數(shù)指針。見下面的描述:

typedef struct _HW_VTBL{

PVOID(*HWInit)(ULONG Identifier,PVOID pMDDCon-text,PHWOBJ pHWObj);

…,

…,

BOOL(*HWIoct1)(PVOID pHead,DWORD dwCode,

PBYTE pBufIn,DWORD dwLenIn,PBYTE pBufOut,DWORD

DwLenOut,PDWORDpdwActualOut);

} HW_VTBL,*PHW_VTBL;

用戶通過修改串行口PDD的串行對象表改變函數(shù)集或函數(shù)名。下面的結(jié)構(gòu)BluetoothVTbl的定義了藍牙仿真串口DDSI函數(shù)的名稱。

Const HW_VTBL BluetoothVTbl={

BluetoothInitSerial,

…,

…,

BluetoothIoctl

};

同樣用結(jié)構(gòu)變量CTRLVTbl定義了控制端口的DDSI函數(shù)名列表。由于這個串口設(shè)備用作內(nèi)部實現(xiàn)特殊的功能,下面只列出了需要關(guān)心的主要函數(shù)名。

Const HW_VTBL CTRLVTbl={

CTRLInitSerial,

CTRLDeinit,

CTRLOpen,

CTRLClose,

…,

…,

CTRLIoctl[!--empirenews.page--]

};

藍牙作為一個驅(qū)動新經(jīng)濟的引擎,將會 對以嵌入式系統(tǒng)為主的“后PC機”時代的到來產(chǎn)生巨大的推動作用,同時它還將面臨來自象IrDA、802.11、HomeRF等無線通信技術(shù)的挑戰(zhàn)。而將OBEX成功引入藍牙,使得在嵌入式系統(tǒng)下工作的藍牙通信設(shè)備上傳輸文件、同步、打印等應(yīng)用成為可能,因此在藍牙中起著舉足輕重的作用。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉