藍(lán)牙通信在信息家電中的實(shí)現(xiàn)
藍(lán)牙可以作為一種有效的通信手段,實(shí)現(xiàn)家庭網(wǎng)關(guān)與信息家電間的控制信息等其他適中數(shù)據(jù)量的傳輸。本文首先介紹藍(lán)牙的HCI和藍(lán)牙協(xié)議L2CAP、BNEP,然后介紹如何在Linux2.4.18下實(shí)現(xiàn)USB藍(lán)牙驅(qū)動(dòng),最后介紹如何實(shí)現(xiàn)在藍(lán)牙個(gè)人局域網(wǎng)中進(jìn)行無線通信。
1 信息家電的基本框圖
信息家電的基本結(jié)構(gòu)圖如下圖1所示,家庭主網(wǎng)關(guān)是負(fù)責(zé)各種家電與外部環(huán)境進(jìn)行“交流”的橋梁,其中與外部環(huán)境進(jìn)行通信的方式包括Ethernet、PSTN固話網(wǎng)等等。而就家庭內(nèi)部而言,對(duì)于如:空調(diào)、電視等普通信息家電,由于家庭網(wǎng)關(guān)與其通信的數(shù)據(jù)量并不大,因此完全可以采取藍(lán)牙無線方式進(jìn)行通信,從而達(dá)到控制家電工作的目的。
圖1
2藍(lán)牙的HCI和L2CAP、BNEP協(xié)議
藍(lán)牙協(xié)議體系大致分為三層,即底層硬件模塊層、中間協(xié)議層、高端應(yīng)用層,每一層還
包含一些具體的協(xié)議。
2.1藍(lán)牙的HCI
藍(lán)牙的主機(jī)控制接口(HCI)是藍(lán)牙主機(jī)--主控制器應(yīng)用模式中藍(lán)牙模塊和主機(jī)間的軟硬件接口,它位于藍(lán)牙協(xié)議棧的底層硬件模塊層與中間協(xié)議層之間,負(fù)責(zé)完成這二層的數(shù)據(jù)通信[1]。目前,藍(lán)牙HCI傳輸層的物理接口有USB、UART等,藍(lán)牙設(shè)備可以采用這些物理接口來實(shí)現(xiàn)通信。本文將介紹用USB口作為傳輸層實(shí)現(xiàn)通信。
2.2藍(lán)牙的L2CAP協(xié)議
藍(lán)牙的邏輯鏈路控制與適配協(xié)議(L2CAP)是整個(gè)藍(lán)牙協(xié)議的核心,它位于中間協(xié)議層,它將下層的數(shù)據(jù)分組轉(zhuǎn)換為便于高層應(yīng)用的數(shù)據(jù)分組格式,并提供協(xié)議復(fù)用等功能。它向上層協(xié)議提供了面向連接和無連接的服務(wù),L2CAP層只支持ACL(異步無連接)數(shù)據(jù)的傳輸,而不支持SCO(同步面向連接)數(shù)據(jù)的傳輸[1]。
2.3 藍(lán)牙的BNEP協(xié)議
藍(lán)牙SIG制定的網(wǎng)絡(luò)封裝協(xié)議(BNEP,Bluetooth Network Encapsulation Protocol),可對(duì)上層IP協(xié)議提供類似于以太網(wǎng)的接口,對(duì)IEEE802. 3/Ethernet封裝支持的網(wǎng)絡(luò)協(xié)議,均予以支持 [2]。BNEP通過面向連接的L2CAP來實(shí)現(xiàn)的,L2CAP可以看作是藍(lán)牙介質(zhì)訪問控制(MAC)層。BNEP在整個(gè)藍(lán)牙協(xié)議棧中起著一個(gè)橋梁的作用,它將IP包轉(zhuǎn)換成L2CAP包通過藍(lán)牙傳輸。BNEP協(xié)議主要應(yīng)用在藍(lán)牙個(gè)人區(qū)域網(wǎng)中。
3 USB藍(lán)牙模塊驅(qū)動(dòng)
1、由于采用的內(nèi)核是Linux2.4.18,其中并沒有包括對(duì)藍(lán)牙驅(qū)動(dòng)的支持,因此必須對(duì)其打補(bǔ)丁。解壓Linux2.4.18內(nèi)核,把藍(lán)牙補(bǔ)丁包patch-2.4.18-mh15.gz放在解壓內(nèi)核目錄下,執(zhí)行命令patch –p1 patch-2.4.18-mh15.gz[3]。
2、Linux Bluetooth協(xié)議棧中的BNEP(Bluetooth 網(wǎng)絡(luò)封裝協(xié)議)實(shí)現(xiàn)了Bluetooth上的以太網(wǎng)仿真
評(píng)論