蓝牙协议栈学习笔记(序)

由于国内关于蓝牙的资料太少了,基本都是英文的,对于英语不太好的人,会有点痛苦。公司是做蓝牙的方案的,所以提供了一个很好的学习平台,在此万分感谢!

一万读者就有一万个哈姆雷特,每个人对一个知识的学习都会有自己的理解,在这里我把我的关于蓝牙学习的笔记和一些小心得分享给大家,希望对大家有所帮助!首先声明我也是一个菜鸟,有问题或者是需要资料留言我,大家互相学习!

一、学习方法

授人鱼不如授人以渔,一个好的学习方法总能事半功倍,下面是我的一些学习心得,可能不适合所有人,但是可以作为一个参考,不喜勿喷!

准备工作

要深入的学习蓝牙,一些准备工作是必要的,如下面一些设备(资料):安卓手机;蓝牙设备(耳机、音箱或打印机等);Core_v4.0.pdf(或更高版本)以及A2DP、HFP等应用协议,这些都可以在蓝牙官网上下载;IIFrontline ComProbe Protocol Analysis System(蓝牙协议分析工具)。一些工具及资料已放在本文最下面的网盘链接中了!

抓取蓝牙log

先让手机进入开发者模式,打开系统蓝牙,然后用手机连接蓝牙设备,此时在文件系统中就会有一个btsnoop_hci的文件,搜索到之后发送到PC端,这就是一份完整的蓝牙log。安装好蓝牙分析工具(以下简称CPAS)之后,用CPAS中的capture file viewer工具打开。

如果在手机中找不到btsnoop_hci这个文件,可以试下附件资料中的提供的一个手机蓝牙log获取方法。

个人学习经验

蓝牙协议栈中包含很多协议,如HCI、L2CAP、GATT等等,当你对蓝牙框架有一个基础了解之后,需要选取某个协议作为切入点单独分析。如果你对整个蓝牙协议栈都有兴趣的话,我个人建议从HCI协议开始学习,因为它是一个承上启下的点,上对应用协议,下对蓝牙控制器,非常具有代表性,当然这只是我个人的观点。

以HCI举例,首先在网上搜索关于hci的博客,里面有很多大神的博客写的非常好,有一个大致了解之后,找到核心协议中的hci的章节,对照抓取的log分析具体的流程,以及每一个数据代表的含义,如果你能对数据中的每一个bit位都能做出解释,基本上就对协议比较熟悉了。在这里说一下我个人的阅读习惯:首先看introduce,完了不要忙着看具体内容,先看看章节标题和章节简介,对整本书的思路和流程有一个大致了解之后,在对照其他的资料学习正文内容。这样做一个好处就是你的思路非常清晰,有助于学习和理解。

二、关于整个笔记的介绍

整个学习笔记内容如下:

  • 蓝牙学习笔记之HCI协议(一)
  • 蓝牙学习笔记之L2CAP协议(二)
  • 蓝牙学习笔记之RFCOMM协议(三)
  • 蓝牙学习笔记之SDP协议(四)
  • 蓝牙学习笔记之ATT_GATT协议(五)
  • 蓝牙学习笔记之HFP协议(六)
  • 蓝牙学习笔记之AVDTP_A2DP协议(七)
  • 蓝牙学习笔记之AVCTP_AVRCP协议(八)
  • 蓝牙学习笔记之OBEX_PBAP协议(九)
  • 蓝牙学习笔记之蓝牙架构(十)
  • 蓝牙学习笔记之GAP协议(十一)
  • 蓝牙学习笔记之LMP协议(十二)
  • 蓝牙学习笔记之安全规范(SS)(十三)
  • 蓝牙学习笔记之SMP协议(十四)

下面是我收集的蓝牙的相关资料,大家根据自己的需要下载,请不要用于商业用途!

链接:https://pan.baidu.com/s/1PC4CAwBhhy-fFy7p1uDMZw 
提取码:jexq 

你可能感兴趣的:(蓝牙协议栈)