蓝牙40 BLE 协议栈的研究 TI CC2540 CC2541 OSAL

时间:2024-03-25 17:23:02

 

1.蓝牙:

a  是一种支持短距离通讯的无线技术,主要工作在2.4GHz频带。至今分为五个版本1.1,1.2,2.0,3.0,4.0(4.1),现在市面上流行三种设备传统蓝牙(Bluetooth简称BR),低功耗蓝牙(bluetoothSmart即是Bluetooth Low Energy简称BLE,蓝牙4.0(BluetoothSmartReady即是BR+BLE))

b  蓝牙4.0由传统蓝牙,高速蓝牙和蓝牙低功耗三种规范合成。其中常用的有两种模式(单模->支持(BLE)和双模->支持(BLE+BR))。我们用的CC2540是单模芯片。

c  蓝牙4.0中的BLE(蓝牙低功耗Bluetooth Low Energy)定义了两个频段2.4Ghz(16个信道896/915MHz(896M一个信道915M十个信道),共27个信道。

  速度:支持1Mbps数据传输率下的超短数据包。所有连接都使用蓝牙2.1加入的减速呼吸模式(sniff     subrating)来达到超低工作循环

  跳频:蓝牙规范自适应跳频技术

  主控制:更加智能,可以休眠更长时间,只在需要执行动作的时候才唤醒。

  延迟:可在3ms内实现连接并设置数据传输。

  范围:提高调制指数,最大范围可到100m

  健壮性:所有数据包都经过24bitCRC校验。确保最大程度抵御干扰。

  安全:使用AES128 CCM加密算法进行数据包加密和认证。

  拓扑:每个数据包的每次接收都是用32位寻址,理论上可连接十亿台设备。针对一对一连接,并支持新型拓扑的一对多连接。

d  蓝牙4.0总共40个信道,都分布在2.4GHz,其中0.12.39三个信道用来广播信息。

e  蓝牙4.0的引起超低的功耗而备受瞩目。是3.0的升级版,较3.0更加省电,成本更低,3ms低延迟,超长有效连接距离,AES-128加密;

 

2.BLE

a.蓝牙4.0规范中的一种,其中master最多有7个外设,低功耗,低延迟,低吞吐量。

b.

六种设备状态

  待机状态(standby):设备没有传输和发送数据,并且没有连接到任何设备

  广播状态(Advertiser):周期性广播状态

  扫描状态(Scanner):主动寻找正在广播的设备

  发起链接状态(Initiator):主动向扫描设备发起连接。

  主设备(Master):作为主设备连接到其他设备。

  从设备(Slave):作为从设备连接到其他设备。

五种工作状态

  准备(standby),广播(advertising),监听扫描(Scanning),发起连接(Initiating),已连接(Connected)

四种设备类型

  Cnetral主机(常作为client端):如手机,PC

  Peripheral从机(常作为Service端):如心率计,血糖计

  Observer观察者:

  Broadcast广播者:

连接过程:

Peripheral开启广播-->Central扫描从机广播-->Peripheral接收到Central的扫描请求,Peripheral向Central发送扫描回应数据-->Central向Peripheral发起连接-->开始通信。

c.BLE中的连接参数(ConnectionEvent==确认连接应答信号-->设备大多数情况下都在Sleep状态下,每个ConnectionEvent都由Master发起包,在由Slaver回复)

参数1:Connection Interva-->l两个ConnectionEvent之间的空闲值,单位为1.25ms,最小7.5ms,最大4s。

参数2:Slave Latency-->Slaver设备没有数据要发时,跳过一定数目的ConnectionEvent的值,Rang:0-499.

参数3:Supervision Timeout-->超时时间,就是两个设备在连接的这段时间没有发生通讯而导致连接自动断开的值。Range(10ms-----32s)但是必须满足以下条件参数3>=参数1*(参数2+1)。

d. 兼容性

蓝牙40 BLE 协议栈的研究 TI CC2540 CC2541 OSAL

BLE协议结构

蓝牙40 BLE 协议栈的研究 TI CC2540 CC2541 OSAL

  1. 结构可分为三大层(

控制层(controller)à(HCI、LL、PHY))

协议层(Host)à(L2CAP、SM、ATT、GATT、GAP)

应用层(App)à(GATT Profile和GAP Role/Security Profiles)

  1. 各层单元逻辑

PHY à物理层:主要是射频和电路部分

LL à链路控制层:通过计算器的设置来控制物理层

HCI à通讯层:向host和controller提供一个标准化接口,该层可以由软件api实现或者用硬件接口UART SPI USB 来控制

L2CAPà逻辑链路控制和适配层:负责逻辑链路的连接以及事件的分发,位于基带协议之上。

L2CAP向上层提供面向连接的和无连接的数据服务。它的功能包括:协议的复用能力、分组的分割和重新组装以及数据组提取。L2CAP允许高层协议和应用发送和接受高达64Byte的数据分组

SMà安全服务层:提供配对密匙的发放,实现安全链接和数据交换

ATTà属性层:是BLE中一个很重要的一层,所有的数据都要经过这层,展示属性的称为服务器,与之配对的称为客户端。主机设备可以是服务器也可以是客户端

规定了Client和Server两个角色,数据存在Service端,以Attribute形式存在,Client则以读或写的方式来对Server端数据进行操作

GATTà定义使用ATT的服务框架

GATT规定了配置文件(profile)结构。在BLE中所有的profile或者服务用到的数据块都称为“特性”characteristic,基于ATT层更加细化的根据性质把传输的数据分成特定的类并标上UUID(每类ATT也有一个独特的UUID)

GAPà主要用于设备查找,连接建立,广播发送接收的一些控制

APP层:Profile定义的是特定的一个使用环境,相同的也有个UUID

 

  1. 名词解释

Profile:可以理解成是一种规范,蓝牙组织规定了一系列的profile,如心率计,防丢器等。每个Profile中都会包含多个Service

Service:可以理解成一个服务,在ble从机中,通过多个服务(如电量信息服务,系统信息服务等),每个Service里面包含多个Characteristic特征值。Characteristic特征值才是bel的主体,(如:点量80%。会通过电量的Characteristic特征值存在从机的profile里,这样主机可以通过这个Characteristic来读取80%这个数据。)

Characteristic:Characteristic特征值,主从机的通讯全是通过Characteristic来实现的,可以理解为一个标签,通过这个标签可以获取或者写入想要的内容

UUID:统一识别码我们刚才提到的Service和Characteristic,都需要一个唯一的UUID来标识。

 

CC2540

  1. 芯片特性

内部由一个51内核和基本外设构成,时钟频率可达32MHz,机器周期为一个时钟周期,

拥有内部阻容振荡器,8KBRAM256KBFlash

5通道DMA116位,两个8位定时器,红外生成电路,32KHz有捕捉功能睡眠定时器

数字信号强度指示器(RSSI),电池监视和温度感应器,8通道12ADC2UARTUSB

拥有SmartReadyBlueTooth两个模式CC2541支持(BRBLE模式)

传输速率:低于100kbps

蓝牙40 BLE 协议栈的研究 TI CC2540 CC2541 OSAL

  1. 引脚分配

蓝牙40 BLE 协议栈的研究 TI CC2540 CC2541 OSAL

  1. 最小系统

蓝牙40 BLE 协议栈的研究 TI CC2540 CC2541 OSAL

  1. OSAL系统

蓝牙40 BLE 协议栈的研究 TI CC2540 CC2541 OSAL

  1.