蓝牙开发基础
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
蓝牙开发板系列-介绍
一、 介绍
Damayi Bluetooth DB10(Bluetooth Development Board 1.0)蓝牙开发板是一套功能强大的蓝
牙开发系统,不仅可以支持运行在外部CPU 上的软件和固件开发(如开发蓝牙车载LCD 显示控制的固件),还可以支持运行在CSR BlueCore 系列蓝牙芯片内部的单芯片固件开发(如开发蓝牙耳机)。
Bluetooth DB10 由蓝牙主板(Bluetooth Main Board )、蓝牙接口板(Bluetooth Interface Boar
d )和单片机接口板(MCU Interfac
e Board )三部分组成(其中单片机接口板为可选部件)。
功能特点如下:
l 全面支持CSR BlueCore 系列蓝牙芯片
l 全面支持CSR Bluelab SDK 单芯片开发包 l 全面支持Damayi Bluetooth BDK 软件 l 支持在线编程和调试 l 支持动态修改蓝牙参数 l 支持外部CPU 产品开发 l 支持单芯片产品开发
l 同时支持片内CODEC 和片外CODEC
h t t p :/
/w w w
.m
b t r e n d .
c o
m
l 支持电池电量模拟
二、 软件安装
CSR Bluelab SDK(Software Development Kit)单芯片蓝牙开发包是CSR 公司提供的一套整合编
译、烧录、调试等功能的集成开发环境。
关于该开发包的详细介绍及购买适宜,请到CSR 公司的网站上获得更多支持: 。
Damayi Bluetooth BDK(Basic Development Kit)蓝牙初级开发包是蓝牙中国提供的基于蓝牙1.1版本的全面支持点对点和点对多点测试的标准测试和开发工具包。
关于该开发包的详细介绍及购买事宜,请到蓝牙中国网站获得更多支持: 。
Damayi Bluetooth DB10目前仅支持CSR Bluelab SDK 2X 系列开发包,不支持立体声应用的开发(3X 系列的开发环境将在Damayi Bluetooth DB20中支持)。
以下简单介绍CSR Bluelab SDK 2X 开发包的安装过程。
1、 安装Cygwin
A 、执行Cygwin\setup.exe 。
B 、选择从本地目录安装(Install from a local directory )。
C 、输入本地包目录(Local Package Directory ),如CDROM:\Cygwin ,点击Next 选择默认
安装。
D 、输入安装目录(Install Root Directory),尽量选择安装在本地的大硬盘上,如C:\Cygwin 。
h t t p :/
/w
w w
.m
b t r e n d .
c o
m
执行Java\setup.exe 来进行安装。
3、 安装J2re
执行J2re\j2re-1_3_1_02-win-i.exe 来进行安装。
4、 安装CSR Bluelab (库/编译/烧录环境) 执行BlueLab\BlueLab.exe 来进行安装。
该开发环境含设置工具(BlueFlash/PSTool )。
5、 安装CSR BlueSuite (设置工具)
执行BlueSuite\BlueSuiteCasira.exe 来进行安装。
注意:安装时尽量选择安装在系统硬盘的根目录下(CDROM 为光驱盘符)。
三、 硬件连接
h t t p :/
/w w w
.m
b t r e n d .
c o
m
A 、 常用指令
指令
作用
举例
cd 目录切换 cd d:\bluelab27 ls 目录察看 ls make
编译、烧录
make kato
B 、 make 指令
指令
描述
make clean 清除编译产生的所有目标文件 make 编译产生目标文件,但不烧录
make kato 编译产生目标文件,并且烧录到片内Flash
make bc02
编译产生目标文件,并且烧录到片外EEPROM make bc02_8m
编译产生目标文件,并且烧录到片外
EEPROM(8M)
编译过程将生成.app,.dbg,.sym,.xap文件 2、 工具
A 、 BlueFlash
h t t p :/
/w w w
.m
b t r
e n d .c o
m
Processor\ Start
Processor Download 烧录选择好的Firmware 文件 Dump 导出Firmware
文件 Flash Erase
擦除Firmware 文件
B 、 PSTool
该工具用于修改芯片的PS 值,设定蓝牙芯片的配置参数。
A) 安装:
运行InstParSpi.bat 安装设备驱动(NT only )。
运行RegPSToolocx.bat 注册OCX 。
B) 查看:
启动PsTools ,选择如下图:
h t t p :/
/w w w
.m
b t r e n d .
c o
m
选择View->Programmer ID’s ,以编程标示方式查看各个属性:
从左边的面板选择要查看的PSKEY ,程序会读取相应值显示在右边。
需要重读,重新选择要查看的PSKEY ,点击Read 按键。
C) 设定:
从左边的面板选择要设定的PSKEY ,选择或者键入新值在右边的对话框中,点击Set 按键。
C 、VMSpy
h t t p :/
/w w w
.m
b t r e n d .
c o
m
连接后,虚拟机会自动复位并开始运行设备上的程序。
h t t p :/
/w w w
.m
b t r e n d .
c o
m
跳线:1、UART_SEL 跳线到OUT 设定
2、 如果接口板为BCM02接口板,将MIC_SEL 和SPK_SEL 跳线到Build_Out ,BCM02只
支持片外CODEC 。
如果接口板为BCM04接口板,希望使用片外CODEC ,将MIC_SEL 和SPK_SEL 跳线到Build_Out ;希望使用片内CODEC ,将MIC_SEL 和SPK_SEL 跳线到Build_In 。
3、PIO 选择跳线都应拨下跳线到KEY_LED 。
三、 开发流程
1、源文件
源文件在CSR Bluelab SDK 安装目录下的apps\headset 里面,开发者可根据具体需求修改或
调整。
文件名 说明 battery.c
电量读取
checkButtons.c 按键处理 cmd.c 处理从AG 处收到AT 命令 config.h 按钮、LED 、宏的定义 connect.c 蓝牙连接相关处理 demohs.h 函数、常量、类型的定义 flash.c
对LED 的操作
h t t p :/
/w w w
.m
b t r e n d .
c o
m
reset.c 复位相关操作 ring.c
响铃相关操作 sco.c
sco 链路操作 volume.c 音量控制
Makefile 编译用makefile 文件
2、编译/烧录
A. 在cygwin 环境下,通过目录操作进入headset(apps/headset)目录
B. 键入make bc02
C. 接下来就会编译程序并烧录到模块中
3、设置PSKEY
l 设置"Map SCO over PCM" (PSKEY_HOSTIOMAP_SCO_PCM)为TRUE 。
l 如果使用片外CODEC ,Map SCO over the built-in codec (PSKEY_HOSTIO_MAP_S
CO_CODEC)应当设为False 。
l 如果使用片内CODEC ,Map SCO over the built-in codec (PSKEY_HOSTIO_MAP_S
CO_CODEC)应当设为True 。
h t t p :/
/w w w
.m
b t r e n d .
c o
m
PsKey 设定:
l Peer Address - User Configuration Data 0 (PSKEY_USR0) 配对设备地址 l Link Key - User Configuration Data 1 (PSKEY_USR1) 配对设备link key l PIN code - User Configuration Data 2 (PSKEY_USR2) 配对pin code l PIN length - User Configuration Data 3 (PSKEY_USR3) 配对pin code 长度 l Paired flag - User Configuration Data 4 (PSKEY_USR4) 是否配过对标示 l Last Speaker Volume Setting - User Configuration Data 6 (PSKEY_USR6) 上次
Speaker 音量
l Last Microphone Gain Setting - User Configuration Data 7 (PSKEY_USR7) 上
次mic 音量
当PIN length 为0时,同样将做硬复位动作,即复位所有上诉PsKey 。
配对:
l 如果启动后,Headset没有配对过,Headset将自动进入配对状态,等待被查询到、配
对、连接。
h t t p :/
/w w w
.m
b t r e n d .
c o
m
Headset 被连接:
如果已经和Audio Gateway 配对完成:
点击Talk button 使得Headset 进入可被连接状态,Audio Gateway 这时可发起建立连
接,当RFCOMM 连接建立成功,Headset 将收到Audio Gateway 发送的incoming call 的警告。
此时,点击Talk button 同意连接请求。
连接建立完成。
Headset 发起连接:
如果已经和Audio Gateway 配对完成:
点击Talk button 两次使得Headset 进入发起连接状态(如果Headset 在可被连接状态,则只需点击一次),Headset 将试图连接配对的Audio Gateway 。
Headset 状态:
Headset 共有3种状态,空闲、可被连接、发起连接。
开始与空闲状态,点击一次Tal k button 使得Headset 进入可被连接状态,第二次点击将使得Headset 进入发起连接状态,再次点击Headset 将回到空闲状态。
音量控制:
h t t p :/
/w w w
.m
b t r e n d .
c o
m
ume Up ,Mic 静音将被取消。
当音频链路断开,Headsfree将存储当前mic 音量到PsKey ,下次连接建立的时候被读取设置为下次开机状态。
断开连接:
Headset profile 没有允许Headset 主动断开连接,Headset 需要点击Talk button 通知
Audio Gateway 做相应的动作(保持或者断开连接)。
四、 注意事项
阅读例程代码,还可以按照需要实现或改变电量报告等功能。
蓝牙开发板系列-耳机开发(hands_free )
一、 建立开发环境
请参见《蓝牙开发板系列-开发环境》。
二、 开发板
跳线:1、UART_SEL 跳线到OUT 设定
2、 如果接口板为BCM02接口板,将MIC_SEL 和SPK_SEL 跳线到Build_Out ,BCM02只
h t t p :/
/w w w
.m
b t r e n d .
c o
m
源文件在CSR Bluelab SDK 安装目录下的apps\hands_free 里面,开发者可根据具体需求修改或调整。
文件名 说明
autosira_msm7731.c 回音消除和噪音消除芯片控制 autosira_msm7731.h 上面控制函数定义和常量定义
call.c 来电相关操作 cancel.c
取消当前操作相关函数 cmd.c 不可解析AT指令的处理 connect.c
蓝牙连接相关处理 dial.c 拨打电话相关操作 dtmf.c 发送dtmf code到AG error.c 出错处理
hal.c
硬件抽象层相关操作
handsfree.h handsfree相关操作函数定义
handsfree_private.h 常量、结构、函数定义 handsfree_types.h 类型定义
hf_msg.h 定义与外部GUI的接口 hfalloc.c 内存分配操作
hosthf_main.c 与外部GUI通讯操作 hosthf_private.h 与外部GUI通讯函数定义 hosthf_receive.c 发送事件信息到GUI hosthf_send.c 处理GUI拨打电话请求 indicators.c
处理接受到的状态更新指示
h t t p :/
/w w w
.m
b t r e n d .
c o
m
piohshf_init.c PIO操作方式初始化处理 piohshf_private.h
PIO操作方式常量、结构定义 piohshf_receive.c PIO操作方式事件处理 piohshf_send.c
PIO操作方式拨打电话相关处理 reset.c 复位相关操作
ring.c 响铃相关操作 sco.c sco链路操作 voice.c
语音拨号相关操作 volume.c 音量控制相关操作 Makefile
编译用makefile 文件
2、 编译烧录
A. 在cygwin环境下,通过目录操作进入headsfree(apps/heads_free))目录 B. 修改Makefile文件,去掉DEFS= -DHS_HF_ENABLED前面的# C. 键入make bc02
D. 接下来就会编译程序并烧录到模块中 3、 设置PSKEY
l 设置"Map SCO over PCM" (PSKEY_HOSTIOMAP_SCO_PCM)为TRUE 。
h t t p :/
/w w w
.m
b t r e n d .
c o
m
l Call Reject button - PIO 3 l Volume Down button - PIO 6
l Volume Up button - PIO 7 l Connect LED - PIO 4 l Pair LED - PIO 5 PsKey设定:
l Peer Address - User Configuration Data 0 (PSKEY_USR0) 配对设备地址 l Link Key - User Configuration Data 1 (PSKEY_USR1) 配对设备link key l PIN code - User Configuration Data 2 (PSKEY_USR2) 配对pin code l PIN length - User Configuration Data 3 (PSKEY_USR3) 配对pin code 长度 l Paired flag - User Configuration Data 4 (PSKEY_USR4) 是否配过对标示 l AG paired role - User Configuration Data 5 (PSKEY_USR5) 配对角色(HSP 、HF
P 或者HSP&HFP )
l Last Speaker Volume Setting - User Configuration Data 6 (PSKEY_USR6) 上次
Speaker 音量
l Last Microphone Gain Setting - User Configuration Data 7 (PSKEY_USR7) 上次
h t t p :/
/w w w
.m
b t r e n d .
c o
m
状态为可被连接,点击一次Headsfree进入HSP&HFP 配对模式,再次点击进入HSP 配对模式,再次点击进入HFP 配对模式,再次点击返回到可被连接状态。
l 配对时,要求输入的pin code 为1234(默认)。
作为Headset:
如果Audio Gateway仅支持Headset,则Headsfree作为Headset使用,此时只有Call
Accept button 、Volume Down button 和Volume Up button 可以使用。
与单独的Headset应用不同,Headsfree此时始终处于可被连接状态,Audio Gateway随时可发起建立连接,当RFCOMM连接建立成功,Headset将收到Audio Gateway发送的incoming call 的警告。
此时,点击Talk button同意连接请求。
连接建立完成。
如果Headsfree发起连接,点击Call Accept button 一次使得Headset进入发起连接状态,Headsfree将试图连接配对的Audio Gateway。
Headset profile没有允许Headset主动断开连接,Headsfree需要点击Call Accept bu tton 通知Audio Gateway做相应的动作(保持或者断开连接)。
在和Audio Gateway建立连接后,可通过点击Volume Down button 和Volume Up but ton 调解音量大小。
当音频链路断开,Headsfree将存储当前Speaker 音量到PsKey ,下次连接建立的时候被读取设置为下次开机状态。
在和Audio Gateway建立连接后,可通过同时按下Volume Down和Volume Up,使得Mic静音,Headset会通过间断的“哔”声来告知。
当再次同时按下Volume Down和Volume Up,Mic静音将被取消。
当音频链路断开,Headsfree将存储当前mic 音量到PsKey ,下次连接建h t t p :/
/w w w
.m
b t r e n d .
c o
m
如果用户用Audio Gateway(手机)接听了电话,可以通过点击Call Accept button 来建立Audio Gateway与Headsfree的连接,继而通过Headsfree来接听控制通话。
如果用户用Headsfree接听了电话,可以通过点击Call Accept button 来转换到Aud
io Gateway(手机)接听,由Audio Gateway(手机)来接听控制通话。
语音拨号:
如果前一状态不为来电或去电,点击Call Accept button 可以激活Audio Gateway(手
机)的语音拨号。
重拨最后去电:
如果已经与Audio Gateway建立了连接,同时点击Call Accept button 和Call Reje ct button 来激活重拨最后去电功能。
断开连接:
如果当前没有正在通话或发起去电,点击Call Reject button 将断开与Audio Gateway的连接。
(如果如果当前没有正在通话或发起去电,点击Call Reject button 将断开通话或挂起去电。
) 按键总结:
按键
当前状态
前一状态
动作
Call Accept 可被连接
-
建立连接,激活语音拨号
在AG端正在通话 转换通话到handsfree
建立连接
-
取消,返回到可被连接状态
h t t p :/
/w w w
.m
b t r
e n d .c o
m
连接已建立 handsfree 响铃 决绝来电
在AG端正在去电 决绝去电
-
断开连接 SCO链路以连接 响铃
决绝来电 在AG端正在通话 断开通话
-
断开SCO链路
Led状态:
l 配对:Pair LED每2秒闪一次,Connect LED不亮。
l 可被连接:Connect LED每3秒闪一次,Pair LED不亮。
l 建立连接:Connect LED每5秒闪一次,Pair LED不亮。
l 连接已建立:Connect LED
每10秒亮半秒钟,Pair LED不亮。
四、 注意事项
阅读例程代码,还可以按照需要实现或改变电量报告等功能
无线立体声耳机成为2005年的热门产品。
随着越来越多的手机支持蓝牙功能,蓝牙耳机已成为手机的必备选件。
同时,随着支持MP3播
放的立体声蓝牙耳机的推出,蓝牙耳机已能够同时连接到蓝牙移动电话和音乐播放器,这必将给蓝牙应用带来新的亮点。
蓝牙耳机的核心是射频和基带处理两部分,为适应功能的集成和设计的小型化,CSR 、Broadcom 等公司已将射频和基带处理功能集成在一起,如CSR BlueCore4高集成的蓝牙芯片,封装最小为6×6mm 。
整个耳机的电源管理设计要求外围组件少,集成度高,同时满足蓝牙
芯片对负载响应和噪声抑制的要求。
h t t p :/
/w w w
.m
b t r e n d .
c o
m。