低功耗蓝牙(BLE)学习记录 下载本文

Interval:确定connect interval的时间长度。connInterval = Interval * 1.25 ms。 Latency:connSlaveLatency =Latency。

TimeOut:connSupervisionTimeout= Timeout * 10 ms(100ms~32s之间),当两帧数据之间的时间间隔超过6*connInterval或者connSupervisionTimeout时,则认为连接丢失。

ChM:即ChannelMAP,一共0~36个信道。LSB代表channel0,哪一个是1,则哪一个信道有效。Channel 37~39保留。

Hop:5~16之间的随机值,用于设置HopIncrement。用于计算不使用的信道编号。

unmappedChannel= (lastUnmappedChannel+ hopIncrement) mod 37

如果计算结果是属于保留信道,则通过下式计算:

remappingIndex= unmappedChannelmod numUsedChannels

SCA:设置Master睡眠时钟精确度的最大值。对应表如下:

四、Data Channel PDU

数据信道的帧格式如下:

其中包括16bit Header,长度可变的Payload,和一个信号完整性确认字段(MIC)。 1、关于Header和MIC

Header的数据格式如下:

每个字段的意义如下:

MIC字段使用的时候,有两个条件:1、不能使用于非加密的数据帧;2、数据帧payload长度不能为0。字长为4byte。 2、关于Payload

Payload分为两类,LL Data PDU和LL Control PDU(LLID==11b)。LL Data PDU里面又分为两类,一类是完整数据帧或帧碎片起始帧(LLID==10b),另一类是帧碎片(LLID==01b)。其中,帧碎片帧的帧长度可以为0,而完整(起始)帧的长度不可以为0。

下面具体介绍LL Control PDU: LL Control PDU的帧格式如下:

其帧长度不能为0,其中包含两个字段:Opcode和CtrData。

Opcode用于确定控制帧类型:

假如收到的LLC PDU格式不支持或者是无用帧,则回复LL_UNKNOWN_RSP PDU,此时的Type字段需设置成收到的无用的opcode。 LL_CONNECTION_UPDATA_REQ: 该帧的帧格式如下:

这些信息的意义在下一章的四中有详述。 LL_CHANNEL_MAP_REQ:

LL_TERMINATE_IND:

这个ErrorCode在蓝牙协议中有具体制定意义。[Vol2 Part D] LL_ENC_REQ:

和加密相关的请求帧

LL_ENC_RSP:

和加密相关的回复帧 LL_START_ENC_REQ: 没有CtrData字段 LL_START_ENC_RSP: 没有CtrData字段 LL_UNKNOWN_RSP:

LL_FEATURE_REQ:

LL_FEATURE_RSP:

LL_PAUSE_ENC_REQ: 没有CtrData字段 LL_PAUSE_ENC_RSP: 没有CtrData字段 LL_VERSION_IND:

LL_REJECT_IND: