suosuozxj的个人空间 https://blog.eetop.cn/1069167 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

低功耗蓝牙BLE学习总结(3)

热度 2已有 6024 次阅读| 2015-8-31 14:46 |个人分类:ble

3.BLE物理层

3.1 BLE工作频率和信道分

BLE2.4GHz ISM频段上工作,频率范围为2.400~2.4835GHz,其将这段频带分为40个带宽为2MHz的信道,其中第k个信道的中心频率计算如下

f_{k} = 2402 + k * 2MHz, k = 0,..,39.

2.2 GFSK

BLE采用GFSK调制,GFSK源于FSK,其基本思想是通过改变载波频率来携带调制输入符号。以2FSK为例,其输入符号为01,通过在输入0时将载波频率减小,在输入1时将载波频率增大,调制信号就携带了原始的数据信息。对于FSK而言,其输入的01序列(其中0被映射为-1)可以被看作方波,若在调制之前对该方波进行高斯滤波,用滤波结果进行频移键控,那我们就得到了GFSK

GFSK调制的参数主要有两个:一个是Modulation Index h,其控制了载波相位的变化速度,进而控制了GFSK的频偏程度;另一个是Bandwidth-Bit period Product BT,其用于确定高斯滤波的具体参数。在BLE中,h取值为0.45~0.55BT取值为0.5

4. BLE MAC

4.1

BLE设备有5种工作状态:

·         >Standby状态

·         >Adverting状态(从该状态进入Connection状态时,作为Slave角色)

·         >Scanning状态

·         >Initiating状态(从该状态进入Connection状态时,作为Master角色)

·         >Connection状态

BLE40个物理信道中的3个作为Advertising信道,分别是0,12,39,其对应索引号为37,38,39

4.2 包格

发射BLE Packet时,除了CRC以外的其它部分均从小端开始传输,而CRC则从大端开始传输。设备地址是BLE Packet中的一个重要部分,协议规定了设备地址的长度为48bit,地址规范不再赘述。

BLE MAC层的包格式如上图所示,其中Preamble用于同步发射机和接收机的载波频率和时钟,长度为8bit。在Advertising模式中,Preamble取值为10101010bAdvertising模式下的Access Address域的取值为10001110100010011011111011010110b(0x8E89BED6)PDU域即BLE Packet的协议数据单元,其基本格式为16bit Header加上0~37bytePayloadHeader中包含了Length域用于指示Payload的长度,Type域则用于指示PDU的类别。

4.2.1广播包

PDU =  Header2 Bytes+ Payload 37 Bytes max.

HeaderPDU type

10000 - ADV_IND connectable undirected advertising event.这个用来广播可以连接的设备。说明自己是可以被连接的。广播中带有自己的地址。

20001 - ADV_DIRECT_INDconnectable directed advertising event。这个包用来向特定的设备建立连接

30010 -  ADV_NONCONN_INDnon-connectable undirected advertising event。这个包用来广播信息。

40011 - SCAN_REQresponse to scan request form. scanner扫描请求响

50101 - SCAN_RSPconnect request by initiator连接请

60110 -CONNECT_REQconnected directed advertising event 可发现非定向广播事

  • 非定向广播包(Undirected advertising packets

Payload  = AdvA (6 Bytes) + AdvData (31 Bytes max.) ; 

// AdvA  contains advertiser‘s public address if TxAdd = 1, or a random address if TxAdd = 0; 

// AdvData advertising data;

  • 定向广播包(Directed advertising packets

Payload  = AdvA (6 Bytes) + InitA(6 Bytes) ; 

// AdvA  contains advertiser‘s public address if TxAdd = 1, or a random address if TxAdd = 0; 

// InitA contains initiator's address if RxAdd = 1, or a random address if RxAdd = 0;

AdvData 结构:| AD 结构1 | AD结构2 |……

每个AD结构都是:| Data length | AD type | AD data |

简单的说就是 | 数据长度 | AD数据种类 | 数据 | 这种一块一块拼起来的数据包。

AD type定义:

Service UUIDs: 需要外部查表,不用这个字段。

Local Name0x09

Flags0x01

Manufacturer Specific Data0xff . The first 2 octets contain the Company Identifier Code followed by additional manufacturer specific data

TX power Level 0x0A

对于IBeacon使用的ADV_IND PDU而言,Payload中的前6byte是发射机的设备地址,其后则是上层协议的数据。CRC域由PDU计算得到

4.2.2扫描请求及扫描响应

PDU =  Header2 Bytes+ Payload 37 Bytes max.

Header

10011 - scan request for further information from advertiser 扫描请

20100 - response to scan request from scanner 扫描响

  • 扫描请求

Payload  = ScanA (6 Bytes) + AdvA(6 Bytes) ;

// ScanA  contains Scanner's public address if TxAdd = 1, or a random address if TxAdd = 0; 

// AdvA  contains advertiser‘s public address if TxAdd = 1, or a random address if TxAd

4.2.3. 连接请求

PDU =  Header(2 Bytes)+ Payload (34 Bytes)

Header:0101 - connect request by initiator

Payload =InitA(6 Bytes)+ AdvA(6bytes)+ LLData(22 Bytes)

LLData 包含连接信息,详细结构参考bluetooth 4.0 协议。

4.2.4. LL 数据通道及控制包

PDU =  Header(2 Bytes)+ Payload (27 Bytes max.)

Header:详细说明参考bluetooth 4.0 协议;

  • LL 数据通道

Payload  = 0~27 bytes

  • LL 控制包
Payload = 1~23 Bytes

若只考虑蓝牙设备连接之后,评估数据传输速率

  • 最大包长度:preamble(1 Byte)+ Access Address(4 Bytes)+ PDU(29 Bytes) + CRC(3 Bytes)= 41 Bytes
  • 射频PHY传输速率 1Mbps


点赞

发表评论 评论 (2 个评论)

回复 module_wsy 2019-4-18 15:16
来点个赞。翻译很好。
回复 研究生笑笑 2024-1-10 10:45
是翻译的吗?为什么BLE学习总结3个系列的图片都失效了,看不了?

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 0

    获赞
  • 2

    评论
  • 193

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-3 23:55 , Processed in 0.018985 second(s), 15 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部