首页 > 其他 > 详细

蓝牙基础知识进阶——Link Manager通用规则介绍

时间:2014-02-10 16:59:47      阅读:381      评论:0      收藏:0      [点我收藏+]


Link Manager Protocol(简称LMP)是用来建立和控制link的。它在整个蓝牙的架构中所处的位置如图0-1中红色矩形所示。



bubuko.com,布布扣

图0-1 Link Manager在蓝牙架构中所处的位置


 


一、通用的规则


Q1:LMP的msg是如何进行传输的


一般而言,我们认为LMP的msg是通过ACL-C来进行传输,在baseband那章中我们知道ACL-C和ACL-U是通过LogicalLink Identifier(LLID)域来进行区分的。LLID是2bit大小,当他的值为11b’的时候,表示传输的是ACL-C的logical link。因此,他的纠错和帧错能力都是由ACL传输来实现的,他本身并没有包含对应的错误侦测和纠正的info。


master和slave进行交换的时候,master发送一个msg给slave,slave回应一个ack给master。然而,我们并不能很准确地知道对方状态改变的时间。尤其是在负载比较重的情况下。

bubuko.com,布布扣


图1-1 master和slave之间的lmp msg的传输示意图


         从图1-1可以看出,slave并不知道master是何时开始发送message的,所以,他无法知道Tdeliver的大小,master也不知道slave是何时开始回应ack的,所以,无法确定Tack的大小。不过有一点需要注意的是,每次message的发送间隔都不得大于Tpoll。Tpoll其实就是master和特定slave之间定义的传输最大时间间隔。


         Q2:LMP的格式是什么样子的?


         LMPpacket的格式如下图1-2所示:


bubuko.com,布布扣

图1-2 LMP PDU的packet格式


         从图中可以看出,他主要由三个部分组成:TID(Transaction ID),OpCode以及Payload。


         TID:同一个传输的TID的值需要相同,若是这个传输是由master初始化的,则TID=0,反之,由slave初始化的传输TID则为1。这里所谓的传输,就是一次类似一次控制,比如连接的建立是一个传输,连接的断开是一个传输等。


OpCode有两种长度,分别是7bit和15bit,如何来区分7bit和15bit呢,当7bit的值为124~127之间的值时,就表示有ExtendedOpcode,也就是opcode的长度为15bit。因为LMP都是在ACL-C的逻辑link上传输的,一版而言他的packet type使用的是DM1的格式。当然也有一种另外,就是可以使用DV的packet type进行传输,它的条件就是有HV1的SCO link存在,同时payload的长度小于9byte。当然此时DM1的packet type仍然可以使用。所以,任何一个LMP PDU都不能超过一个DM1的packet payload的length。


蓝牙基础知识进阶——Link Manager通用规则介绍

原文:http://blog.csdn.net/u011960402/article/details/19029413

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!