android4.4bt培训-蓝牙底层_第1页
android4.4bt培训-蓝牙底层_第2页
android4.4bt培训-蓝牙底层_第3页
android4.4bt培训-蓝牙底层_第4页
android4.4bt培训-蓝牙底层_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Android4.4蓝牙协议与底层Jianli.dong2014-12-16蓝牙协议与底层介绍蓝牙协议栈代码位置及介绍蓝牙关键log及注意事项蓝牙概述蓝牙技术特点蓝牙系统结构蓝牙系统结构分为三大部分应用中间协议层底层硬件模块应用应用蓝牙耳机相关的

应用拨打HFPsco/escoAT命令指令集听音乐/AVDTPAVRCP应用与

相关的

应用传文件OPPOBEX上网TCP/UDPIP组网BNEP蓝牙系统结构蓝牙系统结构分为三大部分应用中间协议层底层硬件模块中间协议层中间协议层串口仿真(

M)多路串口仿真流控帧类型中间协议层服务发现协议(SDP)数据元通用唯一标示符(UUID)服务类中间协议层逻辑链路控制与适配协议(L2CAP)协议复用分段与重组服务质量信息的交换组抽象中间协议层其他 协议HCI驱动物理总线(串口,USB等)驱动主机物理总线物理总线固件HCI

FirmwareLMRF蓝牙控制器主机与控制器接口(HCI)蓝牙系统结构蓝牙系统结构分为三大部分应用中间协议层底层硬件模块底层硬件模块底层硬件模块底层硬件部分包括无线跳频(RF)、基带(BB)和链路管理(LM)RF层通过2.4GHz无需

的ISM频段的微波,实现数据位流的过滤和传输,本层协议主要定义了蓝牙收发器在此频带正常工作所需要满足的条件。基带负责跳频以及蓝牙数据和信息帧的传输。链路管理(LM)负责连接、建立和拆除链路并进行安全控制。链路为SCO同步话音链路与ACL

异步数据链路。底层硬件模块蓝牙的SIG规定了四种与硬件连接的物理总线方式:USB、RS232、UART和PC卡。蓝牙协议与底层介绍蓝牙协议栈代码位置及介绍蓝牙关键log及注意事项蓝牙协议栈代码位置及介绍,便于增加新的profile;从框架图可以发现bluedroid有以下特点:1.层次结构清晰。各个profile对上层接口增加了HAL层,便于移植。2.去掉了DBus,Framework的Java代码直接调用到Bluedroid的Native代码。蓝牙协议栈代码位置及介绍Application

Framework该层代码主要是利用android.bluetooth

APIS和BluetoothProcess进行交互。也就是通过Binder

IPC机制调用

bluetooth

进程;代码位于frameworks/base/core/java/android/bluetooth下。Bluetooth

Process该层代码主要是实现Bt

service和各种profile,通过JNI调用到HAL层。代码最后编译形成一个android

app包,位于

package/apps/Bluetooth下。BluetoothJNI该层代码位于packages/apps/bluetooth/jni下,定义了蓝牙适配层和协议层对应的JNI服务,直接调用HAL层并给HAL层提供相应的回调。蓝牙协议栈代码位置及介绍4.

Bluetooth

HAL定义了android.bluetooth

APIs和BT

process调用的标准接口,通过调用这些接口使得hardware运行正常。代码位于

hardware/libhardware/include/hardwarebluetooth.h:

Contains

the

HAL

for

the

Bluetooth

hardwareon

thedevicebt_av.h:

Contains

the

HAL

for

the

advanced

audio

profile.bt_hf.h:

Containsthe

HAL

for

the

handsfree

profile.bt_hh.h:

Contains

the

HALfor

the

HID

hostprofile

bt_hl.h:

Contains

the

HAL

for

the

health

profilebt_pan.h:

Contains

the

HAL

for

the

pan

profilebt_sock.h:

Contains

theHAL

for

the

socketprofile.在HAL层并没有实现定义的蓝牙协议与属性,其默认实现在Bluedroid中,位于external/Bluetooth/bluedroid,用户可以根据自己的需求增加属性。蓝牙协议栈代码位置及介绍5.

BluetoothStack实现了HAL层中的定义,可以通过扩展和改变配置来自定义。代码位于external/Bluetooth/bluedroid下。BlueDroid分为两个部分:1、Bluetooth

Embedded

System(BTE),它实现了BT的 功能,通过HCI与蓝牙 交互实现蓝牙协议栈的通用功能和相关协议。BTE还包括一个

内核接口(GKI),蓝牙 厂商可通过GKI快速轻松的移植蓝牙协议栈到其他操作系统或

平台上。2、Bluetooth

Application

Layer

(BTA),用于和androidframework层交互,实现蓝牙设备管理、状态管理以及一些应用规范。协议栈代码结构external/bluetooth/bluedroidaudio_a2dp_hwbtabtifhcimainstackbte_main.cbte_init.c从代码上可以清晰的发现android

4.4的优点:层次结构清晰。各个profile对上层接口 ,便于增加新的profile.去掉了DBus,Framework的Java代码直接调用到Bluedroid的Native代码。3.Bluetooth

HAL也属于Android4.2新增模块,它由蓝牙 规范硬件抽象层和蓝牙应用规范硬件抽象层组成。由于HAL层的 作用,上层代码可轻松移植到不同平台。4.作为整个蓝牙服务的 ,Bluetooth

Stack模块则由Bluetooth

Application

Layer(缩写为BTA)和Bluetooth

Embedded

System(缩写为BTE)两大部分组成。BTA实现了蓝牙设备管理、状态管理及一些应用规范的bluedroid实现。而BTE则通过HCI与厂商蓝牙 交互以实现了蓝牙协议栈的通用功能和相关协议。另外,BTE还包括一个

内核接口(GKI),蓝牙 厂商可借助GKI快速轻松得移植蓝牙协议栈到其他操作系统或 平台上。蓝牙协议与底层介绍蓝牙协议栈代码位置及介绍蓝牙关键log及注意事项蓝牙关键log参见文档Android4.4蓝牙log分析pdf蓝牙Log分类有效的Log是分析问题的重要保障,分析蓝牙问题需要涉及到三类Log:Android

log(包括main

log,systemlog,event

log等)HCI

Log(通常说的bt

log)Controller

log(通常说的cp2

log)蓝牙Log抓取方法展讯平台常用LOG工具使用指南.ppt

这篇文档对常用工具Log抓取方法有了较多的讲解,此处主要针对android4.4的log设置做下讲解。测试蓝牙模块前的一些准备工作,步骤如下:进入工程模式:*#*#83781#*#*----向左滑动屏幕或者点击DEBUG

TAB页,进入DEBUG&LOG界面(图1)选择Log

Settings选项,进入Log

settings界面(图2)选择SlogUI选项,进入SlogUI界面(图3)检查Android Modem

Log,Bluetooth

Log是否勾选(图4),需要勾选(图5)蓝牙Log抓取方法图1图2蓝牙Log抓取方法图3图4蓝牙Log抓取方法图5蓝牙Log抓取及提交CQ注意事项由于Bluetooth问题较复杂,可能需要分析APP,Framwork,driver,CP2等多个模块,因而CR中提供有效信息对于分析问题非常重要。完整的Log是分析问题的重要保障,不怕测试测到问题,就怕测试到问题但却没有Log或者Log不全,导致问题不能分析或者因为Log不全需要复现测抓log,花费测试工程师较多时间,特别是一些低概率问题。有效的Slog.测试前的检查工作,准备工作是否做好。务必确保三项log开关是打开记录出现问题的时间点蓝牙Log抓取及提交CQ注意事项提交问题时记录下出问题的时间,这有助于从大量的log中快速定位问题问题描述用准确而详细的操作步骤具体的问题现象如文件传输失败,不要笼统的描述“传输失败”,需要说明是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论