Android bluetooth介绍(一):基本概念及硬件接口
关键词:蓝牙硬件接口 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接口接出的芯片为例)
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHViaW4zNDE3MTk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
蓝牙与主控部分硬件接口比較简单,分三部分。如上图框图所看到的:
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)
是传输语音信号所使用的调制方式。
用途:传输通话时的语音信号。
硬件接口: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHViaW4zNDE3MTk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
(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时序:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHViaW4zNDE3MTk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
语音通话时数据流:语音数据有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操作。同其它硬件一样,通过时序控制。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHViaW4zNDE3MTk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
Android bluetooth介绍(一):基本概念及硬件接口的更多相关文章
- 【转】Android bluetooth介绍(三): 蓝牙扫描(scan)设备分析
原文网址:http://blog.csdn.net/xubin341719/article/details/38584469 关键词:蓝牙blueZ A2DP.SINK.sink_connect.s ...
- Android bluetooth介绍(四): a2dp connect流程分析
关键词:蓝牙blueZ A2DP.SINK.sink_connect.sink_disconnect.sink_suspend.sink_resume.sink_is_connected.sink_ ...
- Android bluetooth介绍(三): 蓝牙扫描(scan)设备分析
关键词:蓝牙blueZ A2DP.SINK.sink_connect.sink_disconnect.sink_suspend.sink_resume.sink_is_connected.sink_ ...
- Android bluetooth介绍
Android bluetooth介绍(一):基本概念及硬件接口Android bluetooth介绍(二): android 蓝牙代码架构及其uart 到rfcomm流程Android blueto ...
- Android bluetooth介绍(两): android 蓝牙源架构和uart 至rfcomm过程
关键词:蓝牙blueZ UART HCI_UART H4 HCI L2CAP RFCOMM 版本号:基于android4.2先前版本 bluez内核:linux/linux3.08系统:an ...
- 【转】Android bluetooth介绍(二): android blueZ蓝牙代码架构及其uart 到rfcomm流程
原文网址:http://blog.sina.com.cn/s/blog_602c72c50102uzoj.html 关键词:蓝牙blueZ UART HCI_UART H4 HCI L2CAP ...
- android bluetooth
Android bluetooth介绍(一):基本概念及硬件接口 BlueZ为调试和与蓝牙子系统通信提供很多设置命令行工具,包含下面这些: hciconfig hcitool hcidump sdpt ...
- Android Bluetooth开发
原文地址:http://developer.android.com/guide/topics/wireless/bluetooth.html 翻译:jykenan 更新:2012.06.19 Andr ...
- Android Bluetooth模块学习笔记
一.蓝牙基础知识 1.蓝牙( Bluetooth )是一种无线技术标准,可实现固定设备.移动设备和楼宇个人域网之间的短距离数据交换.蓝牙基于设备低成本的收发器芯片,传输距离近.低功耗. 2.微波频段: ...
随机推荐
- 2019-03-20 用SSIS把Excel中的数据导出来保存到SQLServer中
Control Flow 1.配置 好 图形 2.去变量那 配置好 文件路径 和 存储过程 3.在SQL Server创建对应的存储过程,该存储过程的功能是每次导入是清空原有的数据 4.如果不懂的参考 ...
- java类的属性
类的嵌套!!!!!!!!!! 首先我们创建一个学生卡卡号的一个类,这个类有两个属性,校园卡号和银行卡号 package cuteSnow; public class StudentCard { pub ...
- 2015 Multi-University Training Contest 7 hdu 5379 Mahjong tree
Mahjong tree Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tota ...
- WinServer-IIS-URL重写
WEB平台安装程序在Windows Server里面才有,在WIN7里面是没有的 然后在安装一个URL重写工具 然后再设置各种规则 来自为知笔记(Wiz)
- Qt实战之酷狗音乐
此项目仅仅实现实现基本功能: 界面的模仿. 歌词功能的实现.歌曲在线试听和下载. 专辑写真的播放. 在线歌词搜索.以及主要的button功能. 界面没有採用设计器. 所有手写规划.这里先放出效果图. ...
- cmd 下命令
tasklist 查看当前进程 taskkill /? 查看taskkill 的帮助信息 详情 cmd /? 查看cmd详情 color /? 查看颜色详情 比如 color 2 md d:\ji ...
- android AudioManager AUDIOFOCUS
如今開始做音乐播放器的模块.遇到了几个问题 当播放音乐的过程中,去调节音量或者情景模式中的铃声设置,结果会有两种声音同一时候响起. 引起此问题的解决办法是音乐焦点问题没弄清 现分析一下音乐焦点的几个属 ...
- C++ STL 源代码学习(之deque篇)
stl_deque.h /** Class invariants: * For any nonsingular iterator i: * i.node is the address of an el ...
- sql系列(基础篇)-第一章 关于sysdate
第一章 主要的SQL语句 1. 查询数据库系统时间,常以server默认的格式进行显示(依据数据库的字符集而定): 注意:dual 为数据库中的虚表,隶属于管理员 sys 用户,但全部的用户都能够訪 ...
- iOS UI08_UITableView
(http://img.blog.csdn.net/20150808103801391) // // MainViewController.m // UI08_UITableView // // Cr ...