中国·芯片交易在线
首页 | 供应信息 | 求购信息 | 库存查询 | 新闻中心 | 展会资讯 | IC厂商 | 技术资料 | 自由区域
   新闻首页 |  行业动态 | 新品发布 | 政策法规 | 科技成果 | 模拟技术 | 嵌入系统 | 传感控制 | 存储设计  
当前位置:IC72首页>> IC新闻中心>> 嵌入系统 >>电子行业新闻正文

蓝牙无线耳机设计及VxWorks移植方法

时间:2008/4/3 9:47:00  作者:  来源:ic72  浏览人数:1350
 
 

      蓝牙耳机是一种无线语音传输技术,是基于耳机在无线技术方面的延伸。它是相配于蓝牙技术而进入多媒体个人区域网络的。随着蓝牙技术的日趋完善和蓝牙产品市场占有率逐渐提升,蓝牙耳机在技术上也将不断得到改进,使之成为个人多媒体区域网络的主要配套产品。蓝牙耳机的应用范围除了手机以外,PDA、无绳电话应用、汽车免提工具、电话终端等,也是蓝牙耳机发挥技术优势的应用领域。本文设计的蓝牙耳机支持蓝牙规范1.2版本,传输距离达10 m,传输速率达723.2 kb/s,并且具有低功耗和(几乎)无辐射等技术优点和优势。

      1 蓝牙技术

      蓝牙作为一种低成本、短距离的无线连接技术标准,是由Ericsson、IBM、Intel、Nokia和Toshiba五家公司共同倡导的一种全球无线技术标准,是一种无线数据与语音通信的开放性全球规范。它以低成本的短距离无线连接为基础,为固定设备与移动设备通信环境建立一个特别连接。其实质是建立通用的无线空中接口及其控制软件的公开标准,实现设备问的电缆替代。

      蓝牙技术规范包括协议和应用规范两个部分。协议定义了各功能元素各自的工作方式,整个蓝牙协议体系结构分为4层,即核心协议层、线缆替代协议层、电话控制协议层和采纳的其他协议层;应用规范则阐述了为了实现一个特定的应用模型,各层协议间的运转协同机制。较典型的应用规范有拨号网络、耳机(headset)、局域网访问和文件传输等。蓝牙耳机的协议栈原理如图1所示。

ic72新闻中心

ic72新闻中心

       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(); //寄存器移位函数

ic72新闻中心

      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所示。

ic72新闻中心

      蓝牙设备连结的建立遵循底层到高层的原则,即搜索蓝牙设备、建立链路、服务搜索、建立信道、建立连接和数据传输。

      以下是音频连接建立的全过程。(以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链路就建立好了,此时就可以进行语音通信。

ic72新闻中心

 

 
【相关文章】
·蓝牙无线耳机设计及VxWorks移植方法
 
 
IC新闻搜索
 
热点新闻
基于红外超声光电编码器的室内移动小车定位系
基于闪烁存储器的TMS320VC5409DSP并行引导装载方法
非移动市场需求飙升,ARM预计2010年出货量超50亿片
一种快速响应的电容式湿度传感器感湿薄膜设计
利用特殊应用模拟开关改进便携式设计
无线传感器网络跨层通信协议的设计
基于ARM9内核Processor对外部NAND FLASH的控制实现
基于GSM技术的汽车防盗系统的设计
热电阻在烟叶初烤炕房温度控制中的应用
高速数据转换系统对时钟和数据传输的性能要求
友情连接
 关于我们  IC论坛  意见反馈  设置首页  广告服务  用户帮助  联系我们
copyright:(1998-2005) IC72 中国·芯片交易在线
(北京)联系电话:(010)82614113、82614123 传真:(010)82614123 客户服务:service@IC72.com 库存上载:IC72@IC72.com
在线MSN咨询:ic72sale8@hotmail.com 通信地址:北京市西城区西直门内大街2号大厦15层 邮政编码:100013
(深圳)联系方式: 在线MSN咨询:ic72sale6@hotmail.com 在线QQ咨询:191232636 通信地址:深圳市福田区振华路
注 册 号: 1101081318959(1-1)

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9