电子产业一站式赋能平台

PCB联盟网

搜索
查看: 19|回复: 0
收起左侧

从0开始学习BLE:从BLE协议到代码全面解析Nordic的blinky实例

[复制链接]
匿名  发表于 昨天 17:49 |阅读模式
很多初学者看过BLE相关资料后对BLE的工作过程仍然是一头雾水,本文从BLE工作过程中的实际数据出发,结合BLE协议,再到nordic代码架构,用一个具体实例帮大家进行全面的分析,从而达到通过窥其一斑而知全身的目的。

BLE架构图在文章标题中我们多次引用这份架构图,只因为这份图实在是太重要了,但是对于初学者来说可能理解不了,还是希望大家多看看这张图,尤其是学习协议理论上的知识的时候。话不多说,开始我们今天的分析。一,协议层面首先对协议做下回顾,广播就不讲了,讲的地方太多了,咱们直接从数据包开始。数据包的结构如下:


数据包的PDU的头部的LLID,这是区分包的用途的主要标识。LLID:(Logical Link Identifier),信道标识符00 表示为保留;
01表示为链路层数据PDU,传输到上层的数据且L2CAP消息是连续分段或空的PDU;
10 表示为链路层数据PDU,传输到上层的数据且L2CAP消息的起始或未分段的完整I2CAP消息
11表示为链路层控制包,链路层完成控制

LLID=0x11时的CtrlType

LLID=0x11时,表示链路控制包,在链路控制包中,CtrType域标识了控制包,14 个控制包是特定的。CtrData或将包含控制包特定的控制信息

LLID=0x11时CtrType的内容LLID=0x10时报文结构

信道ID:CID(Channel Identifier)

CID=0x04 属性协议的操作码,表示数据是传输的ATT层的
CID=0x04后面紧跟属性协议的操作码
下面我们重点要讲的就是一系列操作码。
二,逻辑层面(按包顺序)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表