bluez 协议栈实现1-概述

源码基于
linux 3.0.35, imx6

1.蓝牙协议栈的实现方式



蓝牙协议栈有三种实现模型,取决于三类产品各自所具有的不同功能和资源。
这三种类型是:寄居型、嵌入型和完全嵌入型。
1.在寄居式模型中,底层协议栈位于蓝牙设备中,高层协议栈位于主机中,两者通过主机控制器接口HCI进行交互通信。最常见的传输方式是USB和UART。
2.在嵌入式模型中,整个协议栈都位于蓝牙设备中,用户应用程序单独运行于主机上,这个模型对可用内存有限的设备是理想的选择。
3.在完全嵌入式模型中,整个协议栈和用户应用程序都在蓝牙设备中,这一模型要求应用程序相对简单,如蓝牙耳机就是这类模型的最好例子。

基于csr8510 a10的蓝牙适配器属于寄居式模型,在linux下,其对应的高层协议栈便是bluez。

refer to
基于Linux的蓝牙L2CAP及RFCOMM层协议的实现


2.bluez的各个层次及相应的代码位置


首先,通常说的bluez源码包括
a.内核里面的drivers\bluetooth (驱动)
b.内核里面的net\bluetooth(bluez协议栈的实现)
c.从http://www.bluez.org/download/下载的bluez-libs-xxx.tar.gz(应用程序库)

而bluez工具集是bluez-utils-xxx.tar.gz,里面的各个工具需要调用bluez-libs的函数
没有搞懂http://www.bluez.org/download/里面的bluez-5.28.tar.xz是干嘛用的,里面只有一个emulate目录,不知用于仿真啥的???
-----对于bluez4和之前的版本,会有bluez-4.101.tar.xz应用层协议 zan)和bluez-utilsbluez-lib(应用层工具集
----对于bluez5,bluez-5.28.tar.xz里面包含了bluetoothd应用层协议 zan
和 bluetoothctl(应用层工具集)。bluez5里面引入了dbus功能,bluetoothd会在dbus上注册一个org.bluez总线,其他程序比如 bluetoothctl会通过向这个总线上发送消息而获取对应服务。

需要知道的是目前bluez5(bluez5.28)实现的不是Bluetooth 5  ,bluez5实现的仍然是蓝牙4

3.bluez分析

参考
和菜鸟一起学linux之bluez学习记录1


  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值