bluetooth是什么意思

更新时间:2022-12-28 07:43:03 阅读: 评论:0


2022年12月28日发(作者:小学数学公式大全)

蓝⽛RFCOMM协议

零.概述

本⽂章主要讲下蓝⽛RFCOMM协议(bluetoothrfcomm)的帧格式,包括Address,Control,LengthIndicator,Information,FCS等

⼀.声明

本专栏⽂章我们会以连载的⽅式持续更新,本专栏计划更新内容如下:

第⼀篇:蓝⽛综合介绍,主要介绍蓝⽛的⼀些概念,产⽣背景,发展轨迹,市⾯蓝⽛介绍,以及蓝⽛开发板介绍。

第⼆篇:Transport层介绍,主要介绍蓝⽛协议栈跟蓝⽛芯⽚之前的硬件传输协议,⽐如基于UART的H4,H5,BCSP,基于USB的H2等

第三篇:传统蓝⽛controller介绍,主要介绍传统蓝⽛芯⽚的介绍,包括射频层(RF),基带层(baband),链路管理层(LMP)等

第四篇:传统蓝⽛host介绍,主要介绍传统蓝⽛的协议栈,⽐如

HCI,L2CAP,SDP,RFCOMM,HFP,SPP,HID,AVDTP,AVCTP,A2DP,AVRCP,OBEX,PBAP,MAP等等⼀系列的协议吧。

第五篇:低功耗蓝⽛controller介绍,主要介绍低功耗蓝⽛芯⽚,包括物理层(PHY),链路层(LL)

第六篇:低功耗蓝⽛host介绍,低功耗蓝⽛协议栈的介绍,包括HCI,L2CAP,ATT,GATT,SM等

第七篇:蓝⽛芯⽚介绍,主要介绍⼀些蓝⽛芯⽚的初始化流程,基于HCIvendorcommand的扩展

第⼋篇:附录,主要介绍以上常⽤名词的介绍以及⼀些特殊流程的介绍等。

另外,开发板如下所⽰,对于想学习蓝⽛协议栈的最好⼈⼿⼀套。以便更好的学习蓝⽛协议栈,相信我,学完这⼀套视频你将拥有修改任何

协议栈的能⼒(⽐如Linux下的bluez,Android下的bluedroid)。

-------------------------------------------------------------------------------------------------------------------------

蓝⽛交流扣扣群:970324688

--------------------------------------------------------------------------------------------------------------------------

⼆.RFCOMM帧格式

2.1参数Address:

EA参数:这部分在蓝⽛RFCOMM协议中⼀直为1

C/R参数:此部分是代表RFCOMM的command还是respon,官⽅解释如下:

这个理解起来稍微我有绕,我翻译⼀下:

C/R(命令/响应)位表⽰帧是命令还是响应,它的值不仅取决于帧是否携带命令或响应,还有信道的哪⼀端发送帧。建⽴连接的设备(通过在

DLCI0上发送SABM命令)称为initiator。响应的设备(通过在DLCI0上发送UA响应)称为responder。⽹络上都对这个地⽅说明的模凌两

可,对于上⾯的这段话其实也说的模棱两可,我来总结下:

1)对于(SABM,UA,DM,DISC)帧,这些统称为命令帧,initiator发送给responder,C/R=1,respon相应initiatorC/R也为1。

2)对于(SABM,UA,DM,DISC)帧,这些统称为命令帧,respon发送给initiatorC/R为0,initiator响应给responder,C/R=0.

3)对于UIH帧,这个称为数据帧,initiator发送给responder,C/R=1,respon发送给initiatorC/R为0.

总结图标如下:

为了便于我上⾯的总结理解,那么加⼀个流程图,来加深你们的印象

下⾯我们⽤BTsnopp来⼀⼀看下以上个3ca:

1)对于(SABM,UA,DM,DISC)帧,这些统称为命令帧,initiator发送给responder,C/R=1,respon相应initiatorC/R也为1。

分别解析如下:

从截图看出是对⽅来连接我们signaling,所以对⽅是initiator,所以对⽅发送SABM种的C/R是1,⽽我们回复的UA帧中的C/R也为1

以下例⼦都是以对⽅为initiator来说明

2)对于(SABM,UA,DM,DISC)帧,这些统称为命令帧,respon发送给initiatorC/R为0,initiator响应给responder,C/R=0.

从1)中我们可以看到我们是responder,对⽅是initiator,所以按照我们发送给对⽅的SABM帧的C/R是0,对⽅回应我们的也是0

3)对于UIH帧,这个称为数据帧,initiator发送给responder,C/R=1,respon发送给initiatorC/R为0.

上图解析如下:

可以看到对⽅给我们的UIH帧C/R为1,我们给对⽅的UIH帧C/R为0

讲到这⾥你应该明⽩了C/R位了吧,我感觉我是全⽹在这⾥说明最清晰的。

D参数:这个同样⽐较绕,我们来看下官⽅解释

D其实就是DLCI中的directionbit

⽹上也没有⼀个特别明确的说明,我⾃⼰总结了下,感觉也是⽐较清晰:

建⽴连接的设备(通过在DLCI0上发送SABM命令)称为initiator。响应的设备(通过在DLCI0上发送UA响应)称为responder,这点在上⾯我

们也已经说明了。initiator⾃⼰的D=1,responder⾃⼰的D=0,所以如果在DLCI已经建⽴连接后,后续initiator连接responder某⼀个

profile的时候(⽐如HFP),那么应该是DCLI=0+rverchanel<<1,如果是responder连接initiator的某⼀个profile,那么应该是

DCLI=1+rverchannel<<1

后续交互封包的UIH的DCLI⼀直不变

举⼏个例⼦来说明下这⾥(remote是initiator,local是responder):

来⼀个initiator连接responder的btsnoop

可以发现rverchannel是9,那么按照算法应该是0+9<<1,所以DCLI应该是0x12

来⼀个responder连接initiator的btsnoop

可以发现rverchannel是13,那么按照算法应该是1+13<<1,所以DCLI应该是0x1B

Serverchannel:说⽩了就是上层profile的rfcommchannel

注册到SDP中,整个流程就是SDP问询对⽅的RFCOMMchannel,然后再发起RFCOMM的连接(⽐如HFP,HSP,SPP,OPP等),连接完毕

交互完参数,就相当于上层profile连接成功

2.2Control参数

主要是标⽰RFCOMMframetype是什么,截图如下:

帧分别作⽤如下:

SABM:异步平衡模式设置指令SABM命令可以⽤在异步平衡模式下,并且它的控制字段只能有⼀个字节。设备通过⾸先发送UA应答来

确认接收到SABM命令,DLC发送和接收状态变量都必须设定为0。⽤⼤⽩话讲就是连接命令

UA:未加编号的确认应答。UA应答⽤在设备对接收到SABM和DISC后的确认应答

DM:断开连接模式应答。DM应答是⽤来报告设备从数据链路逻辑地断开连接这么⼀种状态的。在断开模式下,不⽀持任何命令,直到收

到了SABM命令,然后停⽌断开模式。在断开模式下,接收到了DISC命令,则要向对⽅发送⼀个DM应答。

DISC:断开连接指令。⽤DISC命令可以⽤来结束⼀个正在运⾏或者刚刚开始的模式。它就是通知⼀⽅另⼀⽅悬置操作,设备必须假定⼀

个逻辑断开模式。在执⾏这个命令之前,接收设备要通过发送UA应答来确认接受DISC命令。在DLCI0中,DISC命令的发送也和其他

的DLCI具有同意的意思。

UIH:带头校验的未编号信息命令和应答⽤UIH命令/应答可以通过不影响V(S)或V(R)变量来相互发送信息。UIH是⽤在传输⼀些信息的

完整性没有它要在正确的DLCI上传输重要的情况下的。FCS只在地址和控制字段进⾏计算。UIH⽤于对差错码要求不是很⾼的场合,如

语⾳。

P/FBit:P/F是Poll/Final位

在Commands中,被称为P(poll)位;⽽在Respons中则被称为F(final)位,⼤概⽤法我⾃⼰总结如下:

1)对于(SABM,UA,DM,DISC)帧,这些统称为命令帧,command跟respon都设置为1就好。

2)对于UIH帧,除了给对⽅credit设置为1外,UIHur帧以及UIH多路控制帧都设置为0就好了。

2.3LengthIndicator参数

L1到L7位表⽰数据字段的长度,其默认值为31字节。同样,它可以根据EA位进⾏扩展。当EA=0时,它接下来的字节如下表表⽰就

可以表⽰15个数字。也就是RFCOMM的后续len是32~32767byte的字节。

2.4InformationField参数

UIH帧数据,只对UIH帧有效,后续再⼀⼀介绍下UIH的格式

2.5FCS参数

帧校验序列(FCS)根据不同帧类型在不同域集上进⾏运算.下⾯列出需要进⾏帧运算的字段:

对于SABM、DISC、UA、DM帧:在地址、控制和长度标志字段上进⾏运算;

对于UIH帧:在地址和控制字段上进⾏运算

本文发布于:2022-12-28 07:43:03,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/45474.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:恋尿
下一篇:朱拉蓬公主
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图