找回密码
 立即注册

使用微信账号登录

只需一步,快速开始

查看: 16142|回复: 46

[其他] 【转载】蓝牙核心协议,芯片结构,源码和移植

  [复制链接]
连续签到天数:1天
签到总天数:95天
签到总奖励:592金币
发表于 2013-5-2 17:51:07 | 显示全部楼层 |阅读模式

马上注册,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册  

×
1 Bluetooth Core System Protocol(蓝牙核心协议)蓝牙技术规范(specification)包括核心协议(protocol)和应用规范(profile)两个部分。
核心协议包含蓝牙协议栈中最低的4个Layer,和一个基本的服务协议SDP(Service Discover Protocol),以及所有应用profile的基础Profile GAP(General Acess Profile)。核心协议是蓝牙协议栈中必不可少的。
除了核心协议外,蓝牙规范必须包含一些其他的应用层的服务和协议--应用层profile。
蓝牙协议栈通常有如下内容:

而蓝牙的核心系统协议为最低的4个Layer,再加上应用层profile SDP,包括:RF,LC(link control),LM(Link Manager),L2CAP(Logical Link Control and Adaptation Protocol),SDP。核心系统的架构图如下,为简明起见,没有画出SDP。

最低的3个Layer经常也看作一个子系统,叫Bluetooth Controler。Bluetooth Controler和包括L2CAP在内上层Profile之间的通信,是通过HCI(Host to Controler Interface)进行。HCI以下的内容Bluetooth Controler由蓝牙芯片实现,以上的内容由Bluetooth Host(比如手机Baseband)实现。
蓝牙核心系统通过一系列Service Access Point(如上图的椭圆部分所示)提供服务,这些服务包含了对蓝牙核心系统的最基本和原始的控制。可以分为3种类型:Device Control Service,修改蓝牙Device的行为,状态和模式;Tansport Control Sevice,创建修改和释放traffic bearers(信道和链接);Data Service,在Traffic bearers上进行数据传输。
由于蓝牙架构通过HCI将Controler和Host独立开来,所以对Controler做了一些基本假设。假定与Host相比,蓝牙Controler的数据buffer能力有限。所以L2CAP会对host传输给Controler的数据做预处理,数据包大小适合蓝牙Controler的buffer能力;L2CAP还会对数据进行质量控制和纠错。
对蓝牙核心系统协议的测试通过TCI(Test Control Interface)进行。
2 蓝牙芯片(Bluetooth Controler)结构蓝牙芯片,即上一节所说的Controler,实现的是蓝牙协议栈中最底3层的协议,RF,LC,LMP。用在Feature Phone上时,蓝牙芯片作为Slave挂在BB上(不知Smart Phone是不是挂在AP上)。他是一个相对独立完整的子系统,拥有自己的RF,基带,CPU,数据总线和存储设备。通过USB或UART(通常是UART)与Host通信,上一节架构图的HCI,物理上所依赖的便是UART或USB。如下图所示:

其中蓝牙基带控制器是蓝牙硬件模块的关键模块。其主要功能是在微处理器控制下,实现蓝牙基带部分的所有实时处理功能,包括负责对接收的bit流进行符号定时提取和恢复;分组头及净荷的循环冗余度校验(CRC),分组头及净荷的前向纠错码FEC处理,加密和解密处理等,且能提供从基带控制器到其它芯片的接口等。CPU一般采用RISC结构的嵌入式微处理器,如ARM7TDMI微处理器,才能满足对蓝牙核心协议的高速处理和大量数据bit流的处理。Flash 存储器用于存放基带和链路管理层中的所有协议软件。SRAM作为CPU 的运行空间,在工作时把Flash中的软件调入SRAM中处理。射频收发器负责接收或发送高频的通信信号。UART和USB接口提供到HCI的主机控制器接口传输层的物理连接,是上层协议与蓝牙硬件模块进行通信的通道。蓝牙测试模块主要提供无线层和基带层的认证和一致性规范,同时还管理产品的生产和售后的测试,为可选模块。
3 蓝牙源码和移植由上2节的内容可知,蓝牙芯片(Bluetooth Controler)实现的是协议栈最底下的3层,即HCI以下的部分;而Host实现HCI以上的内容,其中属于蓝牙核心协议的L2CAP和SDP是必须实现的,其他的Profile是可选的。
因此,除了蓝牙芯片厂商(如博通,CSR)外,其他使用蓝牙芯片的厂商不需要关注Bluetooth Controler(Slave端)的内容,而只是实现Host端的内容。当蓝牙芯片挂到不同的软硬件平台上时,软硬件只需要处理HCI相关的部分。
现在用得很广的Bluetooth源码是Linux下的BlueZ,源码包可以在BlueZ的官网http://www.bluez.org/download/下载到。将BlueZ移植到具体的硬件平台时,只需要关注HCI部分,HCI所依赖的硬件是UART或USB,大多数情况下是UART,所以移植蓝牙源码仅需要需要关注UART 驱动;另外加上电源开关。以Android为例:
(1)UART 驱动
BlueZ内核子系统通过守护进程hciattach 与特定硬件的UART驱动进行绑定。
以MSM7201A为例,参考drivers/serial/msm_serial.c。你可能还需要编辑init.rc 中hciattach 的命令行选项。
(2)蓝牙电源开关
Android V1.0与之前的版本采用不同的方式控制蓝牙芯片的电源开关。
1.0:Android 框架向/sys/modules/board_[PLATFORM]/parameters/bluetooth_power_on 写0或1.
Post1.0: Android 框架使用 linux中 rfkill 的API。
可以参考 arch/arm/mach-msm/board-trout-rfkill.c。
4 Referencehttps://www.bluetooth.org/apps/content/
http://www.avrw.com/article/art_104_1071.htm
http://blog.csdn.net/dinuliang/archive/2010/07/07/5717382.aspx
http://www.bluez.org/download/

原文地址:http://blog.csdn.net/evanwu_85/article/details/6316780
楼主热帖
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!

暂无签到数据

发表于 2013-5-2 20:55:40 | 显示全部楼层
很精辟的蓝牙基础知识。
Bluetooth core specification中有很大部分的内容都是这些知识,这篇文章总结得不错。
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:1天
签到总天数:541天
签到总奖励:6436金币
发表于 2013-7-27 13:19:16 | 显示全部楼层
thankyou support you  ! i see
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:1天
签到总天数:34天
签到总奖励:147金币
发表于 2013-8-12 14:19:36 | 显示全部楼层
不错的蓝牙协议解释
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

暂无签到数据

发表于 2013-8-26 21:41:32 | 显示全部楼层
好东西,顶一个,谢谢分享!
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

暂无签到数据

发表于 2013-9-3 11:32:17 | 显示全部楼层
非常不错的蓝牙协议解释
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:1天
签到总天数:89天
签到总奖励:1610金币
发表于 2013-10-1 12:35:01 | 显示全部楼层
不错的蓝牙协议解释
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:1天
签到总天数:7天
签到总奖励:26金币
发表于 2013-11-4 10:50:53 | 显示全部楼层
好东西,学习。
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:1天
签到总天数:110天
签到总奖励:1169金币
发表于 2013-11-4 11:54:34 | 显示全部楼层
学习了  谢谢斑竹
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

暂无签到数据

发表于 2013-11-5 22:37:20 | 显示全部楼层
不错,不错,相当好的科普
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

小黑屋|手机版|我爱蓝牙网 - 52Bluetooth

GMT+8, 2024-4-26 22:37 , Processed in 0.294555 second(s), 20 queries , Gzip On, MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表