开源双模蓝牙协议栈 - 蓝牙模组以及开发板使用介绍

零. 概述

本文章主要讲下我们的开发版(STM32F1+CSR8311)以及蓝牙模组扩展版(CSR8311)的功能以及使用简短说明

一. 声明

本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下:

第一篇:蓝牙综合介绍 ,主要介绍蓝牙的一些概念,产生背景,发展轨迹,市面蓝牙介绍,以及蓝牙开发板介绍。

第二篇: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?spm=a1z10.1-c-s.w4004-22329603896.18.5aeb41f973iStr&id=622836061708

蓝牙学习目录:https://blog.csdn.net/XiaoXiaoPengBo/article/details/107727900

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

二.蓝牙开发板介绍

开源双模蓝牙协议栈 - 蓝牙模组以及开发板使用介绍_第1张图片

功能分布如下:

① TYPE C USB转串口调试接口

② TYPE C USB DEVICE接口,可实现SPI FLASH当作U盘使用

③ Reset button

④ 电源开关

⑤ ST-LINK下载接口

⑥ USER button

⑦ ADC插槽

⑧ 喇叭左右声道接口

⑨ Line-in & 耳机接口

⑩ 蓝牙CSR8311模块扩展板

⑪ OLED 屏幕

⑫ SDIO Wi-Fi接口

⑬ STM32 F103RET6(ROM 512K,RAM 64K)

⑭ WM8960 codec ic

STM32使用我们开发板板子连接图:

开源双模蓝牙协议栈 - 蓝牙模组以及开发板使用介绍_第2张图片

PC端需要以下几个软件:

1)编译器,STM32使用的编译器,目前我们开发版是用MDK5.25(keil5.25),如图:

开源双模蓝牙协议栈 - 蓝牙模组以及开发板使用介绍_第3张图片

我们已经把MDK软件放在开发资料中的,包括MDK软件本身,MDK和谐软件,STM32F1的pack封包,打开工程以前需要先安装这个。

2) ST link驱动(下载程序到STM32的时候用),通过Keil下载到STM32的

3) 串口工具,用于串口工具通过AT来控制STM32,我们已经在资料中提供了VCOM以及putty

4) 蓝牙上位机(自带串口功能),方便了用带UI的画面来学习操作蓝牙,而且带调试日志功能,UI如下(暂时,后续完善不会更新到这个图片)

开源双模蓝牙协议栈 - 蓝牙模组以及开发板使用介绍_第4张图片

三. 蓝牙模组扩展版介绍

开源双模蓝牙协议栈 - 蓝牙模组以及开发板使用介绍_第5张图片

① CSR8311模组

② CSR8311复位按键

③ CSR8311 接口图

④ 喇叭左右声道

⑤ Line-in & 耳机接口

目前我们的模组我是在电脑端的ubuntu虚拟机来跑协议栈,接线图如下

开源双模蓝牙协议栈 - 蓝牙模组以及开发板使用介绍_第6张图片

需要找一个带流控的串口板来界限,接线是:

VCC 5V供电,GND接到GND,TX接到TX,RX接到RX,CTS接到CTS,RTS接到RTS

可能你会问为啥TX是接TX,RX接RX,CTS接CTS,RTS接RTS,而不是TX接RX,RX接TX,CTS接RTS,RTS接CTS,给你看下原理图你就明白了·,我们的蓝牙扩展的丝印是站在STM32角度来的。

开源双模蓝牙协议栈 - 蓝牙模组以及开发板使用介绍_第7张图片

开源双模蓝牙协议栈 - 蓝牙模组以及开发板使用介绍_第8张图片

Linux ubuntu用默认的gcc就行了·,

Linux arm板要用交叉编译器

注意:供电一定要5V。

我们399跟199开发板的区别:

399是STM32F103RET6+蓝牙模组扩展版

199是蓝牙模组扩展板

所以399是把蓝牙协议栈(bt host跑在STM32中),而199需要你自己接一个MCU或者你在ubuntu虚拟机中跑协议栈(Linux版本我们也做了协议栈的一个版本)

你可能感兴趣的:(蓝牙协议剖析,蓝牙协议栈精讲,开源蓝牙协议栈,蓝牙协议栈开发板)