蓝牙PROFILE

Bluetooth的一个很重要特性,就是所有的Bluetooth产品都无须实现全部 的Bluetooth规范。为了更容易的保持Bluetooth设备之间的兼容,Bluetooth规范中定义了Profile。Profile定义了设备如何实现一种连接或者应用,你可以把Profile理解为连接层或者应用层协。
在所有的Profile中,有四种是基本的Profile,这些Profile会被其它的Profile使用,它们包括GAP/SDAP/SPP/GOEPProfile。


一、传统配置文件

1、

这里写图片描述

2、

这里写图片描述

3、Profile按相关性及重要性分类排名

■ 1:打电话功能,HS(Headset), HF (Handsfree)
■ 2:文件传输功能,OPP,FTP
■ 3:立体声,A2DP,AVRCP
■ 4:虚拟串口,SPP
■ 5:人机界面设备,HID
■ 6:打印功能相关,BPP,HCRP
■ 7:电话本相关,PBAP,SAP
■ 8:TCS相关,CTP,ICP
■ 9:访问网络相关,DUN,LAP
■ 10:图像相关,BIP
■ 11:同步相关,Sync,SyncML
■ 12:传真,FAX
■ 13:个人网,PAN
■ 14:Video相关,VDP
■ 15:支持java,JSR-82
■ 16:通用profile(其实可以不算profile), GOEP,GAP, SDAP,GAVDP
■ 17:未release,MAP(MessageAccess Profile)
其中2,5,6-BPP,7,10,11,12都是和OBEX相关的profile。所
以几乎有一半以上的profile都是基于OBEX。这些profile基于OBEX提
供的基本功能实现了具体的应用。

4、

  • A2DP(Advanced Audio Distribution Profile)
    《高级音频分发规范》。规定了使用蓝牙非同步传输信道方式,传输高质量音乐文件数据的协议堆栈软件和使用方法,基于该协议就能通过以蓝牙方式传输高品质的音乐了。如:手机的高质量音乐播放,可以传到蓝牙立体声耳机或者车载设备;A2DP主要的目的是双向传递高质量的音频流。
  • AVRCP(Audio Video Remote Control Profile)
    《音视频远程控制规范》。AVRCP 定义了如何控制流媒体的特征。包括暂停、停止、启动重放、音量控制及其它类型的远程控制操作。AVRCP定义了两个角色,即控制器和目标设备。控制器通常为远程控制设备,而目标设备为特征可以更改的设备。在 AVRCP中,控制器将检测到的用户操作翻译为 A/V 控制信号,然后再将其传输至远程 Bluetooth 设备。对于“随身听”类型的媒体播放器,控制设备可以是允许跳过音轨的耳机,而目标设备则是实际的播放器。常规红外遥控器的可用功能可以在此协议中实现。
  • GAP(General Access Profile)
    《基本访问规范》。这个规范是其他规范的基础。它定义了在 Bluetooth 设备间建立基带链路的通用方法。该Profile保证不同的Bluetooth产品可以互相发现对方并建立连接。一般访问应用规范(GAP)定义了蓝牙设备如何发现和建立与其他设备的安全(或不安全)连接。它处理一些一般模式的业务(如询问、命名和搜索)和一些安全性问题(如担保),同时还处理一些有关连接的业务(如链路建立、信道和连接建立)。GAP规定的是一些一般性的运行任务。因此,它具有强制性,并作为所有其它蓝牙应用规范的基础。
  • SDAP(Service Discovery Application Profile)
    通过该Profile,一个Bluetooth设备可以找到其它Bluetooth设备提供的服务,以及查询相关的信息。
  • HFP(Hands Free Profile)
    《免提规范》。典型配置如汽车使用手机作为网关设备。在车内,立体声系统用于电话音频,而车内安装的麦克风则用于通话时发送输出音频。
  • HID(Human Interface Device Profile)
    《人机接口设备规范》。如果无线蓝牙鼠标;Wii Remotes; PlayStation 3 控制器。
  • HSP(Handset Profile)
    《耳机规范》。这是最常使用的。用蓝牙耳机可以控制手机:接听、挂断、调节音量。
  • SPP(Serial Port Profile)
    《串口配置规范》。定义了如何设置虚拟串行端口及如何连接两个 Bluetooth 设备。
  • GOEP(Generic Object Exchange Profile)
    通用对象交换。这个Profile的名字有些费解,它定义的是数据的传输,包括同步,文件传输,或者推送其它的数据。可以理解为与内容无关的传输层协议,可以被任何应用用来传输自己定义的数据对象。

5、

  • 高级音频传输协议(A2DP)
  • 内核协议层(HCI、LMP、L2CAP、SDP)
  • 线缆替换协议层(RFCOMM)
  • 电话控制协议层(TCS-BIN)
  • 选用协议层(PPP、TCP、IP、UDP、OBEX、IrMC、WAP、WAE)
  • 活动从设备广播 (ASB)
  • 音频/视频远程控制配置文件 (AVRCP)
  • 基本成像配置文件 (BIP)
  • 基本打印配置文件 (BPP)
  • 免提配置文件 (HFP)
  • 耳机配置文件 (HSP)
  • 逻辑链路控制与适配协议(LogicalLink Control and AdaptationProtocol,L2CAP)
  • 串口仿真协议(RFCOMM)
  • 主机控制器接口协议(HostControllerInterfaceProtocol,HCI)
  • 电话控制协议(TelephonyControlProtocolSpectocol,TCS)
  • 服务发现协议(ServiceDiscoveryProtocol,SDP)

二、基于GATT配置文件

1、

这里写图片描述

2、

这里写图片描述

3、

Generic Attribute Profile (GATT)
通过BLE连接,读写属性类小数据的Profile通用规范。现在所有的BLE应用Profile都是基于GATT的。
Attribute Protocol (ATT)
GATT是基于ATT Protocol的。ATT针对BLE设备做了专门的优化,具体就是在传输过程中使用尽量少的数据。每个属性都有一个唯一的UUID,属性将以characteristics and services的形式传输。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/401240.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

netty系列之:EventLoop,EventLoopGroup和netty的默认实现

Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/course/detail/35475 目录* 简介 EventLoopGroup和EventLoopEventLoopGroup在netty中的默认实现EventLoop在netty中的默认实现总结 简介 在net…

Oracle安装部署之RedHat安装Oracle11g_R2

硬件配置 内存 :≥1G 硬盘空间:≥10G 上传oracle11g安装包: putty上用wcw用户登录,通过ftp服务上传oracle安装文件到/home/wcw目录下解压 #unzip linux_11gR2_database_1of2.zip #unzip linux_11gR2_database_2of2.zip 检查和安装…

Fans没信心,回家继续修行

今天在CSDN上看了一篇的文章,感觉自己实在是太菜了,以至于对毕业之后从事IT行业没有了任何信心。现在也不清楚,自己能否在it行业混下去。自己的技术实在是一个水啊。8号就要回家了,兄弟姐妹们如果有事情,请发短信至 15…

基于SqlSugar的数据库访问处理的封装,支持多数据库并使之适应于实际业务开发中

Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/course/detail/35475 在我的各种开发框架中,数据访问有的基于微软企业库,有的基于EFCore的实体框架,两者各有其…

Unity 实现物体破碎效果(转)

感谢网友分享,原文地址(How to Make an Object Shatter Into Smaller Fragments in Unity),中文翻译地址(Unity实现物体破碎效果) In this tutorial I will show you how to create a simple shattering ef…

CC254x--OSAL

OSAL运行原理 蓝牙协议栈PROFILE、所有的应用程序、驱动等都是围绕着OSAL组织运行的。OSAL(Operating System Abstraction Layer)操作系统抽象层,它不是一个真正的操作系统(它没有 Context Switch 上下文切换功能)&am…

mysql跨节点join——federated引擎

一、 什么是federated引擎 mysql中的federated类似于oracle中的dblink。 federated是一个专门针对远程数据库的实现,一般情况下在本地数据库中建表会在数据库目录中生成相对应的表定义文件,并同时生成相对应的数据文件。 [图] 但是通过federated引擎创建…

【阅读SpringMVC源码】手把手带你debug验证SpringMVC执行流程

Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/course/detail/35475 ✿ 阅读源码思路: 先跳过非重点,深入每个方法,进入的时候可以把整个可以理一下方法的执…

Zabbix监控(十六):分布式监控-Zabbix Proxy

说明:Zabbix支持分布式监控,利用Proxy代理功能,在其他网络环境中部署代理服务器,将监控数据汇总到Zabbix主服务器,实现多网络的分布式监控,集中监控。1、分布式监控原理Zabbix proxy和Zabbix server一样&am…

CC254x--BLE

BLE协议栈 BLE体系结构,着重了解GAP和GATT。 PHY物理层在2.4GHz的ISM频段中跳频识别。LL连接层:控制设备的状态。设备可能有5中状态:就绪standby,广播advertising,搜索scanning,初始化initiating和连接con…

Azure Container App(一)应用介绍

Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/course/detail/35475 一,引言 容器技术正日益成为打包、部署应用程序的第一选择。Azure 提供了许多使用容器的选项。例如&#xff0…

怎样配置键盘最方便,以及一些设计的思考

使用Emacs的人,如果肯折腾,肯定有重新映射键盘的经历。我原来经常看到的是把Ctrl和Capslock交换,但是我感觉没什么道理,因为Ctrl已经用的很熟练了,换了反而不方便,而且对其他程序影响太大。那么我们就要使用…

profile、服务、特征、属性之间的关系

一个profile有很多的服务,一个服务又有很多的特性,一个特性中又有几种属性条目组成。 profile(数据配置文件) 一个profile文件可以包含一个或者多个服务,一个profile文件包含需要的服务的信息或者为对等设备如何交互的…

机器学习实战 | SKLearn最全应用指南

Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/course/detail/35475 作者:韩信子ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/41 本文地址:http…

Scheme语言入门

2019独角兽企业重金招聘Python工程师标准>>> Scheme语言入门 最早听说 LISP,是 Stallman 的 GNU Emacs 中将 LISP 作为嵌入语言,定制和增强 Emacs。GNU Emacs 是一个文本编辑器,文本就是一种符号,而 Lisp 正好就是针对…

如何将docker 镜像上传到docker hub仓库

Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/course/detail/35475 如何将docker 镜像上传到docker hub仓库 目录* 如何将docker 镜像上传到docker hub仓库 背景 1.注册docker hub账号 2.…

ThinkPHP框架 _ 学习3

【路由解析】 通过url地址get参数找到指定的控制器,并进行对应方法调用请求 http://网址/index.php?m模块名称&c控制器&a方法 以上url地址信息代码不够优雅、不安全。 tp框架url地址可以由以下四种 http://网址/index.php?mXX&cXX&aXX 基本get模…

The slave I/O thread stops(equal MySQL server ids)

在学习replication时遇到了如下问题:显然看到Slave_IO_Running 为NO 表示有问题;到日志里查看,错误如下:position 98100121 17:09:03 [ERROR] The slave I/O thread stops because master and slave have equal MySQL server ids;…

pytest配置文件pytest.ini

Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/course/detail/35475 说明: pytest.ini是pytest的全局配置文件,一般放在项目的根目录下是一个固定的文件-pytest.ini可以…