蓝牙开发平台的设计与实现
2008-12-08
作者:高家利, 罗 辑, 秦 正
摘 要: 根据蓝牙规范1.1版本,介绍了一种蓝牙开发平台" title="开发平台">开发平台的硬件结构设计和软件技术实现。该开发平台提供了友好的用户接口和简洁的界面,适于学习蓝牙技术和开发蓝牙产品。
关键词: 蓝牙技术; 蓝牙开发平台; 无线通信
蓝牙开发平台是蓝牙技术领域的关键产品。蓝牙开发平台主要用来开发、测试蓝牙产品,也可作为学习蓝牙技术的实用工具。本文根据蓝牙规范1.1版本,给出了一种蓝牙开发平台的硬件结构设计和软件技术实现方案。
1 硬件设计
本开发平台设计了RS232和USB两种接口供用户进行开发、调试使用,提供了独立的可进行蓝牙语音传输的音频接口。蓝牙模块" title="蓝牙模块">蓝牙模块采用CSR公司的BlueCore02芯片,外加了一个微处理器,可以仿真外界的环境,用户可以自己编写基于单片机的程序来控制蓝牙。蓝牙开发平台的系统结构图如图1所示。
1.1 蓝牙模块的实现
蓝牙模块的硬件设计是将所有的芯片、电阻、电容等集成在一块电路板上,主要由两部分组成:射频芯片和基带芯片,即无线收发单元(Bluetooth Radio)和基带控制单元(Baseband Controller)。本开发平台采用的是CSR公司的BlueCore02芯片模块,该模块是一个能在各种智能设备中实现蓝牙功能的近距离范围内通信的模块,支持语音和数据传送,支持点对多点操作。该模块的内部结构如图2所示,图的上半部分可以看成是射频单元,由GMSK调制解调器(Modem)、滤波器(Filter)、功率放大器(PA)、低噪声放大器(LNA)锁相环(PLL)、压控振荡器(VCO)组成;图的下半部分是基带部分,包括UART、PCM、USB等硬件接口,还有8051系列MCU和高速闪存(高速闪存用来存放协议栈" title="协议栈">协议栈软件代码)。
1.2 语音模块的实现
语音编解码芯片采用摩托罗拉公司的MC145483,该芯片不用考虑接口的时序问题,简化了PCM接口电路的硬件设计,具体实现如图3所示。
PC机通过串行接口初始化蓝牙模块并建立语音连接,音频接口连接耳机和麦克。复位电路向蓝牙模块提供复位信号RST,当设备出现故障时,可以使其恢复初始状态。
MC145483芯片的外围电路与耳机麦克相连,实现了多模转换和语音编解码的功能,具体连接如图4所示。MC145483的数据发送(DT)引脚、数据接收(DR)引脚与蓝牙模块的PCM语音接口相连,收发PCM数字语音流;MC145483的FST脚、FSR脚与蓝牙模块的PCM_SYNC脚相连,提供PCM语音流的收发同步信号;MC145483的BCLKT脚、BCLKR脚、MCLK脚与蓝牙模块的PCM_CLK相连,蓝牙模块通过此通道向MC145483提供主时钟信号。
1.3 接口扩展模块的实现
蓝牙模块要传输数据,物理硬件接口上需要利用RS232接口或者USB接口,而逻辑链路" title="链路">链路要使用ACL和SCO链路。软件部分含有蓝牙协议的HCI驱动部分和上层应用程序。首先通过RS232接口传输HCI指令,以建立ACL链路,然后通过此链路传输数据。RS232和USB都可以作为ACL链路的载体。蓝牙模块可以使用HCIRS232传输层,与拥有RS232串行口的主机互相传输数据。HCIRS232传输层的目标是在蓝牙主机和蓝牙主控制器之间的物理RS232接口上使用蓝牙HCI,通过RS232接口连接蓝牙模块和主机。
由于RS232接口本身支持的传输速率不够大,所以这种方案虽然避开了相对复杂的USB协议,但是RS232自身就存在带宽不足的问题。根据USB新的规范,传输速率理论上可以达到12Mb/s,完全可以满足一般的传输要求,不会产生接口上的速率瓶颈。蓝牙模块通过USB接口接入到具有USB接口的设备中,如PC机、PDA等。蓝牙模块上固化了底层协议栈,所以底层的跳频、加密和链路管理控制等可以不必考虑,需要做的只是正确使用HCI指令。其缺点是,开发过程涉及USB接口及其相关协议,不如串口" title="串口">串口简单。不过己经有厂家开始把USB驱动程序集成在蓝牙模块的存储器中,简化了用户的开发过程。
接口扩展模块实现了灵活、方便的扩展接口,ESDBK蓝牙开发平台在基板上为用户提供了PCM接口、UART串口和+3.3V电源,用户可以方便地通过设置在基板上的接口转换开关将任意一个接口设置成独立状态,用于调试用户自行设计、开发的蓝牙设备中的语音电路和单片机控制电路,在蓝牙开发平台的蓝牙功能支持下,达到完全仿真的效果,从而可以大大缩短用户的蓝牙产品的开发时间。
1.4 独立的电源模块的实现
电源采用直流+5V输入方式,通过LM317降压实现稳压在+3.3V,此电压即为蓝牙硬件开发平台的工作电压。电源输入有两种方式:一是采用专用的电源转换器通过主板上的电源插座输入;二是通过USB接口提供+5V电源,通过转换开关可实现不同的电源输入方式。
2 软件设计
软件设计上采用Borland公司推出的Delphi6.0快速开发工具,实现了友好的全中文界面。该软件平台为蓝牙开发人员提供了方便的测试接口及调试界面,用于蓝牙数据传输、语音传输的蓝牙应用软件和产品的开发与研究,可方便快捷地进行蓝牙指令分组、数据分组的测试,提供了蓝牙规范的1.1b版本所有HCI指令的测试接口。
2.1 软件流程图
蓝牙模块通过主机控制器接口HCI和PC机通信。由主设备发起建立ACL和(或)SCO连接。当主、从设备建立ACL连接后,就可以进行数据传输了。如果需要进行语音通信,则还需在ACL连接的基础上建立SCO连接。蓝牙开发平台软件开发环境的主程序流程如图5所示。
2.2 软件的功能与实现
软件的功能包括:ACL链接;SCO链接;数据传输;文件传输; 语音通讯;提供全部HCI命令测试;L2CAP协议层数据交换过程;SDP协议层的服务、属性实现;RFCOMM协议层的数据交换;模拟串口服务实现。
应用程序主界面如图6所示,包括菜单项、工具栏、状态栏和记录窗口。
(1)记录窗口
记录窗口用于记录每条HCI指令及该指令所引起的HCI事件的内容和ACL数据传输的内容。
(2)菜单功能项
①文件:该功能项提供普通的文件操作,包括新建、打开、保存、复制、粘贴、选择、打印、退出等功能。
②蓝牙协议栈:包括HCI、SDP和RFCOMM的蓝牙协议栈模型。
③应用模拟:包括数据传输、文件传输、语音通讯、语音和文件传输、指令测试5个子功能的演示。
④蓝牙开发包括基于Windows平台的开发、单芯片开发(BlueLab)和外部处理器(单片机)的开发。
⑤帮助:提供基于HCI层开发的详细的帮助。包括HCl说明、HCI指令、HCI事件、HCI错误代码。
(3)工具栏
可快速实现新建、打开已存文件、当前记录保存和打印功能。
(4)状态栏
由三个部分组成:指令执行状态指示、所使用的串口、已建立连接的远方蓝牙设备的地址。
对本蓝牙开发平台的硬件电路和软件功能进行了相关测试,测试结果:数据传输过程中没有数据丢失现象,蓝牙开发等一系列功能均正常;在进行语音测试时,距离超过8m时有杂波出现,但可以通过加大功率和改进语音电路加以改善。
本开发平台提供的友好、简洁的用户接口和界面,适用于广大爱好者学习蓝牙技术和开发蓝牙产品。
参考文献
[1] 朱则. 蓝牙技术原理与协议[M]. 北京:北方交通大学出版社,2002.
[2] HELD G. 无线数据传输网络:蓝牙、WAP和WLAN[M].北京:人民邮电出版社,2001.
[3] 傅剑虹,汪敏,朱俊. 基于蓝牙技术家庭网络的研究和实现[J].计算机工程,2004;(03).
[4] Bluetooth. Specification of the bluetooth system version (EB/OL). http://www.bluetooth.com,2005.
[5] 李志军.蓝牙开发平台的研究与实现[C].哈尔滨工程大学工学硕士论文,2004.