幫助中心 | 我的帳號 | 關於我們

低功耗藍牙智能硬體開發實戰

  • 作者:譚康喜
  • 出版社:人民郵電
  • ISBN:9787115494443
  • 出版日期:2018/12/01
  • 裝幀:平裝
  • 頁數:398
人民幣:RMB 99 元      售價:
放入購物車
加入收藏夾

內容大鋼
    低功耗藍牙技術憑借著低功耗、低帶寬、低成本、低複雜性、低時延、強抗干擾能力、強大的安全性、良好的拓撲結構等特點,贏得了廣大開發人員和用戶的認可,已經成為主流的低功耗、近距離無線通信技術。
    譚康喜著的《低功耗藍牙智能硬體開發實戰》共分為25章,內容分別涵蓋了藍牙的發展歷史、低功耗藍牙的核心系統架構、幾種短距離無線通信技術的簡單介紹和選擇方法、Bluedroid協議棧的架構和功能模塊的分析、SMP的3個階段介紹、LE屬性協議、LE屬性資料庫的構建和查詢方法及查詢代碼分析、BLE Hid設備的連接過程、Find me功能的實現、電池服務和電量的讀取、LE設備接近配對的實現、基於LE廣播的無線電子設備的喚醒方法、基於LE廣播的系統Recovery的操作實現、藍牙HID設備OTA升級的設計和實現、加速度感測器在低功耗藍牙設備上的應用、LE系統快速更新連接參數的設計和實現、LE語音編解碼和傳輸、開發工具介紹、藍牙系統Bug分析。
    《低功耗藍牙智能硬體開發實戰》側重於實戰,低功耗藍牙體系結構及協議棧分析、開發實例講解和藍牙調試3個方面的內容詳細豐富,適合藍牙應用工程師、藍牙協議棧工程師、藍牙固件工程師閱讀,也適合對BLE、人工智慧、物聯網和智能硬體感興趣的讀者閱讀。

作者介紹
譚康喜
    譚康喜,小米公司高級軟體工程師,從事Android應用、Linux驅動、藍牙、WiFi和藍牙外設的開發工作,目前的主要工作方向是低功耗藍牙;是國內較早從事低功耗藍牙研究和開發的一批人之一;申請國內外發明專利120余項,目前國內已授權12項,美國已授權1項。

目錄
第1章  低功耗藍牙簡介
  1.1  概述
  1.2  藍牙歷史版本介紹
    1.2.1  藍牙1.1標準和1.2標準
    1.2.2  藍牙2.0標準
    1.2.3  藍牙2.1+EDR標準
    1.2.4  藍牙3.0+HS標準
    1.2.5  藍牙4.0標準
    1.2.6  藍牙4.1標準
    1.2.7  藍牙4.2標準
    1.2.8  藍牙5.0標準
    1.2.9  藍牙2016年技術藍圖
    1.2.10  藍牙版本演進編年史
    1.3藍牙4.0概述
    1.3.2藍牙4.0的架構
    1.3.3藍牙4.0協議增加的新特性
  1.4  藍牙4.0核心架構分析
    1.4.1  低功耗藍牙概述
    1.4.2  核心系統架構
    1.4.3  核心構架模塊介紹
    1.5基於Bluetooth 4.0  的新應用
  1.6  BLE、ZigBee和WiFi的介紹和選擇
    1.6.1  ZigBee技術介紹
    1.6.2  WiFi技術介紹
    1.6.3  BLE、ZigBee和WiFi的選擇
第2章  Android藍牙系統框架和代碼結構
  2.1  概述
  2.2  Application Framework
  2.3  Bluetooth Process
  2.4  Bluetooth JNI
  2.5  Bluetooth HAL
  2.6  Bluedroid Stack
  2.7  Bluedroid的代碼結構分析
    2.7.1  MAIN
    2.7.2  BTA
    2.7.3  BTIF
    2.7.4  HCI
    2.7.5  STACK
第3章  GKI模塊簡介
  3.1  概述
  3.2  GKI事件的原理
  3.3  GKI主要數據結構
  3.4  GKI管理的線程
  3.5  線程相關主要函數
  3.6  消息相關主要函數介紹
    3.6.1  GKI_wait()函數
    3.6.2  GKI_send_event()函數
    3.6.3  GKI_send_msg()函數
    3.6.4  GKI_read_mbox()函數
    3.6.5  pthread_cond_wait()函數

  3.7  動態內存池管理主要函數
第4章  Bluedroid的消息傳遞機制
  4.1  概述
  4.2  消息傳遞相關結構體的定義
  4.3  消息的動態內存的獲取
  4.4  消息的初始化及發送
  4.5  消息的讀取和處理
  4.6  消息的完整數據結構剖析
第5章  TASK簡介
  5.1  概述
    5.1.1  TASK之間的消息傳遞
    5.1.2  事件的類型
  5.2  TASK處理消息的流程
第6章  Bluedroid狀態機簡介
  6.1  Profile狀態機介紹
  6.2  Profile狀態機的結構設計
  6.3  狀態機的註冊
  6.4  狀態機的驅動力來源
  6.5  Action函數列表
  6.6  狀態機的狀態集合
  6.7  Event處理函數介紹
第7章  HCI介面層簡介
  7.1  概述
  7.2  介面間的函數調用關係
  7.3  bt_hc_if介面的定義和獲取
    7.3.1  bt_hc_if介面定義
    7.3.2  bt_hc_if介面的獲取
  7.4  hc_callbacks函數集合的定義和註冊
    7.4.1  hc_callbacks函數集合的定義
    7.4.2  hc_callbacks函數集合的註冊
  7.5  bluetoothHCLibInterface的init()函數介紹
  7.6  libbt-vendor介面的獲取、初始化和使用
    7.6.1  libbt-vendor的介面函數集合
    7.6.2  libbt-vendor介面的獲取和使用
    7.6.3  libbt-vendor的初始化
  7.7  命令和數據的發送與接收
    7.7.1  命令和數據的發送介面
    7.7.2  命令處理結果和數據的接收介面
    7.7.3  H4層接收解析函數的分析
  7.8  HCI裸數據的分析
  7.9  本章總結
第8章  L2CAP簡介
  8.1  概述
  8.2  L2CAP的組成部分和功能
    8.2.1  L2CAP的兩個組成部分
    8.2.2  L2CAP的功能
  8.3  設備間的操作
    8.3.1  操作模式
    8.3.2  L2CAP連接類型
  8.4  L2CAP數據包

    8.4.1  L2CAP數據包格式
    8.4.2  信號包格式
  8.5  L2CAP的使用
  8.6  LE數據包格式分析
  8.7  L2CAP的CSM(Channel State Machine)介紹
    8.7.1  子狀態機介紹
    8.7.2  OPEN子狀態機處理函數
  8.8  Profile在L2CAP的註冊和函數回調機制
    8.8.1  Profile的註冊
    8.8.2  Profile的註冊回調函數集合的回調機制
  8.9  L2CAP的數據的發送和接收過程
    8.9.1  數據的發送
    8.9.2  數據的接收
第9章  Bluedroid的初始化流程
  9.1  概述
  9.2  協議棧的bluetoothInterface介面的獲取過程
  9.3  打開藍牙的介面的調用
  9.4  第 一階段:前期準備階段
  9.5  第二階段:藍牙Firmware的載入階段
    9.5.1  Firmware載入的總體思想
    9.5.2  發起Firmware載入的入口
    9.5.3  Firmware載入的過程
  9.6  第三階段:後期初始化階段
    9.6.1  底層協議棧的初始化
    9.6.2  上層協議棧的初始化
第10章  藍牙設備的掃描流程
  10.1  概述
  10.2  JNI層掃描入口和協議棧回調機制
    10.2.1  掃描入口
    10.2.2  回調機制
  10.3  藍牙掃描流程的啟動過程
  10.4  藍牙設備的Inquiry過程
  10.5  藍牙設備的Discover過程
  10.6  本章總結
第11章  SMP簡介
  11.1  什麼是SMP
  11.2  SM在Host側的位置
  11.3  SMP的流程介紹
    11.3.1  SM第 1階段—配對特徵的交換
    11.3.2  第 2階段—根據特徵信息配對
    11.3.3  第3階段—Key的分發過程
  11.4  SMP協議包分析
  11.5  問和答
第12章  LE屬性協議簡介
  12.1  概述
  12.2  屬性的構成
  12.3  屬性值的介紹
  12.4  屬性資料庫的構建過程
    12.4.1  Gatt Profile分層設計
    12.4.2  Gatt Service的構建

    12.4.3  特性的構建
  12.5  獲取屬性資料庫的過程
    12.5.1  GATT服務的獲取和設置過程
    12.5.2  服務的查詢過程
    12.5.3  包含服務、特性和特性描述的查詢過程
第13章  LE屬性資料庫掃描過程的代碼分析
  13.1  Discover過程的發起
  13.2  主要服務的Discover過程
  13.3  Discover過程回調函數的註冊過程
  13.4  包含服務的Discover過程
  13.5  特性的Discover過程
  13.6  特性描述的Discover過程
  13.7  Discover過程的結束
  13.8  服務的上報過程
    13.8.1  服務的查詢和發起上報過程
    13.8.2  上報服務的回調函數的註冊過程
    13.8.3  服務的上報過程
    13.8.4  服務上報過程的日誌分析
第14章  低功耗藍牙HID設備的連接過程分析
  14.1  概述
  14.2  連接過程的發起
  14.3  Hid服務的特性、特性描述的讀取和存儲
    14.3.1  查詢和存儲過程
    14.3.2  查詢結果列表和分析
  14.4  連接過程的完成和輸入設備的創建
    14.4.1  連接過程的完成和創建輸入設備
    14.4.2  Hid按鍵的上報
第15章  Find Me功能的實現
  15.1  概述
  15.2  Find Me功能的技術原理
  15.3  Find Me功能的代碼實現
    15.3.1  Find Me功能的觸發函數
    15.3.2  BluetoothGatt介面的獲取
    15.3.3  Hid設備列表的獲取
第16章  低功耗藍牙電池服務和電量的讀取
  16.1  概述
  16.2  電量讀取和電量變化回調函數的註冊
  16.3  電量讀取的發起和電量變化特性配置描述的設置
  16.4  電池電量讀取的btsnoop數據解析
第17章  LE設備接近配對的實現
  17.1  概述
  17.2  RSSI與LQI、接收距離之間的關係
  17.3  接近配對的簡化實現
  17.4  接近配對代碼示例
第18章  基於LE廣播的無線電子設備的喚醒方法
  18.1  概述
  18.2  無線電子設備的喚醒的硬體原理
  18.3  無線電子設備的喚醒的軟體實現
    18.3.1  無線電子設備關機后喚醒的軟體邏輯實現
    18.3.2  無線電子設備通電后喚醒的軟體邏輯實現

  18.4  傳輸喚醒白名單列表和啟動喚醒功能的命令的定義
  18.5  喚醒廣播包的數據格式
  18.6  喚醒廣播包的處理邏輯
    18.6.1  主機的處理邏輯
    18.6.2  設備的廣播邏輯
  18.7  喚醒廣播包的數據分析
第19章  基於LE廣播的系統Recovery的操作實現
  19.1  概述
  19.2  小米電視和盒子的系統恢復模式的介紹
  19.3  基於接收廣播按鍵信息的Recovery系統框架
  19.4  廣播包按鍵信息的定義
  19.5  進入Recovery的方法
  19.6  按鍵廣播包的接收、解析和上報的代碼分析
第20章  藍牙HID設備OTA升級的設計和實現
  20.1  概述
  20.2  Hid設備OTA升級總體流程設計
  20.3  Hid設備OTA升級命令定義
  20.4  Hid設備OTA升級的總體程序設計
    20.4.1  總體設計
    20.4.2  Kernel層Hidraw getReport()的實現過程
    20.4.3  Kernel層Hidraw setReport()的實現過程
    20.4.4  JNI層Hidraw getReport函數的實現
    20.4.5  JNI層Hidraw setReport函數的實現
  20.5  Java層OTA升級程序示例
  20.6  Hidraw setReport、getReport命令的數據分析
第21章  加速度感測器在低功耗藍牙設備上的應用
  21.1  概述
  21.2  藍牙輸入相關子系統、G-Sensor子系統簡介
  21.3  加速度感測器設備的創建過程
    21.3.1  Bluedroid發起的設備註冊過程
    21.3.2  Kernel中Hid設備的創建過程
  21.4  加速度感測器的驅動註冊過程
  21.5  Sensor數據從Bluedroid到感測器驅動的傳輸過程
第22章  LE系統快速更新連接參數的設計和實現
  22.1  概述
  22.2  更新連接參數的常規方法、快速更新連接參數碰到的困難及解決思路
    22.2.1  更新連接參數的常規方法介紹
    22.2.2  快速更新連接參數碰到的困難及解決思路
  22.3  快速更新連接參數的實現及應用
    22.3.1  快速更新連接參數的實現方法
    22.3.2  快速更新連接參數在語音傳輸中的應用
第23章  LE語音編解碼和傳輸
  23.1  概述
  23.2  音頻採集、處理和藍牙傳輸的軟硬體過程
  23.3  ADPCM介紹
    23.3.1  ADPCM的概念
    23.3.2  ADPCM編碼框圖
  23.4  遙控器語音傳輸的總體流程
  23.5  主機端的語音數據的接收處理流程
    23.5.1  傳統語音數據的接收處理流程

    23.5.2  基於Hidraw介面的語音數據的接收處理流程
  23.6  基於ADPCM的一種語音壓縮編碼數據的傳輸格式定義
    23.6.1  語音壓縮編碼數據起始幀的定義
    23.6.2  語音壓縮編碼數據楨的第 1部分定義
    23.6.3  語音壓縮編碼數據楨其他部分定義
    23.6.4  語音壓縮編碼數據結束幀的定義
    23.6.5  完整語音壓縮編碼數據楨的格式定義
  23.7  基於ADPCM的一種語音壓縮編碼數據的接收數據的格式解析
    23.7.1  語音壓縮編碼數據起始幀的接收數據格式解析
    23.7.2  語音壓縮編碼數據的數據幀的第 1幀的第 1部分的接收數據格式解析
    23.7.3  語音壓縮編碼數據的數據幀第 2幀的第 1部分的接收數據格式解析
    23.7.4  語音壓縮編碼數據結束幀的接收數據格式解析
  23.8  基於Hidraw的語音壓縮編碼數據的接收和處理的代碼示例
    23.8.1  /dev/hidrawX設備的尋找過程
    23.8.2  ADPCM語音壓縮編碼數據的讀取和解碼的代碼示例
第24章  開發工具
  24.1  概述
  24.2  Ellisys藍牙協議分析儀
  24.3  Ellisys HCI分析
  24.4  Ellisys頻譜分析
  24.5  Ellisys時序和邏輯分析
  24.6  Ellisys空中抓包
  24.7  Ellisys組網分析
  24.8  Ellisys集成化音頻分析
  24.9  其他
第25章  藍牙系統Bug分析
  25.1  概述
  25.2  內存操作越界引發藍牙重啟的一個Bug分析
    25.2.1  內存操作越界Bug描述
    25.2.2  內存操作越界引發藍牙重啟的Bug分析過程
  25.3  系統IO繁忙時寫btsnoop日誌效率低導致藍牙通信卡頓的Bug分析
    25.3.1  寫btsnoop日誌效率低的Bug描述
    25.3.2  寫btsnoop日誌效率低的Bug分析
    25.3.3  Bug的解決方法
  25.4  藍牙數據匯流排丟失數據導致藍牙重啟
    25.4.1  導致藍牙重啟的Bug描述
    25.4.2  導致藍牙重啟的日誌分析
    25.4.3  解決問題的方法
  25.5  藍牙核心協議規範關於斷連接流程的設計缺陷
    25.5.1  斷連接流程的設計缺陷引發的Bug描述
    25.5.2  問題背景介紹
    25.5.3  Bug分析過程
    25.5.4  解決問題的方法

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032