新聞中心

EEPW首頁 > 手機與無線通信 > 設計應用 > 基于Windows CE.NET實現藍牙通訊模塊的幾種方法

基于Windows CE.NET實現藍牙通訊模塊的幾種方法

作者: 時間:2010-11-29 來源:網絡 收藏
  • [摘要]: 通訊技術在產品中的應用具有極為廣闊的前景,微軟公司的WindowsCE.NET已經成為了主流的操作系統(tǒng)之一。論文給出了在 VisualStudio2005中利用托管碼并分別采用P/Invoke技術、微軟工具包、OpenNETCF類庫和利用本機碼來開發(fā) WindowsCE.NET操作系統(tǒng)下通訊模塊的幾種方法,并在其中對P/Invoke技術、托管碼開發(fā)、本機碼開發(fā)等幾個關鍵技術進行了闡述。最 后給出了利用托管碼和本機碼開發(fā)藍牙通訊模塊這幾種方法的優(yōu)劣比較和分析。其內容對于在Windowsmobile平臺下開發(fā)藍牙設備間的通訊具有一定 實用價值。
    關鍵詞:藍牙WindowsmobileP/Invoke托管碼本機碼
    0引言
    自1998年,世界九大電子產業(yè)巨頭共同發(fā)起藍牙特殊利益集團SIG后,在短短不到十年之內,藍牙技術已經被應用到如信息家電、電子商務、汽車、航空、醫(yī) 療、交通等多個領域。在移動計算方面,藍牙技術采用了一種極為經濟的形式解決了無線通訊“最后10m”的問題,從而替代了各種移動信息電子設備之間的電 纜。因此,藍牙技術在移動計算領域的應用將十分廣闊,它的應用開發(fā)也就有很大的實際意義。
    微軟公司從1996年起開發(fā)了嵌入式操作系統(tǒng)WindowsCE1.0開始,憑借著其在PC市場上的成功經驗和WindowsCE類似于PC機上操作系統(tǒng)的作者簡介:白煒(1980-),男,碩士研究生,研究方向為嵌入式系統(tǒng)。
    導師簡介:白萬民,教授,研究方向為嵌入式系統(tǒng)、計算機應用。
    友好熟悉的界面逐漸擴大著自己在嵌入式操作系統(tǒng)市場的份額。Windowsmobile平臺是微軟公司針對嵌入式環(huán)境下開發(fā)的一套嵌入式操作系統(tǒng),其主要 是指WindowsCE.NET,WindowsCE.NET的最新版本為WindowsCE5.0,其中包括3個版本:以數據為中心的掌上電腦 PocketPC;以語音為中心的智能手機SmartPhone;以娛樂為中心的便攜式媒體中心PortableMediaCenters。而在 這3個版本中都可能涉及到藍牙應用的開發(fā)。
    在WindowsCE.NET的開發(fā)上,目前采用微軟公司2005年年底推出的VisualStudio2005是最理想的選擇。用 VisualStudio2005可以進行利用C#,或VB.NET等語言開發(fā)基于.NETCompactFramework2.0或1.0的 托管碼WinCE程序,也可以利用C++語言來開發(fā)基于MFC,ATL或Win32API的本機碼WinCE程序。
    因為在微軟最新的.NETCompactFramework2.0的類庫中還未包含針對藍牙通訊模塊的類庫,而且目前關于在WindowsCE中開發(fā)藍牙通訊模塊應用程序的介紹還很少,同時開發(fā)藍牙通訊技術的應用需要十分廣泛,所以本文將就此進行一些討論。
    1基于托管碼開發(fā)藍牙通訊模塊
    基于托管碼的開發(fā)就是使用一套運行時環(huán)境(run-timeenvironment)的應用程序接口來開發(fā)。
    一般情況下,托管碼應用程序的開發(fā)會比較簡單和快速,并且可跨軟件平臺和處理器來運行,所以開發(fā)出的托管碼也能重新使用并有較高的可移植性。
    另外,內存管理、資源管理、資源收集、安全性管理等瑣碎工作都由運行時環(huán)境來處理。應用程序開發(fā)工程師不必費心處理。托管應用程序在目標機器上運行,是通過目標機器端的實時編譯器來實時把托管碼編譯成目標機器碼后在目標機器上執(zhí)行。
    由于在.NET平臺下,采用CLR(公共語言運行時)可以用不同的語言來調用.NETCompactFramework來開發(fā)相同功能的應用程序,所以本文托管碼部分僅采用C#語言為例來介紹藍牙通訊模塊開發(fā)。
    1.1利用P/Invoke方法編寫藍牙通訊模塊
    藍牙通訊模塊是一個涉及到驅動硬件的應用程序開發(fā),而.NETCompactFramework并不是一個對Win32API進行了完整封裝的類庫。 所以在基于托管碼開發(fā)藍牙通訊模塊中必須利用到托管代碼如何與非托管代碼交互技術。P/Invoke全稱為PlatformInvoke,是.NET開 發(fā)平臺下允許托管代碼調用DLL庫的本地代碼函數的服務,類似于JA-VA中的GNI的概念。圖1說明了P/Invoke方法的工作原理。首先用相應語言 的編譯器將托管的源代碼編譯成Assembly的形式,其中包括元數據和中間語言代碼。而此時P/Invoke的聲明會以元數據的形式存在于 Assembly中,當Assembly被CLR調用的時候,CLR會根據元數據的聲明在對應的DLL函數中查找DLL的實現。如果找到,就將其加載到內 存中,并定位此DLL函數的人口點。將托管的參數人棧,并將函數的人口點指向對應的nativedll,從而完成了托管代碼調用非托管代碼的DLL。

    本文引用地址:http://www.2s4d.com/article/156912.htm

    linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

    c++相關文章:c++教程



    上一頁 1 2 3 下一頁

    關鍵詞: 藍牙 嵌入式

    評論


    相關推薦

    技術專區(qū)

    <option id="seeqg"></option>
  • <source id="seeqg"></source>
    <option id="seeqg"></option>