VxWorks移植方法在蓝牙无线耳机设计中的应用

蓝牙耳机是一种无线语音传输技术,是基于耳机在无线技术方面的延伸。蓝牙耳机的应用范围除了手机以外,pda、无绳电话应用、汽车免提工具、电话终端等,也是蓝牙耳机发挥技术优势的应用领域。本文设计的蓝牙耳机支持蓝牙规范1.2版本,传输距离达10 m,传输速率达723.2 kb/s,并且具有低功耗和(几乎)无辐射等技术优点和优势。
1 蓝牙技术
蓝牙作为一种低成本、短距离的无线连接技术标准,是由ericsson、ibm、intel、nokia和toshiba五家公司共同倡导的一种全球无线技术标准,是一种无线数据与语音通信的开放性全球规范。它以低成本的短距离无线连接为基础,为固定设备与移动设备通信环境建立一个特别连接。其实质是建立通用的无线空中接口及其控制软件的公开标准,实现设备问的电缆替代。
蓝牙技术规范包括协议和应用规范两个部分。协议定义了各功能元素各自的工作方式,整个蓝牙协议体系结构分为4层,即核心协议层、线缆替代协议层、电话控制协议层和采纳的其他协议层;应用规范则阐述了为了实现一个特定的应用模型,各层协议间的运转协同机制。较典型的应用规范有拨号网络、耳机(headset)、局域网访问和文件传输等。蓝牙耳机的协议栈原理如图1所示。
2 硬件设计
硬件电路信号处理与控制部分采用zeevo公司的基于arm7的音频处理器zv4301。zv4301处理器是在一个单芯片收发器上加入一个集成rf、数字信号处理、通信处理和运算及控制处理功能的48 mhz apm7微处理器,片外扩展闪存,以实现需要技术和高度最佳化的音频处理。
编解码芯片采用飞利浦公司的udal380音频芯片。udal380是一颗专为便携式产品所设计的单芯片立体声音频编解码器,可以提供立即可用的先进音频功能。这颗音频编解码器具有24位数据路径、多重时钟支持、dc偏移消除、支持多重数据格式以及数字静音检测等集成功能。本设计中,udal380利用与微控器接口作音控处理.并利用l3接口来控制音量。
3 i2s总线
本设计在硬件电路上使用基于i2s总线的音频系统体系结构。i2s(inter-ic sound bus)是飞利浦公司提出的串行数字音频总线协议。
i2s总线只处理声音数据,其他信号(如控制信号)必须单独传输。为了使芯片的引脚尽可能少,i2s只使用了三根串行总线。这三根线分别是:提供分时复用功能的数据线(sd)、字段选择线(声道选择ws)、时钟信号线(sck)。
此设计中采用电源统一供电,zv4301作为主设备,udal380作为从设备。zv4301使用3个通用i/o口来模拟i2s总线。其读写i2s总线的数据主要包括以下几个函数;
word_selection(); //字选择函数
serial_clock(); //时钟信号函数
serial_data(); // 串行数据函数
shift_register(); //寄存器移位函数
4 软件设计
vxworks操作系统是美国windriver公司于1983年设计开发的一种嵌入式实时操作系统。良好的持续发展能力、支持多种硬件环境、高性能的内核以及友好的用户开发环境,使之成为所有独立于处理器实时系统中最具特色的操作系统。
在该设计中,软件协议全部下载到蓝牙设备内核处理器的外置闪存中,操作通过人机接口控制。基于vxworks的软件编写工作主要包括:bsp包的改动、程序的编写和操作系统的裁减。由于vxworks的高度灵活性,可以很容易地对这一操作系统进行定制或作适当开发,来满足系统的实际应用需要。bsp包的改动指根据目标硬件实际配置修改系统的配置参数宏(mac-ro),主要修改config.h、makefile.h、bspname.h文件。
程序编写函数主要包括以下7个。
(1)系统引导函数
vxworks操作系统在一些板级系统初始化后自动执行tusrroot()函数,以完成初始化。
tusrroot()
…… //必要初始化程序
vinitializelmp(); //lmp初始化完成
vinitializel2cap(); //l2cap初始化完成
vinitializesdp(); //sdp初始化完成
vinitializerf(); //rfcomm初始化完成
vinitializeha(); //headsetapplication初始化完成
exit(); //退出
(2)系统初始化函数(以l2cap为例)
typedet
{msg_idsdptol2cap;
msg_id l2captosdp;
msg_id rftol2cap;
msg_id l2captorf;
msg_ld hatosdp;
msg_id sdptoha;
msg_id hatorf;
msg_id rftoha;
}msg_queue_id//定义消息队列1d结构体类型
msg_queue_id msgqueueld; //定义全局消息队列id结构体,用于存放每个消息队列的id
vinitlalizel2cad();//l2cap初始化,包括初始化全局变量、创建定时器、创建消息
//队列、创建并启动任务
(3)lmp软件设计
基带程序运行在蓝牙芯片的信号处理单元中,而lmp程序运行在蓝牙芯片的微处理器中,它们通过邮箱来交换信息。只要任何一方向邮箱发送了信息,邮箱就会产生中断信号,另外一方可以在中断服务程序中进行信息读取和处理。其处理函数为;
vlmpdealfrombb()
//处理来自baseband层的消息以建立连接,对来自baseband层
//的操作码
决定接受与否,并进行鉴权、加密、处理或断开等操作
(4)l2cap软件的设计
tl2capdealmsgfromsdp()
//处理来自sdp层的消息sdptol2eap,生成l2cap数据包,把数据传baseband层
tl2capdealmsgfromrf()
//处理来自rfcomm层的消息rftol2cap,生成l2cap数据包,把数据传baseband层
vl2capdealmsgfrombb()
//处理来自baseband层的消息,在处理器邮箱中断程序被调用
(5)sdp软件的设计
tsdpdealmsgfroml2cap()
//处理来自l2cap的消息l2captosdp,并上报搜索到的服务的属性
tsdpdealmsgfromha()
//处理来自headsetapplieation的消息hatosdp,对上报信息进行应答
(6)rfoomm软件的设计
trfdealmsgfromha()
//处理来自headsetapplication的消息hatorf,生成rfcomm数据包,传送给l2cap
trfdealmsgfroml2cap()
//处理来自l2cap的消息l2captorf,对不同的帧进行处理
(7)headsetapplication软件的设计
thadealmsgfronasdp()
//处理来自sdp的消息sdptoha,判断是否正常并处理
thadeaimsgfromrf()
//处理来自rfcmm的消息rftoha,对at命令及其应答作出处理
5 语音传输建立过程
蓝牙耳机系统工作时总是蓝牙语音网关(ag)和蓝牙耳机(hs)成对出现的。其通信所用到的协议栈及实体如图4所示。
蓝牙设备连结的建立遵循底层到高层的原则,即搜索蓝牙设备、建立链路、服务搜索、建立信道、建立连接和数据传输。
以下是音频连接建立的全过程。(以ag主动发起连接请求为例。)
①ag首先发起查询,通过查询ag获得hs的蓝牙地址。
②ag在应用层的驱动下向查询到的hs发起一个page进程。当接收到hs返回的应答信号时,ag与hs之间的acl链接已经成功建立。
③一旦acl链接建立,即可以被用来传送振铃信号。振铃信号的发送是通过at命令ring来完成的。
④acl链接好后,接着建立l2cap链路。ag首先在信令信道上发送一个链接请求信令l2cap_req,要求建立信道标号为0x0040的l2cap。当hs返回链接响应信号时,表明0x0040信道已经建立好。然后对此信道进行配置,配置完信道后,就可以利用此cid(信道标识符)为0x0040的l2cap信道进行sdp查询。
⑤ag在l2cap信道上发送一个sdp查询包。sdp查询包将查询sdp服务器端hs是否具有所需要的服务。若查询成功,在acl链路上,ag再建立一条标号为0x0041的l.2cap链路,用来传输rfcomm数据;同时,断开用作sdp查询的标号为0x0040的l2cap链路。 ⑥当cid为0x004l的l2cap信道建立好之后,首先建立控制信道dicio,ag在信道上发送一个sabm帧,即要求建立rfcomm层上的channel o。如果响应方hs希望建立链接,返回一个va帧,表明已经建立好了channel 0这条rfcomm信道。此信道为控制信道,用来传送携带控制信息和命令的uim帧。如果响应方hs不希望建立链接,返回一个dm帧。其次建立数据信道,先是对数据传送信道的参数进行协商,协商命令pn参数包括对将要建立的信道channel 1的优先级,最大帧长等,当双方协商好后建立传输数据的信道channell。
⑦通过rfoomm信道传输hs控制层的at命令,即在rfcomm数据传送信道channe1上利用uih帧传送at+ckpd命令。当接收到对方的响应后,就可以开始建立sco链接。
⑧hci(主机控制接口)发一个write_voice_setting命令,对音频状态进行一些设置。当接收到ag的建立sc0链接的请求时,若hs允许,发送一个接收的hci命令,在命令完成之后,传输音频信号的sc0链路就建立好了,此时就可以进行语音通信。
结语
由于采用专用的声音编解码芯片和标准音频取样率44.1 khz,并经过先进的信号处理技术,能够使声音效果接近cd音质,这样也使蓝牙耳机真正取代有线耳机成为可能。

8发8收多输入多输出正交频分多址系统平台
T3M2-20W宽带自组网电台测试数据
浅谈层叠封装PoP锡膏移印工艺应用
半导体市场开始复苏了
电动汽车电池组管理系统原理分析
VxWorks移植方法在蓝牙无线耳机设计中的应用
话题通信接口的定义和运行效果
在未来智能医疗健康领域的发展拥有着巨大潜力
梅赛德斯-奔驰全球培训计划购入了100多台HoloLens设备
台电锋芒S700--评测简介
发现边缘等待您的事物
基于PLC和组态软件的带式输送机远程监控和程序上下载系统
预计2026年亚太地区智能燃气表市场规模将达37亿美元
浅析车用PCB现状及未来发展趋势
湿法蚀刻的GaAs表面研究报告
国内首个7兆瓦海上风电项目主体工程顺利完工 可满足113万个4口之家1个月的用电
什么是 一次锂亚电池(ER10150)?
工业互联网将成为未来最大趋势之一
如何用伏安法测小灯泡电阻?
无“标”变有“标”?自动驾驶标准法规走出重要一步