Bluedroid 框架介绍

Bluetooth stack 各部分简介:

代码位于external/bluetooth/bluedroid/

一、btif/

此目录作为Bluetooth Service(package/app/Bluetooth) 对 stack的接口层。里面文件命名都为btif_*.c .


二、bta/

此目录即称之为BTA(BluetoothApplication Layer):实现了蓝牙设备管理、状态管理及一些应用规范。


三、stack/:

此目录即称之为BTE(BluetoothEmbedded System):实现了蓝牙协议栈的通用功能和相关协议.如RFCOMM 、L2CAP、SDP、GATT等

此目录下实现的各个协议站都是相对独立的。BTA和BTE组成了蓝牙协议桟的核心。

(1)rfcomm/

rfc_l2cap_if.c 对下层L2CAP的接口,里面实现了被L2CAP回调的函数。

rfc_port_if.c 对上层的接口、里面定义了一些被应用调用的函数

rfc_port_fsm.c 实现了RFCOMM单点状态机轮转。函数rfc_port_sm_execute(port,event,data)为入口。sm即为state mathine

rfc_mx_fsm.c 实现了RFCOMM的多路复用状态机。

rfc_ts_frames.c 实现了发送各种数据和控制信号数据,这些数据以帧的形式封装,这里所使用的帧是基于GSMTS 7.10多路控制协议。帧包括:设置异步平衡模式帧SABM、无序号相应帧UA、断开模式帧DM、断开链接帧DISC和带头校验的无序号信息帧UIH。其中SABM、DISC为命令帧、UA、DM为响应帧、UIH可以是命令帧也可以是响应帧。

-------------------------------

(2)l2cap/

l2c_api.c 对上接口

l2c_csm.c L2CAPchannel state machine

l2c_ble.c 实现了BLE低功耗蓝牙的相关管理函数

l2c_fcr.c 包含了流控制(拆包/组包)的重传函数

l2c_ucd.c 实现UCD(单向广播无连接数据)功能


四、gki/:

包括一个统一内核接口.

 

五、hci/

实现了蓝牙的HCI层协议?不确定



---------------------------------

关于Bluedroid介绍请参考:http://source.android.com/devices/bluetooth.html      


你可能感兴趣的:(Android)