《电子技术应用》
您所在的位置:首页 > 通信与网络 > 业界动态 > 基于Blackfin处理器的蓝牙语音网接入点的设计

基于Blackfin处理器的蓝牙语音网接入点的设计

2009-05-20
作者:李大伟1, 张陆勇1, 陈立国2

    摘  要: 采用蓝牙技术与分组语音技术相结合的方法,设计蓝牙接入网关并利用LwIP协议栈在Blackfin处理器上开发嵌入式系统,通过以太网建立起蓝牙语音网络。系统地介绍了蓝牙语音网的系统架构以及接入点的软硬件设计方法。实际测试结果表明本系统可以同时支持7路蓝牙语音传输并实现蓝牙耳机在不同接入点之间的切换,测试效果满足实时通话要求。 

    关键词: Blackfin处理器; 语音接入点; I2S; 蓝牙; LwIP

 

    蓝牙技术作为解决“最后10米”的无线传输技术,已逐渐成为低成本、短距离的无线个人网络传输(Wireless Personal Area Network)的首选技术,其主要目标是提供一个全双工的无线传输环境,实现语音和数据的无线传输。蓝牙技术和分组语音技术的结合是目前网络应用的热点之一,蓝牙的终端设备通过安全的无线链路,与蓝牙语音网关建立连接,利用分组语音技术将语音信号转化为一定长度和速率的数字化语音包,通过以太网以存储转发的方式交换到目的蓝牙语音网关,然后与对方终端建立无线链路,完成数字语音的远距离传输。 

    Blackfin处理器集成了一个由ADI公司和Intel公司联合开发的基于MSA(Micro Signal Architecture)的16/32位嵌入式处理器,内核主频最高可以达到600 MHz[1]。最近比较流行的ADSP-BF536/537处理器平台是适合新一代嵌入式连接网络应用的高集成度系统芯片(SoC)解决方案,为VoIP的配置提供了必需的集成度、高性能和低功耗的硬件支持,它具有多个集成的串行端口(可以无缝连接到音频模数转换器和数模转换器)和10/100 BaseT的以太网媒体访问控制器(MAC)。 

    传统的蓝牙以太网网关通常是将串行接口UART输出的数据转换成以太网帧,以实现以太网适配功能[2-3],这样仅能传输普通数据,无法满足实时语音的传输。本文着重研究如何利用Blackfin处理器实现语音数据到以太网的协议转换,实现多个蓝牙终端以太网交换分组语音数据的双向通信。 

1 系统架构及总体方案 

    蓝牙语音网系统由服务器、语音接入点和蓝牙耳机终端组成,如图1所示。服务器通过RJ45接口与语音接入点建立有线连接,蓝牙耳机终端与其对应的语音接入点建立起安全的无线连接,通过以太网上的服务器将语言信号交换到目的语音接入点,然后与对方耳机终端建立无线连接,完成语音的较远距离传输。语音接入点由蓝牙模组和Blackfin处理器两部分组成。 

 

 

    一个完整的通信信道(包括语音和网络协议栈)只占用不到75 MHz的处理器带宽。Blackfin处理器具有高达600 MHz的性能,有足够的处理带宽扩展VoIP功能。Blackfin处理器在一个统一的内核体系结构中提供了一种会聚的解决方案——适合于语音处理的数字信号处理器(DSP)和适合于网络及用户接口需求的RISC精简指令微控制器(MCU)功能。这种在单颗会聚处理器中提供完整VoIP功能的独特功能有利于单一的软件开发环境、加快系统的调试和配置,并降低系统总成本[1]。 

2 硬件方案 

    语音接入点包括Blackfin处理器和蓝牙模组接入网关两部分,如图2所示。利用Blackfin处理器的SPORTs(同步串行端口)通过数据总线与蓝牙接入网关进行串行数字音频总线协议I2S(Inter-IC Sound bus)格式的语音信号传输,以中断的方式接收通过UART(通用异步接收器/传输器)端口发送的控制信号,控制信号主要包括用于代表蓝牙无线链路质量的RSSI、LinkQuality等参数值,通过服务器端的切换算法以实现耳机终端在不同接入点之间的切换功能。 

 

 

2.1  基于LwIP的Blackfin处理器应用方案 

    在基于Blackfin处理器的网络应用方案的选择上,采用基于轻型互联网协议库LwIP(Light-weight IP)和VDK(用于驱动TCP/IP的实时操作系统)的ADSP-BF537处理器,ADSP-BF537处理器上配备一块符合IEEE 802.3标准的以太网MAC控制器,使用标准的MII/RMII接口方便地连接到广泛的网络物理层设备[4]。ADSP-BF537 EZ-Kit Lite板包括1块SMSC LAN85C183以太网物理层收发器,连接到ADSP-BF537处理器的MII接口,从而可以方便地提供1个网络接口[5]。 

    所有网络相关的初始化都通过函数lwIP_sysboot_threadtype_RunFunction()实现[6]。在设置网络接口及其相关的TCP/IP协议栈时要注意,与以往Blackfin处理器不同,ADSP-BF537处理器需要通过处理器内核设置外部总线接口单元EBIU(External Bus Interface Unit)控制器来确定DMA(Direct Memory Access)优先级[6]。EBIU服务程序其实就是Blackfin处理器的SDRAM控制器的控制器。它包含1个运算逻辑,可以在SCLK频率发生改变后,自动计算出新的SDRAM设置值。EBIU服务程序将与电源管理服务程序配合作用,因此,对用户而言,只需要更改CCLK和SCLK设置,EBIU服务程序就会自动调节SDRAM设置。 

    ADSP-BF537处理器可支持8个I2S立体声设备。ADSP-BF537处理器的SPORT I2S控制器需要解决采样和存储问题,必须具备从音频流中提取数据帧、将数据帧重新组成音频流、数据缓冲、通过数字音频总线(DAB)与蓝牙接入网关接口等功能。如图3所示,按照I2S时序标准[7],I2S接收器从串行比特流中提取有效语音数据组成32 bit的并行数据,然后,存储在异步FIFO(First In First Out)中,这里设置收/发FIFO深度为1 024,宽度为32 bit。I2S总线采用全双工模式,设置帧同步(FS)、连续时钟(SCLK)和发送/接收数据(SPORTx_TX/ SPORTx_RX)。 

 

 

2.2  蓝牙模组接入网关设计 

    众所周知,1个蓝牙终端可以与其他蓝牙终端建立7个ACL链路和1个SCO链路,只有建立起SCO链路才能用于传输实时语音,所以蓝牙接入网关的容量取决于内部蓝牙模组的数目。 

    蓝牙模组采用集成蓝牙基带和射频部分的单芯片模组BluetoothCore3-Multimedia External(以下简称BC03)。BC03基于Bluecore03芯片,内嵌16位RISC微处理器,并提供I2S/PCM、SPI、UART/USB、PIO接口,可作为简单的嵌入式控制器及蓝牙链路控制器。BC03模组提供对I2S的支持,设置了帧同步(WS)、时钟(CLK)和输入/输出数据线以支持双工通信。控制信号通过UART端口进行传输,首先要通过函数StreamUartSink()进行定义,用函数StreamUartConfigure()设置波特率、停止位及奇偶校验位。在语音信号传输过程中采集到地RSSI和Link Quality的值以字符格式周期性的通过UART_TX发送到ADSP-BF537处理器,经过服务器端的切换算法判决后,反馈的控制信号再通过UART_RX被接入网关所接收,据此完成与蓝牙耳机终端之间的切换功能。 

3 软件设计 

    Blackfin处理器的软件设计主要实现蓝牙数字语音数据、控制信号和以太网帧的转换以及串口通信程序。软件运行平台是Visual DSP++ 4.0,编程使用C/C++语言,程序基于嵌入式Lightweight IP协议栈和驱动TCP/IP的实时操作系统VDK。ADSP-BF537处理器首先与服务器建立起控制信号的连接,实现握手的过程,等到蓝牙耳机终端与蓝牙接入网关连接就绪后,通过服务器的控制,以IP包的形式实现以太网上的语音数据交换,并最终实现与不同蓝牙耳机终端之间的通话,如图4所示。 

 

 

    由于蓝牙模组数目较多,数据吞吐量较大,因此为每一个蓝牙模组分别设置接收/发送缓冲区来暂存数据。每个缓冲区大小4 KB,依次为接收缓冲区RXBUF0~RXBUFx和发送缓冲区TXBUF0~TXBUFx[3]。数据输入输出任务调用DMA控制器,与底层的硬件驱动交互。为了提高系统性能,采用DMA控制器将通过I2S总线接收到的数据暂存在接收缓冲区中;同理,将以太网数据从发送缓冲区发出也是由DMA控制器完成,这样大大减轻了CPU的负担,从而有利于以太网传输。管理任务和以太网通信任务各自拥有一个消息队列,前者分析处理数据帧中的控制信号,后者建立SOCKET连接并收发数据。可以通过DHCP协议自动获取语音接入点的IP地址,也可以根据需要分配事先定义的IP地址。 

    蓝牙模组接入网关主要实现基于RFCOMM的蓝牙无线数据的传输,并实现RFCOMM数据与UART 原始串口的流连接。软件的实现主要基于CSR 公司提供的蓝牙系统嵌入式开发包BlueLab 3.4.2和CSR Bluecore协议栈以及CCL BlueStack 协议栈。 

4 实际测试分析及结论 

    蓝牙语音网的实际测试在ADI公司Blackfin系列处理器的ADSP-BF537 EZ-Kit Lite硬件平台上实现,并将该硬件平台接入本地局域网络。表1列出了实际语音通话过程中的网络测试结果,影响时延和传输速率的主要因素是网络负载情况。 

 

 

    在语音通话的实际测试中,在接入端使用语音分析软件将语音的波形做一些分析,以方便比较,如图5所示,上边是在发送端采集的语音波形,下边是在接收端获取的语音波形。波形吻合度达到99%,实际通话效果清晰连贯。实际测试的结果证明了基于Blackfin处理器的蓝牙以太网网络接口成功地实现了访问以太网和蓝牙耳机终端的功能,并能够实时传输语音数据。

 

 

    本设计针对语音传输,采用I2S总线和DMA控制器完成语音数据输入/输出通过UART接口和中断方式完成控制信号的传输,系统具有很强的实时性,有效地减小了通信延时;Blackfin处理器高达600 MHz的性能在同时支持7路语音传输的同时也保证了通话质量,通过调配系统资源改善了采用其他处理器可能带来的接口速率问题,测试效果完全满足实时语音通信的要求。 

    Blackfin处理器丰富的接口资源以及LwIP协议栈较小的体积都使得系统的集成度提高,并且为系统功能扩展和系统优化提供了条件。Blackfin处理器可以满足在语音接入点实现语音信号的编码算法,提高语音数据传输效率;随着服务器端切换算法的继续完善,语音接入点在及时准确地传输控制信号的同时保证语音链路质量,从而实现蓝牙耳机终端在不同语音接入点之间的无缝切换功能,从根本上解决了蓝牙技术受限于距离的问题。 

参考文献 

[1] 陈峰.Blackfin系列DSP原理与系统设计[M].北京:电子工业出版社,2004. 

[2] 殷伟凤,刘高平.基于SOPC蓝牙-以太网接口适配器的设计[J].计算机应用,2004(9):27-29. 

[3] 孙睿,付志红.基于嵌入式Linux的蓝牙以太网关设计[J].计算机应用,2006(10):27-29. 

[4] Getting started with blackfin processor. Revision 3.0,Analog Devices Inc, August 2007. 

[5] ADSP-BF537 EZ-KIT Lite Evaluation System Manual.Rev 2.0, Analog Devices, Inc, June 2006. 

[6] LwIP User Guide (VisualDSP4.0BlackfinlibsrclwIPdocs LWIP_UserGuide.doc). Analog Devices, Inc.

[7] I2S bus specification. Philips Semiconductors 1996.

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。