关键词:蓝牙硬件接口 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操作。同其他硬件一样,通过时序控制。

--------------------- 
作者:xubin341719 
来源:CSDN 
转载自:https://blog.csdn.net/xubin341719/article/details/38519555

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

  1. 【转】Android bluetooth介绍(三): 蓝牙扫描(scan)设备分析

    原文网址:http://blog.csdn.net/xubin341719/article/details/38584469 关键词:蓝牙blueZ  A2DP.SINK.sink_connect.s ...

  2. Android bluetooth介绍(二): android 蓝牙代码架构及其uart 到rfcomm流程

    关键词:蓝牙blueZ  UART  HCI_UART H4  HCI  L2CAP RFCOMM  版本:基于android4.2之前版本 bluez内核:linux/linux3.08 系统:an ...

  3. Android bluetooth介绍(两): android 蓝牙源架构和uart 至rfcomm过程

    关键词:蓝牙blueZ  UART  HCI_UART H4  HCI  L2CAP RFCOMM  版本号:基于android4.2先前版本 bluez内核:linux/linux3.08 系统:a ...

  4. Android Bluetooth(蓝牙) - 概念和框架

    目录 基本概念: 蓝牙的总体流程图 参考文献: 基本概念: RF(RADIO):射频层,本地蓝牙数据通过射频发送给远端设备,并且通过射频接收自远端蓝牙设备的数据 BB(BASEBAND):基带层,进行 ...

  5. 蓝牙UART和PCM接口传输的信号 硬件接口

    安卓蓝牙Android bluetooth介绍(一):基本概念及硬件接口 Android bluetooth介绍(一):基本概念及硬件接口_CLK-CSDN博客_蓝牙硬件接口 蓝牙UART和PCM接口 ...

  6. Android camera 开发(10)---Camera 硬件介绍

    Camera 硬件介绍 1,Image Sensor类型 a)     YUV Sensor YUV Sensor输出的Data格式为YUV,图像的效果处理使用Sensor内部的ISP,BB端接收YU ...

  7. Android Bluetooth API及连接方式介绍

    文章目录 API BluetoothDevice BluetoothClass 连接建立方式 安全连接 不安全连接 使用注意 API BluetoothDevice java.lang.Object ...

  8. Android Bluetooth蓝牙开发\蓝牙协议\蓝牙通信例子_Android支持蓝牙4.0版本_BLE开发

    一.Android Bluetooth现状 在android官网可以了解到android4.2新增了部分新功能,但是对于BT熟悉的人或许开始头疼了,那就是Android4.2引入了一个新的蓝牙协议栈针 ...

  9. Android bluetooth 蓝牙开发/蓝牙协议/蓝牙通信

    一.Android Bluetooth现状 在android官网可以了解到android4.2新增了部分新功能,但是对于BT熟悉的人或许开始头疼了,那就是Android4.2引入了一个新的蓝牙协议栈针 ...

最新文章

  1. Android-04:线程的使用
  2. 求从n个数组任意选取一个元素的所有组合
  3. android home键后计时拉起app_使用React Native完成App软件
  4. 【汇编语言】上机实验 win7/8/10 64位系统 进入32位DOS模式 实现dubug/edit/masm/link功能
  5. QSettings生成以及解析配置文件
  6. CDQZ_Training 2012-05-24 聪明的打字员
  7. 爆料称配备更大屏幕尺寸的Apple Silicon版iMac仍在研发中
  8. C++ 多线程 atomic
  9. service获取selinux权限_Spring Boot 整合 Spring Security 示例实现前后分离权限注解 + JWT 登录认证...
  10. 安装maya过程记录
  11. ATAT的安装bug在centos7--换了个其他集群安装确没有问题(可能和系统的配置相关)
  12. c语言 qt 写小游戏,Qt实现Flappy Bird游戏
  13. VC++6.0 win32 控制台应用程序 简单应用 附代码
  14. 【Python】python基础编程回顾(4)
  15. UnityShader学习教程之<矩阵的左乘还是右乘所导致的效果问题>
  16. 详解抖音壁纸号的具体玩法,变现方法容易吗?
  17. ASEMI快恢复二极管ES8JC参数,ES8JC规格,ES8JC封装
  18. Flutter syncfusion_flutter_charts 饼图PieSeries使用
  19. 重理工疫情期间自动打卡JS实现(每日上报+体温上报)
  20. 关于 JS 中,实现在异步代码执行完毕再执行后续代码

热门文章

  1. 物资采购合同常见的“九大问题
  2. 【转载】CO11N报工时出现异常
  3. 数据分析:工作平台【非编程类:STATA、SPASS、MatLab】【编程类:Python、R语言】
  4. 基于滑膜控制的后轮主动(ARS)和DYC的协调稳定性控制,上层ARS产生期望后轮转角度
  5. [Android Q] 紧急号码配置
  6. sieve方法c语言,用C语言实现Sieve of Atkin算法
  7. geoserver 安装
  8. 玩转大学——大学新生入学告诫
  9. Docker单节点部署OceanBase集群创建租户、用户、业务表
  10. 联想电脑管家 锁屏壁纸目录