999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2013-09-25 14:12:58王孟柳陳和平祝俊峰
電子設計工程 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)存在。可以直接應用,所以需要實現(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.

猜你喜歡
設備
諧響應分析在設備減振中的應用
調(diào)試新設備
當代工人(2020年13期)2020-09-27 23:04:20
基于VB6.0+Access2010開發(fā)的設備管理信息系統(tǒng)
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
廣播發(fā)射設備中平衡輸入與不平衡輸入的轉換
電子制作(2018年10期)2018-08-04 03:24:48
食之無味,棄之可惜 那些槽點滿滿的可穿戴智能設備
500kV輸變電設備運行維護探討
HTC斥資千萬美元入股虛擬現(xiàn)實設備商WEVR
IT時代周刊(2015年8期)2015-11-11 05:50:37
Automechanika Shanghai 2014 之“看” 汽保設備篇
如何在設備采購中節(jié)省成本
主站蜘蛛池模板: 99热国产在线精品99| 日韩欧美国产成人| 伊人久久婷婷五月综合97色| 天堂成人在线视频| 亚洲无线视频| 国产女人18毛片水真多1| 欧美一级高清视频在线播放| 国产一级特黄aa级特黄裸毛片| 日韩亚洲高清一区二区| 亚洲视屏在线观看| 国产熟女一级毛片| 国产屁屁影院| 国产精品三级专区| 无码AV动漫| 99久久99视频| AV天堂资源福利在线观看| 伊伊人成亚洲综合人网7777| 在线免费观看AV| 久久国产黑丝袜视频| 国产福利一区视频| 免费无遮挡AV| 午夜丁香婷婷| 久久综合色88| 精品久久高清| 少妇极品熟妇人妻专区视频| 亚洲AV成人一区二区三区AV| 永久天堂网Av| 国产在线第二页| 国产农村1级毛片| 九九九国产| 日本三级黄在线观看| 成人精品免费视频| 亚洲最猛黑人xxxx黑人猛交| 亚洲床戏一区| 亚洲欧美精品一中文字幕| 亚洲中文字幕国产av| 日韩欧美在线观看| 青青青国产免费线在| 中文字幕调教一区二区视频| 国产午夜一级淫片| 很黄的网站在线观看| 国产精品大白天新婚身材| 中国一级毛片免费观看| 日本一区二区不卡视频| 暴力调教一区二区三区| 国产女人喷水视频| 久久黄色免费电影| 在线综合亚洲欧美网站| 欧亚日韩Av| 亚洲人成网站色7799在线播放| 日韩a级毛片| 免费久久一级欧美特大黄| 91在线一9|永久视频在线| 欧美日韩亚洲国产主播第一区| 亚洲福利视频一区二区| 丝袜美女被出水视频一区| 99免费在线观看视频| 亚洲成人在线免费| 成人日韩欧美| 四虎永久在线视频| 亚洲欧美日本国产专区一区| 99无码中文字幕视频| 欧美性精品| 国产无码精品在线| 亚洲精品午夜无码电影网| 欧美亚洲欧美| 国产伦精品一区二区三区视频优播| 免费人成网站在线观看欧美| 538国产视频| 成人亚洲视频| 久草中文网| 永久免费精品视频| 国产成人午夜福利免费无码r| 91精品专区国产盗摄| 日韩在线欧美在线| 亚洲综合经典在线一区二区| 亚洲欧美日韩精品专区| 日韩精品高清自在线| 日韩亚洲高清一区二区| 人妻无码AⅤ中文字| 大香网伊人久久综合网2020| 久久精品国产亚洲麻豆|