21天入門低功耗藍牙5.x開發

譚暉

  • 出版商: 電子工業
  • 出版日期: 2022-03-01
  • 售價: $528
  • 貴賓價: 9.5$502
  • 語言: 簡體中文
  • 頁數: 272
  • ISBN: 7121431491
  • ISBN-13: 9787121431494
  • 立即出貨(限量) (庫存=2)

買這商品的人也買了...

商品描述

本書主要介紹低功耗藍牙5.x的開發技術,主要內容包括開發環境的搭建、最小硬件系統、廣播的實現、雙向通信的實現、電池電量服務的添加、私有服務的添加、配對和綁定功能的實現、主機掃描、主機連接、主從一體的實現、多主多從的實現、高速率通信的實現、長距離通信的實現、擴展廣播數據包的實現、基於QSPI驅動LCD、基於FreeRTOS的復雜應用、FDS的實現、OTA的實現、基於串口的DFU實現、PTR9818模塊的開發等內容。通過本書的學習,讀者不僅可以掌握低功耗藍牙5.x的開發技術,也可以學習物聯網的知識、培養物聯網的思維,還可以提高自身的動手能力和創新能力。

目錄大綱

目  錄 第1章 低功耗藍牙5.x開發環境之搭建 (1) 1.1 基於Nordic nRF52840 DK開發環境之搭建 (1) 1.1.1 SES的搭建 (1) 1.1.2 Keil MDK的搭建 (8) 1.1.3 其他工具的安裝 (9) 1.2 nRF52840 DK開發板上的燒寫器介紹 (13) 1.2.1 簡介 (13) 1.2.2 nRF52840 DK開發板簡介 (13) 1.2.3 nRF52840 DK開發板的燒寫方式 (13) 1.2.4 PTR9818介紹 (15) 1.2.5 PTR9818模塊的固件燒寫方式 (16) 1.2.6 APTR-xxxx-EVB低功耗藍牙模塊評估板 (18) 1.3 nRF5 SDK介紹和目錄結構解讀 (19) 1.4 SES集成開發環境的使用 (23) 1.5 如何將工程移植到不同的芯片 (26) 1.5.1 在SES中將nRF52832的工程移植到nRF52840 (26) 1.5.2 Softdevice協議棧介紹 (31) 1.5.3 Log打印功能 (36) 1.5.4 芯片選型表 (38) 第2章 實驗1:低功耗藍牙5.x SoC之nRF52840最小硬件系統 (41) 2.1 實驗目標 (41) 2.2 nRF52840最小硬件系統電路 (41) 2.2.1 供電方式 (42) 2.2.2 內部電源穩壓方式 (43) 2.2.3 時鐘電路 (45) 2.2.4 匹配電路 (46) 2.2.5 去耦電容 (46) 2.2.6 USB電路 (46) 2.2.7 NFC電路 (47) 2.3 nRF52840硬件設計的註意事項 (48) 2.4 實驗小結 (50) 第3章 實驗2:低功耗藍牙5.x廣播的實現 (51) 3.1 實驗目標 (51) 3.2 實驗準備 (51) 3.3 背景知識 (51) 3.3.1 廣播 (51) 3.3.2 廣播數據包的格式 (52) 3.3.3 常見的廣播內容 (52) 3.3.4 廣播數據包的類型 (53) 3.4 實驗步驟 (54) 3.4.1 低功耗藍牙5.x廣播的初始化 (54) 3.4.2 低功耗藍牙5.x廣播名稱的修改 (55) 3.4.3 廣播內容和廣播參數的修改 (56) 3.4.4 代碼實戰 (60) 3.5 實驗小結 (65) 第4章 實驗3:低功耗藍牙5.x雙向通信的實現 (67) 4.1 實驗目標 (67) 4.2 實驗準備 (67) 4.3 背景知識 (67) 4.3.1 低功耗藍牙5.x雙向通信的基本概念 (67) 4.3.2 低功耗藍牙5.x雙向通信的連接建立過程 (70) 4.4 實驗步驟 (70) 4.4.1 低功耗藍牙5.x串口通信服務的實現 (71) 4.4.2 main函數的解析 (75) 4.4.3 協議棧初始化分析 (75) 4.5 低功耗藍牙5.x的傳輸速率 (77) 4.5.1 傳輸速率的理論值 (77) 4.5.2 影響傳輸速率的主要因素 (79) 4.5.3 代碼實例測試 (79) 4.5.4 實際測試 (81) 4.5.5 實驗分析 (85) 4.6 開發調試工具 (85) 4.6.1 nrfjprog命令行工具 (85) 4.6.2 RTT打印Log (86) 4.7 資料學習 (87) 4.8 實驗小結 (89) 第5章 實驗4:添加電池電量服務 (91) 5.1 實驗目標 (91) 5.2 實驗準備 (91) 5.3 背景知識 (91) 5.4 實驗步驟 (92) 5.5 應用固件的燒寫和調試 (103) 5.5.1 編譯和燒寫 (103) 5.5.2 查看電池電量服務數據 (103) 5.5.3 添加電池電量服務的註意事項 (104) 5.5.4 實驗觀察 (104) 5.6 實驗小結 (104) 第6章 實驗5:添加私有服務 (105) 6.1 實驗目標 (105) 6.2 實驗準備 (105) 6.3 背景知識 (105) 6.4 實驗步驟 (106) 6.4.1 移植庫文件 (106) 6.4.2 修改sdk_config.h中相應的宏 (107) 6.4.3 初始化LBS (107) 6.4.4 修改LBS中LED的特性 (111) 6.4.5 修改按鍵的邏輯 (113) 6.5 應用的實驗與測試 (114) 6.5.1 應用固件的燒寫與測試 (114) 6.5.2 實驗觀察 (115) 6.6 實驗小結 (115) 第7章 實驗6:添加配對、綁定功能 (117) 7.1 實驗目標 (117) 7.2 實驗準備 (117) 7.3 背景知識 (117) 7.3.1 配對和綁定的定義 (117) 7.3.2 相關概念知識 (118) 7.3.3 綁定的流程 (119) 7.3.4 綁定的方式(等級) (120) 7.3.5 例程講解 (120) 7.3.6 與綁定功能相關的常用API函數 (120) 7.4 實驗步驟 (121) 7.4.1 綁定模塊移植 (121) 7.4.2 在例程ble_app_hrs中添加NUS (122) 7.4.3 Passkey配對模式的實現 (124) 7.4.4 數字比較的實現 (125) 7.5 實驗拓展 (127) 7.6 實驗小結 (128) 第8章 實驗7:低功耗藍牙的主機掃描 (129) 8.1 實驗目標 (129) 8.2 實驗準備 (129) 8.3 背景知識 (129) 8.3.1 廣播的概念 (129) 8.3.2 掃描的概念 (130) 8.3.3 主機掃描的原理 (130) 8.3.4 主動掃描和被動掃描 (131) 8.4 實驗步驟 (131) 8.4.1 掃描例程講解 (131) 8.4.2 掃描附近所有設備 (132) 8.4.3 篩選廣播數據包中的數據 (134) 8.5 實驗小結 (135) 第9章 實驗8:低功耗藍牙的主機連接 (137) 9.1 實驗目標 (137) 9.2 實驗準備 (137) 9.3 背景知識 (137) 9.3.1 連接的概念 (137) 9.3.2 連接的過程 (138) 9.3.3 連接的重要參數 (138) 9.3.4 連接參數的優化 (139) 9.3.5 iOS對連接參數的要求 (139) 9.4 實驗步驟 (139) 9.5 實驗小結 (141) 第10章 實驗9:低功耗藍牙主從一體的實現 (143) 10.1 實驗目標 (143) 10.2 實驗準備 (143) 10.3 背景知識 (143) 10.4 實驗步驟 (144) 10.4.1 低功耗藍牙主從一體功能的實現 (144) 10.4.2 低功耗藍牙主從一體功能的演示 (149) 10.5 實驗小結 (151) 第11章 實驗10:低功耗藍牙多主多從的實現 (153) 11.1 實驗目標 (153) 11.2 實驗準備 (153) 11.3 背景知識 (153) 11.4 實驗步驟 (154) 11.4.1 低功耗藍牙多主多從功能的實現 (154) 11.4.2 低功耗藍牙多主多從功能的演示 (157) 11.5 實驗小結 (158) 第12章 實驗11:LE 2M PHY高速率通信的實現 (159) 12.1 實驗目標 (159) 12.2 實驗準備 (159) 12.3 背景知識 (159) 12.3.1 低功耗藍牙LE 2M PHY高速率通信 (159) 12.3.2 低功耗藍牙數據包的組成 (160) 12.3.3 低功耗藍牙數據包的完整傳輸周期 (161) 12.3.4 低功耗藍牙的數據吞吐率 (162) 12.3.5 低功耗藍牙LE 2M PHY高速率通信的應用 (163) 12.4 實驗步驟 (163) 12.4.1 SDK例程測試 (163) 12.4.2 LE 2M PHY高速率通信的實現 (166) 12.5 實驗小結 (167) 第13章 實驗12:低功耗藍牙長距離通信的實現 (169) 13.1 實驗目標 (169) 13.2 實驗準備 (169) 13.3 背景知識 (169) 13.3.1 鏈路預算和無線電波傳播損耗 (170) 13.3.2 長距離通信的編碼 (171) 13.3.3 長距離通信的傳輸速率 (172) 13.3.4 長距離通信的應用創新 (173) 13.4 實驗步驟 (173) 13.4.1 長距離通信的PHY配置和數據吞吐率測試 (173) 13.4.2 低功耗藍牙5.x長距離通信的實現 (176) 13.4.3 長距離通信的測試 (177) 13.5 實驗小結 (177) 第14章 實驗13:低功耗藍牙擴展廣播數據包的實現 (179) 14.1 實驗目標 (179) 14.2 實驗準備 (179) 14.3 背景知識 (179) 14.3.1 低功耗藍牙5.x擴展廣播數據包的格式 (180) 14.3.2 低功耗藍牙5.x擴展廣播數據包的應用場景 (182) 14.4 實驗步驟 (182) 14.5 實驗小結 (184) 第15章 實驗14:基於SPI驅動OLED (185) 15.1 實驗目標 (185) 15.2 實驗準備 (185) 15.3 背景知識 (185) 15.3.1 SPI簡介 (185) 15.3.2 SPI的工作方式 (186) 15.3.3 OLED簡介 (187) 15.4 實驗步驟 (187) 15.5 實驗小結 (193) 第16章 實驗15:基於QSPI驅動LCD (195) 16.1 實驗目標 (195) 16.2 實驗準備 (195) 16.3 背景知識 (195) 16.3.1 QSPI簡介 (195) 16.3.2 LCD模塊簡介 (196) 16.3.3 QSPI接口與LCD模塊的連接 (196) 16.4 實驗步驟 (198) 16.5 實驗小結 (206) 第17章 實驗16:基於FreeRTOS實現復雜應用 (207) 17.1 實驗目標 (207) 17.2 實驗準備 (207) 17.3 背景知識 (207) 17.3.1 FreeRTOS簡介 (207) 17.3.2 在RTOS中自定義線程 (208) 17.3.3 RTOS的移植 (209) 17.4 實驗步驟 (209) 17.5 實驗小結 (214) 第18章 實驗17:FDS的實現 (215) 18.1 實驗目標 (215) 18.2 實驗準備 (215) 18.3 背景知識 (215) 18.3.1 FDS簡介 (215) 18.3.2 FDS的實現原理 (216) 18.3.3 FDS區域 (216) 18.3.4 FDS的操作類型 (217) 18.3.5 FDS的常用API函數簡介 (217) 18.3.6 使用FDS的註意事項 (219) 18.4 實驗步驟 (219) 18.4.1 FDS模塊的移植 (219) 18.4.2 FDS存儲功能的實現 (220) 18.5 實驗小結 (225) 第19章 實驗18:固件空中升級(OTA)的實現 (227) 19.1 實驗目標 (227) 19.2 實驗準備 (227) 19.3 背景知識 (227) 19.3.1 DFU簡介 (227) 19.3.2 OTA簡介 (229) 19.3.3 基於Nordic的SDK實現DFU的原理 (229) 19.4 實驗步驟 (230) 19.5 實驗關鍵代碼與實驗要點 (233) 19.5.1 ble_app_buttonless_dfu服務的關鍵代碼 (233) 19.5.2 Bootloader程序的關鍵代碼 (238) 19.5.3 實驗要點 (241) 19.6 實驗小結 (241) 第20章 實驗19:基於串口的DFU實現 (243) 20.1 實驗目標 (243) 20.2 實驗準備 (243) 20.3 背景知識 (243) 20.4 實驗步驟 (244) 20.5 實驗要點 (247) 20.6 實驗小結 (247) 第21章 實驗20:基於低功耗藍牙模塊PTR9818的開發 (249) 21.1 實驗目標 (249) 21.2 實驗背景 (249) 21.3 實驗配置 (250) 21.3.1 低頻時鐘源的配置 (250) 21.3.2 外設的配置 (251) 21.3.3 UART的配置 (253) 21.4 實驗小結 (253) 參考文獻 (255) 後記 (256)