OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5349|回复: 1

你还在搞AT蓝牙/CC2540/NRF51xxx/nrf52xxx的应用蓝牙吗?跟我来学真正蓝牙协议栈,轻松应用以上蓝牙

[复制链接]

7

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2015-1-6
在线时间
10 小时
发表于 2020-7-25 08:59:43 | 显示全部楼层 |阅读模式
市面上的蓝牙纷纷杂杂,眼花缭乱,但是我们搞清楚市面蓝牙架构,就可以轻松应用各个蓝牙的开发!!!!其实学会真正的蓝牙协议栈以后像HC05/NRF51XXX/NRF52XXX/CC2540/CSR8670/CSR8675/QCC3/QCC5/杰理/洛达等方案统统不在话下,简单的很。
现在介绍下我写的蓝牙书计划:

第一篇:蓝牙综合介绍 ,主要介绍蓝牙的一些概念,产生背景,发展轨迹,市面蓝牙介绍,以及蓝牙开发板介绍。
第二篇:Transport层介绍,主要介绍蓝牙协议栈跟蓝牙芯片之前的硬件传输协议,比如基于UART的H4,H5,BCSP,基于USB的H2等
第三篇:传统蓝牙controller介绍,主要介绍传统蓝牙芯片的介绍,包括射频层(RF),基带层(baseband),链路管理层(LMP)等
第四篇:传统蓝牙host介绍,主要介绍传统蓝牙的协议栈,比如HCI,L2CAP,SDP,RFCOMM,HFP,SPP,HID,AVDTP,AVCTP,A2DP,AVRCP,OBEX,PBAP,MAP等等一系列的协议吧。
第五篇:低功耗蓝牙controller介绍,主要介绍低功耗蓝牙芯片,包括物理层(PHY),链路层(LL)
第六篇:低功耗蓝牙host介绍,低功耗蓝牙协议栈的介绍,包括HCI,L2CAP,ATT,GATT,SM等
第七篇:蓝牙芯片介绍,主要介绍一些蓝牙芯片的初始化流程,基于HCI vendor command的扩展
第八篇:附录,主要介绍以上常用名词的介绍以及一些特殊流程的介绍等。
另外,开发板如下所示,对于想学习蓝牙协议栈的最好人手一套。以便更好的学习蓝牙协议栈,相信我,学完这一套视频你将拥有修改任何协议栈的能力(比如Linux下的bluez,Android下的bluedroid)。

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

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 ... Str&id=622836061708

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




市面上大致有这几种蓝牙,其中优缺点也是我个人见解,大家一看就好,至于有不同意见,可以交流。
1. SOC蓝牙单芯片方案,
一般是半导体厂商半开源协议栈,基于特定的编译器,把蓝牙协议栈直接烧写到蓝牙芯片中(比如CSR BC4/5,CSR8670,CSR8675,TI CC2540,NRF51xxx,NRF52xxx,乐鑫ESP32等等),架构如下:

此类芯片一般可以直接做为MCU用,这类产品一般用于消费类电子,集成度很高,调调部参数可以直接使用,常见的有蓝牙耳机,一般蓝牙耳机之前CSR的芯片(CSRBC5/8670/8675)占很大的份额,现在CSR被高通并掉后,出来QCC3,QCC5系列,现在还有洛达,杰里的低成本方案,在有就是BLE smart设备,也有特有的方案
2. SOC蓝牙+MCU方案
就是在1)的基础上,通过特定的interface(UART居多),发送自定义的command来达到想要的功能,比如发送0x01代表搜索周围设备,当然在产品中肯定不会定义这么简单的command,一般要加上command id + command len + command para data + command check sum来实现功能
架构如下:


此部分的应用一般用于外设功能相对于复杂,需要驱动很多外设,但是单芯片方案的性能达不到的情况下一般用这种方案
3. 蓝牙host + controller分开方案
这种应用算是蓝牙最复杂的应用,适用于蓝牙使用情景较复杂的情况下使用,比如车载蓝牙等。客户需要有很多蓝牙协议,比如蓝牙电话(HFP),蓝牙音频(A2DP),蓝牙音乐控制(AVRCP),蓝牙电话本(PBAP),蓝牙短信(MAP),BLE,HID,如果你说以上还能用soc做,那么再加上Carplay的IAP/IAP2,Android Auto的RFCOMM BT呢,基本以上就需要这种方案了。
其中Transport是一个协议,H2就是在USB的基础上的协议,H4,H5,BCSP是UART基础上的协议,当然还有SDIO。

四.总结
其实做多了,你就会发现每种架构都有每种的好处,并不是每周产品都需要套用某一种架构,需要考虑的方面很多,比如
1)项目需要的成本 2)项目的功能复杂度 3)项目的研发市场 4)项目硬件性能的考虑(rom,ram,codec等)
我大概列举下几种:
1)手机 -> 手机的蓝牙复杂应用,注定要用第3种方案,也就是蓝牙协议栈(host)在主芯片中,蓝牙芯片为HCI架构的
2)蓝牙音响,蓝牙耳机 -> 此种应用一般用单芯片方案就能hold住,比如CSR8670/8675/杰理蓝牙等,好处在于开发便捷
3)蓝牙手表 -> 手表要看功能复杂性,如果仅仅有时间显示,传感器交互,蓝牙,那么可以选择单芯片方案(也就是方案1),如果有网络等比较复杂的功能就要使用MCU+蓝牙芯片方案(也就是方案3)了
4)蓝牙手环,蓝牙心率带等 -> 基本上是单芯片方案



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2020-5-5
在线时间
2 小时
发表于 2020-11-17 11:24:57 | 显示全部楼层

回帖奖励 +1 金钱

感谢分享
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 15:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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