物聯網技術實踐教程——基於藍牙4

物聯網技術實踐教程——基於藍牙4

《物聯網技術實踐教程——基於藍牙4》是2015年9月清華大學出版社出版的圖書,作者是毛劍飛、周雪、毛科技、竺超明、陳立建。

基本介紹

  • 書名:物聯網技術實踐教程——基於藍牙4
  • 作者:毛劍飛
    周雪
    毛科技
    竺超明
    陳立建
  • 出版社:清華大學出版社
  • 出版時間:2015年9月
  • 定價:49 元
  • ISBN:9787302399773
內容簡介,圖書目錄,

內容簡介

本書全面介紹物聯網工程藍牙4.0低功耗開發技術。全書分為4篇,共18章。其中,第1篇是實驗軟、硬體平台的搭建,一步一步地介紹如何構架簡單的藍牙軟硬實驗平台;第2篇是藍牙基礎實驗,講解最簡單的無作業系統的藍牙晶片實驗,讓讀者充分了解和熟悉藍牙晶片,為後續的藍牙通信開發打下基礎;第3篇是低功耗藍牙通信協定棧,主要介紹低功耗藍牙通信原理以及如何自定義硬體抽象層,本篇內容是後面的藍牙通信實驗的理論和實驗基礎;第4篇是低功耗藍牙通信實驗,先從學著改造簡單的藍牙協定棧範例項目開始,再定製一個我的藍牙感知器iSensor,在iSensor中一步步實踐藍牙協定棧的通信原理,然後結合USB模組綜合套用藍牙設備實現藍牙鍵鼠、藍牙CDC串口通信及網路處理機,最後講述了套用藍牙無線分析儀測試藍牙通信。
本書的重點是實驗,整個藍牙實驗內容以任務驅動為導向,每個實驗都先提出目標並給出實驗過程圖像,以充分調動讀者興趣和學習熱情,鼓勵讀者參與實驗,實現實驗目標,在實現過程中可以參考我們對實驗原理作出的詳細講解和分析,實驗完成後還可以參考本書對每個實驗給出的詳細注釋的源碼清單。
本書適合作為高等院校和高職高專的物聯網、通信、電氣、自動控制以及計算機套用專業的本科生、研究生和專科生教材,同時也可供對物聯網、通信技術開發感興趣的工程師、廣大科技工作者和研究人員參考。

圖書目錄

第1篇概述及實驗平台
第1章低功耗藍牙3
1.1藍牙與物聯網3
1.2低功耗藍牙與“我的物聯網”5
1.3低功耗藍牙概述8
1.4低功耗藍牙的特點9
第2章藍牙4.0 BLE軟體開發平台搭建11
2.1選擇IAR 8051的理由11
2.2IAR 80518.3的下載、安裝和破解12
2.2.1下載IAR 80518.312
2.2.2安裝IAR 80518.313
2.2.3破解IAR 80518.317
2.3IAR 8051集成開發環境簡介21
2.4IAR 8051 C/C++22
2.5安裝相關支持軟體22
第3章藍牙4.0 BLE硬體開發平台搭建24
3.1選擇世嵌開發板的理由24
3.2世嵌最簡配置開發套件25
3.2.1核心板WB2540MVA26
3.2.2底板WX253028
3.2.3仿真器CCDBG33
3.3搭建實驗硬體環境35
3.4創建工程——點亮LED37
第2篇基 礎 實 驗
第4章GPIO實驗534.1LED實驗: 打開所有LED53
4.1.1任務要求及效果呈現53
物聯網技術實踐教程——基於藍牙4
4.1.2實驗原理54
4.1.3實驗步驟56
4.1.4源碼清單59
4.2LED實驗: 讓LED一閃一閃59
4.2.1任務要求及效果呈現59
4.2.2實驗原理60
4.2.3源碼清單60
4.3LED實驗: 實現流水燈61
4.3.1任務要求及效果呈現61
4.3.2實驗原理61
4.3.3源碼清單62
4.4蜂鳴器實驗: 驅動蜂鳴器發聲63
4.4.1任務要求及效果呈現63
4.4.2實驗原理63
4.4.3源碼清單65
4.5按鍵實驗: 按鍵控制LED66
4.5.1任務要求及效果呈現66
4.5.2實驗原理66
4.5.3源碼清單69
4.6按鍵實驗: 按鍵控制LED (中斷方式)71
4.6.1任務要求及效果呈現71
4.6.2實驗原理71
4.6.3源碼清單74
第5章定時器實驗77
5.1定時器實驗: 流水燈(查詢方式)77
5.1.1任務要求及效果呈現77
5.1.2實驗原理77
5.1.3源碼清單81
5.2定時器實驗: 流水燈(中斷方式)83
5.2.1任務要求及效果呈現83
5.2.2實驗原理83
5.2.3源碼清單84
5.3定時器實驗: PWM控制蜂鳴器86
5.3.1任務要求及效果呈現86
5.3.2實驗原理87
5.3.3示波器與開發板連線90
5.3.4源碼清單91
第6章串口實驗97
6.1串口傳送實驗: 列印歡迎信息97
6.1.1任務要求及效果呈現97
6.1.2實驗原理97
6.1.3硬體連線102
6.1.4源碼清單103
6.2串口傳送: 用printf列印系統信息104
6.2.1任務要求及效果呈現104
6.2.2實驗原理104
6.2.3源碼清單106
6.3串口收發: 用C標準庫輸入/輸出函式107
6.3.1任務要求及效果呈現108
6.3.2實驗原理108
6.3.3源碼清單109
6.4串口收發: 中斷方式112
6.4.1任務要求及效果呈現113
6.4.2實驗原理113
6.4.3源碼清單116
第7章ADC實驗119
7.1測量晶片內部溫度和供電電壓119
7.1.1任務要求及效果呈現119
7.1.2實驗原理120
7.1.3源碼清單124
7.2測量光照強度126
7.2.1任務要求及效果呈現127
7.2.2實驗原理127
7.2.3源碼清單128
第8章睡眠與喚醒實驗130
8.1外部中斷喚醒130
8.1.1任務要求及效果呈現130
8.1.2實驗原理131
8.1.3源碼清單134
8.2定時器喚醒139
8.2.1任務要求及效果呈現139
8.2.2實驗原理140
8.2.3源碼清單142
第9章看門狗實驗、Flash讀寫實驗144
9.1看門狗實驗144
9.1.1任務要求及效果呈現144
9.1.2實驗原理145
9.1.3源碼清單146
9.2Flash讀寫實驗147
9.2.1任務要求及效果呈現148
9.2.2實驗原理148
9.2.3源碼清單150
第10章匯流排實驗153
10.1單匯流排實驗(DS18B20驅動)153
10.1.1任務要求及效果呈現153
10.1.2實驗原理154
10.1.3源碼清單157
10.2SPI匯流排實驗(諾基亞5110液晶屏驅動)161
10.2.1任務要求及效果呈現161
10.2.2實驗原理163
10.2.3源碼清單171
第3篇BLE協定棧
第11章藍牙4.0協定棧基礎19711.1BLE協定棧整體構架197
11.2物理層198
11.3鏈路層198
11.3.1鏈路層狀態機198
11.3.2鏈路層報文200
11.3.3設備發現200
11.3.4關於廣播202
11.3.5連線過程202
11.3.6數據傳送205
11.3.7管理連線205
11.4主機/控制器接口206
11.4.1物理接口與邏輯接口206
11.4.2控制器的配置206
11.4.3廣播與觀察207
11.4.4發起連線208
11.4.5連線管理210
11.5邏輯鏈路控制和適配協定210
11.6屬性協定層、通用屬性配置檔案層210
11.6.1伺服器與客戶端模型210
11.6.2屬性211
11.6.3屬性的訪問213
11.6.4服務213
11.6.5特性215
11.6.6屬性協定216
11.6.7通用屬性規範218
11.7安全管理層220
11.7.1安全概念220
11.7.2配對和綁定221
11.7.3數據簽名221
11.8通用訪問配置檔案層222
11.8.1GAP角色222
11.8.2模式和規程222
11.8.3廣播模式和觀察規程223
11.8.4可發現性223
11.8.5可連線性224
11.8.6綁定226
第12章TI藍牙協定棧開發平台227
12.1BLE協定棧開發平台配置227
12.2BLE協定棧軟體開發框架228
12.3協定棧應用程式運行機理229
12.3.1開始應用程式: main()230
12.3.2初始化系統: osal_init_system()231
12.3.3啟動系統: osal_start_system()233
12.3.4系統運行機理235
12.4OSAL作業系統抽象層236
12.4.1任務事件和事件處理236
12.4.2記憶體堆管理237
12.4.3OSAL訊息237
12.5HAL硬體抽象層238
12.6BLE協定棧238
12.6.1通用訪問配置檔案239
12.6.2通用屬性配置檔案240
12.6.3GATT伺服器應用程式241
12.7配置檔案242
12.7.1GAP外圍角色配置242
12.7.2GAP外圍/廣播多重角色配置243
12.7.3GAP Central Role Profile243
12.7.4GAP綁定管理器244
12.7.5簡單屬性配置檔案245
12.7.6簡單按鍵屬性配置檔案252
12.7.7設備信息服務253
12.7.8其他屬性配置檔案253
第13章藍牙協定棧項目開發入門254
13.1簡單BLE外圍設備254
13.1.1項目配置254
13.1.2Linker Map檔案257
13.1.3simpleBLEPeripheral.c源碼分析258
13.2簡單BLE中央設備273
13.2.1項目配置273
13.2.2Linker Map檔案273
13.2.3simpleBLECentral.c源碼分析274
第14章定製硬體抽象層281
14.1增加外設驅動281
14.2修改hal_board_cfg282
14.3修改hal_led284
14.4修改hal_key284
14.5增強UART功能286
14.6增加Nokia 5110液晶屏驅動294
第4篇BLE通信實驗
第15章簡單的藍牙通信29715.1引言297
15.2搭建藍牙通信實驗平台298
15.3源碼相關配置修改299
15.3.1修改Simple BLE Peripherial項目299
15.3.2修改Simple BLE Central項目301
15.4實驗過程演示302
15.5實驗: 實現自動連線和LED連線狀態指示305
15.5.1任務要求及效果呈現305
15.5.2實驗原理307
15.5.3源碼修改308
第16章我的藍牙感知器312
16.1控制LED312
16.1.1任務要求及效果呈現313
16.1.2實現外圍設備315
16.1.3實現中央設備319
16.2感知外設CPU溫度328
16.2.1任務要求及效果呈現329
16.2.2實現外圍設備330
16.2.3實現中央設備333
16.3感知外設環境溫度336
16.3.1任務要求及效果呈現337
16.3.2實現外圍設備338
16.3.3實現中央設備342
16.4感知外設光照強度344
16.4.1任務要求及效果呈現344
16.4.2實現外圍設備346
16.4.3實現中央設備350
16.5定時獲取外設光照強度352
16.5.1任務要求及效果呈現352
16.5.2實現外圍設備355
16.5.3實現中央設備362
16.6無線串口透傳364
16.6.1任務要求及效果呈現364
16.6.2NPI模組原理與串口透傳366
16.6.3實現外圍設備368
16.6.4實現中央設備371
第17章藍牙USB376
17.1iSensorHid(藍牙鍵鼠)377
17.1.1任務要求及效果呈現377
17.1.2實現外圍設備385
17.1.3實現中央設備390
17.2 iSensorCDC(藍牙USB串口)395
17.2.1任務要求及效果呈現396
17.2.2實現外圍設備398
17.2.3實現中央設備398
17.3iHostTest(網路處理機)400
17.3.1實現iHostTest400
17.3.2系統初始化402
17.3.3建立連線403
17.3.4測試GATT屬性服務405
第18章藍牙通信測試與支持414
18.1藍牙協定分析儀414
18.2藍牙支持417
參考文獻420
圖11物聯網——感知世界3
圖12藍牙在醫療設備上的套用7
圖13藍牙防丟產品7
圖14SENSORY的前端語音識別技術通過藍牙耳機實現安全行駛8
圖21IAR官方主頁12
圖22IAR產品下載13
圖23IAR 80518.3評估版下載頁面13
圖24“IAR 80518.3下載任務”對話框13
圖25EW80518303Autorun.exe自解壓13
圖26程式安裝界面13
圖27準備安裝15
圖28安裝精靈15
圖29是否接受許可協定對話框15
圖210自定義安裝還是完全安裝17
圖211安裝路徑選擇17
圖212程式圖示選擇17
圖213準備安裝程式17
圖214安裝程式過程17
圖215是否安裝USB dongles驅動19
圖216安裝結束19
圖217退出19
圖218破解IAR 80518.319
圖219License Manager界面19
圖220編譯錯誤20
圖221增加一行“Z(DATA)VREG=087F”20
圖222現在編譯正確了20
圖223IAR 8051集成開發環境22
圖31世嵌科技官網24
圖32CC2540藍牙4.0低功耗最簡配置開發板套件(2模組+2底板+1仿真器)25
圖33WB2540MVA核心板26
圖34WB2540MVA核心板機械尺寸和元件布局27
圖35WX2530底板(綠色)+CC2540核心板(藍色)28
圖36開發板整體架構30
圖37WX2530底板輸入接口30
圖38跳線使能USB接口31
圖39仿真器接口封裝32
物聯網技術實踐教程——基於藍牙4
圖 圖310仿真器灰排母座應朝板子外側插入仿真接口32
圖311CCDBG仿真器(上面雖未標明支持CC2540,但實際完全支持)34
圖312某淘寶店推出的PL2303HX模組36
圖313開發板與外配的硬體連線37
圖314複製安裝下的藍牙協定棧到你的工作37
圖315協定棧的項目範例37
圖316複製得一個副本37
圖317將項目改名37
圖318項目檔案39
圖319項目檔案41
圖320修改mTest.eww檔案41
圖321新工程誕生41
圖322移除原工程檔案41
圖323選擇Options命令41
圖324將常量和字元串置於RAM memory41
圖325將輸出的hex檔案改為你喜歡的名字42
圖326將Driver設定為Texas Instruments43
圖327選擇Add→AddFiles命令43
圖328選中3個檔案43
圖329檔案改名43
圖330檔案已經添加44
圖331清空編輯區46
圖332編寫代碼46
圖333編譯代碼46
圖334下載調試46
圖335調試開始46
圖336點亮綠燈46
圖337設定斷點47
圖338啟動不下載的調試48
圖339調試開始48
圖340調試運行到斷點處48
圖341單擊step over圖示49
圖342調試游標進入下一行語句49
圖41基礎實驗一效果54
圖42LED原理54
圖43打開項目並另外儲存源檔案57
圖44將源檔案改名並另外儲存57
圖45將另外儲存的檔案添加57
圖46將mTest.c檔案從項目編譯連結中排除57
圖47為mTestLedAllOpen.c編寫代碼58
圖48讓LED一閃一閃59
圖49流水燈效果61
圖410流水燈程式設計和調試界面62
圖411驅動蜂鳴器發聲63
圖412蜂鳴器原理64
圖413按鍵控制LED亮滅66
圖414按鍵電路原理圖67
圖415按鍵按下和鬆開的電信號變化68
圖416按鍵控制LED(中斷方式)71
圖51中斷查詢方式的定時流水燈77
圖52中斷方式的定時流水燈83
圖53實驗過程演示: 按下鍵2,黃燈亮(左圖),釋放,黃燈熄滅(右圖)87
圖54200Hz聲音時的通道2和通道3的波形87
圖552000Hz聲音時的通道2和通道3的波形87
圖56本人自購的示波器90
圖57開發板與示波器連線90
圖61列印歡迎信息97
圖62CC2540串口與PC機串口的硬體連線103
圖63串口輸出系統硬體信息104
圖64使用C標準庫輸入輸出函式進行串口收發實驗108
圖65中斷方式下的串口數據收發實驗113
圖71手指壓在CC2540上以測量晶片內部溫度的變化119
圖72晶片內部電壓和溫度(當手指按在CC2540晶片上時溫度立即上升)120
圖73測量光敏電阻分壓127
圖74手指按住光敏電阻(分壓為1.805V)127
圖75手指離開光敏電阻(分壓為0.400V)127
圖76LED強光直射光敏電阻(分壓為0.071V)128
圖77相機袋壓在光敏電阻上(2.900V)128
圖78光敏電阻原理128
圖81按鍵控制休眠實驗130
圖82串口列印的信息(按鍵催眠、喚醒CPU實驗)130
圖83進入反彙編代碼查看PCON.IDLE=1指令地址134
圖84開發板的演示效果(睡眠定時器喚醒實驗)140
圖85串口控制台列印的實驗過程信息(睡眠定時器喚醒實驗)140
圖91正常的流水燈演示實驗144
圖92沒有及時餵狗而導致反覆重啟145
圖93控制台顯示的反覆重啟效果145
圖94Flash讀寫實驗148
圖101手指按在DS18B20上面溫度一直在上升154
圖102DS18B20實驗——手指按在DS18B20上面使得溫度上升154
圖103DS18B20溫度測量模組154
圖104DS18B20的Reset時序154
圖105初始歡迎頁162
圖106鍵2按下背光打開162
圖107鍵1按下開始測量氣溫162
圖108鍵2按下背光關掉162
圖109實驗過程在串口控制台的演示162
圖1010Nokia 5110顯示屏正反面(帶PCB小板)163
圖1011CC2540與Nokia 5110的電路連線原理164
圖1012PCD8544寫指令時序165
圖1013PCD8544初始化時序165
圖1014顯存結構167
圖1015用水平定址方式(V=0)往RAM寫入數據的次序167
圖1016漢字液晶點陣及對應編碼171
圖111BLE協定棧構架197
圖112鏈路層狀態機199
圖113兩個設備建立連線以實現可靠數據傳輸202
圖114連線事件204
圖115屬性結構211
圖116服務聲明樣例214
圖117特性聲明215
圖118特性數值215
圖121單一設備的配置227
圖122網路處理器的配置228
圖123SimpleBLEPeripheral項目界面229
圖124系統運行機理235
圖125屬性結構240
圖131SimpleBLEPeripheral項目界面254
圖132設定預處理宏255
圖133配置檔案中定義預處理宏255
圖134Linker Map檔案257
圖135SimpleBLECentral項目界面273
圖136Linker Map檔案273
圖141添加外設驅動源檔案282
圖151我的藍牙通信簡易實驗平台298
圖152CCDBG端子擴展原理298
圖153CCDBG端子擴展板與CCDBG連線298
圖154增加和修改預定義宏299
圖155增加預定義宏301
圖156實驗過程控制台顯示304
圖157實驗初始液晶顯示304
圖158實驗過程液晶顯示304
圖159實驗過程控制台顯示306
圖1510實驗過程液晶顯示307
圖161串口控制台列印實驗過程313
圖162連線建立並參數更新後的LCD顯示及外圍設備LED顯示314
圖163單擊按鍵後的LCD顯示及外圍設備LED顯示314
圖164LCD顯示MCU溫度信息329
圖165串口控制台列印實驗過程329
圖166LCD顯示環境溫度信息337
圖167串口控制台列印實驗過程337
圖168LCD顯示光照強度344
圖169串口控制台列印實驗過程344
圖1610中央設備串口控制台列印實驗過程353
圖1611外圍設備串口控制台353
圖1612LCD顯示即時光照強度355
圖1613串口控制台列印實驗過程365
圖1614LCD顯示當前串口傳送和接收信息366
圖171中央設備啟動過程1(在掃描期間USB開始初始化)377
圖172中央設備啟動過程2(框中部分是顯示的重合部分)377
圖173系統初始在完成的初始LCD界面(PC自動傳送鍵盤燈狀體的USB報告)377
圖174藍牙滑鼠串口控制台顯示379
圖175藍牙滑鼠PC桌面測試379
圖176藍牙鍵盤功能1串口控制台顯示382
圖177藍牙鍵盤功能1 PC桌面測試382
圖178藍牙鍵盤功能2串口控制台顯示384
圖179藍牙鍵盤功能2 播放器測試——快進384
圖1710藍牙鍵盤功能2 播放器測試——快退384
圖1711藍牙鍵盤功能2 播放器測試——暫停384
圖1712藍牙鍵盤燈控制實驗: 串口信息輸出384
圖1713藍牙鍵盤燈控制實驗: LED顯示(共3幅圖,每幅圖的左上: 中央設備;右下: 外圍設備)384
圖1714藍牙鍵盤燈控制實驗: LCD顯示(共兩幅圖,每幅圖的左邊: 中央設備;右邊: 外圍設備)384
圖1715插入USB口之後出現第3個串口(COM5: USB CDC虛擬串口)396
圖1716系統啟動界面中自動配置串口透傳396
圖1717串口透傳通信過程396
圖1718啟動BTool402
圖1719BTool初始化界面403
圖1720開始掃描404
圖1721發現廣播設備404
圖1722建立連線406
圖1723讀寫屬性操作界面406
圖1724利用特性UUID發現特性起始句柄407
圖1725利用特性句柄讀特性值408
圖1726利用特性UUID讀特性值408
圖1727解決二進制向浮點型轉換409
圖1728利用多個特性句柄讀多個特性值410
圖1729根據特性句柄寫LED特性值411
圖1730寫入之前(僅綠燈亮)411
圖1731寫入之後(LED全亮)411
圖1732利用特性句柄寫環境溫度通知配置411
圖1733利用特性句柄寫光照強度通知配置412
圖181選擇晶片對話框415
圖182SmartRF Packet Sniffer界面415
圖183Sniffer抓包結果416
圖184TI低功耗藍牙技術主頁417
圖185CC254X PC端開發範例418
圖186CC254X移動智慧型設備開發範例418
圖187CC254X嵌入式設備開發範例419
表11始終增長的傳輸速率8
表31核心板J3直插引腳定義27
表32核心板J4直插引腳定義27
表33核心板J5直插引腳定義28
表34LED接口30
表35按鍵接口30
表36感測器接口31
表37UART接口(J13)31
表38電源接口(J11)31
表39底板J4直插引腳定義31
表310底板J5直插引腳定義32
表311底板仿真接口定義33
表41P1 (0x90)連線埠154
表42P2(0xA0)連線埠255
表43P1SEL (0xF4)連線埠1功能選擇55
表44P2SEL(0xF5)連線埠2功能選擇和連線埠1外設優先權控制55
表45P1DIR(0xFE)連線埠1方向56
表46P2DIR(0xFF)連線埠2方向和連線埠0 外設優先權控制56
表47P0(0x80)連線埠064
表48P0SEL(0xF3)連線埠0功能選擇64
表49P0DIR(0xFD)端口0功能選擇65
表410P0(0x80)連線埠067
表411P0SEL(0xF3)連線埠0功能選擇67
表412P0DIR(0xFD)連線埠0方向67
表413P0INP(0x8F)連線埠0輸入模式67
表414P2INP(0xF7)連線埠2輸入模式68
表415P0IFG(0x89)連線埠P0.7~P0.0中斷狀態標誌72
表416PICTL(0x8C)位0連線埠0中斷模式配置72
表417P0IEN(0xAB)連線埠P0.7~P0.0中斷使能73
表418IEN0(0xA8)位7使能所有中斷源73
表419IEN1(0xB8)位5連線埠0中斷源使能73
表420 IRCON(0xC0)位5連線埠0中斷標誌73
表51T1CNTH(0xE3)定時器1計數器高位78
表52T1CNTL(0xE2)定時器1計數器低位78
表53T1CTL(0xE4)定時器1的控制和狀態78
表54T1STAT(0xAF)定時器1狀態78
表55T1CC0H(0xDD)定時器1通道1捕獲/比較值高位79
表56T1CC0L(0xDA)定時器1通道0捕獲/比較值低位79
表57CLKCONCMD(0xC6)與定時器相關的位時鐘控制命令79
物聯網技術實踐教程——基於藍牙4
表 表58CLKCONSTA(0x9E)時鐘控制狀態80
表59IEN0(0xA8)位7中斷源使能總開關83
表510IEN1(0xB8)位1定時器1中斷使能84
表511T1STAT(0xAF)位5定時器1狀態84
表512IRCON(0xC0)位1定時器1中斷標誌84
表513PERCFG(0xF1)外設控制87
表514P2DIR(0xFF)連線埠2方向和連線埠0外設優先權控制87
表515P0SEL(0xF3)連線埠0功能選擇88
表516P0DIR(0xFD)連線埠0功能選擇88
表517T1CCTL3(0x62A3)定時器1通道3捕獲/比較控制88
表518T1CC0H(0xDD)定時器1通道1捕獲/比較值高位89
表519T1CC0L(0xDA)定時器1通道0捕獲/比較值低位89
表61U0CSR(0x86)USART0控制和狀態99
表62U0UCR(0xC4)USART0的UART控制99
表63U0GCR(0xC5)USART0通用控制100
表64U0BUF又名U0DBUF(0xC1)USART0接收/傳送數據快取100
表65U0BAUD(0xC2)USART0波特率控制101
表66P2DIR(0xFF)連線埠2方向和連線埠0外設優先權控制101
表6732MHz系統時鐘的常用波特率設定101
表68CHVER(0x6249)晶片版本105
表69CHIPID (0x624A)晶片ID105
表610CHIPINFO0(0x6276)晶片信息位元組0105
表611CHIPINFO1(0x6277)晶片信息位元組1106
表612TCON(0x88)中斷標誌114
表613IRCON2(0xE8)中斷標誌5114
表614串口收發中斷向量描述114
表615IEN0(0xA8)中斷使能0114
表616IEN2 (0x9A)中斷使能2115
表71APCFG(0xF2)模擬外設I/O 配置120
表72ADCL(0xBA)ADC數據低位120
表73ADCH(0xBB)ADC數據高位121
表74ADCCON1 (0xB4)ADC 控制1121
表75ADCCON2(0xB5)ADC控制2121
表76ADCCON3(0xB6)ADC控制3122
表77TR0(0x624B)測試暫存器0123
表78ATEST(0x61BD)模擬測試控制123
表81PCON(0x87)供電模式控制132
表82SLEEPCMD(0xBE)睡眠模式控制132
表83SLEEPSTA(0x9D)睡眠模式控制狀態132
表84ST2(0x97)休眠定時器2141
表85ST1(0x96)休眠定時器1141
表86ST0(0x95)休眠定時器0141
表87STLOAD(0xAD)睡眠定時器載入狀態141
表91看門狗暫存器145
表101傳送ROM指令155
表102傳送存儲器指令156
表103Nokia 5110液晶屏接口(帶PCB小板)163
表104USART功能配置164
表105PCD8544指令集165
表106表105中有關字元的解釋166
表107PCD8544 SPI時鐘頻率167
表108PERCFG(0xF1)外設控制168
表109U1CSR(0xF8)USART 1控制和狀態168
表1010U1UCR(0xFB)USART 1控制168
表1011U1GCR(0xFC)USART 1通用控制169
表1012U1BUF(0xF9)USART 1接收/傳送數據快取170
表111首要服務與次要服務的屬性資料庫樣例214
表122SimpleKeys GATT Profile屬性表253
1.1移動通信發展簡史1
1.2中國移動通信發展現狀6
1.3各類移動通信系統概述7
1.3.2無線尋呼系統8
1.3.3集群移動通信系統9
1.3.5衛星移動通信系統12
1.4移動通信系統的工作頻段16
習題18
第2章第二代移動通信系統19
2.1.1GSM系統的網路結構19
2.1.2GSM服務區域的劃分21
2.1.3GSM的編號計畫22
2.1.4GSM系統的接口24
2.1.5GSM的語音編碼26
2.1.6GSM系統的業務27
2.1.7GSM的無線接口28
2.1.8GSM系統的移動性管理34
2.2IS—95CDMA系統39
2.2.1擴頻通信技術39
2.2.2IS—95CDMA的關鍵技術41
2.2.3IS—95 CDMA系統的無線接口46
習題49
第3章2.5G移動通信系統51
3.1GPRS系統51
3.1.1概述51
3.1.2GPRS基本原理53
移動通信技術及套用
3.1.3GPRS基本功能和業務58
3.1.4GPRS的基本概念64
3.1.5GPRS業務流程69
3.2CDMA 2000—1X系統81
3.2.1CDMA技術的演進與標準81
3.2.2CDMA 2000—1X系統結構 81
3.2.3CDMA 2000—1X關鍵技術82
3.2.4CDMA 2000—1X工程組網簡介85
3.2.5CDMA 2000—1X的語音和數據信道88
習題89
第4章第三代移動通信系統90
4.1CDMA 2000 1x EVDO系統90
4.1.1概述90
4.1.21x EVDO的網路結構94
4.1.3EVDO Rev A信道95
4.1.4EVDO Rev A關鍵技術97
4.2WCDMA系統104
4.2.1概述104
4.2.2WCDMA標準的演進106
4.2.3WCDMA的空中接口113
4.3TDSCDMA系統135
4.3.1概述135
4.3.2TDSCDMA的網路結構135
4.3.3TDSCDMA系統的關鍵技術143
習題155
第5章第四代移動通信系統157
5.1概述157
5.1.1第四代移動通信系統的關鍵特性要求157
5.1.2第四代移動通信系統標準的確定159
5.1.3準4G網路在全球的套用情況160
5.2第四代移動通信系統的關鍵技術161
5.2.1OFDM技術161
5.2.2MIMO技術163
5.3LTE系統165
5.3.1LTE的技術特點165
5.3.2LTE的網路結構166
5.3.3EUTRAN接口的通用協定模型168
5.3.4LTE的無線信道171
5.3.5無線資源管理173
5.3.7LTEA的性能增強181
5.3.8TDLTE與LTE FDD的對比183
5.4WiMAX系統185
5.4.1WiMAX的產生和發展185
5.4.2移動WiMAX——IEEE 802.16e 186
5.4.34G技術——IEEE 802.16m188
習題189
第6章移動通信業務190
6.12G移動通信業務190
6.1.1基本業務190
6.1.2補充業務191
6.23G移動通信業務196
6.2.13G業務的特點及發展趨勢196
6.2.23G業務的分類197
6.2.3典型的3G業務199
6.3移動智慧型網業務203
6.3.1智慧型網基礎203
6.3.2移動智慧型網203
6.3.3移動智慧型網業務205
習題208
第7章移動網際網路——移動通信網與網際網路的融合209
7.1網際網路簡介209
7.1.1網際網路的產生和發展209
7.1.2網際網路在中國的發展210
7.1.4TCP/IP協定模型214
7.2移動網際網路的產生及發展217
7.2.1移動網際網路簡介217
7.2.2移動網際網路的特點218
7.2.3移動網際網路的發展現狀220
7.3移動網際網路的體系結構及關鍵技術223
7.3.1終端技術223
7.3.2網路平台技術223
7.3.3套用平台技術224
7.4典型的移動網際網路業務套用225
7.4.2移動定位業務228
7.4.3移動搜尋業務233
7.4.4移動瀏覽業務239
7.4.5移動支付業務242
7.4.6移動廣告業務245
7.4.7移動音樂業務249
習題251
參考文獻252
第一篇 概述及實驗平台 1
第1章 低功耗藍牙(BLE)概述 3
1.1 藍牙與物聯網 3
1.2 低功耗藍牙與我的物聯網 5
1.3 什麼是低功耗藍牙 8
1.4 BLE如何實現低功耗 9
第2章 藍牙4.0BLE軟體開發平台搭建 11
2.1 為什麼是IAR 8051 11
2.2 安裝IAR8051-8.3 12
2.2.1 下載IAR8051-8.3 12
2.2.2 安裝IAR8051-8.3 13
2.2.3 破解IAR8051-8.3 19
2.3 IAR8051集成開發環境簡介 22
2.4 IAR 8051 C/C++ 23
2.5 安裝相關支持軟體 23
第3章 藍牙4.0BLE硬體開發平台搭建 25
3.1 為什麼是世嵌開發板 25
3.2 世嵌最簡配置開發套件 27
3.2.1 核心板:WB2540MVA 27
3.2.2 底板:WX2530 29
3.2.3 仿真器:CCDBG 35
3.3 搭建實驗硬體環境 36
3.4 創建工程-點亮LED 38
第二篇 基礎實驗 49
第4章 GPIO實驗 51
4.1 LED實驗:打開所有LED 51
4.1.1 任務要求及效果呈現 51
4.1.2 實驗原理 52
4.1.3 實驗步驟 55
4.1.4 程式清單(含詳細注釋) 57
4.2 LED實驗:讓LED一閃一閃 57
4.2.1 任務要求及效果呈現 57
4.2.2 實驗原理 58
4.2.3 程式清單(含詳細注釋) 58
4.3 LED實驗:實現流水燈 59
4.3.1 任務要求及效果呈現 59
4.3.2 實驗原理 60
4.3.3 程式清單(含詳細注釋) 61
4.4 蜂鳴器實驗:驅動蜂鳴器發聲 62
4.4.1 任務要求及效果呈現 62
4.4.2 實驗原理 62
4.4.3 程式清單(含詳細注釋) 64
4.5 按鍵實驗:按鍵控制LED 65
4.5.1 任務要求及效果呈現 65
4.5.2 實驗原理 65
4.5.3 程式清單(含詳細注釋) 68
4.6 按鍵實驗:按鍵控制LED (中斷方式) 70
4.6.1 任務要求及效果呈現 70
4.6.2 實驗原理 71
4.6.3 程式清單(含詳細注釋) 74
第5章 定時器實驗 77
5.1 定時器實驗:流水燈(查詢方式) 77
5.1.1 任務要求及效果呈現 77
5.1.2 實驗原理 77
5.1.3 程式清單(含詳細注釋) 81
5.2 定時器實驗:流水燈(中斷方式) 83
5.2.1 任務要求及效果呈現 83
5.2.2 實驗原理 84
5.2.3 程式清單(含詳細注釋) 85
5.3 定時器實驗:PWM控制蜂鳴器 86
5.3.1 任務要求及效果呈現 87
5.3.2 實驗原理 88
5.3.3 示波器與開發板連線 91
5.3.4 源碼清單 92
第6章 串口實驗 99
6.1 串口傳送實驗:列印歡迎信息 99
6.1.1 任務要求及效果呈現 99
6.1.2 實驗原理 100
6.1.3 硬體連線 104
6.1.4 源碼清單 105
6.2 串口傳送:用printf列印系統信息 106
6.2.1 任務要求及效果呈現 106
6.2.2 實驗原理 107
6.2.3 源碼清單 108
6.3 串口收發:用C標準庫輸入輸出函式 110
6.3.1 任務要求及效果呈現 110
6.3.2 實驗原理 110
6.3.3 源碼清單 112
6.4 串口收發:中斷方式 115
6.4.1 任務要求及效果呈現 115
6.4.2 實驗原理 116
6.4.3 源碼清單 119
第7章 ADC實驗 122
7.1 測量晶片內部溫度和供電電壓 122
7.1.1 任務要求及效果呈現 122
7.1.2 實驗原理 123
7.1.3 源碼清單 127
7.2 測量光照強度 130
7.2.1 任務要求及效果呈現 130
7.2.2 實驗原理 131
7.2.3 源碼清單 132
第8章 睡眠與喚醒實驗 134
8.1 外部中斷喚醒 134
8.1.1 任務要求和效果呈現 134
8.1.2 實驗原理 135
8.1.3 源碼清單 138
8.2 定時器喚醒 144
8.2.1 任務要求和效果呈現 144
8.2.2 實驗原理 145
8.2.3 源碼清單 147
第9章 看門狗實驗、FLASH讀寫實驗 149
9.1 看門狗實驗 149
9.1.1 任務要求和效果呈現 149
9.1.2 實驗原理 150
9.1.3 源碼清單 151
9.2 FLASH讀寫實驗 152
9.2.1 任務要求和效果呈現 153
9.2.2 實驗原理 154
9.2.3 源碼清單 155
第10章 匯流排實驗 159
10.1 單匯流排實驗(DS18B20驅動) 159
10.1.1 任務要求和效果呈現 159
10.1.2 實驗原理 160
10.1.3 源碼清單 163
10.2 SPI匯流排實驗(諾基亞5110液晶屏驅動) 167
10.2.1 任務要求和效果呈現 167
10.2.2 實驗原理 169
10.2.3 源碼清單 177
第三篇 BLE協定棧 201
第11章 藍牙4.0協定棧基礎 202
11.1 BLE協定棧整體構架 202
11.2 物理層(PHY) 202
11.3 鏈路層(LL) 203
11.3.1 鏈路層狀態機 203
11.3.2 鏈路層報文 205
11.3.3 設備發現 205
11.3.4 關於廣播 206
11.3.5 連線過程 206
11.3.6 數據傳送 209
11.3.7 管理連線 209
11.4 主機/控制器接口(HCI) 210
11.4.1 物理接口與邏輯接口 210
11.4.2 控制器的配置 210
11.4.3 廣播與觀察 211
11.4.4 發起連線 212
11.4.5 連線管理 213
11.5 邏輯鏈路控制和適配協定(L2CAP) 213
11.6 屬性協定層(ATT)、通用屬性配置檔案層(GATT) 214
11.6.1 伺服器與客戶端模型 214
11.6.2 屬性 214
11.6.3 屬性的訪問 216
11.6.4 服務 216
11.6.5 特性 217
11.6.6 屬性協定 218
11.6.7 通用屬性規範 220
11.7 安全管理層(SM) 223
11.7.1 安全概念 223
11.7.2 配對和綁定 223
11.7.3 數據簽名 224
11.8 通用訪問配置檔案層(GAP) 224
11.8.1 GAP角色 224
11.8.2 模式和規程 224
11.8.3 廣播模式和觀察規程 225
11.8.4 可發現性 225
11.8.5 可連線性 226
11.8.6 綁定 227
第12章 TI藍牙協定棧開發平台 228
12.1 BLE協定棧開發平台配置 228
12.2 BLE協定棧軟體開發框架 229
12.3 協定棧應用程式運行機理 230
12.3.1 開始應用程式:main() 230
12.3.2 初始化系統:osal_init_system() 232
12.3.3 啟動系統:osal_start_system() 234
12.3.4 系統運行機理 235
12.4 OSAL作業系統抽象層 236
12.4.1 任務事件和事件處理 237
12.4.2 記憶體堆管理 237
12.4.3 OSAL訊息 238
12.5 HAL硬體抽象層 238
12.6 BLE協定棧 239
12.6.1 通用訪問配置檔案(GAP) 239
12.6.2 通用屬性配置檔案(GATT) 240
12.6.3 GATT伺服器應用程式 241
12.7 配置檔案 241
12.7.1 GAP外圍角色配置 242
12.7.2 GAP外圍/廣播多重角色配置 243
12.7.3 GAP Central Role Profile 243
12.7.4 GAP綁定管理器 244
12.7.5 簡單屬性配置檔案(Simple GATT Profile) 244
12.7.6 簡單按鍵屬性配置檔案(SimpleKeys GATT Profile) 250
12.7.7 設備信息服務 251
12.7.8 其他屬性配置檔案 251
第13章 藍牙協定棧項目開發入門 252
13.1.1 項目配置 252
13.1.2 Linker Map檔案 255
13.1.3 simpleBLEPeripheral.c源碼分析 255
13.2 簡單BLE中央設備(SimpleBLECentral) 270
13.2.1 項目配置 270
13.2.2 Linker Map檔案 271
13.2.3 simpleBLECentral.c源碼分析 271
第14章 定製硬體抽象層 293
14.1 增加外設驅動 293
14.2 修改hal_board_cfg 294
14.3 修改hal_led 295
14.4 修改hal_key 296
14.5 增強UART功能 298
14.6 增加Nokia5110液晶屏驅動 305
第四篇 BLE通信實驗 293
第15章 簡單的藍牙通信 295
15.1 引言 295
15.2 搭建藍牙通信實驗平台 295
15.3 源碼相關配置修改 297
15.3.1 修改 Simple BLE Peripherial 項目 297
15.3.2 修改 Simple BLE Central 項目 298
15.4 實驗過程演示 300
15.5 實驗:實現自動連線和LED連線狀態指示 303
15.5.1 任務要求與效果呈現 303
15.5.2 實驗原理 305
15.5.3 源碼修改 305
第16章 我的藍牙感知器(iSensor) 309
16.1 控制LED 309
16.1.1 任務要求與效果呈現 310
16.1.2 實現外圍設備 311
16.1.3 實現中央設備 315
16.2 感知外設CPU溫度 323
16.2.1 任務要求與效果呈現 323
16.2.2 實現外圍設備 325
16.2.3 實現中央設備 327
16.3 感知外設環境溫度 329
16.3.1 任務要求與效果呈現 330
16.3.2 實現外圍設備 331
16.3.3 實現中央設備 335
16.4 感知外設光照強度 336
16.4.1 任務要求與效果呈現 336
16.4.2 實現外圍設備 338
16.4.3 實現中央設備 342
16.5 定時獲取外設光照強度 343
16.5.1 任務要求與效果呈現 344
16.5.2 實現外圍設備 347
16.5.3 實現中央設備 353
16.6 無線串口透傳 355
16.6.1 任務要求與效果呈現 355
16.6.2 NPI模組原理與串口透傳 357
16.6.3 實現外圍設備 358
16.6.4 實現中央設備 362
第17章 藍牙USB 366
17.1 iSensorHid(藍牙鍵鼠) 366
17.1.1 任務要求與效果呈現 367
17.1.2 實現外圍設備 375
17.1.3 實現中央設備 379
17.2 iSensorCDC(藍牙USB串口) 384
17.2.1 任務要求與效果呈現 384
17.2.2 實現外圍設備 386
17.2.3 實現中央設備 387
17.3 iHostTest(網路處理機) 388
17.3.1 實現iHostTest 388
17.3.2 系統初始化 389
17.3.3 建立連線 390
17.3.4 測試GATT屬性服務 393
第18章 藍牙通信測試與支持 402
18.1 藍牙協定分析儀(Sniffer) 402
18.2 藍牙支持 405
參考文獻 408
圖 1-1 物聯網—感知世界 3
圖 1-2 藍牙在醫療設備上的套用 7
圖 1-3 藍牙防丟產品 7
圖 1-4 SENSORY的前端語音識別技術通過藍牙耳機實現安全行駛 8
圖 2-1 IAR官方主頁 12
圖 2-2 IAR產品下載 12
圖 2-3 IAR8051-8.3評估版下載頁面 13
圖 2-4 IAR8051-8.3下載任務對話框 13
圖 2-5 EW8051-8303-Autorun.exe自解壓 14
圖 2-6 程式安裝界面 14
圖 2-7 準備安裝 14
圖 2-8 安裝精靈 15
圖 2-9 是否接受許可協定 15
圖 2-10 自定義安裝還是完全安裝 16
圖 2-11 安裝路徑選擇 16
圖 2-12 程式圖示選擇 17
圖 2-13 準備安裝程式 17
圖 2-14 安裝程式過程 18
圖 2-15 是否安裝USB dongles 驅動 18
圖 2-16 安裝結束 18
圖 2-17 退出 19
圖 2-18 破解IAR8051-8.3 19
圖 2-19 License manager界面 20
圖 2-20 編譯錯誤 21
圖 2-21 增加一行“-Z(DATA)VREG=08-7F"" 21
圖 2-22 現在編譯正確了 22
圖 2-23 IAR8051集成開發環境 22
圖 3-1 世嵌科技官網 26
圖 3-2 CC2540藍牙4.0低功耗最簡配置開發板套件(2模組+2底板+1仿真器) 26
圖 3-3 WB2540MVA核心板 27
圖 3-4 WB2540MVA核心板機械尺寸和元件布局 28
圖 3-5 WX2530底板(綠色)+CC2540核心板(藍色) 30
圖 3-6 開發板整體架構 31
圖 3-7 WX2530底板輸入接口 31
圖 3-8 跳線使能USB接口 32
圖 3-9 仿真器接口封裝圖 34
圖 3-10 仿真器灰排母座應朝板子外側插入仿真接口 34
圖 3-11 CCDBG仿真器(上面雖未標明支持CC2540,但實際完全支持) 35
圖 3-12 某淘寶店推出的PL2303HX模組 37
圖 3-13 開發板與外配的硬體連線 38
圖 3-14 複製安裝下的藍牙協定棧到你的工作 39
圖 3-15 協定棧的項目範例 39
圖 3-16 複製一個副本 40
圖 3-17 項目改名 40
圖 3-18 項目檔案 40
圖 3-19 項目檔案 41
圖 3-20 修改eww檔案 41
圖 3-22 新工程誕生 42
圖 3-21 移除原工程檔案 1
圖 3-23 選中“Options...”選項 1
圖 3-24 將常量和字元串置於RAM memory 1
圖 3-25 將輸出的hex檔案改為你喜歡的名字 43
圖 3-26 將Driver設定為“Texas Instruments"" 43
圖 3-28 點擊“Add Files..."" 43
圖 3-27 選中三個檔案 1
圖 3-29 檔案改名 44
圖 3-31 檔案已經添加 44
圖 3-30 清空編輯區 1
圖 3-32 編寫代碼 45
圖 3-33 編譯代碼 45
圖 3-34 下載調試 46
圖 3-35 調試開始 46
圖 3-36 點亮綠燈 1
圖 3-38 設定斷點 47
圖 3-37 啟動不下載的調試 1
圖 3-39 調試開始 1
圖 3-40 調試運行到斷點處 1
圖 3-42 按下""step over""圖示 48
圖 3-41 調試游標進入下一行語句 1
圖 4-1 基礎實驗一效果 51
圖 4-2 LED原理圖 52
圖 4-3 打開項目並另外儲存源檔案 55
圖 4-4 將源檔案改名並另外儲存 55
圖 4-5 將另外儲存的檔案添加 56
圖 4-6 將“mTest.c”檔案從項目編譯連結中排除 56
圖 4-7 為mTestLedAllOpen.c編寫代碼 56
圖 4-8 讓LED一閃一閃 58
圖 4-9 流水燈效果 60
圖 4-10 流水燈程式設計和調試界面 60
圖 4-11 驅動蜂鳴器發聲 62
圖 4-12 蜂鳴器原理圖 63
圖 4-13 按鍵控制LED亮滅 65
圖 4-14 按鍵電路原理圖 66
圖 4-15 按鍵按下和鬆開的電信號變化 67
圖 4-16 按鍵控制LED(中斷方式) 71
圖 5-1 中斷查詢方式的定時流水燈 77
圖 5-2 中斷方式的定時流水燈 83
圖 5-3 實驗過程演示:按下鍵2,黃燈亮(左圖),釋放,黃燈熄滅(右圖) 87
圖 5-4 200HZ聲音時的通道2和通道3的波形 87
圖 5-5 2000HZ聲音時的通道2和通道3的波形 88
圖 5-6 本人自購的示波器 91
圖 5-7 開發板與示波器連線圖 92
圖 6-1 列印歡迎信息 99
圖 6-2 CC2540串口與PC機串口的硬體連線圖 104
圖 6-3 串口輸出系統硬體信息 106
圖 6-4 使用C標準庫輸入輸出函式進行串口收發實驗 110
圖 6-5 中斷方式下的串口數據收發實驗 116
圖 7-1 手指壓在CC2540上以測量晶片內部溫度的變化 122
圖 7-2 晶片內部電壓和溫度(當手指按在CC2540晶片上時,溫度立即上升) 123
圖 7-3 測量光敏電阻分壓 130
圖 7-4 手指按住光敏電阻(分壓:1.805V) 1
圖 7-5 手指離開光敏電阻(分壓:0.400V) 1
圖 7-6 LED強光直射光敏電阻(分壓:0.071V) 1
圖 7-7 相機袋壓在光敏電阻上(2.900V) 1
圖 7-8 光敏電阻原理圖 1
圖 8-1 按鍵控制休眠實驗圖 134
圖 8-2 串口列印的信息(按鍵催眠、喚醒CPU實驗) 135
圖 8-3 進入反彙編代碼查看PCON.IDLE=1指令地址 137
圖 8-4 開發板的演示效果(睡眠定時器喚醒實驗) 145
圖 8-5 串口控制台列印的實驗過程信息(睡眠定時器喚醒實驗) 145
圖 9-1 正常的流水燈演示實驗 149
圖 9-2 沒有及時餵狗而導致反覆重啟 149
圖 9-3 控制台顯示的反覆重啟效果 150
圖 9-4 Flash讀寫實驗 154
圖 10-1 手指按在DS18B20上面,溫度一直在上升 159
圖 10-2 DS18B20實驗:手指按在DS18B20上面,使得溫度上升 160
圖 10-3 DS18B20溫度測量模組 160
圖 10-4 初始歡迎頁面 1
圖 10-5 鍵2按下,背光打開 1
圖 10-6 鍵1按下,開始測量氣溫 1
圖 10-7 鍵2按下,背光關掉 1
圖 10-8 實驗過程在串口控制台的演示 1
圖 10-9 諾基亞5110顯示屏正反面(帶PCB小板) 169
圖 10-10 CC2540與諾基亞5110的電路連線原理圖 170
圖 10-11 PCD8544寫指令時序 171
圖 10-12 PCD8544初始化時序 171
圖 10-13 顯存結構 172
圖 10-14 用水平定址方式(V=0)往RAM寫入數據的次序 173
圖 10-15 漢字液晶點陣及對應編碼 176
圖 11-1 BLE協定棧構架 202
圖 11-2 鏈路層狀態機 204
圖 11-3 兩個設備建立連線以實現可靠數據傳輸 207
圖 11-4 連線事件 208
圖 11-5 屬性結構 215
圖 11-6 服務聲明 217
圖 11-7 特性聲明 218
圖 11-8 特性數值 218
圖 12-1 單一設備的配置 228
圖 12-2 網路處理器的配置 229
圖 12-3 SimpleBLEPeripheral項目界面 230
圖 12-4 系統運行機理 236
圖 12-5 屬性結構 240
圖 13-1 SimpleBLEPeripheral項目界面 252
圖 13-2 選項框中設定預處理宏 253
圖 13-3 配置檔案中定義預處理宏 253
圖 13-4 Linker Map檔案 255
圖 13-5 SimpleBLECentral項目界面 271
圖 13-6 Linker Map檔案 271
圖 14-1 添加外設驅動源檔案 294
圖 15-1 我的藍牙通信簡易實驗平台 296
圖 15-2 CCDBG端子擴展 296
圖 15-3 CCDBG端子擴展板與CCDBG連線 297
圖 15-4 增加和修改預定義宏 297
圖 15-5 增加預定義宏 299
圖 15-6 實驗過程控制台顯示(左圖:SimpleBLEPeripheral;右圖:SimpleBLECentral) 300
圖 15-7 實驗初始液晶顯示(左圖:SimpleBLEPeripheral;右圖:SimpleBLECentral) 301
圖 15-8 實驗過程液晶顯示(左圖:SimpleBLEPeripheral;右圖:SimpleBLECentral) 301
圖 15-9 實驗過程控制台顯示(左圖:SimpleBLEPeripheral;右圖:SimpleBLECentral) 304
圖 15-10 實驗過程液晶顯示(左圖:SimpleBLEPeripheral;右圖:SimpleBLECentral) 304
圖 16-1 串口控制台列印實驗過程(左圖:外圍設備端;右圖:中央設備端) 310
圖 16-2 連線建立並參數更新後的LCD顯示及外圍設備LED顯示 311
圖 16-3 單擊按鍵後的LCD顯示及外圍設備LED顯示 311
圖 16-4 LCD顯示MCU溫度信息(左圖:外圍設備端;右圖:中央設備端) 323
圖 16-5 串口控制台列印實驗過程(左圖:外圍設備端;右圖:中央設備端) 324
圖 16-6 LCD顯示環境溫度信息(左圖:外圍設備端;右圖:中央設備端) 330
圖 16-7 串口控制台列印實驗過程(左圖:外圍設備端;右圖:中央設備端) 331
圖 16-8 LCD顯示光照強度(左圖:外圍設備端;右圖:中央設備端) 337
圖 16-9 串口控制台列印實驗過程(左圖:外圍設備端;右圖:中央設備端) 337
圖 16-10 中央設備串口控制台列印實驗過程(左圖:連線和發現;右圖:四種定時模式) 345
圖 16-11 外圍設備串口控制台 1
圖 16-12 LCD顯示即時光照強度(左圖:外圍設備端;右圖:中央設備端) 346
圖 16-13 串口控制台列印實驗過程(左圖:外圍設備端;右圖:中央設備端) 356
圖 16-14 LCD顯示當前串口傳送和接收信息(左圖:外圍設備;右圖:中央設備) 357
圖 17-1 中央設備啟動過程1(掃描期間,USB開始初始化) 367
圖 17-2 中央設備啟動過程2(框中部分是顯示的重合部分) 368
圖 17-3 系統初始完成的初始LCD界面(PC自動傳送鍵盤燈狀體的USB報告) 368
圖 17-4 藍牙滑鼠串口控制台顯示(左圖:外圍設備;右圖:中央設備) 369
圖 17-5 藍牙滑鼠PC桌面測試 370
圖 17-6 藍牙鍵盤功能1串口控制台顯示(左圖:外圍設備;右圖:中央設備) 371
圖 17-7 藍牙鍵盤功能1 PC桌面測試 371
圖 17-8 藍牙鍵盤功能2串口控制台顯示(左圖:外圍設備;右圖:中央設備) 372
圖 17-9 藍牙鍵盤功能2 播放器測試——快進 372
圖 17-10 藍牙鍵盤功能2 播放器測試——快退 373
圖 17-11 藍牙鍵盤功能2 播放器測試——暫停 373
圖 17-12 藍牙鍵盤燈控制實驗:串口信息輸出(左圖:外圍設備;右圖:中央設備) 374
圖 17-13 藍牙鍵盤燈控制實驗:LED顯示(共三幅圖,每幅圖的左上:中央設備;右下:外圍設備) 374
圖 17-14 藍牙鍵盤燈控制實驗:LCD顯示(共兩幅圖,每幅圖的左邊:中央設備;右邊:外圍設備) 374
圖 17-15 插入USB口之後出現第3個串口(COM5:USB CDC虛擬串口) 384
圖 17-16 系統啟動界面,自動配置串口透傳 385
圖 17-17 串口透傳通信過程 385
圖 17-18 啟動BTool 389
圖 17-19 bTool初始化界面 390
圖 17-20 開始掃描 391
圖 17-21 發現廣播設備 392
圖 17-22 建立連線 392
圖 17-23 讀寫屬性操作界面 393
圖 17-24 利用特性UUID發現特性起始句柄 394
圖 17-25 利用特性句柄讀特性值 395
圖 17-26 利用特性UUID讀特性值 396
圖 17-27 解決二進制向浮點型轉換 396
圖 17-28 利用多個特性句柄讀多個特性值 397
圖 17-29 根據特性句柄寫LED特性值 398
圖 17-30 寫入之後(LED全亮) 1
圖 17-31 寫入之前(僅綠燈亮) 1
圖 17-32 利用特性句柄寫環境溫度通知配置 399
圖 17-33 利用特性句柄寫光照強度通知配置 400
圖 18-1 選擇晶片對話框 403
圖 18-2 SmartRF Packet Sniffer界面 403
圖 18-3 Sniffer抓包結果 404
圖 18-4 TI 低功耗藍牙技術主頁 405
圖 18-5 CC254X PC端開發範例 406
圖 18-6 CC254X 移動智慧型設備開發範例 406
圖 18-7 CC254X 嵌入式設備開發範例 407
表 1-1 始終增長的傳輸速率 8
表 3-1 核心板J3直插引腳定義 28
表 3-2 核心板J4直插引腳定義 28
表 3-3 核心板J5直插引腳定義 29
表 3-4 LED接口 31
表 3-5 按鍵接口 32
表 3-6 感測器接口 32
表 3-7 UART接口(J13) 33
表 3-8 電源接口(J11) 33
表 3-9 底板J4直插引腳定義 33
表 3-10 底板J5直插引腳定義 33
表 3-11 底板仿真接口定義 34
表 4-1 P1 (0x90)–連線埠1 52
表 4-2 P2(0xA0)–連線埠2 53
表 4-3 P1SEL (0xF4)–連線埠1 功能選擇 53
表 4-4 P2SEL (0xF5)–連線埠2 功能選擇和連線埠1外設優先權控制 53
表 4-5 P1DIR (0xFE)–連線埠1方向 54
表 4-6 P2DIR (0xFF)–連線埠2方向和連線埠0 外設優先權控制 54
表 4-7 P0 (0x80)–連線埠0 63
表 4-8 P0SEL (0xF3)–連線埠0 功能選擇 63
表 4-9 P0DIR (0xFD)–連線埠0 功能選擇 63
表 4-10 P0 (0x80)–連線埠0 66
表 4-11 P0SEL (0xF3)–連線埠0 功能選擇 66
表 4-12 P0DIR (0xFD)–連線埠0 方向 66
表 4-13 P0INP (0x8F)–連線埠0 輸入模式 66
表 4-14 P2INP (0xF7)–連線埠2 輸入模式 67
表 4-15 P0IFG(0x89)–連線埠P0.7到P0.0中斷狀態標誌 72
表 4-16 PICTL(0x8C)位0–連線埠0中斷模式配置 72
表 4-17 P0IEN(0xAB)–連線埠P0.7到P0.0中斷使能 72
表 4-18 IEN0(0xA8)位7-使能所有中斷源 72
表 4-19 IEN1(0xB8)位5-連線埠0中斷源使能 72
表 4-20 IRCON(0xC0)位5-連線埠0中斷標誌 72
表 5-1 T1CNTH(0xE3)–定時器1計數器高位 77
表 5-2 T1CNTL(0xE2)–定時器1計數器低位 78
表 5-3 T1CTL(0xE4)–定時器1的控制和狀態 78
表 5-4 T1STAT(0xAF)–定時器1狀態 78
表 5-5 T1CC0H(0xDD)–定時器1 通道1 捕獲/比較值高位 79
表 5-6 T1CC0L(0xDA)–定時器1 通道0 捕獲/比較值低位 79
表 5-7 CLKCONCMD(0xC6)與定時器相關的位–時鐘控制命令 79
表 5-8 CLKCONSTA(0x9E)–時鐘控制狀態 80
表 5-9 IEN0(0xA8)位7–中斷源使能總開關 84
表 5-10 IEN1(0xB8)位1-定時器1中斷使能 84
表 5-11 T1STAT(0xAF)位5–定時器1狀態 84
表 5-12 IRCON(0xC0)位1-定時器1中斷標誌 84
表 5-13 PERCFG(0xF1)-外設控制 88
表 5-14 P2DIR(0xFF)-連線埠2方向和連線埠0外設優先權控制 88
表 5-15 P0SEL(0xF3)-連線埠0功能選擇 89
表 5-16 P0DIR(0xFD)-連線埠0功能選擇 89
表 5-17 T1CCTL3(0x62A3)-定時器1通道3捕獲/比較控制 89
表 5-18 T1CC0H(0xDD)-定時器1通道1捕獲/比較值高位 90
表 5-19 T1CC0L(0xDA)-定時器1通道0捕獲/比較值低位 90
表 6-1 U0CSR (0x86)-USART0控制和狀態 100
表 6-2 U0UCR(0xC4)-USART0的UART控制 101
表 6-3 U0GCR (0xC5)-USART0通用控制 102
表 6-4 U0BUF又名U0DBUF(0xC1)-USART0接收/傳送數據快取 102
表 6-5 U0BAUD(0xC2)-USART0波特率控制 102
表 6-6 P2DIR (0xFF)–連線埠2方向和連線埠0外設優先權控制 103
表 6-7 32MHZ系統時鐘的常用波特率設定 103
表 6-8 CHVER(0x6249)–晶片版本 107
表 6-9 CHIPID (0x624A) –晶片ID 107
表 6-10 CHIPINFO0(0x6276)–晶片信息位元組0 107
表 6-11 CHIPINFO1(0x6277)–晶片信息位元組1 108
表 6-12 TCON(0x88)–中斷標誌 117
表 6-13 IRCON2(0xE8)–中斷標誌5 117
表 6-14 串口收發中斷向量描述 117
表 6-15 IEN0(0xA8)–中斷使能0 117
表 6-16 IEN2 (0x9A)–中斷使能2 117
表 7-1 APCFG (0xF2)–模擬外設I/O 配置 123
表 7-2 ADCL (0xBA)-ADC 數據低位 123
表 7-3 ADCH (0xBB) - ADC 數據高位 123
表 7-4 ADCCON1 (0xB4)-ADC 控制1 124
表 7-5 ADCCON2 (0xB5)-ADC控制2 124
表 7-6 ADCCON3 (0xB6)-ADC 控制3 125
表 7-7 TR0 (0x624B)–測試暫存器0 126
表 7-8 ATEST (0x61BD)–模擬測試控制 126
表 8-1 PCON(0x87)–供電模式控制 136
表 8-2 SLEEPCMD(0xBE)–睡眠模式控制 136
表 8-3 SLEEPSTA(0x9D)–睡眠模式控制狀態 136
表 8-4 ST2(0x97)–休眠定時器2 146
表 8-5 ST1(0x96)–休眠定時器1 146
表 8-6 ST0(0x95)–休眠定時器0 146
表 8-7 STLOAD(0xAD)–睡眠定時器載入狀態 146
表 9-1 看門狗暫存器 150
表 10-1 傳送ROM 指令 161
表 10-2 傳送存儲器指令 162
表 10-3 諾基亞5110液晶屏接口(帶PCB小板) 169
表 10-4 USART功能配置 169
表 10-5 PCD8544指令集 171
表 10-6 上表有關字元的解釋 172
表 10-7 PCD8544 SPI時鐘頻率 172
表 10-8 PERCFG (0xF1)–外設控制 173
表 10-9 U1CSR (0xF8)-USART 1 控制和狀態 173
表 10-10 U1UCR (0xFB)-USART 1控制 174
表 10-11 U1GCR (0xFC)-USART 1 通用控制 174
表 10-12 U1BUF (0xF9) - USART 1 接收/傳送數據快取 175
表 10-13 U1BAUD (0xFA) - USART 1 波特率控制 175
表 11-1 首要服務與次要服務的屬性資料庫樣例 217
表 12-1 Simple GATT Profile 屬性表 248
表 12-2 SimpleKeys GATT Profile 屬性表 251

相關詞條

熱門詞條

聯絡我們