可能大家对庞大的蓝牙系统很困扰,也不知道从何学起,别急,我来了!

我会分别给蓝牙协议栈的从业者和蓝牙SoC从业者或者蓝牙APP整合者一个建议,我给不了蓝牙Controller学习的建议,希望大家能给我点学习蓝牙Controller的建议,我自己也想学Controller,得不到的总是在骚动嘛!好啦,回归正题,当然这个建议也只是参考,找到自己适合的方法才是最高效的,我只是结合我认为我自己最高效的方法供大家参考!

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

CSDN学院链接(进入选择你想要学习的课程):https://edu.csdn.net/lecturer/5352?spm=1002.2001.3001.4144

蓝牙交流扣扣群:970324688

Github代码:https://github.com/sj15712795029/bluetooth_stack

入手开发板:https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-22329603896.18.5aeb41f973iStr&id=622836061708

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

另外,欢迎关注公众号,我会定期推送干货给你们

1. 对于蓝牙协议栈的从业者的建议

1)我觉得自己要有一个明确的目标,或者工作的硬性要求,比如我要做一个自己的蓝牙产品,或者公司有一个产品需求,必须要弄到蓝牙协议栈,否则我觉得凭个人兴趣很难坚持下去,因为蓝牙是个很大的子系统,不是一朝一夕就能研究完毕的,在几次受挫后可能就坚持不下去!所以目标是研究蓝牙的第一要素!

2)不要直接去抠协议细节,我觉得要对蓝牙协议栈有一个最基本的认知,市面的蓝牙芯片架构都有哪些,并且熟悉整个HCI蓝牙架构是怎么样,每个协议是大致作用是什么,这些我前面的章节都有介绍!

3)等你对蓝牙协议有一个基本的认知,忍不住的想继续往下的时候,那么我会拿着喇叭喊三遍:有一个做实验的开发板!有一个做实验的开发板!有一个做实验的开发板,后续到了协议理解部分,没有一个做实验的环境,如果强行“撸”协议,我觉得会“强撸灰飞烟灭”!

4)对研究协议有一个明确的顺序,有几种可选,可以由底层延伸到应用层或者由应用层延伸到底层!

对于传统蓝牙,底层到应用层我会给出一个顺序:TRANSPORT->HCI->L2CAP->RFCOMM->SPP,中间再了解点SDP的协议

对于传统蓝牙,应用层到底层我会给出一个顺序:SPP->RFOMM->L2CAP->HCI->TRANSPORT,中间再了解点SDP的协议

对于低功耗蓝牙,底层到应用层我会给出一个顺序:TRANSPORT->HCI->L2CAP->ATT->GATT->BAS,中间再了解点SM的协议

对于低功耗蓝牙,应用层到底层我会给出一个顺序:BAS->GATT->ATT->L2CAP->HCI->TRANSPORT,中间再了解点SM的协议

至于为啥我会给这个建议,相信懂得人能看到我的良苦用心,这是跨越层数最少,并且能上下打通的顺序!至于是从底层研究还是从应用层开始研究,这个因人而异,如果你想快速能看到效果,那么我建议你从应用层开始修修改改搞起来,如果你是像我一样,底层有不懂的很心虚的,那么我建议你从底层搞起来!

然后懂了这些,你再根据你想要的协议或者功能区扩展自己的蓝牙认知,当然这个过程并不是一撮而就的,需要螺旋上升,比如你看到某一部分卡住,绞尽脑汁就是想不明白,没关系,继续往前走,等你看到某一部分说不定就想开了,因为部分内容具有关联性,等到你站在了一个高度自然而然就懂了,这里不是告诉你不求甚解,只是告知不要钻进牛角尖而已!

5)升华工具的使用,在以上你研究的过程中,需要借用一些工具来让你站在巨人的肩膀上,比如看Air log,那这里我会推荐Ellisys,界面友好,协议解析直观,你可能会说我买不起,其实不用买,安装一个Ellisys的基本软件,安装目录下有一个Sample文件夹,有基本的协议,可以直接看,或者BTSNOOP的使用,对着协议分析工具来看具体的封包,具体的协议,对应具体的代码!我还是会说蓝牙细节太多,需要了解的太多,所以大家一定要保持耐心,早日成为蓝牙大神!

最后我想说,再没有完全研究明白蓝牙协议栈之前,暂时不要碰Controller的协议!看到你怀疑人生,我已经在怀疑的路上了!

2. 对于SoC蓝牙应用或者蓝牙APP从业者的建议

其实对于SoC从业者来说我给不了太多建设性建议,我自己本身不是从事蓝牙应用或者SoC的开发者,但是我接触过不少从事这种工作的工程师!所以我也想给出一点建议!

1) 从事这种工作的目标肯定不用说,一般是做产品或者公司外包协议栈的,需要3方联调的!

2) 对于从事这种工作的,一般协议代码不开源或者部分开源,但是我还是建议对蓝牙协议栈有一个基本的认知,因为不管是什么蓝牙架构,内部总有蓝牙协议栈在跑,所以基本上就逃脱不了蓝牙协议的基本概念!

3) 研究应用协议细节,因为就我所知,部分SoC由于应用协议版本旧,或者跟手机版本不匹配有兼容问题,或者功能需求增加,所以研究应用协议细节吧,传统蓝牙HFP,A2DP,AVRCP,HID等吧,低功耗蓝牙BAS,HID,ANCS等!

4) 最后还是要站在巨人的肩膀上,BTsnoop如果是SoC那么基本不太适合,所以我会建议有Air log工具来具体问题具体分析

  1. 最后还是要站在巨人的肩膀上,BTsnoop如果是SoC那么基本不太适合,所以我会建议有Air log工具来具体问题具体分析

我不是蓝牙大神,但还是斗胆对蓝牙学习路线给点建议!相关推荐

  1. Yoshua Bengio等大神传授:26条深度学习经验

    Yoshua Bengio等大神传授:26条深度学习经验 发表于2015-09-17 08:21| 13482次阅读| 来源Marek Rei| 29 条评论| 作者Marek Rei 深度学习Pyt ...

  2. 天线工程手册_“大神”给工控工程师快速成长的6点建议,看完你会少走弯路...

    此前,我们发布了两篇关于技术工程师职场相关的文章[搞自动化也需要全栈工程师么?][工程师如何远离"技术性失业"?我的建议是--]均深受大家的关注,前后台也收到了许多的留言,比如: ...

  3. 2020年整理的大数据基础入门教程总结和学习路线

    所谓大数据(Big Data),就是需要处理的数据量非常巨大,已经达到了 TB.PB 甚至 EB.ZB 级别,需要成千上万块硬盘才能存储.传统的技术手段在大数据面前不堪一击,只能探索一套新的解决方案. ...

  4. Java详细学习路线及路线图(2020最新版) | Java工程师成神之路 | Java最全学习路线

    这篇文章主要是关于小白Java学习路线, 整个学习路线非常的清晰明确,适合各种层次的Java自学者,非常全面的Java学习路线. 整理不易,记得帮忙点个赞哟~ 第一阶段:Java基础 学习任何一门编程 ...

  5. Dropout也能自动化了,谷歌大神Quoc Le等人利用强化学习自动找寻模型专用Dropout...

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要5分钟 Follow小博主,每天更新前沿干货 在机器学习领域里,Dropout 是一个较为重要的方法,其可以暂时丢弃一部分神经元及其连接,进而 ...

  6. 移动开发技术总结!字节大神强推千页PDF学习笔记,附超全教程文档

    Android开发的现状 目前,移动开发已经处于饱和的阶段,Android开发也不如当年盛况,已经不再像前几年前那么火爆.正如一种编程语言如果经历过盛极一时,那么必然有这样的一条曲线,像我们学的正弦曲 ...

  7. hashmap扩容过程,字节大神强推千页PDF学习笔记,经典好文

    开头 Android开发,假如开始没有任何的开发经验的话, 千万不要着急,不要想着在短时间内就把一个语言学习好, 因为你之前没有任何的学习经验, 在这个过程中需要有耐心地学习完JAVA的基础知识, 然 ...

  8. 前阿里P8级大神的Serverless+微前端架构学习总结

    前端在写简历和面试的时候,最憋屈的是啥? 我觉得莫过于明明你有90分的实力,却只表达出20分.于是拿不到大厂面试.谈薪被压价.与心仪offer失之交臂等种种糟心结果接踵而至. 这一方面是因为表达能力欠 ...

  9. android字体!字节大神强推千页PDF学习笔记,大厂面试题汇总

    基本情况 先说一下个人基本情况,计算机科学与技术专业.主要学的Android开发,所以投的岗位都是Android开发工程师.投了知乎,内推了阿里蘑菇街腾讯百度网易.腾讯百度都没有收到面试,知乎Skyp ...

  10. stm32显示flash下载失败_STM32大神笔记,超详细单片机学习汇总资料(干货分享4)...

    1.NEC协议在发送的时候,会有560us的38KHz的载波信号,而在接收的时候这部分载波信号被认定为低电平,而剩余的(2.25ms-650us)的逻辑"1"和(1.12ms-65 ...

最新文章

  1. 心中有火,前方有光,致敬所有智能车后浪
  2. php如何返回数据请求数据格式化,PHP以json或xml数据格式返回请求数据的封装代码...
  3. 关于一致性hash详细
  4. unicode 字符集环境下的mfc 读写 ini 配置文件的_WSL:在Windows下优雅地玩Linux
  5. 二分查找的递归与非递归!
  6. 搜索引擎和知识图谱那些事 (上).基础篇
  7. String类与其他数据类型得转换
  8. php高等数学,中国大学《高等数学(四)》期末答案高校邦《PHP语言程序设计》见面课答案...
  9. 说出来可能不信,现在酒厂都在招算法工程师
  10. c++ protected_java基础之——访问修饰符(private/default/protected/public)
  11. 【更新】Essential Studio for ASP.NET MVC更新至2018 v4(三)
  12. 几何学五大公理_【欧几里德的平面几何五大公理是什么?】作业帮
  13. Go语言精进之路:你知道什么是Go语言编程思维吗?
  14. APP开发流程,移动应用开发流程
  15. Win10改Win7图片查看器|Win10新增加Windows照片查看器
  16. m118w重置墨粉_富士施乐 Fuji Xerox DocuPrint M118w/M118z墨盒换粉加粉详解
  17. BAPI_EXCHANGERATE_GETDETAIL 取汇率
  18. 手绘与码绘————用代码表现出花瓣飞舞的效果
  19. 神兽大厅源码搭建SLB最佳实践
  20. 为什么很多程序员没有升级到架构师?

热门文章

  1. 六个免费的虚拟主机管理系统
  2. 从汇编层次理解malloc函数
  3. 使用python lxml库中的xpath、etree爬取网页超链接
  4. Qt 判断鼠标在某一控件上
  5. 永恒之塔总是服务器未响应,《剑网3》《永恒之塔》怀旧服刚开上演“冲级热”,八月怀旧游戏集体搞事...
  6. 我的window10
  7. 凝思系统激活序列号_凝思6.0虚拟机搭建--遇到的问题
  8. 我们公司没销售 - 疫情下企业软件的互联网营销
  9. 做市商交易策略-期货
  10. 怎么用计算机计算方位角,坐标方位角连续计算 fx-5800计算器编程