藍牙通信在信息家電中的實現(xiàn)
3、進入Bluetooth subsystem support選項中,選擇L2CAP protocol support、BNEP protocol support(Malticast filter support和Protocol filter support)這幾項,這幾項的作用就是使內核支持藍牙協(xié)議中的L2CAP和BNEP協(xié)議。然后進入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個庫文件和hcid、hcitool、pand、hciconfig、sdpd、sdpdtool這6個進程文件。
4家庭網(wǎng)關中藍牙無線通信的實現(xiàn)
整個通信過程的介紹:
1、USB藍牙的傳輸驅動程序(drivers/bluetooth/hci_usb.c)將信息注冊到Linux USB核心。當USB藍牙插入時,主機控制器設備驅動程序會枚舉它并給它分配地址,同時讀取設備描述符中所包含的設備信息。如果枚舉期間讀取的設備描述符與hci_usb驅動程序注冊到Linux USB核心的信息相匹配,那么這個驅動程序就能添加進USB設備。
2、運行hcid(HCI后臺進程)、sdpd(服務發(fā)現(xiàn)協(xié)議后臺進程)、hciconfig(檢查HCI接口并開啟藍牙設備)、hcitool(掃描藍牙設備的地址)這四個CRAMFS文件系統(tǒng)sbin目錄下的進程文件,這幾個文件的執(zhí)行依賴于libbluetooth.so、libbluetooth.so.1、libbluetooth.so.1.17這三個藍牙庫文件。在S3C2410一側的藍牙設備能夠被發(fā)現(xiàn)并被成功分配唯一地址的基礎之上運行pand --listen --role NAP,這樣將允許通過藍牙連接以太網(wǎng)。如圖2所示。
圖2
3、PC機上插入USB藍牙,運行windows下藍牙的驅動軟件BlueSoleil,掃描并發(fā)現(xiàn)藍牙設備之后,建立個人局域網(wǎng)。
4、在個人局域網(wǎng)建立的基礎之上,BNEP就可以將自己作為以太網(wǎng)設備注冊到Linux網(wǎng)絡層??梢酝ㄟ^命令ifconfig bnep0來改變藍牙接口IP地址。BNEP模塊和用戶模式pand后臺進程實現(xiàn)了Bluetooth個人區(qū)域網(wǎng)(PAN)。將二個USB藍牙的IP地址修改為同一個網(wǎng)段后,就可以使用ping PC機的USB藍牙IP地址命令來實現(xiàn)模擬家庭網(wǎng)關和內部設備間的無線通信,如圖3超級終端打印信息所示。
圖3
5、實驗結果:由圖2和圖3可以看到在運行了包含hcid、sdpd、hciconfig、hcitool四個進程的文件bluetooth后,可看到S3C2410一側的USB藍牙的地址為00:0D:18:01:23:88,而后用ifconfig bnep0 192.168.0.2修改了它的局域網(wǎng)地址,最后用ping 192.168.0.18(PC機上的藍牙地址)即可實現(xiàn)雙方的數(shù)據(jù)收發(fā)。
評論