第三章 初始CC2640蓝牙协议栈
2016-03-17 11:33
169 查看
蓝牙协议栈由两部分组成:控制端和主机。控制端和主机遵循标准蓝牙基本传输速率或者增强型数据传输速率。这两部分是单独进行工作的。所有的配置文件和应用都是在GAP和GATT层上进行的。
物理层(PHY)是一种带宽自适应跳频GFSK(高斯频移键控),工作在未授权的全球都允许使用的2.4GHz ISM(工业,科学,操作和医疗)频段。
链路层(LL)控制无线射频工作状态,他有五种状态:待机状态,广播状态,扫描状态,启动状态,连接状态。在未连接的情况下,广播者广播数据包,直到有扫描者扫描。一个启动者响应广播者连接请求。如果广播者同意,广播者和启动者将会进入一个连接状态。一旦一个设备被连接,他将会是客户端或者服务端二者选其一。启动连接的设备变成客户端,而接受连接的将会变成服务端。
主机控制接口层(HCI)提供了主机与控制器之间的通信手段,控制器使用一个标准化的接口。该层可以通过一个可编程接口来实现,该可编程接口可以是UART,SPI,或USB。标准的HCI命令和事件在《Bluetooth
Core Space[14]》中描述。TI有该应用的使用指南《Vendor Specific Guide[1]》。
逻辑链路控制和适配协议层(L2CAP)为上一层提供数据封装服务,包括逻辑点到点数据通信。
加密管理层(SM)定义配对和密钥分配方法,还为其他层协议栈提供安全连接和数据交换。
通用接入协议层(GAP)是应用层配置文件的接口,用于处理设备的发现和连接相关的服务。Gap还有处理安全连接等特征,See section 5.1 for more information on TI’s implementation
of the GAP layer.
属性协议层(ATT)允许一个设备暴露一些数据块给其他设备,另外的设备称为“属性”。
通用属性协议层(GATT)是一个使用ATT时的定义于服务框架的子过程,也就是所有数据通信在一个可连接的两个设备之间处理通信总协定的子过程。因此引用程序能直接使用GATT来传输数据。See
section 5.3 for more information on TI’s implemention of the ATT and GATT layers.
备注:在实际使用时,我们都不涉及,各大厂商都会封装好。但是要改某些参数,各大厂商都会提供一些接口函数让我们来使用。可以不用关心。具体涉及哪些配置文件,将会在相关章节中提出。
相关文章推荐
- C# 托管资源 与 非托管资源
- brew时HOMEBREW_GITHUB_API_TOKEN错误
- 在Java中使用MongoDB
- Java 回顾笔记_Sting类1
- CentOS7 安装 mongodb3.2.3 详细步骤
- linux-centos配置java环境
- Android 之 NFC
- Swift 正向传值以及利用闭包(closure)实现反向传值(七)
- 【leetcode】【226】Invert Binary Tree
- Java类获取Spring中bean的5种方式
- JavaScript 闭包
- 用vlc搭建简单的流媒体代理服务器
- spring 定时任务的 执行时间设置规则
- coding代码仓库的配置和代码上传
- 关于基类和派生类之间的关系
- js 判断id 是否存在
- 设计模式学习笔记——观察者模式
- Android微信支付遇到的坑
- 【数据结构与算法】自己动手实现图的BFS和DFS(附完整源码)
- 解决常见的masksToBounds离屏渲染带来的性能损耗