蓝牙协议

简介

当两台蓝牙设备建立连接时,它们会获取对应设备提供的协议。 只有使用相同协议的设备才能交换数据,就像两个人要使用相同的语言才能进行有意义的对话一样。当蓝牙定义设备之间的物理无线连接时,蓝牙规格会建立这些设备能够使用蓝牙技术交换的命令和功能。
HSP(手机规格)– 提供手机(移动电话)与耳机之间通信所需的基本功能。
HFP(免提规格)– 在 HSP 的基础上增加了某些扩展功能,原来只用于从固定车载免提装置来控制移动电话。
A2DP(高级音频传送规格)– 允许传输立体声音频信号。 (相比用于 HSP 和 HFP 的单声道加密,质量要好得多)
AVRCP(音频/视频遥控规格)–用于从控制器(如立体声耳机)向目标设备(如装有 Media Player 的电脑)发送命令(如前跳、暂停和播放)。
HFP(Hands-freeProfile),让蓝牙设备可以控制电话,如接听、挂断、拒接、语音拨号等,拒接、语音拨号要视蓝牙耳机及电话是否支持。
详细介绍:
2. 蓝牙音箱 - 图1

HSP

HSP 描述了Bluetooth 耳机如何与计算机或其它Bluetooth 设备(如手机)通信。连接和配置好后,耳机可以作为远程设备的音频输入和输出接口。
这是最常用的配置,为当前流行支持蓝牙耳机与移动电话使用。它依赖于在64千比特编码的音频/s的CVSD的或PCM以及AT命令从
GSM07.07的一个子集,包括环的能力最小的控制,接听来电,挂断以及音量调整。
典型的使用情景是使用无线耳机与手机进行连接。
可能会使用HSP的若干设备类型:耳机、手机、PDA、个人电脑、手提电脑。

A2DP

A2DP全名是AdvancedAudio Distribution Profile蓝牙音频传输模型协定!A2DP是能够采用耳机内的芯片来堆栈数据,达到声音的高
清晰度。有A2DP的耳机就是蓝牙立体声耳机。声音能达到44.1kHz,一般的耳机只能达到8kHz。如果手机支持蓝牙,只要装
载A2DP协议,就能使用A2DP耳机了。还有消费者看到技术参数提到蓝牙V1.0V1.1 V1.2 V2.0——这些是指蓝牙的技术版本,是指
通过蓝牙传输的速度,他们是否支持A2DP具体要看蓝牙产品制造商是否使用这个技术

AVRCP

AVRCP(Audio/VideoRemote Control Profile),也就是音频/视频远程控制规范。
AVRCP设计用于提供控制TV、Hi-Fi设备等的标准接口。此配置文件用于许可单个远程控制设备(或其它设备)控制所有用户可以接
入的A/V设备。它可以与A2DP或VDP配合使用。
AVRCP定义了如何控制流媒体的特征。包括暂停、停止、启动重放、音量控制及其它类型的远程控制操作。AVRCP定义了两个角
色,即控制器和目标设备。控制器通常为远程控制设备,而目标设备为特征可以更改的设备。在AVRCP中,控制器将检测到的用户
操作翻译为A/V控制信号,然后再将其传输至远程Bluetooth设备。对于“随身听”类型的媒体播放器,控制设备可以是允许跳过音轨的
耳机,而目标设备则是实际的播放器。常规红外遥控器的可用功能可以在此协议中实现。
AVRCP协议规定了AV/C数字接口命令集(AV/C命令集,由1394行业协会定义)的应用范围,实现了简化实施和易操作性。此协议
为控制消息采用了AV/C设备模式和命令格式,这些消息可以通过音频/视频控制传输协议(AVCTP)传输。

OPP

蓝牙通信程序部分需采用用于设备之间传输数据对象OPP Profile: Object Push Profile由于OPP profile又细分为OPPC (client)端和
OPPS(server)端profile,这两个profile区别在于只有client端可以发起数据传输的过程,但是附件设备与手机通信的情景中,既有手机
发起数据传输请求也有设备侧发起传输请求的需要,所以要在设备中实现OPPC和OPPS两个profile。

PBAP

电话号码簿访问协议(PhonebookAccess Profile)

GAIA

蓝牙GAIA传输协议是一种基于蓝牙4.0或更高版本的协议,用于在蓝牙设备之间传输数据,例如音频、图片和文本等。
GAIA是一个缩写,代表运动传感器工业联盟(Global Association for Interoperability in the loT)。该协议的设计目的是为了提供一个灵话
的、可靠的、安全的数据传输方式,以满足不同设备之间的数据通信需求。
GAIA传输协议使用了多种技术,包括加密、压缩和错误纠正等,以确保数据传输的质量和安全性。该协议还提供了一些额外的功能,例如设备发现、连接管理和服务发现等,以方便用户进行数据传输操作。
GAIA传输协议除了在智能手机和平板电脑等移动设备上使用之外,还在许多其他类型的设备上得到了广泛的应用。例如,无线耳机或智
能手表等可穿戴设备就是其中之一。
总之,GAIA传输协议是一种先进的数据传输方式,具有可靠性、安全性和灵活性等优势,可满足不同设备之间的数据通信需求。

SPP

SPP是Serial Port Profile(串口协议)的缩写,其定义了使用蓝牙进行RS232(或类似)串行电缆仿真的设备应使用的协议和过程。简单来说就是在蓝牙设备之间建立虚拟的串口进行数据通信。说白了就是可以两个设备对端发送自定义数据,NOTED:苹果不支持SPP协议。

  1. 在app_config.h文件中, 打开蓝牙相关的配置 ```c

define CONFIG_BT_ENABLE

  1. 2. 获取音乐信息
  2. ```c
  3. //profile define type: 1-info 2-artist name 3-album names 4-track number 5-total number of
  4. //tracks 6-genre 7-playing time
  5. void user_get_bt_music_info(u8 type, u32 time, u8 *info, u16 len){
  6. if(len > 0){
  7. printf("type=%d info=%s\r\n",type,(char *)info);
  8. if(type == 1){
  9. // 设置歌词
  10. }else if(type == 2){
  11. // 设置歌名
  12. }
  13. }
  14. }
  1. 播放暂停

    1. bt_music_play_pause();
  2. 切换歌曲

    1. bt_music_switch_song(FSEL_PREV_FILE); // 上一首
    2. bt_music_switch_song(FSEL_NEXT_FILE); // 下一首
  3. 歌词处理 ```c

void split_music(char* music){ char separator = ‘^’; // 分割点 int i = 0; while(music[i] != separator && music[i] != ‘\0’){ i++; } music[i] = ‘\0’; } ```