CC2541的BLE协议栈构成

  协议定义的是一系列的通信标准, 通信双方需要共同按照这一标准进行正常的数据收发; 协议栈是协议的具体实现形式, 就是用代码实现的函数库, 以便于开发人员调用。
  BLE 协议栈将各个层定义的协议都集合在一起, 以函数库的形式实现, 并给用户提供一些应用层 API, 供用户调用。
   协议栈的每个例程都不是单独存在的, 蓝牙是为了能够通信, 想要通信就必须遵守一定的规则, Profile 就可以理解为相互约定的规则, 因为每个协议栈demo 都 会 有 一 个 Profile 与 之 对应, 例如SimpleBLExxx 对应的就是simpleGATTprofile, 大多数 profile 都是蓝牙组织 SIG 规定好的, 但是, 如果我们的项目不涉及到跟第三方的设备进行互联, 那么我 们 完 全 可 以 自 定 义 profile , 例 如 , TI 的 SimpleBLEPeripheral 从 机 和SimpleBLECentral主机工程, 就是自定义的profile , 0xfff1~0xfff5。

一、BLE 协议栈的构成

  协议栈的实现方式采用分层的思想, 控制器部分包括: 物理层、 链路层, 控制接口层,主机部分包括: 裸机链路控制及自适应协议层、 安全管理层、 属性协议层、 通用访问配置文件层(GAP), 通用属性配置文件层(GATT)。 BLE 协议的构成如下图所示:
在这里插入图片描述

1.1、PHY层

  物理层(PHY) RF 规格特性:
  运行在 2.4GHz ISM band (此频段主要是开放给工业、 科学、 医学三个主要机构使用, 属于Free License, 无需授权许可, 只需要遵守一定的发射功率(一般低于1W), 并且不要对其它频段造成干扰即可)
  GFSK 调制方式(高斯频移键控)
  40 频道 2MHz 的通道间隙
  3 个固定的广播通道
  37 个自适应自动调频数据通道

1.2、LL 层

  RF 控制层, 控制芯片工作在 standby(准备)、 advertising(广播)、 scanning(监听/扫描), initiating(发起连接)、 connected(已连接) 这五个状态中的一种。 五种状态的切换描述为: advertising(广播) 不需要连接就可以发送数据(告诉所有人, 我来了), scanning(监听/扫描) 来自广播的数据, initiator(发起人) 将携带 connection request(连接请求) 来响应广播者, 如果 advertiser(广播者) 同意该请求, 那么广播这和发起者都会进入已连接状态, 发起连接的设备变为 master(主机), 接收连接请求的设备变为 slave(从机)。

1.3、HCI 层

  通信层, 向 host 和 controller 提供一个标准化的接口。 该层可以由软件 api 实现或者使用硬件接口 uart、 spi、 usb 来控制。

1.4、L2CAP 层

  相当于快递, 将数据打包, 可以让客户点对点的通信。

1.5、SM 层

  安全服务层, 提供配对和密钥的分发, 实现安全连接和数据交换。

1.6、ATT 层

  ATT 环境中, 允许设备向另外一个设备展示一块特定的数据, 称之为“属性”, 展示“属性” 的设备称为服务器, 与之配对的设备称为客户端。 链路层状态(主机和从机) 与设备的 ATT 角色是相互独立的, 也就是说, 主机设备可以是 ATT 服务器, 也可以是 ATT客户端。 从机也一样。

1.7、GATT 层

  从名字就能看出, GATT 是在 ATT 上面的一层结构, 定义了使用 ATT 的服务框架,GATT 规定了配置文件(鼎鼎有名的 profile) 的结构, 在 BLE 中, 所有被 profile 或者服务用到的数据块都称为“特性, characteristic” 两个建立连接的设备之间的所有数据通信都是通过 GATT 子程序处理, 应用程序和 profile 直接使用 GATT 层, 在后面具体的代码中, 我们会经常见到 GATT, 数据交互也是再GATT层。
  以上各层, 全部封装在 lib 库中, 对外提供接口函数。 函数库的OSAL、 HAL、 Profile、APPS 等均是源码的形式提供。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值