- 相關推薦
基于HCI協議層的藍牙通用外接模塊的研究開發
摘要:藍牙是一種短距離無線通信技術。本文從藍牙協議棧中的HCI層入手,對該層的主要功能和工作機制進行了剖析,進而闡述了基于HCI層的藍牙應用開發方案,并設計了一個基于藍牙技術開發的產品實例——藍牙通用外接模塊,最后,還對基于此模塊的擴展應用——無線裁判打分系統進行了說明。
關鍵詞:HCI;藍牙技術;無線通信
1 引言
藍牙(Bluetooth),是一種短距離無線通信技術,用于替代數字設備牙設備運行在和計算機外設間的電纜連接以及實現數字設備間的無線組網。1998年5月由愛立信、IBM、英特爾、諾基亞、東芝等5家公司成立了藍牙特殊利益小組(SIG),負責聯合制定藍牙規范。藍牙工作在向全球統一開放的2.4GHz工業、科學、醫學(Industrial Scientific Medical)頻段,可以同時傳輸數據和語音,至多8個活動的藍牙設備可以共享信道帶寬,形成所謂的匹克網(piconet)。在每一個piconet中,有1個為藍牙主設備,其余7個為從設備,同時可容許有更多的從設備以暫停(park)的方式鎖定到主設備。多個picon-
et可以相互重疊。形成散射網(scattern-
et)。
SIG所頒布的藍牙規范就是藍牙無線通信協議標準,它規定了藍牙應用應遵循的標準和需要達到的要求,包括核心協議(Core)與應用框架(Profiles)兩部分。協議規范部分定義了藍牙的各層通信協議,遵循開放系統互連參考模型,從低到高地定義了藍牙協議堆棧的各個層次,如圖1所示。
按照藍牙協議的邏輯功能,協議堆棧由下至上分為三個部分:傳輸協議、中介協議和應用協議。本文中主機控制接口(HCI)位于傳輸協議之中,它并不是嚴格意義上的通信協議,它僅為應用協議堆棧的高層部分提供了一個訪問低層傳輸協議的指令接口。
如果我們從HCI層出發,可以將藍牙協議堆棧分為硬件與軟件2個協議塊。硬件部分由射頻部分(RF)、基帶部分(BB)、鏈路管理器部分(LM)和HCI固件構成,我們也可以把硬件部分稱為藍牙子系統。軟件部分由HCI主機驅動程序、邏輯鏈路控制適配協議(L2CAP)、串口仿真協議(RFCOMM)、服務發現協議(SDP)、電話控制協議(TCS)及其它應用協議所構成。在藍牙協議堆棧模型中的虛線部分為對本文中HCI協議層軟件的具體劃分。
2 HCI協議剖析
在藍牙協議模型中,HCI軟件驅動程序與HCI固件統一歸為HCI(主機控制接口),所以要基于HCI進行開發,首先必須了解HCI涉及的具體內容。主機控制接口為藍牙硬件中基帶控制器和鏈路管理器提供了命令接口,從而實現對硬件狀態寄存器和控制寄存器的訪問,特別是該接口提供了對藍牙基帶的統一訪問模式。HCI分為主機、傳輸層、主控制器三部分,并在每一層為HCI系統提供不同的功能。本文把HCI協議層劃為HCI軟件和HCI硬件兩部分來加以討論。
2.1 HCI軟件
HCI軟件部分可分為HCI固件和HCI驅動兩個部分。
HCI固件位于主控制器。HCI固件通過對基帶命令、鏈路管理器命令、硬件狀態寄存器、控制寄存器和事件寄存器的訪問,實現藍牙硬件HCI指令。主控制器(Host Controller)意味著具有主控制接口功能的藍牙器件。
與HCI固件不同,HCI驅動位于主機,即協議模型中的HCI軟件驅動部分。若某事件發生,用HCI事件通知主機,而主機將收到HCI事件的異步通知。當主機發現有事件發生時,它將分析收到的事件包并決定何種事件發生。主機端的HCI驅動程序,一方面通過接口被藍牙應用程序調用(本文所提到的藍牙應用程序是相對于HCI層而言的,指的是構建于通用外接模塊上的擴展應用程序),實現對上層應用的承載;另一方面實現了協議中的HCI功能集,使主機可以向藍牙子系統發送HCI指令,或接收子系統返回的HCI事件。
2.2 HCI的硬件
HCI驅動和HCI固件是通過主控制器傳輸層(位于主控制器與主機之間的中間層)進行通信的,這些中間層和主控制傳輸層提供了在沒有數據描述信息情況下傳輸數據的能力。在藍牙規范的描述中,藍牙子系統與主機之間共有3類數據轉移的方式、每一種數據在硬件接口均具有一定的封裝格式,分別是由3種傳輸層支持,分別為UART/RS232和USB。采用不同的主控制器傳輸層對主機所接收的HCI事件異步通知不會產生影響。
3 藍牙應用開發方案
在圖1中所提到的主機是一個廣義的概念,可以是以MPU為核心的計算機、也可以是以MCU為核心的控制電路,二者用途各異。其中以MCU為核心的控制電路適用于嵌入式應用開發,而以MPU為核心的計算機則適合于人機接口的軟件開發。
藍牙協議為建立于藍牙技術之上的多種應用提供了完整的解決辦法,但對于不同應用一般只用到藍牙協議中的某幾個,而且對于每部分協議也不用它所提供的全部功能。進而,在藍牙應用開發中可以從不同的協議層入手。在開發藍牙系統時,一般采用兩種方式進行開發,一種是采用只提供無線接口的簡單模塊,從藍牙子系統做起,再針對應用自行開發主芯片,該主芯片包括從基帶層到應用層的完整藍牙協議棧,這種開發方式較為復雜,但不一定需要HCI層;另一種方法是購買由供應商提供的完整的藍牙模塊,這些模塊實現了藍牙子系統的全部或部分功能,屏蔽了射頻和基帶兩個硬件協議層,可以直接在HCI基礎上進行開發。
目前供應商提供的藍牙模塊大致可分為2類,第1類為只實現了藍牙鏈路控制功能的模塊,第2類為藍牙鏈路控制與嵌入式HCI驅動功能均已實現的模塊。這2類模塊的主要不同之處在于第2類包括一個RISC(精簡指令集計算機)處理器,實現鏈路控制和HCI功能,而第1類的RISC則不具有HCI功能。在實際應用中,要根據實際情況而選擇不同類型的模塊。
如果選用集成了鏈路控制與HCI驅動功能的藍牙模塊,那么就可以在一個比較完整的平臺上進行開發。如果主機具有USB或UART接口,在藍牙模塊與主機信號電平兼容的情況下,接口連接可以不需要其它輔助硬件電路。許多情況下,USB或UART接口集成在主機的核心芯片上,所以可以實現藍牙模塊與主機的無縫接口。這種模型下的藍牙技術應用開發,主要工作集中在藍牙主機端軟件的實現上,包括HCI驅動程序與傳輸層驅動程序。正是由于這種藍牙模塊實現了嵌入式HCI協議,所以應用開發可以直接從HCI層開始,避免了基帶與射頻的硬
【基于HCI協議層的藍牙通用外接模塊的研究開發】相關文章:
基于PROFIBUS開發的FTU及同步采樣方法的研究03-19
基于體驗經濟的森林旅游產品開發研究03-21
基于知識模塊化戰略的企業經營構架研究03-20
基于FPGA的HDLC通信模塊的實現05-14
基于崗位勝任特征的職教課程開發研究03-16
基于人力資源開發的員工沉默行為研究03-29
基于PXI總線的數據采集模塊的設計03-07
ERP中的物流模塊研究12-04