前言:本站為你精心整理了藍(lán)牙技術(shù)通信思考范文,希望能為你的創(chuàng)作提供參考價(jià)值,我們的客服老師可以幫助你提供個(gè)性化的參考范文,歡迎咨詢。
摘要:藍(lán)牙是一種短距離無線通信技術(shù)。本文從藍(lán)牙協(xié)議棧中的HCI層入手,對該層的主要功能和工作機(jī)制進(jìn)行了剖析,進(jìn)而闡述了基于HCI層的藍(lán)牙應(yīng)用開發(fā)方案,并設(shè)計(jì)了一個(gè)基于藍(lán)牙技術(shù)開發(fā)的產(chǎn)品實(shí)例——藍(lán)牙通用外接模塊,最后,還對基于此模塊的擴(kuò)展應(yīng)用——無線裁判打分系統(tǒng)進(jìn)行了說明。
關(guān)鍵詞:HCI;藍(lán)牙技術(shù);無線通信
1引言
藍(lán)牙(Bluetooth),是一種短距離無線通信技術(shù),用于替代數(shù)字設(shè)備牙設(shè)備運(yùn)行在和計(jì)算機(jī)外設(shè)間的電纜連接以及實(shí)現(xiàn)數(shù)字設(shè)備間的無線組網(wǎng)。1998年5月由愛立信、IBM、英特爾、諾基亞、東芝等5家公司成立了藍(lán)牙特殊利益小組(SIG),負(fù)責(zé)聯(lián)合制定藍(lán)牙規(guī)范。藍(lán)牙工作在向全球統(tǒng)一開放的2.4GHz工業(yè)、科學(xué)、醫(yī)學(xué)(IndustrialScientificMedical)頻段,可以同時(shí)傳輸數(shù)據(jù)和語音,至多8個(gè)活動(dòng)的藍(lán)牙設(shè)備可以共享信道帶寬,形成所謂的匹克網(wǎng)(piconet)。在每一個(gè)piconet中,有1個(gè)為藍(lán)牙主設(shè)備,其余7個(gè)為從設(shè)備,同時(shí)可容許有更多的從設(shè)備以暫停(park)的方式鎖定到主設(shè)備。多個(gè)picon-
et可以相互重疊。形成散射網(wǎng)(scattern-
et)。
SIG所頒布的藍(lán)牙規(guī)范就是藍(lán)牙無線通信協(xié)議標(biāo)準(zhǔn),它規(guī)定了藍(lán)牙應(yīng)用應(yīng)遵循的標(biāo)準(zhǔn)和需要達(dá)到的要求,包括核心協(xié)議(Core)與應(yīng)用框架(Profiles)兩部分。協(xié)議規(guī)范部分定義了藍(lán)牙的各層通信協(xié)議,遵循開放系統(tǒng)互連參考模型,從低到高地定義了藍(lán)牙協(xié)議堆棧的各個(gè)層次,如圖1所示。
按照藍(lán)牙協(xié)議的邏輯功能,協(xié)議堆棧由下至上分為三個(gè)部分:傳輸協(xié)議、中介協(xié)議和應(yīng)用協(xié)議。本文中主機(jī)控制接口(HCI)位于傳輸協(xié)議之中,它并不是嚴(yán)格意義上的通信協(xié)議,它僅為應(yīng)用協(xié)議堆棧的高層部分提供了一個(gè)訪問低層傳輸協(xié)議的指令接口。
如果我們從HCI層出發(fā),可以將藍(lán)牙協(xié)議堆棧分為硬件與軟件2個(gè)協(xié)議塊。硬件部分由射頻部分(RF)、基帶部分(BB)、鏈路管理器部分(LM)和HCI固件構(gòu)成,我們也可以把硬件部分稱為藍(lán)牙子系統(tǒng)。軟件部分由HCI主機(jī)驅(qū)動(dòng)程序、邏輯鏈路控制適配協(xié)議(L2CAP)、串口仿真協(xié)議(RFCOMM)、服務(wù)發(fā)現(xiàn)協(xié)議(SDP)、電話控制協(xié)議(TCS)及其它應(yīng)用協(xié)議所構(gòu)成。在藍(lán)牙協(xié)議堆棧模型中的虛線部分為對本文中HCI協(xié)議層軟件的具體劃分。
2HCI協(xié)議剖析
在藍(lán)牙協(xié)議模型中,HCI軟件驅(qū)動(dòng)程序與HCI固件統(tǒng)一歸為HCI(主機(jī)控制接口),所以要基于HCI進(jìn)行開發(fā),首先必須了解HCI涉及的具體內(nèi)容。主機(jī)控制接口為藍(lán)牙硬件中基帶控制器和鏈路管理器提供了命令接口,從而實(shí)現(xiàn)對硬件狀態(tài)寄存器和控制寄存器的訪問,特別是該接口提供了對藍(lán)牙基帶的統(tǒng)一訪問模式。HCI分為主機(jī)、傳輸層、主控制器三部分,并在每一層為HCI系統(tǒng)提供不同的功能。本文把HCI協(xié)議層劃為HCI軟件和HCI硬件兩部分來加以討論。
2.1HCI軟件
HCI軟件部分可分為HCI固件和HCI驅(qū)動(dòng)兩個(gè)部分。
HCI固件位于主控制器。HCI固件通過對基帶命令、鏈路管理器命令、硬件狀態(tài)寄存器、控制寄存器和事件寄存器的訪問,實(shí)現(xiàn)藍(lán)牙硬件HCI指令。主控制器(HostController)意味著具有主控制接口功能的藍(lán)牙器件。
與HCI固件不同,HCI驅(qū)動(dòng)位于主機(jī),即協(xié)議模型中的HCI軟件驅(qū)動(dòng)部分。若某事件發(fā)生,用HCI事件通知主機(jī),而主機(jī)將收到HCI事件的異步通知。當(dāng)主機(jī)發(fā)現(xiàn)有事件發(fā)生時(shí),它將分析收到的事件包并決定何種事件發(fā)生。主機(jī)端的HCI驅(qū)動(dòng)程序,一方面通過接口被藍(lán)牙應(yīng)用程序調(diào)用(本文所提到的藍(lán)牙應(yīng)用程序是相對于HCI層而言的,指的是構(gòu)建于通用外接模塊上的擴(kuò)展應(yīng)用程序),實(shí)現(xiàn)對上層應(yīng)用的承載;另一方面實(shí)現(xiàn)了協(xié)議中的HCI功能集,使主機(jī)可以向藍(lán)牙子系統(tǒng)發(fā)送HCI指令,或接收子系統(tǒng)返回的HCI事件。
2.2HCI的硬件
HCI驅(qū)動(dòng)和HCI固件是通過主控制器傳輸層(位于主控制器與主機(jī)之間的中間層)進(jìn)行通信的,這些中間層和主控制傳輸層提供了在沒有數(shù)據(jù)描述信息情況下傳輸數(shù)據(jù)的能力。在藍(lán)牙規(guī)范的描述中,藍(lán)牙子系統(tǒng)與主機(jī)之間共有3類數(shù)據(jù)轉(zhuǎn)移的方式、每一種數(shù)據(jù)在硬件接口均具有一定的封裝格式,分別是由3種傳輸層支持,分別為UART/RS232和USB。采用不同的主控制器傳輸層對主機(jī)所接收的HCI事件異步通知不會產(chǎn)生影響。
3藍(lán)牙應(yīng)用開發(fā)方案
在圖1中所提到的主機(jī)是一個(gè)廣義的概念,可以是以MPU為核心的計(jì)算機(jī)、也可以是以MCU為核心的控制電路,二者用途各異。其中以MCU為核心的控制電路適用于嵌入式應(yīng)用開發(fā),而以MPU為核心的計(jì)算機(jī)則適合于人機(jī)接口的軟件開發(fā)。
藍(lán)牙協(xié)議為建立于藍(lán)牙技術(shù)之上的多種應(yīng)用提供了完整的解決辦法,但對于不同應(yīng)用一般只用到藍(lán)牙協(xié)議中的某幾個(gè),而且對于每部分協(xié)議也不用它所提供的全部功能。進(jìn)而,在藍(lán)牙應(yīng)用開發(fā)中可以從不同的協(xié)議層入手。在開發(fā)藍(lán)牙系統(tǒng)時(shí),一般采用兩種方式進(jìn)行開發(fā),一種是采用只提供無線接口的簡單模塊,從藍(lán)牙子系統(tǒng)做起,再針對應(yīng)用自行開發(fā)主芯片,該主芯片包括從基帶層到應(yīng)用層的完整藍(lán)牙協(xié)議棧,這種開發(fā)方式較為復(fù)雜,但不一定需要HCI層;另一種方法是購買由供應(yīng)商提供的完整的藍(lán)牙模塊,這些模塊實(shí)現(xiàn)了藍(lán)牙子系統(tǒng)的全部或部分功能,屏蔽了射頻和基帶兩個(gè)硬件協(xié)議層,可以直接在HCI基礎(chǔ)上進(jìn)行開發(fā)。
目前供應(yīng)商提供的藍(lán)牙模塊大致可分為2類,第1類為只實(shí)現(xiàn)了藍(lán)牙鏈路控制功能的模塊,第2類為藍(lán)牙鏈路控制與嵌入式HCI驅(qū)動(dòng)功能均已實(shí)現(xiàn)的模塊。這2類模塊的主要不同之處在于第2類包括一個(gè)RISC(精簡指令集計(jì)算機(jī))處理器,實(shí)現(xiàn)鏈路控制和HCI功能,而第1類的RISC則不具有HCI功能。在實(shí)際應(yīng)用中,要根據(jù)實(shí)際情況而選擇不同類型的模塊。
如果選用集成了鏈路控制與HCI驅(qū)動(dòng)功能的藍(lán)牙模塊,那么就可以在一個(gè)比較完整的平臺上進(jìn)行開發(fā)。如果主機(jī)具有USB或UART接口,在藍(lán)牙模塊與主機(jī)信號電平兼容的情況下,接口連接可以不需要其它輔助硬件電路。許多情況下,USB或UART接口集成在主機(jī)的核心芯片上,所以可以實(shí)現(xiàn)藍(lán)牙模塊與主機(jī)的無縫接口。這種模型下的藍(lán)牙技術(shù)應(yīng)用開發(fā),主要工作集中在藍(lán)牙主機(jī)端軟件的實(shí)現(xiàn)上,包括HCI驅(qū)動(dòng)程序與傳輸層驅(qū)動(dòng)程序。正是由于這種藍(lán)牙模塊實(shí)現(xiàn)了嵌入式HCI協(xié)議,所以應(yīng)用開發(fā)可以直接從HCI層開始,避免了基帶與射頻的硬件實(shí)現(xiàn),是一種全軟件式的開發(fā)模式,開發(fā)成果具有很好的可移植性。本文中正是采用了這一開發(fā)方案進(jìn)行的藍(lán)牙通用外接模塊的開發(fā)。通過封裝HCI協(xié)議層,可以生成標(biāo)準(zhǔn)的HCI接口函數(shù),為上層的應(yīng)用開發(fā)(在本文指的是藍(lán)牙通用模塊)提供一個(gè)完整的平臺。
制功能的藍(lán)牙模塊,由于它不提供HCI傳輸層接口和嵌入式HCI驅(qū)動(dòng)程序。此時(shí),嵌入式HCI驅(qū)動(dòng)程序的功能將轉(zhuǎn)嫁給主機(jī)來實(shí)現(xiàn)。這樣,與前一種開發(fā)模式相比,主機(jī)的HCI層驅(qū)動(dòng)程序?qū)⒆兊檬謴?fù)雜,開發(fā)周期也將是比較長的。
4藍(lán)牙通用外接模塊設(shè)計(jì)開發(fā)實(shí)例
筆者基于HCI成功地開發(fā)了一種在現(xiàn)有的供應(yīng)商提供的藍(lán)牙模塊基礎(chǔ)上進(jìn)行指令重新解釋與結(jié)構(gòu)封裝的通用外接模塊。本模塊最終面向基于此通用模塊的擴(kuò)展應(yīng)用,提供了USB接口、UART/RS232接口、耳機(jī)接口、麥克MIC接口、鍵盤等多種接口,可同時(shí)進(jìn)行數(shù)據(jù)和語音信息的傳輸。該通用外接模塊既可以單獨(dú)構(gòu)成藍(lán)牙應(yīng)用系統(tǒng)使用,也可以與主機(jī)連接使用,使用應(yīng)用者很方便地借助于藍(lán)牙技術(shù)來實(shí)現(xiàn)應(yīng)用產(chǎn)品的無線通訊。
為了對此通用外接模塊進(jìn)行功能測試,在實(shí)驗(yàn)開發(fā)階段(本文中對此通用模塊說明均是針對開發(fā)階段的),筆者使用了兩臺PC作為通用外接模塊之上的擴(kuò)展應(yīng)用的主體,2個(gè)通用外接模塊分別作為藍(lán)牙piconet中的主、從設(shè)備,藍(lán)牙設(shè)備通過UART或USB口由PC處接收命令和數(shù)據(jù)信息,通用外接模塊對此信息進(jìn)行處理后,以無線傳輸方式將信息發(fā)至另一藍(lán)牙設(shè)備的應(yīng)用主體PC處。
下面從硬件和軟件兩個(gè)方面加以介紹,本文論及的設(shè)計(jì)主要包括藍(lán)牙通用模塊及作為擴(kuò)展應(yīng)用主體的PC兩大部分。
4.1硬件設(shè)計(jì)
藍(lán)牙通用模塊部分硬件電路主要由語音芯片、微控制器部分(即藍(lán)牙主機(jī)部分)及藍(lán)牙模塊等組成。硬件結(jié)構(gòu)如圖2所示:
其中采用了支持雙串口的DALLAS公司生產(chǎn)的DS89C420微控制器作為藍(lán)牙主機(jī),兩串口分別與藍(lán)牙模塊及構(gòu)建于通用模塊之上的擴(kuò)展應(yīng)用的主體進(jìn)行通信;使用MSM7560L語音芯片;藍(lán)牙模塊采用的是Ericsson公司生產(chǎn)的模塊,型號為ROK101007,屬于本文提到的第2類模塊,采用ARM7芯片作為RISC處理器。
在硬件實(shí)現(xiàn)上,微控制器部分主要由DS89C420微控制器、電源系統(tǒng)、振蕩電路、復(fù)位電路、接口電平轉(zhuǎn)換電路等幾部分組成,微控制單元是核心部分。電平轉(zhuǎn)換電路用于在藍(lán)牙模塊與PC通信接口之間進(jìn)行電平的轉(zhuǎn)換。另外還包括一些不同類型的接口電路、跳線開關(guān)電路以及若干狀態(tài)LED等外圍器件,以備建立于通用外接模塊之上的擴(kuò)展應(yīng)用及通訊狀態(tài)監(jiān)測的需要。
4.2軟件設(shè)計(jì)
4.2.1PC部分軟件設(shè)計(jì)
PC部分測試程序主要是開發(fā)藍(lán)牙應(yīng)用組件,測試程序運(yùn)行于Windows操作系統(tǒng)之上,提供了USB和串口驅(qū)動(dòng)程序,應(yīng)用程序函數(shù)接口(API)等,具體可分為PC串口初始化、藍(lán)牙通信參數(shù)設(shè)定、藍(lán)牙通用外接模塊控制、HCI指令封裝、數(shù)據(jù)信息處理等幾個(gè)部分。
其中第一步要做的工作是初始化計(jì)算機(jī)串口,串口參數(shù)可以根據(jù)實(shí)際需要進(jìn)行選擇。第二步要進(jìn)行的是藍(lán)牙模塊參數(shù)的設(shè)定,其中包括藍(lán)牙設(shè)備主從設(shè)定、藍(lán)牙模塊初始化參數(shù)的設(shè)定、程序監(jiān)測設(shè)定等幾部分。以上所有這些動(dòng)態(tài)設(shè)定,是通過擴(kuò)展應(yīng)用主體(此外為PC)往通用外接模塊串口發(fā)送公共變量而實(shí)現(xiàn)的。當(dāng)收到參數(shù)設(shè)定成功消息后,進(jìn)行下一步,即向通用外接模塊串口發(fā)送命令消息來實(shí)現(xiàn)藍(lán)牙設(shè)備的初始化、查詢、鏈接建立過程,在收到通用模塊發(fā)回的鏈接建立完成的反饋信息后,即可按一定的格式將數(shù)據(jù)信息發(fā)往通用外接模塊接口,完成數(shù)據(jù)信息的無線傳輸。
4.2.2通用外接模塊軟件設(shè)計(jì)
通用外接模塊一方面從PC方的RS-232串口接收PC端的公共參數(shù)信息(用于串口初始化及藍(lán)牙模塊參數(shù)設(shè)定)、命令信息及數(shù)據(jù)信息,另一方面發(fā)送相應(yīng)的HCI指令給藍(lán)牙模塊ROK101007,然后將返回的事件進(jìn)行分析處理,最終將有關(guān)程序狀態(tài)、通訊數(shù)據(jù)信息返回給本地PC。軟件實(shí)現(xiàn)的全部功能是通過C51語言進(jìn)行開發(fā)的,由專用寄存器設(shè)置子程序、中斷處理程序、定時(shí)器中斷程序、看門狗程序、鏈路初始化子程序、鏈路建立子程序、通信數(shù)據(jù)處理子程序、斷開鏈路子程序、藍(lán)牙測試子程序等功能塊來完成。所有程序信息對于通用外接模塊以外的擴(kuò)展應(yīng)用主體而言都是不可見的,擴(kuò)展應(yīng)用只需按一定的格式發(fā)送相應(yīng)的信息給通用外接模塊即可完成整個(gè)通信過程,在此就不對程序進(jìn)行具體的說明了。
至此,通用外接模塊開發(fā)實(shí)驗(yàn)階段軟件設(shè)計(jì)完成,通過測試本模塊完全達(dá)到了預(yù)期的要求,數(shù)據(jù)傳輸正常,性能良好。
本封裝模塊之所以被加以“通用”二字來界定,是因?yàn)楸灸K在功能上很好地做到了以下幾點(diǎn):
(1)本模塊提供了對多種擴(kuò)展應(yīng)用接口的支持,包括UART/USB以及語音傳輸接口。
(2)本模塊既支持以MPC為擴(kuò)展應(yīng)用主體的計(jì)算機(jī)上的擴(kuò)展應(yīng)用,又支持以MCU為擴(kuò)展主體的控制器件上的擴(kuò)展應(yīng)用;
(3)本模塊提供對多種操作系統(tǒng)的支持,目前為止,支持Windows95/98/2000/
xp及Linux操作系統(tǒng)。
5一種構(gòu)建于通用外接模塊之上無線通訊擴(kuò)展應(yīng)用——裁判系統(tǒng)
目前,在很多大型賽事中比賽所采用的裁判打分系統(tǒng)大都是采用有纜連接的方式進(jìn)行的,各位裁判將各自的評定的比賽成績通過有線的電纜傳輸?shù)街骺貦C(jī)上進(jìn)行綜合評定,然后產(chǎn)生最終的結(jié)果。但這一系統(tǒng)存在著一個(gè)很明顯的不足之外,就是有纜連接所帶來的不便性,而通過采用筆者所設(shè)計(jì)的通用外接模塊后,通過在通用外接模塊的基礎(chǔ)上相應(yīng)地增加LCD、鍵盤和MCU后,只要對外加的MCU進(jìn)行簡單的編程既可實(shí)現(xiàn)裁判打分系統(tǒng)的無線通訊化。
日前,筆者參與設(shè)計(jì)的藍(lán)牙無線打分系統(tǒng)已被成功地用于很多大型比賽之中。
6結(jié)束語
藍(lán)牙產(chǎn)品的開發(fā)重在有特色的應(yīng)用,在通用模塊的基礎(chǔ)上進(jìn)行外圍設(shè)備的開發(fā)和上層軟件的編寫,可以大大地縮短產(chǎn)品的開發(fā)周期,為各種藍(lán)牙應(yīng)用奠定了基礎(chǔ),從而方便地實(shí)現(xiàn)產(chǎn)品的藍(lán)牙無線通訊,使人們擺脫各種線纜的束縛。目前基于藍(lán)牙技術(shù)的產(chǎn)品開發(fā),正在短距離無線通信中顯示出一股強(qiáng)勁的勢頭,藍(lán)牙技術(shù)的大發(fā)展期必將很快的到來。
參考文獻(xiàn):
[1]BluetoothSpecialInterestGroup,
SpecificationofBluetoothSystem
Corev1.1[s],2001.
[2]馬興,梁劍,陳前斌.基于HCI協(xié)議層
的藍(lán)牙技術(shù)應(yīng)用開發(fā)[J].重慶郵電學(xué)
院學(xué)報(bào),2002,14(4):78-82.
[3]金鈍,許光辰等.藍(lán)牙技術(shù).北京:
電子工業(yè)出版社,2001.
[4]馬建倉等.藍(lán)牙核心技術(shù)及應(yīng)用.北
京:科學(xué)出版社,2003