• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 關 閉

    新聞中心

    EEPW首頁 > 工控自動化 > 設計應用 > 基于BlueCore2External藍牙芯片的USB接口設計

    基于BlueCore2External藍牙芯片的USB接口設計

    作者: 時間:2007-06-12 來源:網絡 收藏
    摘 要:根據藍牙規范v1.1對藍牙的HCI傳輸層進行了簡單的介紹,并提出一套基于芯片來實現接口的方案。在方案中,對這個芯片和外圍的附加芯片進行了簡要的介紹,給出了硬件信號流程框圖,在軟件部分中,介紹了連接和通信的相關步驟和原理,并給出了軟件流程圖以及軟件代碼。
    關鍵詞:藍牙;主機控制器接口(HCI);;軟件開發包DDK

    1前言
      
    藍牙是一種全新的無線數據交換技術,他的應用省卻了各種數字設備之間需要經過 復雜的軟件安裝與調試的有線連接過程,做到緊緊咬合、無縫連接,使各種電子設備與家用 電器融為一體,給人們的生活和工作帶來全新的感受。

      藍牙技術集成到各種數字設備中的方式有2種:一種是單微控制器方式,即所有的藍牙低層傳輸協議(包括藍牙射頻、基帶與鏈路控制器、鏈路管理器)與高層傳輸協議(包括邏輯鏈 路控制與適配協議、服務發現協議、串口仿真協議、網絡封裝協議等)以及用戶應用程序都 集成到一個模塊當中,整個處理過程由一個微處理器來完成;另一種是雙微控制器方式,即 藍牙協議與用戶應用程序分別由主機和主機控制器來實現(低層傳輸協議一般通過藍牙硬件模塊實現,模塊內部嵌入的微處理器稱為主機控制器,高層傳輸協議和用戶應用程序在個人計算機或嵌入的單片機、DSP等上運行,稱為主機),主機和主機控制器之間通過標 準的物理總線接口(,RS 232等)連接。

      在藍牙的主機-主機控制器連接模型中,主機接口HCI(Host Controller Interface)作為藍牙軟件協議堆棧中軟硬件之間的接口,他提供了一個控制基帶與鏈路控制器、鏈路管理器、狀態寄存器等硬件的統一接口。目前,藍牙HCI傳輸層的物理接口有通用串行總線USB,串行端口RS 232、通用異步收發器UART等。當主機和主機控制器通信時,HCI層以上的協議 在主機上運行,而HCI層以下的協議由藍牙主機控制器硬件完成,他們通過HCI傳輸層進行通信。主機和主機控制器中都有HCI,他們具有相同的接口標準。主機控制器中的HCI解釋來自主機的信息并將信息發向相應的硬件模塊單元,同時還將模塊中的信息(包括數據和硬件/固件信息)根據需要向上轉發給主機。如圖1所示為藍牙主機-主機控制器模型。

      藍牙主機-主機控制器模型方案采用了CSR公司的的藍牙模塊、附加模塊和對接對象模塊來實現藍牙的USB接口。

    2藍牙模塊、附加模塊和對接對象模塊概述
    2.1
    藍牙模塊
    2.1.1芯片
      BlueCore2External是一個單一芯片無線電和基帶鏈路控制器的BlueTooth 2.4 GH z系統,他采用0.18 μmCMOS技術集成了射頻、基帶和帶有全部集成藍牙協議棧的MCU以 及收發器。工作電源為1.8 V,相對該公司的第一代藍牙產品BlueCore1提高了內部的RAM(3 2 kB),對擴展的外部FLASH提高到了8 Mb,且能量消耗更低。采用BlueCore2Extern al芯片進行設計減少了外部射頻元件的數目,確保產品模塊的成本減到最小。裝置合并自動校正和建立內部的自我測試程序使發展簡單化,類型一致和實現生產測試。所有的硬件和裝 置固件都與BlueTooth規格v1.1完全適用。若配合使用包含有CSR藍牙協議棧的外部閃存,就可以實現數據和語音通信。該芯片除了藍牙規范v1.1中定義的USB接口和UART接口,以及PCMCODEC音頻接口外,還定義了串行外設接口,并行可編程I/O端口和I2C總線接口,這些接口使得編程仿真、調試和測試更加方便,也大大加強了與外部設備的接口能力。該芯片的內部結構如圖2所示。

    2.1.2MBM29LV800BA90PBT閃存器芯片
      MBM29LV800BA90PBT是FUJITSU公司生產的8 Mb閃速存儲器。他是通過每8 b1 MB方式或者每16 b512 kB組織起來的,3.3 V單電源供電,具有編程和擦 除功能,可將系統電源需求減到最小,支持JEDEC控制標準,與E2PROM使用相同的控制軟件。?

    2
    .2附加模塊
      附加模塊由2塊芯片組成即MAX878芯片和XC6209B182MR芯片,這是2塊電壓轉換芯片,主要 為藍牙模塊中的BlueCore2External芯片及閃存芯片MBM29LV800BA90PBT提 供電壓。這2塊芯片的電壓由對接對象模塊USB設備提供,由于USB插座均由PC機內部獲得5 V電源,而BlueCore2External芯片需1.8 V和3.3 V兩種電源,閃存芯片MBM29LV 800BA90PBT需3.3 V單電源,故電壓轉換芯片需完成由5 V轉換到1.8 V和3.3 V。MAX878芯片完成由5 V到3.3 V的轉換,XC6209B182MR芯片完成由3.3 V到1.8 V的轉換。

    2.3對接對象模塊
    USB
      USB是由“通用串行總線實施論壇”組織公開發布推廣的一種串行接口標準。藍牙沒有為USB 接口開發新的協議,而是使用已有的USB協議。USB接口支持符合藍牙規范v1.1,可以和其他數字設備兼容通信,USB設備硬件能夠以2種方式裝入設備中,一種是形狀類似于U盤的US B dongle;另一種是集成到電腦的主板上面。具體藍牙USB接口端點的配置請參考藍牙規范1.1。

      綜上所述,具體設計的硬件信號流程如圖3所示。

    ?

    3軟件程序實現
      
    對于USB硬件驅動程序可以使用微軟提供的軟件開發包DDK,該軟件包為驅動程序開發者提供 了用于開發驅動程序所需的資源文件、編譯連接程序、開發技術文檔等。藍牙協議沒有為US B接口開發新的協議,而是使用已有的USB協議,限于篇幅,對于USB接口硬件驅動程序部分不 再詳述。只著重介紹通過藍牙HCI傳輸層USB的物理接口來實現藍牙連接和數據通信。以VC++6.0為軟件開發平臺,由于條件所限,只給出點對點的藍牙連接和通信的程序,至于點對多點的只需對某些參數稍做修改。點對點的軟件的流程框圖如圖4所示。

    ?

    代碼如下:
      
    (1) 打開設備,同時要開啟HCI事件,HCI ACL,HCI SCO三個從主機控制器返回到主機上的事件的線程:
      

      ?
      
    (2) 對本地藍牙設備配置
      
      
    通過調用此函數來實現對藍牙設備的配置,包括連接建立最大的響應時間、尋呼最大響應時間、加密、鑒權、流量控制、讀取本地藍牙設備的名字以及本地藍牙設備地址BD_ADDR等。

      (3) 查詢有效范圍內的其他藍牙設備
      
      在查詢成功的同時通過HCI事件線程Get_HCI_Event()獲取對方藍牙設備的地址和雙方的時鐘偏差,這2個是決定在下一步是否能建立ACL連接的關鍵參數。

      (4) 建立ACL連接
      
      
      
    在建立ACL連接成功的同時,通過HCI事件線程Get_HCI_Event()獲取ACL連接句柄,在以后建立SCO連接以及發送ACL數據都將使用這個句柄來完成相應的操作。

      (5) 建立SCO連接
      
      在建立SCO連接成功的同時,通過HCI事件線程Get_HCI_Event()獲取SCO連接句柄,在以后進行發送SCO數據時要使用這個句柄來完成相應的操作。

      (6) 建立完ACL和SCO連接后,就可以進行ACL和SCO數據發送和接收,通過線程Get_ACL_Data(),Get_SCO_Data()獲取ACL和SCO數據
      
      
    (7) 斷開連接
      
    參考文獻

    [1]Bluetooth SIG Specification of Bluetooth System Version 1. 1[S].2001?
    [2]馬建倉,羅亞軍,趙玉亭.藍牙核心技術及應用[M].北京:科學出版社,2003?
    [3]http://www.csr.comBlueCore2External Product Data Sheet 2004?
    [4]宋春榮.通用集成電路速查手冊[M].濟南:山東科學技術出版社,1995
    [5]梁廷貴.現代集成電路實用手冊 譯碼器 編碼器 數據選擇器 電子開關電源分冊[M].北京:科學技術文獻出版社,2002



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 黄龙县| 吉木萨尔县| 通许县| 黄冈市| 邵阳县| 体育| 宁海县| 荣成市| 习水县| 秀山| 双峰县| 双峰县| 云安县| 凤山县| 台东市| 成安县| 江陵县| 南靖县| 黄大仙区| 新干县| 禹城市| 花垣县| 承德市| 巴里| 司法| 津南区| 台安县| 古蔺县| 句容市| 武穴市| 和平区| 安仁县| 马尔康县| 广水市| 英吉沙县| 大荔县| 阜南县| 婺源县| 桂平市| 平塘县| 航空|