基于S3C4480X控制的蓝牙音频网关设计与实现
扫描二维码
随时随地手机看文章
摘要:给出了以32位内核的ARM7TDMI S3C44BOX器件作为蓝牙音频网关开发的终端微处理器,并通过蓝牙模块ROKl0l008用UART与S3C4480X进行连接来组成蓝牙音频网关系统的设计方法。该系统与蓝牙耳机连接,可实现配对与语音数据传输。
关键字:S3C4480X;蓝牙;音频网关
O 引言
针对最后十米的传输问题,蓝牙技术已经逐渐成为低成本、短距离无线个人网络传输的首选技术,其主要目标是提供一个全双工的无线传输环境,从而实现语音和数据的无线传输。对于近距离传输,蓝牙可采用高速跳频技术(FH)来确保链路的稳定,而且抗干扰性强,不易窃听。此外,蓝牙芯片的价格低廉,实现扩展容易。通过蓝牙还可以对家居音频设备网络进行控制。
为此,本文设计了一种基于S3C4480X的蓝牙音频网关(AG)系统,该系统可实现与蓝牙耳机之间的点对点连接,以建立一个音频连接,从
而实现两者之间的配对与语音数据传输。
l 蓝牙体系结构
蓝牙无线通信协议标准包括核心协议和应用框架两大部分。蓝牙协议标准的目的是在遵循规范应用的情况下能够进行相互间的操作,为了实现相互间的操作,在远程设备上的对应应用程序必须以同一协议栈运行。蓝牙协议的体系结构可分为物理层、数据链路层、中间协议层和应用层,图1所示是蓝牙系统协议栈的系统组成框图。蓝牙的核心协议包括4部分,即基带、链路管理、逻辑链路控制与适应协议(L2CAP)、业务搜寻协议(SDP)等。其中L2CAP负责建立逻辑链路连接,提供协议复用、高层与底层间数据分组的分段与重组等任务。SDP可提供服务搜索和服务浏览功能,负责蓝牙设备间服务的查询和访问。
蓝牙主机控制接口(HCl)可为基带控制器、连接控制器、硬件状态、控制寄存器提供命令接口,并可在蓝牙设备的主机和基带之间提供一个通用接口。HCI层以上的协议在主机上运行,而以下的协议由蓝牙主机控制器硬件来完成。这样既可保证底层协议传输的稳定性,又支持了上层应用协议的可扩展性。
2 系统硬件结构与设计
本文选用三星公司的32位内核ARM7TDMIS3C44BOX为处理器,并通过蓝牙模块、音频编/解码器(CODEC)、以太网接口等来构建系统硬件平台。本系统基于蓝牙BlueStack协议栈,可以实现蓝牙的所有功能,蓝牙音频网关系统就是基于BlueStack实现的。S3C44BOX与RTL8019用于开发10Mbps的以太网接口,可使系统连通以太网,并通过以太网进行操作。图2为其系统构成框图。
2.1 蓝牙模块ROKl01008的结构特点
本系统选用Ericsson公司的ROKl0l008模块,该蓝牙模块集成度高,功耗小,可提供高至控制接口HCI层的功能,并具有UART、I2C和PCMCIA三种主机控制接口,可方便地与主机进行蓝牙语音和数据的传输。ROKl0l008支持蓝牙规范v1.OB,其接收器的最大输入电平为+13 dBm,动态范围较广,能确保发送器可靠的通信,其输出功率可达Class2,UART最大数据流为460 kbps。同时ROKl01008可支持语音和数据传输功能,能够实现点对点的连接。
ROKl01008模块的组成如图3所示。该模块内部带有无线收发器、基带控制器、闪存、电源管理和时钟五个模块。其中无线收发模块由蓝牙收发器和天线组成。其功能是为网关和终端设备提供无线通道。基带控制器可完成频率的合成,同时完成基带模块的数据比特信号到无线电信号的转换过滤,并将无线电信号以一定的功率和跳频频率发送出去。ROKOl008的工作频段在2.4 GHz~2.5 GHz ISM之间,有79个信道,每个信道l MHz。
2.2 蓝牙音频网关硬件结构
蓝牙音频网关的硬件包括蓝牙芯片和音频编/解码器(CODEC)。嵌入式蓝牙音频网关电路主要用于提供音频输入/输出接口,并建立音频连接。图4为蓝牙音频网关的硬件电路。蓝牙模块电压为+3.3 V。利用蓝牙模块的UART与单片机S3C44BOX的UART进行相互连接。可构成通信通道。而S3C44BOX也可与PC机通过UART接口进行通信并互操作。CODEC负责音频的输入输出。
3 蓝牙音频网关的软件设计
蓝牙音频网关的实现主要基于Bluestack协议栈来完成,音频网关软件分为三层机构,即BlueStack协议栈、AG客户机程序和连接管理器。
BlueStack是剑桥咨询有限公司的蓝牙协议软件栈,可用C语言实现。它遵循蓝牙特殊兴趣小组提出的分层模型,可支持逻辑链路控制并适配协议上使用串口仿真协议或二进制电话控制协议,并将其作为传输协议的规范层。基于BlueStack协议栈可实现Bluetooth的所有功能。
整个BlueStack的协议栈实现采用消息驱动,层与层之间使用消息队列传递。在嵌入式蓝牙音频网关应用程序中,一般会涉及两大类消息:CM消息和BlueStack消息。CM消息可在客户机和连接管理器之间进行传递,而BlueStack消息则在BlueStack协议栈之间传递。BlueStack原语类型有DM PRIM、RFC_PRIM、SDP_PRIM 及L2CAP_PRIM四种,在AG应用中,一般会用到前三种。BlueStack消息格式为DM (RFC、SDC或SDS)_原语_扩展名。
AG应用中通常会定义两个任务,一个是CM任务,任务号与队列号为O;另一个是AG任务,任务号与队列号为1。AG客户机将所要传递给CM的消息提交给队列l,CM则将要传递给AG的消息提交给队列0。
应用程序应为ARM与蓝牙之间提供通信接口,主要是在主机间建立两个L2CAP信道(控制信道与数据信道)。初始化时,蓝牙模块应被唤醒,并进行写数据操作(队列形式),然后通过请求建立连接。当AG客户机发出请求信号时,如果CM有回应,说明可以建立连接。数据收发过程中,数据要进行封装/解封、分类等操作。图5所示为蓝牙数据收发过程的软件流程图。
4 结束语
S3C44BOX内核的功能强大,并可实现操作系统的内嵌,因而可通过单片机系统构建嵌入式操作系统平台。本文在ARM平台的基础上,设计了一种基于S3C44BOX的蓝牙音频网关。经测试,该网关可实现蓝牙耳机的接入,并成功实现配对与语音数据传输。蓝牙耳机与音频网关在进行相互操作前,需要建立配对连接,也就是说,这种连接是要通过蓝牙鉴权和绑定来实现的。而这种关系一旦建立,之后就不用再执行此操作了。