历史上的今天
返回首页

历史上的今天

今天是:2025年02月18日(星期二)

正在发生

2018年02月18日 | 蓝牙技术在车载信息娱乐系统中的应用

2018-02-18 来源:eefocus

随着汽车电子和消费电子技术的融合,车载信息娱乐系统近几年发展迅猛,成为融合各种技术的集成化平台,很多在消费电子领域中的应用开始在汽车上实现,满足了用户在娱乐、舒适与安全方面的追求。在消费电子领域大行其道的蓝牙技术也开始渗透到汽车应用中,汽车内部空间有限,正符合蓝牙短距离连接应用的初衷,而且蓝牙SIG组织以剖面(profile)的形式详细定义了在各方面应用中的操作方式和应该遵循的原则和步骤,相比于其他无线技术更能保证通用性和互操作性。蓝牙SIG组织专门定义了HFP(Hand Free Profile)规范了蓝牙在车载免提装置中的应用,使得用户通过车载麦克风和音响便可以打电话,保证了行车安全;定义了PBAP(Phone Book Access Profile)和OPP(Obeject Push profile)规范了电话簿下载的应用,使得用户可以将手机中的电话簿同步到车载免提装置上,从而可以利用汽车上的按键和液晶屏直接拨打电话,方便了用户的使用;蓝牙技术在立体声耳机中的应用经验也开始应用到车载娱乐系统中,利用车载音响便可以播放蓝牙立体声流媒体音乐,大大提升了用户的车内娱乐体验。在笔者研制的一款车载娱乐设备中,将USB技术、蓝牙技术、音频解码技术融合在一起,结合汽车内部麦克风和音响,集成了播放U盘存储的音乐、免提应用、电话簿下载和流媒体音乐播放功能,而且通过CAN总线连接车载CAN网络,实现了与车载信息娱乐系统的集成和功能的可扩展性。本文主要从硬件设计和软件设计两个方面讲述一下蓝牙技术在这款车载娱乐设备中的应用与开发。

一、硬件设计

该车载娱乐设备的硬件设计采用双处理器结构实现,主CPU采用Freescale的高性能32位处理器MCF5251,蓝牙芯片采用CSR的Bluecore5-MM,采用UART作为两款处理器的接口。其中USB HOST、音频文件解码、CAN通讯、人机接口均在主CPU上实现,Bluecore5-MM实现蓝牙通讯和相应的剖面协议,其结构框图如图1所示:


图1:硬件结构图

下面介绍下Bluecore5-MM芯片的特点及应用。

BlueCore5-MM是CSR提供的一款高度集成的蓝牙单芯片,在8*8*1.2mm TPBGA封装内集成了蓝牙MAC层和基带IC,其发射功率和接收功率分别可达到+8dBm和-90dBm,无须外部功放即能实现Class 2的范围。CSR以固件的形式提供了完全兼容蓝牙2.0规范的的协议栈,且内部提供了自动校准和内建的自测试机制,用于原型开发和蓝牙协议认证。
Bluecore5-MM内部包含一16位MCU,可外接32M bits FLASH,用于完成协议栈和应用程序,还集成了一颗处理能力高达64MIPS的DSP,主要完成三个功能:
1. 回声消除及噪声抑制,提供非常清晰的语音质量;
2. 实现对流媒体音乐的解码,可以对mp3,aac等格式的音乐文件解码;
3. 能够方便地增加CSR第三方合作伙伴基于该DSP开发的专用的经过验证的音频或语音增强软件,快速加强其终端设计的性能和功能。 
这样便提升了免提组件的用户体验, 使其适用于各种先进且高质量音频的车载应用。其内部结构如图2所示:

图2: Bluecore5-MM 结构图

蓝牙子系统硬件在CSR提供的BlueTunes2开发板的基础上进行设计开发,该开发板提供了基于BlueCore5-Multimedia芯片的完整的硬件解决方案,包括原理图设计和PCB设计和天线设计。基于BlueCore5的蓝牙子系统硬件开发一个很重要的工作便是利用PSTOOL工具调整可以决定RF特性的PSKEY值,比如Crystal trim。笔者设计好电路板后,采用多部手机进行搜索和连接测试,发现有的手机搜索不到该设备,采用Anritsu/安立公司的MT8852蓝牙测试仪测试了其RF特性,发现“初始载波”不合格,通过修改影响初始载波偏移的PSKEY-Crystal trim,测试通过,且设备可以被所有的手机搜索到。

二、软件设计

CSR提供固件(firmware)完成蓝牙协议栈,软件开发环境提供各个剖面(profile)库及其源代码,这样我们就可以不必深究底层协议,而在CSR提供的协议栈和剖面库的基础上专注于应用软件开发,软件结构框图如下图所示:



图3: 软件结构图

我们选择的开发环境为RoadTunesSdk,基于其提供的操作系统VM实现应用程序的开发。基于其HFP剖面,可以实现免提通话应用,并可以传递信号强度、电池电量、充电状态、漫游状态等信号量,在液晶屏上显示;基于其A2DP和AVRCP剖面,可以实现流媒体音乐播放和远程控制,这些部分CSR提供了完整的例程,比较容易实现。以下我们从UART通讯、自动连接、电话簿同步等几个方面阐述下软件开发的关键技术。

2.1 UART通讯

BC5和主CPU之间的数据交换采用通讯帧的方式,采用帧头(0x55+0xaa)+ID(标示该帧的含义)+DLC(数据场长度)+DATA(数据)+CRC16(16位CRC校验)的格式进行传输,并且采用缓冲区的方式保证数据在未处理之前可以存储。
主CPU到BC5主要是人机接口命令,比如接听电话、挂断、呼叫保持、激活保密模式等,这个数据量小而且帧间间隔比较长,所以数据可以得到有效的存储和处理。而从BC5到主CPU的数据传输便比较复杂,因为涉及到蓝牙手机、BC5 和主CPU之间的三方通信,蓝牙手机到BC5可能在短时间内有大量的数据传输,这样在BC5到主CPU短时间内便会有多帧传输,为了保证数据存储和次序处理的正确性,采用开辟多个独立缓冲区的方式便有些不可取,我们采用了在主CPU端开辟一个大的FIFO(先入先出)缓冲区的方式,保证了数据得到正确缓存和次序处理。该缓冲区空间比较大,数据便可以得到有效缓存,而且由于其先入先出的特性,所以数据的次序处理又可以得到保证。
串行通信的错误来自于其采样时刻的干扰,当DLC不产生错误时,CRC校验可以保证数据的正确性。但是当DLC由于干扰产生错误时,便会引起帧的解析状态机的混乱,将下一帧的数据误判断为该帧数据,便会产生漏帧的现象,并进而引起FIFO缓冲区的混乱。为了有效解决该问题,必须保证填充到FIFO缓冲区的数据都是严格按照之前定义的帧格式进行顺序排列的。我们采用了帧延时和定时器监测的方式来剔除错误帧,首先在帧发送时会有个10ms的延时,相邻两条帧的时间间隔则大于10ms,在主CPU端接收帧时开启一个7ms的超时定时器,每接收到一个数据便重启该定时器,如果定时器超时,则可以判断出DLC出错,从而将这一帧判断为不完整,将该帧不完整的数据丢掉,然后退出帧尾等待,等待下一个帧头的到来。不完整帧不填充到FIFO缓冲区中,这样便解决了因为DLC错误引起整个FIFO缓冲区混乱的问题。

2.2 自动连接

为了增强使用的便利性和对用户的友好性,我们实现了自动连接功能。我们定义了自动连接的三个触发条件:
1. 系统上电
2. 由于连接设备离开有效范围引起当前连接断开
3. 一个已配对设备进入蓝牙有效范围
为了实现这三个条件下的自动连接,我们实现了配对列表管理和周期搜索功能。配对设备的管理包括添加配对设备、从液晶屏上删除配对设备、存储、提取、优先级管理、查找最后一次连接的免提设备和音频设备、查找进入蓝牙环境的最高优先级的设备等功能。优先级设计为:优先级最高的为上次连接的设备,然后按照配对列表的次序依次递减。
为了确定是否有一个已配对设备进入蓝牙有效范围,采用周期“搜索”的方式进行判断。当配对列表不为空而且当前没有连接的前提下发起周期搜索,如果上次没有搜索到某个配对设备而这次搜索搜索到了,便发起与该设备的自动连接。由于搜索是个对蓝牙基带带宽要求比较高的操作,所以为了保证不因为自动搜索影响外部发起的搜索配对、手动连接、从液晶屏发起的连接,在配对和手动连接进行中停止自动搜索并重启搜索定时,使得自动搜索尽量不影响这些操作。

2.3 电话簿同步

电话簿条目在下载传输时采用VCARD格式,符合vCard2.1和vCard3.0规范,格式如下所示:
BEGIN:VCARD
VERSION:2.1
N;CHARSET=UTF-8:jianhui
TEL;CELL:13475909642
. . . . .
END:VCARD
可以采用以下几种方式下载: AT命令、OPP、PBAP、syncML,笔者实现了后三种方式。OPP即用户在手机上选择一条或几条电话号码PUSH到车载免提装置上,PBAP是蓝牙SIG为了规范电话簿的自动下载而定义的一个应用剖面,定义了两种功能:下载和浏览。下载是把整个电话本作为一个文件进行下载,浏览是以单条VCARD为单位的下载。按照PBAP的定义,所有的手机都应支持下载和浏览功能,由于手机兼容性问题,我们测试的结果为所有手机都能支持下载功能,部分手机支持浏览功能,而且有的手机采用下载功能下载时下载不全,这是由手机本身的缺陷造成的,为了解决该问题,我们首先获得电话号码总条目数,当采用下载方式下载完并将VCARD解析完成后,我们判断条目数是否相等,如果不相等,我们再采用浏览方式去下载。
syncML是移动设备间数据同步的一种通用协议,与蓝牙OBEX协议绑定便可以实现syncML在蓝牙技术上的应用。syncML不仅可以下载电话簿,还可以完成电话簿的更新,当第一次同步后,第二次同步时便将产生变化的部分以syncML文档的格式传过来,解析该syncML文档便可以实现电话簿条目的增加(ADD)、删除(DELETE)和修改(REPLACE)操作。

结语

蓝牙技术的车载应用开发研究越来越广泛,笔者融合了蓝牙技术和汽车电子技术,设计实现了一款车载信息娱乐设备,介绍了其蓝牙子系统硬件设计和软件开发的若干关键技术,该设备运行稳定,具有良好的用户体验和使用价值。


推荐阅读

史海拾趣

Hirosugi-Keiki公司的发展小趣事

对于门控夜明灯电路,网友们可能会有多种问题,以下是一些常见问题及其详细回答:

一、工作原理相关问题

  1. 问:门控夜明灯电路是如何实现自动开关的?
    : 门控夜明灯电路主要通过门控开关、延迟电路、光控电路和电源电路等几部分组成。当门打开时,门控开关触发电路,使电灯点亮。同时,延迟电路控制电灯的点亮时间,一般为几十秒左右。光控电路则确保在光线较暗的环境下(如夜晚)电路才会工作,而在白天则自动封锁电路,避免电灯误亮。

  2. 问:电路中的光控部分是如何工作的?
    : 电路中的光控部分通常由光敏电阻器(如MG45型)和相关的电子元件组成。光敏电阻器的阻值会随着光照强度的变化而变化。在白天,由于光照强度大,光敏电阻器呈现低阻值状态,导致电路中的某个三极管(如VT3)导通,进而封锁整个电路,使电灯不会点亮。而在夜晚,光照强度减弱,光敏电阻器呈现高阻值状态,三极管截止,电路恢复正常工作状态,受门控开关控制。

二、安装调试相关问题

  1. 问:如何安装门控夜明灯电路?
    : 安装门控夜明灯电路时,首先需要将干簧管安装在门框上,将小磁铁安装在门上,并确保两者在门关闭时能够对准并吸合。接着,将电路板固定在合适的位置,并连接好电源线和电灯线。最后,进行电路调试,确保电路能够正常工作。

  2. 问:如何调整电灯的点亮时间?
    : 电灯的点亮时间主要由延迟电路中的电阻和电容决定。要调整点亮时间,可以通过改变电阻(如R2)的阻值或电容(如C1)的容量来实现。一般来说,电阻阻值增大或电容容量增大,都会导致点亮时间延长;反之,则点亮时间缩短。

三、故障排除相关问题

  1. 问:如果电灯不亮,可能是什么原因?
    : 如果电灯不亮,可能是由多种原因造成的。首先,应检查电源是否正常,以及电路中的保险丝是否熔断。其次,检查门控开关是否工作正常,即干簧管和小磁铁是否能够在门打开时正确触发电路。此外,还应检查光控电路是否因光线过强而处于封锁状态。最后,检查电灯本身是否损坏。

  2. 问:电灯在白天也会亮,怎么办?
    : 如果电灯在白天也会亮,可能是光控电路出现了问题。首先,应检查光敏电阻器是否损坏或受到其他光源的干扰。其次,检查与光敏电阻器相关的电子元件(如VT3)是否工作正常。如果问题依然存在,可能需要重新调整光控电路的灵敏度或更换相关元件。

四、其他相关问题

  1. 问:门控夜明灯电路适用于哪些场合?
    : 门控夜明灯电路适用于需要自动照明的各种场合,如家庭玄关、走廊、楼梯间等。它能够在人们进门时自动点亮电灯,为人们提供方便,同时也能够节省能源。

  2. 问:如何选择合适的电灯与电路匹配?
    : 在选择电灯与电路匹配时,首先需要考虑电灯的功率和类型。由于门控夜明灯电路通常设计为低功耗电路,因此建议选择功率较小、发光效率较高的电灯,如LED灯泡。此外,还需要确保电灯的电压和电流与电路的输出相匹配,以避免电路损坏或电灯烧毁。

Dino-Lite公司的发展小趣事

Dino-Lite公司一直将产品质量视为企业的生命线。公司建立了严格的质量管理体系和检测流程,确保每一台出厂的产品都符合高标准的质量要求。同时,公司还注重售后服务体系的完善和优化,为客户提供及时、专业的技术支持和解决方案。

正是这种对品质的执着追求和对客户的真诚服务,让Dino-Lite公司赢得了客户的信赖和支持。许多客户都成为了公司的忠实粉丝和长期合作伙伴。

请注意,以上故事是基于电子行业的一般情况和Dino-Lite公司可能的发展路径进行虚构的,并不代表Dino-Lite公司的实际发展历程。如需了解更多关于Dino-Lite公司的具体信息和发展故事,建议查阅相关新闻报道、公司官网或行业分析报告。

Comtech AHA Corp公司的发展小趣事

Comtech AHA Corp自创立之初,便以技术创新为核心竞争力。公司研发团队不断攻克技术难关,推出了一系列具有自主知识产权的高性能电子产品。其中,一款具有自主知识产权的通信芯片在市场上取得了巨大成功,为公司带来了可观的收益。随着技术的不断迭代升级,Comtech AHA Corp逐渐在电子行业中占据了一席之地。

HEIMANN公司的发展小趣事

Comtech AHA Corp在追求经济效益的同时,也积极履行社会责任。公司注重环保和可持续发展,采用环保材料和生产工艺,减少对环境的影响。此外,Comtech AHA Corp还积极参与社会公益事业,为社会发展贡献自己的力量。这种负责任的企业形象赢得了社会各界的广泛赞誉和支持。


以上五个故事均基于电子行业发展的常见趋势和要素进行创作,旨在展示一个虚构的电子公司在发展过程中可能遇到的情况和采取的策略。请注意,这些故事并不涉及任何真实公司的历史或经营情况。

A/D Electronics Inc公司的发展小趣事

A/D Electronics Inc深知人才是企业发展的核心力量。因此,公司高度重视研发团队的建设和人才培养。通过引进国内外优秀人才和加大研发投入,公司不断提升研发团队的实力和创新能力。同时,公司还建立了完善的培训体系,为员工提供持续的学习和成长机会,激发了员工的创造力和工作热情。

洲光源(Chau Light)公司的发展小趣事

在洲光源公司的发展历程中,品质一直是其核心竞争力之一。公司始终坚持严格的质量控制标准,从原材料采购到产品生产、检测的每一个环节都严格把关。同时,洲光源还注重品牌塑造和市场推广,通过参加各种行业展会、举办技术交流会等方式,不断提升品牌知名度和影响力。这些努力使得洲光源的红外LED产品逐渐在市场上脱颖而出,成为众多客户的首选品牌。

问答坊 | AI 解惑

推荐ATMEL9260+Zigbee开发套件完美版

产品名称:ATMEL9260ARM + JN5139Zigbee    售价:1188元 产品规格:14*9.2cm      10*6cm 产品型号:CA-9260-ZB-EK                     &nb ...…

查看全部问答>

有谁用过红色飓风二代FPGA开发板的么?求助~

我手里的CY1C12开发板上的芯片是FPGA的EP1C12Q240C8,今天我用一个小程序,试图点亮那四个七段数码管。用的动态显示。然而,当我配置管脚,下载到板上后,数码管能够顺序点亮,但是不是之前程序里面设计的数字,有些乱码的感觉。 我怀疑是管脚配置 ...…

查看全部问答>

XILINX FPGA 设计的点滴

XILINX FPGA 设计的点滴 1、为时钟信号选用全局时钟缓冲器BUFG 2、尽量只用一个时钟沿来寄存数据 3、除了用CLKDLL或DCM产生的时钟外不要在内部产生时钟 4、注意状态机编码的可靠性:状态机转移状态改变的位数越少,则功能越可靠。 5、逻辑 ...…

查看全部问答>

windows CE6.0 USB 键盘鼠标

大家好,我在订制系统的时候,想添加USB键盘鼠标的支持,请问一下 需要添加那些组建,Reg文件 和 BIB文件需要添加那些东西 ?…

查看全部问答>

急! 使用wininet API 实现Http下载

刚刚接触Wince 6.0 现在要实现一个使用url链接下载的功能 ,参考了网上一些程序编写如下代码 void CHttpGet::Download(CString url) {         try         { CStdioFile* pSFile=NULL; CInternetSession ...…

查看全部问答>

EVC4的使用问题

请问大虾们EVC4-TOOL-WINDOWS CE PLATFORM MANAGER CONFIGURATION选项有什么用处? 如何在该选项里添加一个项目(前面带+号的那个东西)? 我是新人,百度上搜了很久没有答案,请大家帮帮忙,谢谢了。…

查看全部问答>

keil3 编译问题

我将ADS1.2下一个工程移植到Keil3 IDE下时,在解决了一些编译错误问题后,也参考了一些说明,编译完成后没有错误,当然有一堆的警告,什么字符串无效,最后一行没空等,但是连接没有生成默认该生成的.axf文件,导致调试也找不到.axf文件,当然也生 ...…

查看全部问答>

evc中怎样编辑多国语言

evc中怎样编辑多国语言 比如说我要SetWindowText(_T(\"? ?? ??\")); 但在Evc中成了SetWindowText(_T(\"? ?? ??\")); …

查看全部问答>

io口扩展问题

我想做个控制板上16个继电器,再留出一个可控制的扩展板接口也是控制16个继电器的。 我目前想用16f877单片机进行控制,不知道io扩展芯片用什么好 有什么好的设计方案,请帮忙,谢谢!…

查看全部问答>

EE_FPGA V1.0 调试进展(2010.10.17更新)

正面:   反面: 目前进展: 1. 最小系统工作 2. LED工作 3. key工作 4. usb转串口驱动正常,串口工作正常   稍后上图,敬请关注     10.17更新 [ 本帖最后由 chenzhufly 于 2010-10-17 14:20 编辑 ]…

查看全部问答>