亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于嵌入式Linux藍牙HCI協(xié)議的研究與實現(xiàn)

        2013-09-25 14:12:58王孟柳陳和平??》?/span>
        電子設計工程 2013年4期
        關鍵詞:傳輸層驅動程序藍牙

        王孟柳,陳和平,??》澹瑒?夏

        (武漢科技大學 信息科學與工程學院,湖北 武漢 430081)

        藍牙是專為滿足人們在個人操作空間范圍的無線互聯(lián)而設計的,它采用調(diào)頻技術使處于個人操作空間的設備形成一個無線個人區(qū)域網(wǎng)絡,真正實現(xiàn)設備之間可移動的,自動的互聯(lián)。以“無線替代電纜”正是藍牙技術開發(fā)的初衷,同時也是藍牙最基本的用途。當然,短距離無線通信有很多種,還包括IrDA、IEEE802.11系列無線局域網(wǎng)、HomeRF、UWB等,但是藍牙技術以其低成本、低功耗、高速率以及標準的全球通用性成為發(fā)展最快,市場推廣最成功的短距離無線通信技術[1]。

        藍牙技術是一種低功耗的短距離無線通信技術,它作為無線數(shù)據(jù)與語音通信的開放標準,旨在取代現(xiàn)有的PC機,打印機,移動電話等相關設備上的連線。目前包括大多數(shù)著名IT企業(yè)和通信公司在內(nèi)的藍牙SIG,已經(jīng)推出了很多藍牙產(chǎn)品,實現(xiàn)了藍牙技術的產(chǎn)品化。

        1 藍牙協(xié)議棧

        實現(xiàn)各個藍牙設備間的通信,僅有底層的藍牙硬件是不夠的,還必須有藍牙協(xié)議棧的支持。藍牙協(xié)議棧運行在中央處理器之上,主要管理和分配系統(tǒng)資源,控制相關硬件,對通過HCI層的命令進行處理,完成藍牙功能[2]。由于協(xié)議找中底層的一些協(xié)議比如LMP等已經(jīng)固化在硬件中,高層的協(xié)議如PPP、TCP/IP也已經(jīng)存在??梢灾苯討茫孕枰獙崿F(xiàn)的是給主機提供HCI的接口、驅動程序、L2CAP層、RFCOMM、SDP功能等協(xié)議棧的中間層部分。

        整個藍牙協(xié)議的體系結構分為藍牙底層協(xié)議、中間層協(xié)議和高端應用層3部分[3],具體結構如圖1所示。

        圖1 藍牙協(xié)議棧體系結構Fig.1 System structure of Bluetooth protocol stack

        射頻層(RF),基帶層(BB)和鏈路管理層(LM)屬于藍牙底層的硬件模塊,它是藍牙技術的核心,是任何藍牙設備都不可少的部分。

        中間協(xié)議層主要包括邏輯鏈路控制和適配協(xié)議(L2CAP),服務發(fā)現(xiàn)協(xié)議(SDP),串口仿真協(xié)議(RFCOMM)和電話控制規(guī)范(TCS)。

        在藍牙協(xié)議棧的頂層是高端應用層,它相當于各種應用的模型的profile,是profile的一部分。我們可根據(jù)具體應用的模型的不同,選擇需要的現(xiàn)有高層協(xié)議。目前可以選用的高端應用層協(xié)議主要包含:TCP/UDP/IP協(xié)議,點對點協(xié)議(PPP),無線應用協(xié)議(WAP),對象交換協(xié)議(OBEX)等。

        2 HCI協(xié)議剖析

        2.1 主機控制器接口(HCI)簡介

        為了使不同廠商的非集成藍牙模塊之間能夠互通,SIG定義了一個標準接口與藍牙模塊中的主機控制器進行通信,同時還定義了一個事務性通信協(xié)議,用于在主機和主機控制器之間消息的傳送。這種主機和主機控制器間的標準接口和它們之間相應的通信協(xié)議一起被稱為主機控制器接口(HCI)。

        主機控制器接口(HCI)為上層協(xié)議提供了一個獨立于硬件實現(xiàn)的標準接口[4]。它主要包括兩個部分,在主機中運行的驅動程序和在硬件中運行的固件,二者之間通過傳輸層進行通信。目前,藍牙支持的傳輸層主要包括HCI USB傳輸層,HCI RS232傳輸層,HCI UART傳輸層,HCI SD傳輸層。

        圖2對軟件層底層進行了概述。HCI固件通過對鏈路管理器,硬件狀態(tài)注冊器,控制注冊器,事件注冊器等的訪問來執(zhí)行藍牙硬件的基帶命令。在主機中的HCI驅動程序和藍牙硬件中的HCI固件間存在許多層次。這些中間層提供了在不需要了解數(shù)據(jù)信息的情況下傳輸數(shù)據(jù)的能力。

        從圖2可以看出,HCI驅動程序并不能直接對底層硬件進行操作,而只能利用相應硬件的驅動程序所提供的服務來的操縱硬件。

        圖2 藍牙協(xié)議棧底層概述Fig.2 Bottom overview of Bluetooth protocol stack

        2.2 HCI分組類型

        藍牙標準定義了3種不同的HCI分組類型:命令分組(Command packer)、事件分組(Event packet)和數(shù)據(jù)分組(Data packet)[5-6]。HCI分組通過HCI傳輸層進行傳輸。如圖3所示,HCI命令分組用于主機向主機控制器發(fā)送控制和管理信息,包括設置藍牙模塊的操作狀態(tài)以及寄存器的讀寫。HCI事件分組是主機控制器向主機發(fā)送的信息,用于通知藍牙模塊底層狀態(tài)的變化。HCI數(shù)據(jù)分組用于在主機和主控制器之間傳輸語音(SCO分組)和數(shù)據(jù)(ACL分組)信息。

        圖3 HCI分組的三種類型Fig.3 Three types of HCI subgroups

        2.3 HCI USB傳輸層

        USB是由“通用串行總線實施論壇”組織公開發(fā)表、推廣的一種串行接口標準。USB主要用于連接中低檔外設,其傳輸速率最高可達12 Mbit/s。最高可連接127個設備。圖4所示是USB作為藍牙無線模塊與主機傳輸層接口時,主機棧與藍牙棧的配置情況。

        圖4 主機和藍牙無線模塊之間的關系Fig.4 Relationship between the host and Bluetooth wireless module

        USB設備可看作高速設備。其固件配置由兩個接口組成。第一個接口為固定設置,并包含BULK和中斷終端。第二個接口提供可擴展的同步帶寬占用方式。該接口方式提供四種設置,以提供基于同步帶寬需求的占用方式。其缺省接口為空,以使設備能夠支持非同步帶寬。

        一個HCI幀,包含一個HCI頭和HCI數(shù)據(jù),應包含于一USB事物中。此USB事物中為一個或多個包含I/O請求數(shù)據(jù)的USB幀。例如,包含256字節(jié)的ACL數(shù)據(jù)分組將在I/O請求中通過BULK終端發(fā)送。該I/O請求將需要4個64字節(jié)的USB幀,并組成一個事務。

        3 硬件實現(xiàn)

        大多數(shù)藍牙芯片主要實現(xiàn)了如下3層:無線層、基帶層和鏈路管理層。無線層主要完成頻率的合成、bit到符號的轉換和過濾,以及符號的收發(fā)操作;基帶層主要完成編碼/解碼、加密/解密、分組處理和調(diào)頻頻率的生成和選擇;鏈路管理層主要完成鏈接的建立和鏈路的管理。實現(xiàn)結構如圖5所示。

        本方案使用的是英國CSR (Cambridge Silicon Radio)提供的單芯片藍牙模塊BlueCore2-Extern。BlueCore2-Extern主要由 MCU、DSP、RAM、ROM、I/O 和一個 2.4 GHz的無線收發(fā)器組成。

        圖5 藍牙核心HCI棧Fig.5 Bluetooth core HCI stack

        BlueCore2-Extern總共提供了4種硬件接口,UART接口、SPI接口、USB接口和PCM話音接口。本方案使用的是USB接口和PCM話音接口,BlueCore2-Extern通過USB接口與主機控制器的USB接口相連,傳輸HCI命令、HCI事件和ACL數(shù)據(jù)傳輸[7-8]。

        對于天線,考慮到結構簡單和制作成本的問題,在目前已有的偶級天線、倒F型天線、折線天線以及微小型陶瓷天線等類型中,本方案選用了折線天線。折線天線的長度很難預測,由折線天線確切的幾何形狀和對地的距離決定,一般比四分之一波長略長。在本方案中我們選用的PCB折線天線印制在頂層,地平面也在頂層,并且位于貼近天線的位置。

        無論是以上哪種天線,均采用50 Ω的輸入阻抗與BlueCore2-Extern的ANT端相連。理想狀態(tài)下,微帶線的特征阻抗Z0閉合算式為:

        W表示線寬,h表示高度,εre表示介電常數(shù),η表示該天線的發(fā)射效率。硬件實物圖如圖6所示。

        圖6 硬件實物圖Fig.6 Hardware diagram

        4 HCI驅動程序設計

        Linux的一個特點就是把所有的東西都看作是文件。而設備驅動程序在Linux中扮演一個非常重要的角色,幾乎所有系統(tǒng)可用的設備都需要各自的驅動程序來協(xié)助訪問。驅動程序運行于內(nèi)核空間,用戶空間的應用程序通過文件系統(tǒng)中/dev/目錄下的一個相對應的文件來和它交互。

        本課題采用的是基于USB端口的藍牙適配器。對于一個USB的設備驅動來說,它必須實現(xiàn)若干個系統(tǒng)已經(jīng)定義好的數(shù)據(jù)結構。這些數(shù)據(jù)通常用于向內(nèi)核進行某種注冊。

        首先第一個是usb_driver結構體,它的定義如下:

        這個結構體將用于向系統(tǒng)注冊新的USB驅動程序和該驅動所支持的設備的ID。當設備接入系統(tǒng)后,內(nèi)核通過注冊的id_table確定對應的驅動程序,并調(diào)用該驅動的probe函數(shù)。而當設備與主機斷開連接時,相應的disconnect函數(shù)就會被調(diào)用。

        因為文中要完成的驅動需要在文件系統(tǒng)中創(chuàng)建相應節(jié)點,所有還需要用到另外兩個數(shù)據(jù)結構,sub_class_driver和file_operations,定義如下:

        usb_class_driver結構用于向系統(tǒng)注冊映射到/dev/目錄下的文件節(jié)點,所以它需要一個次設備號的起始值。對于USB設備來說,usb_class_driver結構體為我們提供了注冊節(jié)點和文件操作函數(shù)。所以,它還包括了一個文件操作結構指針和一個名字。

        HCI驅動的具體流程圖如圖7所示。HCI接口采用事件驅動的工作方式,主機發(fā)送命令,藍牙主控芯片以事件方式返回結果,主機分析所返回事件以確定下一個命令[9-10]。HCI接口采用數(shù)據(jù)包的方式,主要使用了其中3種:命令包,事件包和ACL數(shù)據(jù)包。

        5 測試結果

        將編譯好的HCI驅動模塊移植到arm開發(fā)板并加載,和一般的模塊一樣,可以選擇使用自動加載或手工加載,這里采用手工加載。成功加載好HCI驅動后,將USB藍牙模塊接入arm開發(fā)板,啟動藍牙設備。具體信息如圖8所示。

        由圖 8 可知,該藍牙設備的地址為 00:1F:81:00:01:1C,error為0,所以藍牙設備啟動成功。

        6 結束語

        圖7 HCI驅動流程Fig.7 HCI driving process

        圖8 測試結果Fig.8 Test result

        文中選擇以主機控制器接口為突破口對藍牙協(xié)議進行了較為深入的分析,在此基礎上針對HCI協(xié)議進行了流程分析和接口設計。HCI是實現(xiàn)藍牙協(xié)議棧時必須實現(xiàn)的一個部分,它的實現(xiàn)對于在具體硬件基礎上自主靈活地構建藍牙協(xié)議棧、開發(fā)藍牙應用起著決定性的作用。從測試結果看,本文設計的HCI驅動程序在arm開發(fā)板平臺上成功的驅動了藍牙模塊,通過所設計的HCI協(xié)議,使得PC主機與arm開發(fā)板之間能夠通過藍牙設備建立無線連接,查看對方設備信息和傳輸ACL數(shù)據(jù),達到了預期的效果。

        [1]SIG.Specification of the Bluetooth System(for Bluetooth core)v1.2[S].EuropeanTelecommunicationsStandardsInstitute,1999.

        [2]Hartsen J C.The Bluetooth Radio System[J].IEEE Personal Communications Magazine,2000,7(1):28-36.

        [3]李靜,耿衛(wèi)東.HCI協(xié)議在嵌入式藍牙系統(tǒng)中的應用[J].半導體技術,2002(8):10-13.

        LI Jing,GENG Wei-dong.The HCI protocol in the embedded Bluetooth system application[J].Semiconductor Technology,2002(8):10-13.

        [4]Bluetooth Special Interest Group.Bluetooth Network Encapsulation Protocol Specification[C].Version1,2003.

        [5]陸佳煒.藍牙主控制器接口簡析[J].半導體技術,2003,28(3):54-57.

        LU Jia-wei.The brief analysis of bluetooth host controller interface[J].Semiconductor technology,2003,28(3):54-57.

        [6]楊帆.基于BlueCore02-External芯片的藍牙鼠標的設計與實現(xiàn)[J].微機與應用,2005(5):20-22.

        YANG Fan.Design and Implementation based BlueCore02-Externalchip Bluetooth mouse[J].Microcomputerand Application,2005(5):20-22.

        [7]Cambridge Silicon Radio.BlueCore Serial Protocol(BCSP)[S], Cambridge,2004:7-26.

        [8]ZHOU Peng,LING Xiang.HCI-based bluetooth master-slave monitoring system design[C].2010 International Conference on Computational Problem-Solving,2010:406-409.

        [9] Cambridge Silicon Radio. HCI Implementation[S],Cambridge,2005:6-8.

        [10]SairamK,GunasekaranN.Bluetoothinwirelesscommunication[J].IEEE Personal Communications Magazine,2002,6(40):90-96.

        猜你喜歡
        傳輸層驅動程序藍牙
        藍牙音箱的直線之美
        基于Python語言的網(wǎng)絡傳輸層UDP協(xié)議攻擊性行為研究
        ZnO電子傳輸層在有機無機雜化鈣鈦礦太陽能電池中的應用
        陶瓷學報(2020年5期)2020-11-09 09:22:54
        簡單、易用,可玩性強Q AcousticsBT3藍牙音箱
        物聯(lián)網(wǎng)無線通信傳輸層動態(tài)通道保障機制
        適合自己的才是最好的 德生(TECSUN) BT-50藍牙耳機放大器
        基于物聯(lián)網(wǎng)GIS的消防智能巡檢系統(tǒng)設計與實現(xiàn)
        緊急:藍牙指尖陀螺自燃!安全隱患頻出
        玩具世界(2017年8期)2017-02-06 03:01:38
        驅動程序更新與推薦
        驅動程序更新與推薦
        国产一区二区三区视频免费在线| 女人被狂躁到高潮视频免费网站| 少妇人妻偷人精品视蜜桃| 无码精品色午夜| 日本久久黄色高清视频| 91伦理片视频国产精品久久久| 玩50岁四川熟女大白屁股直播| 欧美日韩电影一区| 视频一区中文字幕亚洲| 人妻一区二区三区av| 中文亚洲av片在线观看| 久久夜色撩人精品国产小说| 日本最新一区二区三区视频| 亚洲一区二区国产激情| 亚洲日本一区二区一本一道| 亚洲无码一二专区| 中文字幕你懂的一区二区| 日本妇人成熟免费2020| 无码毛片视频一区二区本码| 91性视频| 日本一二三区在线不卡| 国产97色在线 | 国产| 伊人色综合视频一区二区三区| 中文乱码字幕高清在线观看| 亚洲捆绑女优一区二区三区| 色综合久久久久综合99| 日韩无码视频淫乱| 中文字幕人妻少妇久久| 亚洲中文字幕午夜精品| 水蜜桃亚洲一二三四在线| 99re国产电影精品| 五月婷婷开心五月激情| 免费看黑人男阳茎进女阳道视频 | 久草午夜视频| 五十路一区二区中文字幕| 97一期涩涩97片久久久久久久 | 国产高潮精品一区二区三区av| 精品视频在线观看日韩| 国产青草视频在线观看| 午夜久久精品国产亚洲av| 免费看av网站在线亚洲|