<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > 信息家電中藍牙通信的實(shí)現

信息家電中藍牙通信的實(shí)現

作者: 時(shí)間:2012-07-30 來(lái)源:網(wǎng)絡(luò ) 收藏

標簽:HCI 協(xié)議

本文引用地址:http://dyxdggzs.com/article/165165.htm

是當前國內外研究的熱點(diǎn),而中又以數據傳輸方式的性?xún)r(jià)比為重點(diǎn)。可以作為一種有效的手段,家庭網(wǎng)關(guān)與間的控制信息等其他適中數據量的傳輸。本文首先介紹的HCI和藍牙協(xié)議L2CAP、BNEP,然后介紹如何在Linux2.4.18下USB藍牙驅動(dòng),最后介紹如何在藍牙個(gè)人局域網(wǎng)中進(jìn)行無(wú)線(xiàn)。

1 信息家電的基本框圖

信息家電的基本結構圖如下圖1所示,家庭主網(wǎng)關(guān)是負責各種家電與外部環(huán)境進(jìn)行“交流”的橋梁,其中與外部環(huán)境進(jìn)行的方式包括Ethernet、PSTN固話(huà)網(wǎng)等等。而就家庭內部而言,對于如:空調、電視等普通信息家電,由于家庭網(wǎng)關(guān)與其通信的數據量并不大,因此完全可以采取藍牙無(wú)線(xiàn)方式進(jìn)行通信,從而達到控制家電工作的目的。

信息家電中藍牙通信的實(shí)現

圖1

2藍牙的HCI和L2CAP、BNEP協(xié)議

藍牙協(xié)議體系大致分為三層,即底層硬件模塊層、中間協(xié)議層、高端應用層,每一層還

包含一些具體的協(xié)議。

2.1藍牙的HCI

藍牙的主機控制接口(HCI)是藍牙主機--主控制器應用模式中藍牙模塊和主機間的軟硬件接口,它位于藍牙協(xié)議棧的底層硬件模塊層與中間協(xié)議層之間,負責完成這二層的數據通信[1]。目前,藍牙HCI傳輸層的物理接口有USB、UART等,藍牙設備可以采用這些物理接口來(lái)實(shí)現通信。本文將介紹用USB口作為傳輸層實(shí)現通信。

2.2藍牙的L2CAP協(xié)議

藍牙的邏輯鏈路控制與適配協(xié)議(L2CAP)是整個(gè)藍牙協(xié)議的核心,它位于中間協(xié)議層,它將下層的數據分組轉換為便于高層應用的數據分組格式,并提供協(xié)議復用等功能。它向上層協(xié)議提供了面向連接和無(wú)連接的服務(wù),L2CAP層只支持ACL(異步無(wú)連接)數據的傳輸,而不支持SCO(同步面向連接)數據的傳輸[1]。

2.3 藍牙的BNEP協(xié)議

藍牙SIG制定的網(wǎng)絡(luò )封裝協(xié)議(BNEP,Bluetooth Network Encapsulation Protocol),可對上層IP協(xié)議提供類(lèi)似于以太網(wǎng)的接口,對IEEE802. 3/Ethernet封裝支持的網(wǎng)絡(luò )協(xié)議,均予以支持 [2]。BNEP通過(guò)面向連接的L2CAP來(lái)實(shí)現的,L2CAP可以看作是藍牙介質(zhì)訪(fǎng)問(wèn)控制(MAC)層。BNEP在整個(gè)藍牙協(xié)議棧中起著(zhù)一個(gè)橋梁的作用,它將IP包轉換成L2CAP包通過(guò)藍牙傳輸。BNEP協(xié)議主要應用在藍牙個(gè)人區域網(wǎng)中。

3 USB藍牙模塊驅動(dòng)

1、由于采用的內核是Linux2.4.18,其中并沒(méi)有包括對藍牙驅動(dòng)的支持,因此必須對其打補丁。解壓Linux2.4.18內核,把藍牙補丁包patch-2.4.18-mh15.gz放在解壓內核目錄下,執行命令patch –p1 patch-2.4.18-mh15.gz[3]。

2、Linux Bluetooth協(xié)議棧中的BNEP(Bluetooth 網(wǎng)絡(luò )封裝協(xié)議)實(shí)現了Bluetooth上的以太網(wǎng)仿真,這使TCP/IP可以直接運行于Bluetooth之上。由于實(shí)驗的本質(zhì)就是通過(guò)藍牙HCI的USB實(shí)現基于BNEP的以太網(wǎng)傳輸數據,因此在內核配置時(shí)必須加上對BNEP的支持。

3、進(jìn)入Bluetooth subsystem support選項中,選擇L2CAP protocol support、BNEP protocol support(Malticast filter support和Protocol filter support)這幾項,這幾項的作用就是使內核支持藍牙協(xié)議中的L2CAP和BNEP協(xié)議。然后進(jìn)入Bluetooth device drivers,選擇HCI USB driver。至此,就完成了內核對于USB藍牙的支持。

4、下載bluez-libs-2.17.tar.gz藍牙庫和bluez-utils-2.17.tar.gz工具包,運行tar zxvf命令解壓縮,然后運行make和make install命令,這樣就能得到我們需要的libbluetooth.so、libbluetooth.so.1、libbluetooth.so.1.17這3個(gè)庫文件和hcid、hcitool、pand、hciconfig、sdpd、sdpdtool這6個(gè)進(jìn)程文件。

4家庭網(wǎng)關(guān)中藍牙無(wú)線(xiàn)通信的實(shí)現

整個(gè)通信過(guò)程的介紹:

1、USB藍牙的傳輸驅動(dòng)程序(drivers/bluetooth/hci_usb.c)將信息注冊到Linux USB核心。當USB藍牙插入時(shí),主機控制器設備驅動(dòng)程序會(huì )枚舉它并給它分配地址,同時(shí)讀取設備描述符中所包含的設備信息。如果枚舉期間讀取的設備描述符與hci_usb驅動(dòng)程序注冊到Linux USB核心的信息相匹配,那么這個(gè)驅動(dòng)程序就能添加進(jìn)USB設備。

2、運行hcid(HCI后臺進(jìn)程)、sdpd(服務(wù)發(fā)現協(xié)議后臺進(jìn)程)、hciconfig(檢查HCI接口并開(kāi)啟藍牙設備)、hcitool(掃描藍牙設備的地址)這四個(gè)CRAMFS文件系統sbin目錄下的進(jìn)程文件,這幾個(gè)文件的執行依賴(lài)于libbluetooth.so、libbluetooth.so.1、libbluetooth.so.1.17這三個(gè)藍牙庫文件。在S3C2410一側的藍牙設備能夠被發(fā)現并被成功分配唯一地址的基礎之上運行pand --listen --role NAP,這樣將允許通過(guò)藍牙連接以太網(wǎng)。如圖2所示。

信息家電中藍牙通信的實(shí)現

圖2

3、PC機上插入USB藍牙,運行windows下藍牙的驅動(dòng)軟件BlueSoleil,掃描并發(fā)現藍牙設備之后,建立個(gè)人局域網(wǎng)。

4、在個(gè)人局域網(wǎng)建立的基礎之上,BNEP就可以將自己作為以太網(wǎng)設備注冊到Linux網(wǎng)絡(luò )層??梢酝ㄟ^(guò)命令ifconfig bnep0來(lái)改變藍牙接口IP地址。BNEP模塊和用戶(hù)模式pand后臺進(jìn)程實(shí)現了Bluetooth個(gè)人區域網(wǎng)(PAN)。將二個(gè)USB藍牙的IP地址修改為同一個(gè)網(wǎng)段后,就可以使用ping PC機的USB藍牙IP地址命令來(lái)實(shí)現模擬家庭網(wǎng)關(guān)和內部設備間的無(wú)線(xiàn)通信,如圖3超級終端打印信息所示。

信息家電中藍牙通信的實(shí)現

圖3

5、實(shí)驗結果:由圖2和圖3可以看到在運行了包含hcid、sdpd、hciconfig、hcitool四個(gè)進(jìn)程的文件bluetooth后,可看到S3C2410一側的USB藍牙的地址為00:0D:18:01:23:88,而后用ifconfig bnep0 192.168.0.2修改了它的局域網(wǎng)地址,最后用ping 192.168.0.18(PC機上的藍牙地址)即可實(shí)現雙方的數據收發(fā)。

數字通信相關(guān)文章:數字通信原理


通信相關(guān)文章:通信原理




關(guān)鍵詞: 實(shí)現 通信 藍牙 家電 信息

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>