內容簡介
本書全面介紹
物聯網工程的
藍牙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.1選擇IAR 8051的理由11
2.2IAR 80518.3的下載、安裝和破解12
2.2.1下載IAR 80518.312
2.2.2安裝IAR 80518.313
2.2.3破解IAR 80518.317
2.3IAR 8051集成開發環境簡介21
2.4IAR 8051 C/C++22
2.5安裝相關支持軟體22
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.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.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.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.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.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.2藍牙支持417
參考文獻420
圖
圖11物聯網——感知世界3
圖12藍牙在醫療設備上的套用7
圖13藍牙防丟產品7
圖14SENSORY的前端
語音識別技術通過藍牙耳機實現安全行駛8
圖21IAR官方主頁12
圖22IAR產品下載13
圖23IAR 80518.3評估版下載頁面13
圖24“IAR 80518.3下載任務”對話框13
圖25EW80518303Autorun.exe自解壓13
圖26程式安裝界面13
圖27準備安裝15
圖28安裝精靈15
圖29是否接受許可協定對話框15
圖210自定義安裝還是完全安裝17
圖211安裝路徑選擇17
圖212程式圖示選擇17
圖213準備安裝程式17
圖214安裝程式過程17
圖215是否安裝USB dongles驅動19
圖216安裝結束19
圖217退出19
圖218破解IAR 80518.319
圖219License Manager界面19
圖220編譯錯誤20
圖221增加一行“Z(DATA)VREG=087F”20
圖222現在編譯正確了20
圖223IAR 8051集成開發環境22
圖31世嵌科技官網24
圖32CC2540藍牙4.0低功耗最簡配置開發板套件(2模組+2底板+1仿真器)25
圖33WB2540MVA核心板26
圖34WB2540MVA核心板機械尺寸和元件布局27
圖35WX2530底板(綠色)+CC2540核心板(藍色)28
圖36開發板整體架構30
圖37WX2530底板輸入接口30
圖39仿真器接口封裝32
物聯網技術實踐教程——基於藍牙4
圖 圖310仿真器灰排母座應朝板子外側插入仿真接口32
圖311CCDBG仿真器(上面雖未標明支持CC2540,但實際完全支持)34
圖312某淘寶店推出的PL2303HX模組36
圖313開發板與外配的硬體連線37
圖314複製安裝下的藍牙協定棧到你的工作37
圖315協定棧的項目範例37
圖316複製得一個副本37
圖317將項目改名37
圖318項目檔案39
圖319項目檔案41
圖320修改mTest.eww檔案41
圖321新工程誕生41
圖322移除原工程檔案41
圖323選擇Options命令41
圖324將常量和字元串置於RAM memory41
圖326將Driver設定為Texas Instruments43
圖327選擇Add→AddFiles命令43
圖328選中3個檔案43
圖329檔案改名43
圖330檔案已經添加44
圖331清空編輯區46
圖332編寫代碼46
圖333編譯代碼46
圖334下載調試46
圖335調試開始46
圖336點亮綠燈46
圖337設定斷點47
圖338啟動不下載的調試48
圖339調試開始48
圖340調試運行到斷點處48
圖341單擊step over圖示49
圖342調試游標進入下一行語句49
圖41基礎實驗一效果54
圖42LED原理54
圖43打開項目並另外儲存源檔案57
圖44將源檔案改名並另外儲存57
圖45將另外儲存的檔案添加57
圖46將mTest.c檔案從項目編譯連結中排除57
圖47為mTestLedAllOpen.c編寫代碼58
圖48讓LED一閃一閃59
圖49流水燈效果61
圖410流水燈程式設計和調試界面62
圖411驅動蜂鳴器發聲63
圖412蜂鳴器原理64
圖413按鍵控制LED亮滅66
圖414按鍵電路原理圖67
圖415按鍵按下和鬆開的電信號變化68
圖416按鍵控制LED(中斷方式)71
圖51中斷查詢方式的定時流水燈77
圖52中斷方式的定時流水燈83
圖53實驗過程演示: 按下鍵2,黃燈亮(左圖),釋放,黃燈熄滅(右圖)87
圖54200Hz聲音時的通道2和通道3的波形87
圖552000Hz聲音時的通道2和通道3的波形87
圖56本人自購的示波器90
圖57開發板與示波器連線90
圖61列印歡迎信息97
圖62CC2540串口與PC機串口的硬體連線103
圖63串口輸出系統硬體信息104
圖64使用C標準庫輸入輸出函式進行串口收發實驗108
圖65中斷方式下的串口數據收發實驗113
圖71手指壓在CC2540上以測量晶片內部溫度的變化119
圖72晶片內部電壓和溫度(當手指按在CC2540晶片上時溫度立即上升)120
圖73測量光敏電阻分壓127
圖74手指按住光敏電阻(分壓為1.805V)127
圖75手指離開光敏電阻(分壓為0.400V)127
圖76LED強光直射光敏電阻(分壓為0.071V)128
圖77相機袋壓在光敏電阻上(2.900V)128
圖78光敏電阻原理128
圖81按鍵控制休眠實驗130
圖82串口列印的信息(按鍵催眠、喚醒CPU實驗)130
圖83進入反彙編代碼查看PCON.IDLE=1指令地址134
圖84開發板的演示效果(睡眠定時器喚醒實驗)140
圖85串口控制台列印的實驗過程信息(睡眠定時器喚醒實驗)140
圖91正常的流水燈演示實驗144
圖92沒有及時餵狗而導致反覆重啟145
圖93控制台顯示的反覆重啟效果145
圖94Flash讀寫實驗148
圖101手指按在DS18B20上面溫度一直在上升154
圖102DS18B20實驗——手指按在DS18B20上面使得溫度上升154
圖103DS18B20溫度測量模組154
圖104DS18B20的Reset時序154
圖105初始歡迎頁162
圖106鍵2按下背光打開162
圖107鍵1按下開始測量氣溫162
圖108鍵2按下背光關掉162
圖109實驗過程在串口控制台的演示162
圖1010Nokia 5110顯示屏正反面(帶PCB小板)163
圖1011CC2540與Nokia 5110的電路連線原理164
圖1012PCD8544寫指令時序165
圖1013PCD8544初始化時序165
圖1014顯存結構167
圖1015用水平定址方式(V=0)往RAM寫入數據的次序167
圖1016漢字液晶點陣及對應編碼171
圖111BLE協定棧構架197
圖112鏈路層狀態機199
圖113兩個設備建立連線以實現可靠數據傳輸202
圖114連線事件204
圖115屬性結構211
圖116服務聲明樣例214
圖117特性聲明215
圖118特性數值215
圖121單一設備的配置227
圖122網路處理器的配置228
圖123SimpleBLEPeripheral項目界面229
圖124系統運行機理235
圖125屬性結構240
圖131SimpleBLEPeripheral項目界面254
圖132設定預處理宏255
圖133配置檔案中定義預處理宏255
圖134Linker Map檔案257
圖135SimpleBLECentral項目界面273
圖136Linker Map檔案273
圖141添加外設驅動源檔案282
圖151我的藍牙通信簡易實驗平台298
圖152CCDBG端子擴展原理298
圖153CCDBG端子擴展板與CCDBG連線298
圖154增加和修改預定義宏299
圖155增加預定義宏301
圖156實驗過程控制台顯示304
圖157實驗初始液晶顯示304
圖158實驗過程液晶顯示304
圖159實驗過程控制台顯示306
圖1510實驗過程液晶顯示307
圖161串口控制台列印實驗過程313
圖162連線建立並參數更新後的LCD顯示及外圍設備LED顯示314
圖163單擊按鍵後的LCD顯示及外圍設備LED顯示314
圖164LCD顯示MCU溫度信息329
圖165串口控制台列印實驗過程329
圖166LCD顯示環境溫度信息337
圖167串口控制台列印實驗過程337
圖168LCD顯示光照強度344
圖169串口控制台列印實驗過程344
圖1610中央設備串口控制台列印實驗過程353
圖1611外圍設備串口控制台353
圖1612LCD顯示即時光照強度355
圖1613串口控制台列印實驗過程365
圖1614LCD顯示當前串口傳送和接收信息366
圖171中央設備啟動過程1(在掃描期間USB開始初始化)377
圖172中央設備啟動過程2(框中部分是顯示的重合部分)377
圖173系統初始在完成的初始LCD界面(PC自動傳送鍵盤燈狀體的USB報告)377
圖174藍牙滑鼠串口控制台顯示379
圖175藍牙滑鼠PC桌面測試379
圖176藍牙鍵盤功能1串口控制台顯示382
圖177藍牙鍵盤功能1 PC桌面測試382
圖178藍牙鍵盤功能2串口控制台顯示384
圖179藍牙鍵盤功能2 播放器測試——快進384
圖1710藍牙鍵盤功能2 播放器測試——快退384
圖1711藍牙鍵盤功能2 播放器測試——暫停384
圖1712藍牙鍵盤燈控制實驗: 串口信息輸出384
圖1713藍牙鍵盤燈控制實驗: LED顯示(共3幅圖,每幅圖的左上: 中央設備;右下: 外圍設備)384
圖1714藍牙鍵盤燈控制實驗: LCD顯示(共兩幅圖,每幅圖的左邊: 中央設備;右邊: 外圍設備)384
圖1715插入USB口之後出現第3個串口(COM5: USB CDC虛擬串口)396
圖1716系統啟動界面中自動配置串口透傳396
圖1717串口透傳通信過程396
圖1718啟動BTool402
圖1719BTool初始化界面403
圖1720開始掃描404
圖1721發現廣播設備404
圖1722建立連線406
圖1723讀寫屬性操作界面406
圖1724利用特性UUID發現特性起始句柄407
圖1725利用特性句柄讀特性值408
圖1726利用特性UUID讀特性值408
圖1727解決二進制向浮點型轉換409
圖1728利用多個特性句柄讀多個特性值410
圖1729根據特性句柄寫LED特性值411
圖1730寫入之前(僅綠燈亮)411
圖1731寫入之後(LED全亮)411
圖1732利用特性句柄寫環境溫度通知配置411
圖1733利用特性句柄寫光照強度通知配置412
圖181選擇晶片對話框415
圖182SmartRF Packet Sniffer界面415
圖183Sniffer抓包結果416
圖185CC254X PC端開發範例418
圖186CC254X移動智慧型設備開發範例418
圖187CC254X嵌入式設備開發範例419
表
表11始終增長的傳輸速率8
表31核心板J3直插引腳定義27
表32核心板J4直插引腳定義27
表33核心板J5直插引腳定義28
表34LED接口30
表35按鍵接口30
表36感測器接口31
表37UART接口(J13)31
表38電源接口(J11)31
表39底板J4直插引腳定義31
表310底板J5直插引腳定義32
表311底板仿真接口定義33
表41P1 (0x90)連線埠154
表42P2(0xA0)連線埠255
表43P1SEL (0xF4)連線埠1功能選擇55
表44P2SEL(0xF5)連線埠2功能選擇和連線埠1外設優先權控制55
表45P1DIR(0xFE)連線埠1方向56
表46P2DIR(0xFF)連線埠2方向和連線埠0 外設優先權控制56
表47P0(0x80)連線埠064
表48P0SEL(0xF3)連線埠0功能選擇64
表49P0DIR(0xFD)端口0功能選擇65
表410P0(0x80)連線埠067
表411P0SEL(0xF3)連線埠0功能選擇67
表412P0DIR(0xFD)連線埠0方向67
表413P0INP(0x8F)連線埠0輸入模式67
表414P2INP(0xF7)連線埠2輸入模式68
表415P0IFG(0x89)連線埠P0.7~P0.0中斷狀態標誌72
表416PICTL(0x8C)位0連線埠0中斷模式配置72
表417P0IEN(0xAB)連線埠P0.7~P0.0中斷使能73
表418IEN0(0xA8)位7使能所有中斷源73
表419IEN1(0xB8)位5連線埠0中斷源使能73
表420 IRCON(0xC0)位5連線埠0中斷標誌73
表51T1CNTH(0xE3)定時器1計數器高位78
表52T1CNTL(0xE2)定時器1計數器低位78
表53T1CTL(0xE4)定時器1的控制和狀態78
表54T1STAT(0xAF)定時器1狀態78
表55T1CC0H(0xDD)定時器1通道1捕獲/比較值高位79
表56T1CC0L(0xDA)定時器1通道0捕獲/比較值低位79
表57CLKCONCMD(0xC6)與定時器相關的位時鐘控制命令79
物聯網技術實踐教程——基於藍牙4
表 表58CLKCONSTA(0x9E)時鐘控制狀態80
表59IEN0(0xA8)位7中斷源使能總開關83
表510IEN1(0xB8)位1定時器1中斷使能84
表511T1STAT(0xAF)位5定時器1狀態84
表512IRCON(0xC0)位1定時器1中斷標誌84
表513PERCFG(0xF1)外設控制87
表514P2DIR(0xFF)連線埠2方向和連線埠0外設優先權控制87
表515P0SEL(0xF3)連線埠0功能選擇88
表516P0DIR(0xFD)連線埠0功能選擇88
表517T1CCTL3(0x62A3)定時器1通道3捕獲/比較控制88
表518T1CC0H(0xDD)定時器1通道1捕獲/比較值高位89
表519T1CC0L(0xDA)定時器1通道0捕獲/比較值低位89
表61U0CSR(0x86)USART0控制和狀態99
表62U0UCR(0xC4)USART0的UART控制99
表63U0GCR(0xC5)USART0通用控制100
表64U0BUF又名U0DBUF(0xC1)USART0接收/傳送數據快取100
表65U0BAUD(0xC2)USART0波特率控制101
表66P2DIR(0xFF)連線埠2方向和連線埠0外設優先權控制101
表6732MHz系統時鐘的常用波特率設定101
表68CHVER(0x6249)晶片版本105
表69CHIPID (0x624A)晶片ID105
表610CHIPINFO0(0x6276)晶片信息位元組0105
表611CHIPINFO1(0x6277)晶片信息位元組1106
表612TCON(0x88)中斷標誌114
表613IRCON2(0xE8)中斷標誌5114
表614串口收發中斷向量描述114
表615IEN0(0xA8)中斷使能0114
表616IEN2 (0x9A)中斷使能2115
表71APCFG(0xF2)模擬外設I/O 配置120
表72ADCL(0xBA)ADC數據低位120
表73ADCH(0xBB)ADC數據高位121
表74ADCCON1 (0xB4)ADC 控制1121
表75ADCCON2(0xB5)ADC控制2121
表76ADCCON3(0xB6)ADC控制3122
表77TR0(0x624B)測試暫存器0123
表78ATEST(0x61BD)模擬測試控制123
表81PCON(0x87)供電模式控制132
表82SLEEPCMD(0xBE)睡眠模式控制132
表83SLEEPSTA(0x9D)睡眠模式控制狀態132
表84ST2(0x97)休眠定時器2141
表85ST1(0x96)休眠定時器1141
表86ST0(0x95)休眠定時器0141
表87STLOAD(0xAD)睡眠定時器載入狀態141
表91看門狗暫存器145
表101傳送ROM指令155
表102傳送存儲器指令156
表103Nokia 5110液晶屏接口(帶PCB小板)163
表104USART功能配置164
表105PCD8544指令集165
表106表105中有關字元的解釋166
表107PCD8544 SPI時鐘頻率167
表108PERCFG(0xF1)外設控制168
表109U1CSR(0xF8)USART 1控制和狀態168
表1010U1UCR(0xFB)USART 1控制168
表1011U1GCR(0xFC)USART 1通用控制169
表1012U1BUF(0xF9)USART 1接收/傳送數據快取170
表111首要服務與次要服務的屬性資料庫樣例214
表122SimpleKeys 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.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 EVDO系統90
4.1.1概述90
4.1.21x EVDO的網路結構94
4.1.3EVDO Rev A信道95
4.1.4EVDO Rev A關鍵技術97
4.2WCDMA系統104
4.2.1概述104
4.2.2WCDMA標準的演進106
4.2.3WCDMA的空中接口113
4.3TDSCDMA系統135
4.3.1概述135
4.3.2TDSCDMA的網路結構135
4.3.3TDSCDMA系統的關鍵技術143
習題155
5.1概述157
5.1.1第四代移動通信系統的關鍵特性要求157
5.1.2第四代移動通信系統標準的確定159
5.1.3準4G網路在全球的套用情況160
5.2第四代移動通信系統的關鍵技術161
5.3LTE系統165
5.3.1LTE的技術特點165
5.3.2LTE的網路結構166
5.3.3EUTRAN接口的通用協定模型168
5.3.4LTE的無線信道171
5.3.5無線資源管理173
5.3.7LTEA的性能增強181
5.3.8TDLTE與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.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.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.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.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-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