找回密码
 注册
关于网站域名变更的通知
查看: 276|回复: 3
打印 上一主题 下一主题

学习蓝牙技术应该知道的几个要点

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-11-13 13:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
1. 前言
蓝牙技术因其成本低、功耗低、可拓展性强,被公认为应用最广泛的短距无线通信技术。搭载蓝牙技术的产品市场占有率逐年提高,随之产生了巨大的开发人才需求。但由于蓝牙技术的迭代速度较快、与其他技术领域交叉重叠较多、缺乏成熟的培训体系等种种原因,使得企业难以找到合适的人才,从而推高企业的用人成本,从长远的角度看,并不利于行业的健康发展。

作者从2015年开始自学蓝牙技术,没有积累到很多成功的经验,犯过的错和走过的弯路倒是可以说出不少,在此总结出几个要点,期望大家早日学有所成。

2. 选择适合的平台切入
很多新接触蓝牙技术的朋友,对方案的难度和自身技术储备了解不够。比如有遇到一直做硬件开发的朋友,想快速深入到5124平台的软件开发,不知从何下手;再或者有对安卓或Linux环境的开源协议栈很熟悉的朋友,发现8670的中间层代码不开源,就觉得高通的方案开发起来容易出问题。

在此给大家提供一个高通蓝牙平台软件开发难易度的简单梳理:

芯片型号        技能需求        开发难度        软件可编程
CSR863x        会使用一般电脑软件                不可编程
CSR867x        C语言/汇编语言                底层固件不可编程,应用可编程,DSP可编程
QCC300x        C语言                底层固件不可编程,应用可编程,DSP可编程
QCC30xx        C语言        中高        底层固件部分可编程,应用可编程,DSP可部分编程
QCC512x        C语言/汇编语言                底层固件部分可编程,应用可编程,DSP可编程
底层固件不可编程,开发人员需要熟悉软件接口,高通方案的软件接口是比较丰富的;底层固件部分可编程,指的是QCC30xx和51xx系列将一部分软件接口的源码开放出来,降低开发者理解和运用的难度
应用层有源码,软件框架是完整的,可以增删一些功能
DSP可编程,意味着可以移植客户的自有算法,属于较高级的功能,一般ODM厂商不会涉及到。QCC30xx的DSP是部分可编程,意思是可以调用预置的算法模块并重新设计音频链路,但不能新建算法模块
对于不可编程的部分,绝大多数情况下是可以稳定工作的,也不排除有个别问题需要修复,此时可以通过打patch(补丁)的方式来解决此问题,当然这需要原厂的支持
软件开放程度越高,芯片通用性越强,价格越高;软件开放程度越低,芯片专用性越强,价格越低
按照方案开发的难易度,推荐的学习路线如下:

从300x开始上手,熟悉基础的sink模式蓝牙耳机功能
再学习8675,熟悉source蓝牙发射器模式和传统tws耳机模式
接着学习30xx,熟悉earbuds蓝牙豆模式,并能够用kymera自定义音频链路
最后学习512x,熟悉kymera仿真C语言算法的方法,能够自行开发算法模块并集成到音频链路
3. 大量阅读文档
学习蓝牙开发的过程中需要阅读大量的文档,才能在大脑中形成足够数量的知识点,再通过阅读代码和实际调试将知识点形成知识网络,产生解决实际问题的能力。

蓝牙技术类的文档主要由如下几部分组成:

官方技术规格文档,如“bluetooth core spec 5.0”/"GATT profile"等,在蓝牙官网下载,权威性和指导性是最强的,阅读难度也是最大的。不建议直接硬啃,可作为词典在阅读代码时查询,加深对协议中很多抽象概念的理解。
芯片平台技术资料,如高通ADK中的众多“user guide”等,用高通的开发者账号下载,入门引导、实操示范为主,对开发产品的具体功能是有很强的指导意义的,必读且要精读。很多读者容易在繁多的文档中迷失方向,建议阅读顺序是总体方案概述->硬件规格书类->软件系统类->示例讲解类。
公开网络资料,如csdn博客、专业蓝牙技术论坛(52bluetooth)等,各自有用户权限,知识点讲解、问题解决方案分享为主,阅读难度不大,但需要有较多的背景知识和实际经验才有帮助。
4. 先基础再延申
高通蓝牙方案可以支持的功能有很多,体现在终端产品上是多个功能的集合,学习时容易找不到合适的切入点。

蓝牙平台的一些功能(如打电话、听音乐、BLE传输数据)在同类型的产品中总会出现,然后是基于一种或多种功能延申出的增强功能(如语音助手)。建议按照功能的依赖关系安排学习步骤:

基础功能
接听电话 HFP/HSP
听音乐 A2DP
虚拟串口通讯 SPP/RFCOMM
呼出电话 AGHFP
音频发射 A2DP
显示电池电量 BLE/HFP
增强功能
语音助手 HFP/A2DP+SCO
OTA升级固件 SPP/RFCOMM/GATT
安卓app控制 SPP/GATT
iOS app控制 GATT/iAP2
5. 记录和分享
在学习过程中收集到的知识,应该尽可能记录下重点内容和出处,以免日后需要用时找不到相关信息。在有阶段性学习成果时,尝试通过网络分享给更多人,可能会收获感谢和赞美,激励自己不断学习,形成良性循环。


该用户从未签到

2#
发表于 2021-11-13 14:09 | 只看该作者
底层固件不可编程,开发人员需要熟悉软件接口,高通方案的软件接口是比较丰富的
  • TA的每日心情

    2019-11-19 15:55
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2021-11-13 14:10 | 只看该作者
    DSP可编程,意味着可以移植客户的自有算法,属于较高级的功能

    该用户从未签到

    4#
    发表于 2021-11-13 14:10 | 只看该作者
    高通蓝牙方案可以支持的功能有很多,体现在终端产品上是多个功能的集合
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-18 16:51 , Processed in 0.093750 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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