Android bluetooth介绍(一):基本概念及硬件接口

时间:2024-02-29 11:11:33

关键词:蓝牙硬件接口 UART  PCM  blueZ
版本号:基于android4.2之前版本号 bluez
内核:linux/linux3.08
系统:android/android4.1.3.4
作者:xubin341719(欢迎转载,请注明作者。请尊重版权谢谢)
欢迎指正错误。共同学习、共同进步。! 

Android bluetooth介绍(一):基本概念及硬件接口
Android bluetooth介绍(二): android 蓝牙代码架构及其uart 到rfcomm流程
Android bluetooth介绍(三): 蓝牙扫描(scan)设备分析
Android bluetooth介绍(四): a2dp connect流程分析

一、基本概念补充

1、AP:ApplicationProcessor应用处理器

採用ARM架构的CPU,通常负责执行OS和一些特定设置和加载开机预设。

比方一个没有电话功能的平板电脑。仅仅跑android或者win8的系统。仅仅要AP就能够。

如国外性能比較好的AP:三星exynos系列芯片、高通骁龙系列、NVIDIA等;国内近几年芯片做的也不错,如:全志、炬力、瑞芯微、晶晨……只是稳定性、性能都还要提高;支持国产,要不然钱都给老外赚取。


2、BP:BasebandProcessor 基带处理器
架构相对于AP简单,处理电话、信息之类的功能。


基带芯片相对来说,高通一家独大了。然后就是*的MTK、大陆的展讯市场占有率逐步上升。
3、CP:coprocessor  Processor 协处理器
基带芯片加协处理器(CP。通常是多媒体加速器)。这类产品以MTK方案为典型代表,展讯的市场占有份额也逐年上升。推相似的产品, 用来通过处理主cpu的一些工作负荷来使操作提速的辅助处理器。


4、RF:Radio Frequency射频部分
         无线信号的发射部分。如电话、蓝牙、WIFI信号发射、接收;
5、展讯Tshark芯片的集成框图:

  我们看到有一个AP,和三个CP:CP0、CP1、CP2。


AP为四核:4个A7。3个CP分别为三个ARM9架构的处理器。
这里所说的CP和一般的意义上的理解不同,理论上的CP不包含BP的,展讯的CP0、CP1事实上是两个基带处理芯片,算是公司内部的一种说法。

2G支持的制式都一样,3G的一个支持TS-SCDMA、一个支持WCDMA。
 事实上我们重点说的是CP2。四合一部分的。重点是蓝牙。


二、常见组合(简单框图)

如上图所看到的。一个AP芯片+外设+android软件,就构成一个简单的平板电脑。


2、以三星、高通等AP设计的手机  AP芯片+BP芯片+RF芯片
 假设用单AP芯片,要加基带、射频芯片构成手机硬件架构,例如以下图所看到的:

3、以MTK、展讯方案设计的手机(AP+BP+CP)芯片+RF芯片
以下是展讯Tshark芯片的手机简单架构,和传统手机相比。硬件上更集成化。这样有利于厂商的生产、节省成本……MTK现阶段做的比較成熟,由低端向中高端进阶。展讯还在艰苦奋战,希望能再接再厉,成为一流芯片公司。填补大陆在芯片技术上的空白。



BT、WIFI、GPS、FM四合一的集成
前面我们了解BP、CP集成。了解手机总体架构,事实上我重点解说四合一芯片。主要说明四合一芯片独立芯片。和AP集成到同一芯片中两种架构。

类型与BP,独立芯片、集成芯片。
(1)、独立芯片:
通过串口接出,如上图的troutII.其它芯片。如BCM、RDA、CSR、Retelk等……如上图troutII 也是独立芯片。
(2)、集成芯片:(WIFI \BT\FM\GPS的集成到主控芯片内,直接输出模拟信号量。通过RF放大后发射出去)
         模拟芯片输出、出入到SR2351芯片。展讯比較多的芯片集成四合一(BT/WIFI/GPS/FM),节省客户成本,只是芯片性能跟BCM比还是有点距离,各位同仁继续加油。
三、蓝牙硬件接口概述(以UART接口接出的芯片为例)


蓝牙与主控部分硬件接口比較简单,分三部分。如上图框图所看到的:

UART部分:串口,主要负责传输数据;有其它USB、SDIO、PC card等通信。
PCM部分:语言接口。用于通话时语音传输数据。
Power部分:也就是BT模块的电源控制部分。VDD2.8V、PDN、RST。


1、UART:通用异步收发传输器(UniversalAsynchronous Receiver/Transmitter)
硬件接口比較简单,仅仅有RX、DX。

UART0用于trout芯片的debug:

是传输数据的接口。能够传输音频数据文件数据
1)、当通过蓝牙和别人互传文件时。就用UART传输。传输数据例如以下所看到的:AP通过uart把数据发送到bt芯片中。通过无线发射出去。对方接收到后传给AP側处理。


2)、当用蓝牙耳机听音乐时。音频信号也由UART传输。
 音乐数据通过uart 传送出去,对方耳机接收到后解码播放。假设是录音数据。则相同传回手机端存储。



2、PCM/IIS
(1)、PCM:脉冲编码调制
(pulse codemodulation)
是传输语音信号所使用的调制方式。


用途:传输通话时的语音信号。


硬件接口:

(2)、PCM基本工作原理:
脉冲调制就是把一个时间连续,取值连续的模拟信号变换成时间离散,取值离散的数字信号后在信道中传输.脉冲编码调制就是对模拟信号先抽样,再对样值幅度量化,编码的过程。
一个模拟信号经过抽样量化后,得到已量化的脉冲幅度调制信号,它仅为有限个数值。PCM话音信号先经防混叠低通滤波器,进行脉冲抽样,变成8KHz反复频率的抽样信号(即离散的脉冲调幅PAM信号),然后将幅度连续的PAM信号用"四舍五入"办法量化为有限个幅度取值的信号,再经编码后转换成二进制码.对于电话,CCITT规定抽样率为8KHz,每抽样值编8位码,即共同拥有28=256个量化值,因而每话路PCM编码后的标准数码率是64kb/s。
例如以下图PCM时序:

(3)、IIS(Inter-IC Sound bus)即集成音频接口
IIS仅仅能传输单声道或双声道立体声的数字音频,数据格式为PCM格式。该接口又派生出三类:左对齐格式、右对齐格式、I2S格式。

I2S时差性能要优于SPDIF。适合短距离通讯。
IIS总线一般具有4根信号线。如图1所看到的,包含串行数据输入(IISDI)、串行数据输出(IISD0)、左/右声道选择(IISLRCK)和串行数据时钟(IISCLK);产生IISLRCK和IISCLK的是主设备。
例如以下图IIS时序:

语音通话时数据流:语音数据有3G网络接入,通过PCM传递到蓝牙芯片,蓝牙芯片通过2.4G发射出去,到蓝牙耳机接收,相同mic传回的语言数据做相应处理。

(4)、为什么蓝牙用PCM通道(网络參考
纠正个说法。一般手机cpu到蓝牙的通话实时音频传输才都使用pcm,MP3之类的音频走的是urat/usb之类的其它接口。
真正原因我也不能确定。只是有几个情况可能是原因之中的一个。
(1)、PCM和IIS的差别在于,PCM通常是固定8k的採样率的单声道音频,最早似乎和固定电话的编码有直接关系,之后全部的话音编码差点儿都是在PCM编码基础上再次编码得到的。而IIS则多了一个专门的信号线,採样率也能够配置到较高的频率,如44k;
(2)、手机通话时候的编码一般都会被解码成8k採样率的PCM码,高了也没实用。由于本来手机通话的话音频段就是300~3400Hz而已,编码也是按8k採样的。某些手机平台并没有IIS接口。相对来说基本上都会有PCM接口。
(3)、从蓝牙角度讲,蓝牙在制定协议的时候就特意为通话需求制定了一个协议层。专门定义了一种包结构(SCO)用于通话,有非常好的实时性。

而通过UART传输的包一般为ALC,用分组传输的方式。两种包的编解使用的软硬件都有些差别。sco包支持的基础码率也是8k的pcm.所以一般蓝牙芯片都会有一个PCM接口。
(4)、还一个原因就是,開始大家这么做了,后来就都这么做了,形成行业规范。
3、POWER 控制部分
程序相应引脚按power on /off 时序来完毕on/off操作。同其它硬件一样,通过时序控制。