设为首页收藏本站

技术子

 找回密码
 速度加入

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: 活动 交友 discuz
查看: 4964|回复: 7

低功耗蓝牙4.0协议研究(目录)

[复制链接]

61

主题

106

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13794
发表于 2016-6-17 19:40:41 | 显示全部楼层 |阅读模式
    在漫长的协议研究中,自己有一些总结,本想出书,但是自费我是出不起这个钱的,所以我会慢慢的在这个论坛上慢慢的将这个笔记慢慢的展示给大家,我不是专家,所以难免会有错误,希望大家一起学习。

目 录
第一章 协议组成图        1
1.1、协议由HOST层和CONTROLLER层组成        1
1.1.1、CONTROLLER组成        1
1.1.2、HOST组成        2
第二章 控制器        2
2.1、PHY物理层        2
2.1.1、频段        2
2.1.2、调制        2
2.1.3、射频信道        3
2.1.4、发射功率        3
2.2、链路层描述        4
2.2.1、链路层的状态机        4
2.2.2、状态描述        5
2.2.3、bit数据流格式        7
2.2.4、Preamble前导码        8
2.2.4、Access Address接入地址        9
2.2.6、Cyclic Redundancy Check (CRC) 循环冗余码校验        11
2.2.7、DATA WHITENING数据白化        11
2.3、链路层报文结构        13
2.3.1、PDU的报头和长度        14
2.3.2、广播通道的PDU格式        15
2.3.3、数据通道的PDU格式        18
2.4、链路层设备滤波        20
2.5、NRF51822的Radio        21
2.5.1、EasyDMA        21
2.5.2、包结构        22
2.5.3、设备地址--白名单        26
2.5.4、Radio的状态机和时间参数        27
2.5.5、Radio的基本配置        32
2.6、信道        32
2.6.1、调频        34
2.6.2、自适应调频        35
2.7、非连接状态        40
2.7.1、就绪态        40
2.7.2、广播态        40
2.7.2.1、广播通道选择        40
2.7.2.2、广播间隔        41
2.7.2.3、非定向可连接广播事件(ADV_IND)        42
2.7.2.4、定向可连接广播事件(ADV_DIRECT_IND)        44
2.7.2.5、非定向不可连接事件(ADV_NONCONN_IND)        45
2.7.2.6、可发现不可连事件(ADV_DISCOVER_IND/ADV_SCAN_IND)        46
2.7.3、扫描态        46
2.7.4、发起态        47
2.7.5、软件设计广播状态流程图        47
2.8、连接状态        48
2.8.1、连接事件        49
2.8.2、监管超时        50
2.8.3、连接事件传输窗口        50
2.8.4、连接状态--主机        54
2.8.5、连接状态--从机        55
2.8.6、连接事件关闭        57
2.8.7、窗口扩展        58
2.8.8、软件设计连接态流程图        60
2.9、空中接口包        62
2.9.1、广播通道PDU        62
2.9.1.1、Advertising PDUs        62
2.9.1.1.1、ADV_IND、ADV_NONCONN_IND、ADV_SCAN_IND        62
2.9.1.1.2、ADV_DIRECT_IND        66
2.9.1.2、Scanning PDUs        67
2.9.1.2.1、SCAN_REQ        67
2.9.1.2.2、SCAN_RSP        67
2.9.1.3、Initialing PDUS        68
2.9.1.3.1、CONNECT_REQ        68
2.9.2、数据通道PDU        68
2.9.2.1、LL Data PDU        69
2.9.2.2、LL Control PDU        70
2.9.2.2.1、LL_CONNECTION_UPDATE_REQ        72
2.9.2.2.2、LL_CHANNEL_MAP_REQ        73
2.9.2.2.3、LL_TERMINATE_IND        74
2.9.2.2.4、LL_ENC_REQ        75
2.9.2.2.5、LL_ENC_RSP        76
2.9.2.2.6、LL_START_ENC_REQ        77
2.9.2.2.7、LL_START_ENC_RSP        78
2.9.2.2.8、LL_UNKNOWN_RSP        78
2.9.2.2.9、LL_FEATURE_REQ        78
2.9.2.2.10、LL_FEATURE_RSP        79
2.9.2.2.11、LL_PAUSE_ENC_REQ        80
2.9.2.2.12、LL_PAUSE_ENC_RSP        80
2.9.2.2.13、LL_VERSION_IND        80
2.9.2.2.14、LL_REJECT_IND        82
2.9.3、连接态的数据包确认和重发以及多数据发送标志        84
2.9.3.1、序列号(SN)        84
2.9.3.2、预期序列号(NESN)        85
2.9.3.3、更多数据(MD)        85
2.9.3.4、SN、NESN和MD应用的例子        85
2.9.3.5、确认和重发的软件实现        89
2.10、直接测试单元(DTU)        91
2.10.1、UART测试接口        91
2.10.2、测试模式RADIO配置        92
2.10.3、发射机测试        93
2.10.4、接收机测试        94
2.10.5、命令和事件        95
2.10.5.1、命令        95
2.10.5.2、事件        97
2.10.5.2.1、测试状态事件        98
2.10.5.2.2、测试报告报文事件        98
2.10.6、DTU软件设计        99
2.10.7、NRF51822的测试结果        101
2.10.8、测试结果对应的命令和事件        104
2.11、主机控制接口(HCI)        108
2.11.1、物理接口        108
2.11.1.1、UART        109
2.11.2、逻辑接口—HCI包格式        110
2.11.2.1、命令数据包        110
2.11.2.2、事件数据包        112
2.11.2.3、数据包        114
2.11.3、命令和事件类型        115
2.11.4、HCI软件设计        125
2.11.5、HCI模拟数据传输        126
第三章 主机        130
3.1、逻辑链路控制和适配协议(L2CAP)        133
3.1.1、L2CAP信道        133
3.1.2、L2CAP数据包格式        134
3.1.3、低功耗信令信道包格式        135
3.1.3.1、命令拒绝        136
3.1.3.2、连接参数更新请求和响应        137
3.2、属性构成        140
3.2.1、属性句柄(Attribute Handle)        143
3.2.2、属性类型(Attribute Type)        144
3.2.3、属性值(Attribute Value)        146
3.2.4、属性许可(Attribute Permissions)        146
3.3、GATT服务器构成        148
3.3.1、服务        149
3.3.1.1、服务声明        150
3.3.1.1.1、服务声明格式        152
3.3.2、包含服务«Include»        153
3.3.3、属性类型分组        154
3.3.4、特性«Characteristic»        155
3.3.4.1、特性声明        156
3.3.4.1.1、属性值—特性性质(Characteristic Properties)        156
3.3.4.1.2、属性值—特性的属性句柄(Characteristic Value Attribute Handle)        157
3.3.4.1.3、属性值—特性的属性类型(Characteristic UUID)        157
3.3.4.2、特性值声明        157
3.3.4.3、特性描述符声明        158
3.3.4.3.1、特性扩展性质描述符        158
3.3.4.3.2、特性用户描述描述符        159
3.3.4.3.3、客户端特性配置描述符        159
3.3.4.3.4、服务器特性配置描述符        160
3.3.4.3.5、特性表示格式描述符        161
3.3.4.3.6、特性聚合格式描述符        163
3.4、属性协议(ATT)        164
3.4.1、通信协议方法        164
3.4.2、属性协议包格式        165
3.4.3、属性协议PDUs        165
3.4.3.1、交换MTU        166
3.4.3.2、找信息请求\应答(Find Information Request\Response)        167
3.4.3.3、按类型值查找请求\应答(Find By Type Value Request\Response)        169
3.4.3.4、按类型读请求\应答(Read By Type Request\Response)        171
3.4.3.5、读请求\应答(Read Request\Response)        174
3.4.3.6、大对象读请求\应答(Read Blob Request\Response)        176
3.4.3.7、多重读取请求\应答(Read Multiple Request\Response)        177
3.4.3.8、按组类型读取请求\应答(Read By Group Type Request\Response)        178
3.4.3.9、写请求\应答(Write Request\Response)        181
3.4.3.10、写命令(Write Command)        182
3.4.3.11、签名写命令(Signed Write Command)        183
3.4.3.12、准备写请求\应答(Prepare Write Request\Response) 和执行写请求\应答(ExecuteWrite Request\Response)        184
3.4.3.13、句柄通知(Handle Value Notification)        188
3.4.3.14、句柄指示\确认(Handle Value Indication\Confirmation)        189
3.4.3.15、错误应答        190
3.5、GATT规程和ATT协议映射        195
3.5.1、GATT规程        195
3.5.1.1、发现服务和特性        195
3.5.2、ATT协议与GATT映射表        196
3.6、安全管理( Security Manager (SM))        205
3.6.1、加密做了什么和加密需求        205
3.6.2、加密相关计算公式        207
3.6.3、加密配对绑定过程        209
3.6.3.1、配对特征交换得到临时密钥(TK)值        211
3.6.3.1.1、Input和Output能力        213
3.6.3.1.2、Just Work:只工作        214
3.6.3.1.3、Passkey Entry:输入密码        215
3.6.3.1.4、Out of Band:带外        215
3.6.3.2、身份确认以及短期秘钥(STK)生产        216
3.6.3.2.1、身份确认值计算        216
3.6.3.2.2、短期秘钥(STK)值计算        217
3.6.3.3、特定密钥计算        218
3.6.3.3.1、长期密钥LTK计算        218
3.6.3.3.2、设备地址类型和身份解析密钥IRK        220
3.6.3.3.3、连接签名解析密钥CSRK        222
3.6.3.3.4、签名计算        222
3.6.4、加密标准AES-CCM        223
3.6.5、完整加密过程图表        226
3.6.6、安全管理传输协议        229
3.6.6.1、安全管理命令包格式        229
3.6.6.2、配对请求Pairing Request和配对应答Pairing Response        229
3.6.6.3、配对确认值Pairing Confirm        232
3.6.6.4、配对随机数Pairing Random        233
3.6.6.5、配对失败Pairing Failed        234
3.6.6.6、加密信息Encryption Information        235
3.6.6.7、主机鉴定Master Identification        235
3.6.6.8、身份信息Identity Information        236
3.6.6.9、身份地址信息Identity Address Information        237
3.6.6.10、签名信息Signing Information        238
3.6.6.11、安全请求Security Request        238
3.6.7、NRF51822加密硬件模块        239
3.6.7.1、电子密码本AES Electronic Codebook mode encryption        239
3.6.7.1.1、ECB程序设计        239
3.6.7.2、AES CCM Mode Encryption (CCM)        241
3.6.7.2.1、AES-CCM模块工作流程        241
3.6.7.2.2、AES-CCM模块加密过程        241
3.6.7.2.3、AES-CCM模块解密过程        242
3.6.7.2.4、CCM数据结构        243
2.6.7.2.5、AES-CCM模块要求RADIO的配置        244
2.6.7.2.6、加密包在RADIO中传输模式        245
2.6.7.2.7、解密包在RADIO中接收模式        245
3.6.7.3、快速地址解析模块(Accelerated Address Resolver (AAR))        247
3.6.8、安全管理空中数据计算和分析        248
3.6.8.1确认值计算        249
3.6.8.2、第1次连接加密----配对绑定STK和SK计算        253
3.6.8.3、第2次连接加密----LTK和SK计算        256

================================
欢迎加入 蓝牙BLE4.0协议研究 177341833 大家庭
================================


回复

使用道具 举报

0

主题

7

帖子

32

积分

新手上路

Rank: 1

积分
32
发表于 2016-7-5 12:23:55 | 显示全部楼层
这种精神让人佩服
回复 支持 反对

使用道具 举报

0

主题

25

帖子

66

积分

注册会员

Rank: 2

积分
66
发表于 2016-7-5 14:11:36 | 显示全部楼层
鼎力支持
回复

使用道具 举报

1

主题

6

帖子

237

积分

中级会员

Rank: 3Rank: 3

积分
237
发表于 2016-10-19 21:33:03 | 显示全部楼层
能不能搞几个工程实例讲讲呀,主要就是蓝牙的连接过程分析,DA14580如何与手机蓝牙传输数据,还有就是如何在工程中设置服务和特征值,手机读取和修改特征值是使用DA14580的sdk哪个函数等等,因为这些都是做工程实际要用到的啊,主要就是作为主机和从机是需要哪些配置,主机和从机之间相互收发数据,服务和特征值等等
回复 支持 反对

使用道具 举报

0

主题

1

帖子

206

积分

中级会员

Rank: 3Rank: 3

积分
206
发表于 2017-6-6 18:30:15 | 显示全部楼层
楼主 精神可嘉 向你学习
回复 支持 反对

使用道具 举报

0

主题

2

帖子

32

积分

新手上路

Rank: 1

积分
32
发表于 2017-8-1 00:08:34 | 显示全部楼层
这种执着的精神值得我们学习,加油!!!
回复 支持 反对

使用道具 举报

0

主题

12

帖子

42

积分

新手上路

Rank: 1

积分
42
发表于 2019-12-21 17:46:26 | 显示全部楼层
记不得是哪一年,开奖网“阊门北漂”去苏州参加作协的一个文学活动,会议闲暇,一个人抽空偷偷去阊门一看,看就看了,也仅仅是一看,没有必要寻祖觅宗的深而探之。回到宾馆房间才发现我要带的那本书没带来,不知从何时起,出门习惯包里总要带上一两本书,等车等人空闲时翻上几页,如此打发时光心中宁静。带来的包被翻了个底朝天,找来找去找不到那本书。找不到书,我就真没了主心骨,喝酒打牌太无聊了,一下子不知干什么好。在房间里困兽一样转了几圈后,北京pk10立马决定出门找书店买书,刻不容缓!一小时后我带着陶老师的《苏州记》回到宾馆,回到安静时光之中。
       这几年,我又添了个不太好的新毛病,读到一作家的书,如果甚是喜欢,爱不释手了,我立刻就百度一下,看看这个作家出了哪些书,然后在网上一一搜寻,一网打尽,不管是一套还是一箱,尽数买来,挑灯夜读慢慢细品,一而再,再而三,反复细嚼,连呼过瘾,如有一本不买来,害了相思病一样寝食难安,夜不成眠,用尽心思,重庆欢乐生肖哪怕在旧书网上高价买来,才罢了心愿
回复 支持 反对

使用道具 举报

0

主题

2

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2020-1-10 20:55:25 | 显示全部楼层
我是19年11月份开始接触BLE的,也就是Nordic的NRF52832,因为公司的项目好巧不巧的要用到BLE。慢慢的觉得自己有了一个要发展的方向,想从应用层逐渐深入到协议层,但是网上的关于蓝牙协议栈的讲解真的是太杂了,要么就是太泛,要么就是不够系统,在一次偶然的机会来到这个论坛,瞬间感觉找到了组织,真的很开心。楼主加油,顶你!!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 速度加入

本版积分规则

Archiver|手机版|小黑屋|技术子 ( 粤ICP备14028582号  

GMT+8, 2020-10-23 02:30 , Processed in 0.108474 second(s), 33 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表