蓝牙LMP概述

本文介绍了蓝牙Link Manager Protocol (LMP)的基本概念,包括它在蓝牙控制器中的位置、整体介绍、通用规则、设备特征、流程规则以及工作模式。LMP用于控制和协商设备间的连接行为,涉及逻辑传输连接建立、物理链路控制等。文章详细讨论了LMP的消息传输、同步、数据包格式、事务处理、错误处理以及响应消息,还涵盖了设备特性和不同流程规则,如连接控制、信息请求、角色切换和操作模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LMP 全称是Link Manager Protocol,我们还是要一张图,说明LMP 在哪里?

他是在HCI 以下,baseband 以上,实现在蓝牙控制器中。

 按照协议规范,我们分几个部分来分别介绍LMP

  1. introduction
  2. general rules
  3. device features
  4. procedure rules

下面我们先来看看 整体的介绍部分:

Introduction

LMP是用来控制和协商两个设备连接行为的协议,涉及的方面包括逻辑传输连接的建立和控制,以及对于物理链路的控制等等,它是两个设备的LMP模块之前的交流,其消息是传输在ACL-C 的逻辑链路上,对于这一点,我们在baseband的概述中已经提过:

这里需要注意的一点是,LMP 是实现在控制器里面,其消息并不会经过HCI 接口传输到HOST 端,其架构如下图:

我们可以看到其是 两个设备的LMP 模块之前的通信。

General rules

 2.1 Message Transport

 这里描述的就是三个点:

  1. LMP的消息的交互是传输在ACL-C 逻辑链路上的,他和ACL-U的区别是通过LLID 来区分的。
  2. ACL-C有更高的优先级,一般控制信号都会有较高的优先级
  3. LMP消息本身没有携带额外的数据错误检测的信息

2.2 Synchronization

   LMP 传输在ACL-C的逻辑链路上面,但这并不能保证传输的时间的以及对方ack的及时性。

 

 2.3Packet Format

 LMP 的数据包的格式有两种,一种是7bit的opcode,另外一种是15bit的opcode

我们发现除了opcode,在最低位还有一个TID,他是transtransaction ID,当它是0 的时候,说明这个LMP message是 master 发起的,当它是1的是时候说明是slave 发起的。

上图中是 header的最低位是0,代表是Transaction ID Initiated by master。

 

2.4Transactions

 transaction 就是一次完整的打成某种目的的传输。所有属于同一个transaction 的单次传输的transaction ID 都是想同的。

比如下面:

LMP version exchange 的Transaction ID 都是 Initiated by slave

另外LMP_setup_complete 是一个 独立PDU,它自己形成一个transaction,

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值