- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
Bluecore5-MM在车载蓝牙设备中的应用
3 单芯片开发方式
BC5-MM有两种开发方式:一种是将BC5-MM作为蓝牙基带传输器件,协议栈及应用软件全部由外部主处理器实现;另一种是将BC5-MM作为蓝牙单芯片,实现协议栈及部分应用软件,通过与外部主处理器的通信来综合完成相关应用。本设计选用后一种开发方式,BC5-MM的软件开发在CSR公司提供的Roadtunes-SDK上进行,该Roadtunes-SDK提供完成的协议栈和剖面库,车载应用的软件解决方案,以及虚拟机VM,用于单芯片方式的嵌入式开发。在该解决方案的基础上开发软件,其应用包括免提通话、信号强度、电池电量及短信提示、流媒体音乐播放及远程控制、读取蓝牙播放器音乐的TAGID3、来电铃声提示、下载蓝牙手机内的电话簿、自动连接等。下面从通信的实现机制和UART通信方面论述相关机制原理和开发。
4 通信的实现机制
BC5-MM的蓝牙通信和本地通信都是基于Stream机制,它把数据传输路径视为一个管道,管道的人口为Source,表示数据来源,出口为Sink,表示数据从这里发出。屏蔽底层具体实现,以简单方式实现数据传输。其主要特性是串行和FIFO(先人先出)机制,对其开发时,首先保证有足够空间分配给收发数据,保证当前指针正确。以免提通道数据发送为例,首先通过SinkClaim(HfpSink,DataLength)函数为免提通道的发送端口HfpSink分配DataLength长度的内存,然后判断是否分配成功,若分配成功,则将该内存赋值,再通过SinkFlush(HfpSink,DataLength)将数据发送出去。注意一旦通过SinkClaim分配DataLength长度的内存,必须通过Sink-Flush将其长度的数据发送出去,这样才能将HfpSink的发送指针转移到正确位置,否则下次通过SinkClaim为HfpSink分配内存,通过SinkFlush发送时,将会出现免提通道上的发送数据使用上次分配的内存数据,从而造成后面一连串发送错误。因此必须深入理解BC5-MM的通信实现机制以完成正确的数据传输。
来源:维库开发网
上一篇:固定移动融合(FMC)
下一篇:融合创新:开启家庭移动宽带新时代


