L2CAP-协议解析.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
L2CAP-协议解析

L2CAP层协议解析 章节: 1、L2CAP概述 2、L2CAP逻辑信道 2.1、逻辑信道 2.2、信道模式 3、帧类型及结构 4、各种事件 5、连接过程 6、L2CAP状态机 7、遗留问题 ---------------------------------------------------------------------------------------------------------------------- 正文 1、L2CAP概述 L2CAP-全称是逻辑链路控制与适配层,为两个通信的蓝牙设备提供一个端到端的通道。 L2CAP主要功能: 1.协议信道复用(protocol/channel multiplexing) 2.分段与重组(segmentation and reassembly SAR) 3.每个信道流控(per-channel flow control) 4.差错控制(error control) 2、L2CAP逻辑信道 2.1、逻辑信道 L2CAP逻辑信道分配情况如下: CID即channelID, 0x0001信道作为发送信令的信道,如发送Conn_req; 0x0002被作为无连接(两个设备间未建立ACL通路)的信道使用; 0x0040-0xFFFF是动态分配的,如在SDP服务发现时候就需要动态分配一个CID,和对端的CID连接后进行通信。 在BLE设备中0x0005作为BLE设备的信令通道;如果设备支持BLE功能,0x0005作为其信令通道,则0x0004和0x0006也会被强制分配给BLE,分别作为ATT和SecurityManager信道。 其中的0x0004-0x0005被分配给BLE(低功耗蓝牙): 2.2、信道模式 逻辑信道分为5中模式,最后一种是LE设备特有的: Basic L2CAP Mode是默认模式,在未选择其他模式的情况下,就是用此模式。 Flow Control Mode模式下,不会进行重传,但是丢失的数据能够被检测到,并报告丢失。 Retransmission Mode确保数据包都成功的传输给对端设备。使用go-back-n(见附录)策略简化协议并限制缓冲区。 Streaming Mode是为了真实的等时传输,数据包被编号但是不需要ACK确认。设定一个超时定时器,一旦定时器超时就将超时的数据干掉。 LE Credit Based Flow Control Mode模式是唯一被用于LE设备的信道模式。 3、帧类型及结构 面向连接的信道包括除了0x0002的固定信道、两个信令信道(0x0001与0x0005)和动态分配的信道。面向无连接的信道有0x0002。 B帧 用于基础L2CAP模式下的面向连接信道。其中的Length为Information payload的长度,不包括包头长度。Information payload的长度范围是0~65535. ChannelID为接收方的CID。 G帧 用于基础L2CAP模式下面向无连接的信道。G帧用于固定的无连接信道0x0002。 Length为PSM+Information payload长度之和。 PSM(Protocol/Service Multiplexer)协议服务复用,例如:SDP,RFCOMM等。 I/S帧 用于重传、流控或者流模式下面向无连接的信道。 I帧(Information frame)被用于L2CAP实体之间的信息传递; S帧被用于I帧的确认和请求重传。 Length为除了Basic L2CAP header外的数据长度。 需要指出的是:只有在服务数据包SDU需要分段,并且是第一个L2CAP包的时候才需要L2CAP SDU Length段。 Control字段与L2CAP模式有关 a、标准Control字段用于重传模式和流控模式下 ReqSeq字段:被接收方用于应答I帧,当发送失败的时候发起重传的帧序列号。 TxSeq字段:发送I帧的序列号,用于分段与重组。 SAR字段:分段与重组,用于表示SDU包的开始结尾,占用2bit。 R字段用于实现流控,默认R=0。 R=0:可以重传,使能重传定时器,关闭监视定时器。 R=1:不可重传,使能监视定时器,关闭重传定时器,从而实现流控。 S字段表示S帧的类型,例如01代表之前发送的I帧被拒绝。 b、增强Control字段用于增强重传模式和流模式下 P字段:P=1请求一个接收方的回复 F字段:回复一个P=1的请求帧。 c、扩展Control字段用于扩展重传模式和流模式下 LE帧 Channel ID为接收方的CID。 C帧 控制帧(Control frame)在信令信道(传统蓝牙0x0001,BL

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档