新聞中心

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

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

        作者: 時間:2010-11-29 來源:網絡 收藏
        <ul id="syywe"><pre id="syywe"></pre></ul>
      1. <kbd id="syywe"><pre id="syywe"></pre></kbd>

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

          本文引用地址:http://www.104case.com/article/156912.htm

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

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



          上一頁 1 2 3 下一頁

          關鍵詞: 藍牙 嵌入式

          評論


          相關推薦

          技術專區

          主站蜘蛛池模板: 灵石县| 大石桥市| 高台县| 栾城县| 哈密市| 四川省| 吉林市| 理塘县| 乌鲁木齐县| 苏尼特右旗| 射洪县| 雷波县| 博湖县| 道真| 上饶县| 揭阳市| 永顺县| 犍为县| 广宁县| 岳西县| 宝清县| 永年县| 赤水市| 益阳市| 阳泉市| 涪陵区| 桃源县| 肇源县| 喜德县| 逊克县| 天峨县| 大邑县| 忻州市| 邵阳县| 彰化市| 黔西| 集安市| 锡林浩特市| 时尚| 喀喇沁旗| 新宁县|
          <ul id="syywe"><pre id="syywe"></pre></ul>
            <th id="syywe"></th>