linux下bluetooth程式設計(二)blueZ協議棧
BlueZ基礎程式碼均是由Maxim Krasnyansky完成的。包括:HCI,L2CAP,RFCOMM和基本socket的實現。他就職於Qualcomm(高通)。Marcel Holtmann開發層的協議和應用,包括:BNEP, CMTP等。當然,這些中也有Maxim Krasnyansky的參預。有部分程式碼由Nokia提供的。
Bluez是如何實現Bluetooth協議棧的呢? 它分2部分實現:
1.Kernel層實現:
正如上一篇所談到的,bluetooth協議棧有多層結構,最底層的硬體協議在硬體中就已經實現了。(例如broadcom的晶片中,底層硬體協議已經包含於晶片之中了)。軟體級別的協議實現,從HCI這一層起就可以了。 BlueZ對各層協議的實現是依託於Socket的。BlueZ首先建立了一個新的Socket中的協議--PF_BLUETOOTH (AF_BLUETOOTH=31). (也就是說,Socket()的第一個引數:domain必須是:PF_BLUETOOTH )。這也意味著,地址型別需要使用Bluetooth所定義的。
其實很簡單,就是在net_families(網路協議列表)中新增了PF_BLUETOOTH這一項。如果對Linux Kernel有了解的話,就知道這個註冊動作一定在Bluetooth init部分作的。
同樣,各個協議層(如:HCI,L2CAP,HID等)都將自己的行為規範新增到PF_BLUETOOTH協議中。
2.應用程式層實現:
雖然Kernel層已經將Bluetooth協議棧完全實現了,但如果要使用起來,還是非常不方便的。畢竟應用程式與kernel最方便的交流通道就是ioctl().這非常不直觀。於是,BlueZ又提供了一套API,這個API幫助開發者方便的與Kernel層協議打交道。當然,這些API底層的實現其實就是ioctl.
BlueZ的實現,基本就是這樣了。下面我們們具體研究如何使用BlueZ所提供的這套API。
相關文章
- linux下bluetooth程式設計(七)SDP協議Linux程式設計協議
- linux下bluetooth程式設計(五)bluetooth與socketLinux程式設計
- linux下bluetooth程式設計(三)HCI層程式設計Linux程式設計
- linux下bluetooth程式設計(八)SDP層程式設計Linux程式設計
- linux下bluetooth程式設計(一)基礎概念Linux程式設計
- bluez藍芽協議棧交叉編譯移植教程(附帶視訊下載地址)藍芽協議編譯
- linux下bluetooth程式設計(四)L2CAP層程式設計Linux程式設計
- SMTP協議初探(二)----linux下c程式設計實現發郵件協議LinuxC程式程式設計
- iOS - Swift 面向協議程式設計(二)iOSSwift協議程式設計
- linux下bluetooth程式設計(六)L2CAP層程式設計例項Linux程式設計
- 藍芽(Bluetooth)音訊協議藍芽音訊協議
- 面向協議程式設計協議程式設計
- iOS 網路程式設計(二)UDP協議小結iOS程式設計UDP協議
- iOS 網路程式設計(二)TCP協議小結iOS程式設計TCP協議
- Swift Protocol 詳解 - 協議&面向協議程式設計SwiftProtocol協議程式設計
- Linux網路程式設計--TCP/IP協議(轉)Linux程式設計TCP協議
- 面向協議程式設計與 Cocoa 的邂逅 (下)協議程式設計
- [計算機網路]協議棧計算機網路協議
- zstack協議棧協議
- Android網路程式設計(一) TCP IP協議基礎棧結構Android程式設計TCP協議
- 淺析面向協議程式設計協議程式設計
- Linux TCP/IP協議棧全過程LinuxTCP協議
- 1、zstack協議棧協議
- ios 面向協議程式設計資源iOS協議程式設計
- 網路程式設計UDP協議方式程式設計UDP協議
- iOS - Swift 面向協議程式設計(一)iOSSwift協議程式設計
- Swift中的面向協議程式設計Swift協議程式設計
- Android網路程式設計(二)構 HTTP協議報文基本結Android程式設計HTTP協議
- Swift 面向協議程式設計的那些事Swift協議程式設計
- Java Tcp協議socket程式設計學習JavaTCP協議程式設計
- Java全棧程式設計師之01:做個Linux下的程式猿Java全棧程式設計師Linux
- TCP/IP協議族——高效能Linux伺服器程式設計TCP協議Linux伺服器程式設計
- Linux 高效能伺服器程式設計-IP 協議詳解Linux伺服器程式設計協議
- Linux 高效能伺服器程式設計-TCP/IP 協議族Linux伺服器程式設計TCP協議
- Linux 高效能伺服器程式設計- TCP 協議詳解Linux伺服器程式設計TCP協議
- 從Swift3的標準庫協議看面向協議程式設計(一)Swift協議程式設計
- 面向協議程式設計的一些思考協議程式設計
- Swift使用協議加泛型程式設計(一)Swift協議泛型程式設計