開啟主選單

求真百科

低功耗藍牙5·0開發與應用

來自 孔夫子網 的圖片

低功耗藍牙5·0開發與應用》,副標題:基於nRF52系列處理器(提高篇),萬青 著,出版社: 北京航空航天大學出版社。

書籍是用文字、圖畫和其他符號,在一定材料上記錄各種知識,清楚地表達思想,並且制裝成卷冊的著作物[1],為傳播各種知識和思想,積累人類文化的重要工具。它隨着歷史的發展,在書寫方式、所使用的材料和裝幀形式[2],以及形態方面,也在不斷變化與變更。

目錄

內容簡介

隨着藍牙學習的深入,開發者不得不面對諸如藍牙安全配置、藍牙實戰應用、藍牙主從設備互連、藍牙組網等實際需求,本書正是在這個背景下誕生的。本書主要講述了對藍牙的參數與安全連接、藍牙從機綜合應用、主機搭建與發起連接、主機數據傳輸以及主從組網應用等內容,深入解決低功耗藍牙開發人員的需求痛點,進一步提高低功耗藍牙的開發能力。

目錄

第1篇藍牙工程搭建篇

第1章藍牙5.0基礎知識以及學習規劃2

1.1藍牙5.0基礎知識2

1.1.1藍牙5.0簡介2

1.1.2藍牙BLE協議棧結構3

1.2藍牙BLE如何實現連接與通信5

1.2.1從機廣播5

1.2.2主機掃描6

1.2.3建立連接7

1.2.4發送與接收數據8

1.3學習規劃9

1.3.1藍牙BLE基礎工程搭建10

1.3.2藍牙服務的建立10

1.3.3藍牙數據傳輸10

1.3.4藍牙參數及安全設置11

1.3.5從機藍牙綜合應用11

1.3.6主機的搭建以及組網12

第2章藍牙BLE樣例的建立13

2.1藍牙BLE樣例工程結構13

2.2藍牙主函數21

2.2.1外設初始化23

2.2.2協議棧層配置25

2.2.3應用層配置28

2.2.4電源管理30

2.3下載驗證31

第3章藍牙程序信息Log顯示34

3.1Log打印串口輸出配置34

3.2Log打印RTT的輸出配置37

3.3Log日誌參數__________41

3.3.1Log日誌輸出顏色41

3.3.2Log日誌時間戳41

3.3.3Log日誌打印類型43

3.3.4模塊配置的日誌使能44

第4章藍牙協議棧下的軟件定時器47

4.1軟件定時器47

4.2藍牙BLE下軟件定時器配置48

4.2.1BLE定時器聲明48

4.2.2定時器開始定時51

4.2.3定時器超時處理52

4.2.4主函數編寫52

4.3應用與調試53

第5章藍牙協議棧下按鍵的使用55

5.1按鍵下控制觸發LED燈55

5.1.1協議棧下板級設備配置55

5.1.2下載與驗證59

5.2按鍵下的長按和短按59

5.2.1長按與短按的配置59

5.2.2按鍵數量的增加64

5.2.3長按與短按的分離66

5.3本章小結68

第6章藍牙協議初始化69

6.1nRF52832藍牙協議棧初始化函數結構69

6.2協議棧回復使能應答70

6.2.1協議棧使能70

6.2.2議棧時鐘設置71

6.3協議棧默認配置的設置__________74

6.3.1配置鏈接數目和角色74

6.3.2配置MTU協商值76

6.3.3設置定製的UUID數目77

6.3.4GATTS的屬性表大小77

6.3.5使能服務變化特徵值78

6.4使能協議棧80

6.5註冊藍牙處理事件80

6.6應用:協議棧採用內部RC運行83

第7章通用訪問規範GAP84

7.1藍牙GAP84

7.2GAP初始化安全模式配置85

7.3設備名稱修改與外觀設置87

7.3.1藍牙設備名稱設置87

7.3.2中文廣播名稱設置90

7.3.3藍牙應用圖標的設置93

7.4GAP初始化設置連接參數95

7.4.1GAP連接參數定義95

7.4.2連接參數配置96

7.5本章小結101

第8章藍牙連接參數更新102

8.1藍牙連接參數更新函數結構102

8.1.1連接更新的配置102

8.1.2連接參數更新描述103

8.1.3連接參數更新應答104

8.1.4主機協商結果處理104

8.2連接參數更新步驟105

8.3參數更新過程109

8.4本章總結112

第9章藍牙廣播初始化分析113

9.1nRF52832藍牙BLE廣播初始化113

9.1.1廣播參數定義114

9.1.2廣播模式配置117

9.1.3藍牙廣播的啟動119

9.2不進入Idle無效模式124

9.3藍牙BLE廣播響應包125

第2篇藍牙服務任務建立篇

第10章低功耗藍牙BLE之LED燈任務的讀/寫130

10.1nRF52832藍牙協議的分層130

10.1.1應用層131

10.1.2控制層132

10.1.3主協議棧層132

10.2通用訪問規範(GAP)133

10.2.1角色133

10.2.2從機廣播133

10.2.3主機掃描並發起連接134

10.3通用屬性配置文件(GATT)134

10.3.1數據配置文件135

10.3.2服務135

10.3.3特性135

10.4定製私有文件服務137

10.4.1工程框架的搭建137

10.4.2私有主服務的建立137

10.4.3服務特性的設置139

10.4.4協議棧事件處理143

10.4.5應用層的實現144

10.5下載驗證146

第11章藍牙BLE的按鍵通知148

11.1原理分析148

11.2按鍵通知特性的建立148

11.2.1特性參數配置149

11.2.2GATT屬性配置149

11.2.3特性添加150

11.3按鍵處理與通知數據上傳152

11.3.1按鍵處理152

11.3.2通知數據上傳函數153

11.4下載驗證154

11.5連接後自動使能CCCD155

11.5.1連接時發起回調155

11.5.2更新從機屬性信息156

第12章藍牙BLE的電池服務159

12.1電池服務函數庫159

12.1.1電池函數庫文件的添加159

12.1.2電池服務建立160

12.1.3電池採樣步驟164

12.2應用層的實現165

12.2.1電池服務的調用165

12.2.2電池參數值的採集166

12.2.3電池電量的更新168

12.2.4定時器設計171

12.2.5主函數編寫172

12.3下載與測試173

第13章藍牙心電服務的建立175

13.1工程項目的建立175

13.1.1主函數的建立176

13.1.2外設部分初始化__________176

13.1.3服務初始化177

13.2心率服務設計180

13.2.1心率服務包含的特性180

13.2.2身體測量位置特性的添加182

13.2.3心率服務特性的添加183

13.2.4心率數據接口格式185

13.2.5心率數據上傳188

13.3設備信息服務設計191

13.4下載驗證197

第14章藍牙任務的UUID設置199

14.1UUID設置規則199

14.1.1藍牙技術聯盟UUID199

14.1.2供應商特定的UUID199

14.2程序中UUID的設置201

14.2.1藍牙協議小組公共UUID設置201

14.2.2私有服務UUID設置202

14.2.3UUID類型切換205

14.3應用與調試206

第15章藍牙派發回調機制208

15.1觀察者模式分析208

15.1.1觀察者observer模型208

15.1.2觀察者observer運行機制211

15.1.3片上SoC事件派發214

15.2回調機制的驗證215

15.3本章小結216

第3篇藍牙數據傳輸與存儲篇

第16章藍牙BLE之藍牙串口218

16.1藍牙串口工程的建立218

16.1.1主函數的建立219

16.1.2外設部分初始化220

16.1.3服務初始化221

16.2藍牙串口服務頭文件的設計222

16.2.1串口服務函數聲明222

16.2.2數據結構體設計222

16.3藍牙串口服務的設計224

16.3.1開通應用主服務224

16.3.2藍牙接收和發送特性的添加226

16.3.3應用層的實現228

16.4藍牙串口數據通道的搭建228

16.4.1藍牙事件派發函數228

16.4.2處理串口寫事件229

16.4.3處理串口接收事件231

16.4.4數據包長度控制233

16.5下載驗證236

第17章藍牙BLE遙控器238

17.1遙控指令設置原理238

17.2遙控OLED顯示239

17.2.1OLED顯示原理239

17.2.2OLED驅動的編寫241

17.2.3手機遙控OLED顯示247

17.3應用與調試249

第18章藍牙BLE溫濕度檢測250

18.1溫濕度DHT11驅動250

18.2溫濕度採集方法一253

18.2.1應用層初始化傳感器253

18.2.2採集指令發送254

18.2.3下載與測試255

18.3溫濕度採集方法二257

18.3.1初始化傳感器257

18.3.2私有任務建立259

18.3.3採集溫濕度數據上傳261

18.3.4定時器的建立與啟動262

18.3.5下載與調試263

18.4本章總結264

第19章藍牙Flash存儲之fstorage265

19.1藍牙Flash存儲265

19.2Fstorage存儲編寫API266

19.2.1Flash區域聲明266

19.2.2寫數據267

19.2.3讀數據269

19.2.4整頁擦除270

19.3程序存儲操作的實現271

19.4應用與調試275

第20章藍牙Flash存儲之FDS276

20.1藍牙Flash存儲模塊276

20.2FDS庫函數API277

20.3FDS的讀/寫過程281

20.3.1FDS數據幀格式281

20.3.2FDS文件寫入和查找方式282

20.3.3FDS數據更新284

20.3.4FDS數據擦除與垃圾回收284

20.4FDS方式編程方法285

20.4.1FDS配置參數285

20.4.2FDS配置流程287

20.5應用與調試293

第21章遠程傳輸數據Flash存儲294

21.1兩種存儲方式對比294

21.2藍牙接收數據fstorage方式下存儲295

21.2.1Fstorage模式初始化295

21.2.2Fstorage事件回調函數296

21.2.3數據接收回調處理297

21.2.4下載與測試298

21.3藍牙接收數據FDS方式下存儲301

21.3.1設置FDS數據格式301

21.3.2配置FDS的記錄參數301

21.3.3初始化FDS文件系統302

21.3.4數據接收回調處理302

21.3.5下載與測試305

第22章nRF52xx藍牙通信包307

22.1空中數據接口307

22.1.1空中數據包格式307

22.1.2廣播頻道PDU域格式309

22.1.3連接數據頻道PDU域格式315

22.2廣播包抓取分析316

22.2.1抓取的廣播包特徵317

22.2.2廣播包分析318

22.3連接的數據包抓取321

22.3.1抓取數據包特徵321

22.3.2數據包分析322

22.4本章小結323

第23章傳輸數據吞吐量324

23.1低功耗藍牙的理論吞吐率324

23.1.1藍牙4.0和藍牙4.2的吞吐量325

23.1.2藍牙5.0的吞吐量326

23.2傳輸速率的影響因素327

23.3nRF52xx藍牙傳輸速率配置329

23.3.1吞吐量傳輸測試框架搭建329

23.3.2配置參數增大吞吐量335

23.4本章小結341

第24章藍牙實現低功耗的方式342

24.1nRF52系列的兩種功耗模式342

24.1.1系統開低功耗模式342

24.1.2系統關睡眠模式344

24.2nRF52降低功耗方法347

24.2.1硬件電路設計347

24.2.2降低功耗的改進方案349

第4篇綜合篇

第25章青風nRF52開發板綜合開機實驗353

25.1開機測試目標353

25.2工程文件的搭建354

25.3軟件編寫357

25.3.1RTC定時時鐘的編寫357

25.3.2電池檢測與顯示362

25.3.3按鍵、電容觸摸按鍵和W25Q16363

25.3.4MPU6050的移植366

25.4程序下載與測試367

參考文獻374

參考文獻

  1. 作品、著作物與版權,道客巴巴,2014-11-09
  2. 書籍裝幀設計的分類及藝術表現形式,豆丁網,2016-08-14