本書以Cypress公司的WICED Studio軟件集成開發工具、Wi-Fi和藍牙單芯片,以及PSoC6 MCU為基礎,詳細介紹了物聯網中實現基于Wi-Fi和藍牙技術的無線接入與應用方法。本書分為3篇,共12章,主要內容包括物聯網基礎、WICED Studio集成開發環境、驅動和控制外設的設計與實現、實時操作系統原理及應用、使用WICED-SDK庫文件、Wi-Fi接入原理及實現、TCP/IP套接字原理及實現方法、HTTP1.1協議的分析及應用、亞馬遜云端連接和應用實現、藍牙接入技術原理、藍牙連接的實現和基本應用,以及藍牙連接的實現和高級應用。 本書反映了基于Cypress公司軟件和硬件產品開發物聯網應用的新成果,系統化、模塊化地介紹了在WICED Studio集成開發環境下將設備通過Wi-Fi和藍牙技術接入物聯網的實現方法。 本書在介紹這些內容時,注意理論和實踐相結合,同時給出了大量的設計實例,使讀者能夠掌握這一新的設計技術,以便推動新物聯網開發技術在國內的普及與推廣。
何賓 著名的嵌入式技術和EDA技術專家,長期從事電子信息技術方面的教學和科研工作,與全球多家知名的半導體廠商和EDA工具廠商大學計劃保持緊密合作。目前已經出版電子信息技術方面的著作40余部,內容涵蓋電路仿真、電路設計、可編程邏輯器件、數字信號處理、單片機、嵌入式系統、片上可編程系統等。典型的代表作有《模擬電子系統設計指南(基礎篇):從半導體、分立元件到TI集成電路的分析與實現》、《模擬電子系統設計指南(實踐篇):從半導體、分立元件到TI集成電路的分析與實現》、《Xilinx Zynq-7000嵌入式系統設計與實現-基于ARM Cortex-A9雙核處理器和Vivado的設計方法》、《Altium Designer17一體化設計標準教程-從仿真原理和PCB設計到單片機系統》、《STC8系列單片機開發指南:面向處理器、程序設計和操作系統的分析與應用》、《Xilinx FPGA數字信號處理系統設計指南-基于HDL、Simulink和HLS的實現》等。
第 1 篇
WICED集成開發環境介紹和基本應用
第1章 物聯網基礎3
1.1 物聯網的定義3
1.2 物聯網中的技術5
1.3 物聯網架構6
1.3.1 高級視圖7
1.3.2 功能結構7
1.3.3 分層模型8
1.4 物聯網面臨的挑戰8
1.5 Cypress提供的IoT開發平臺9
第2章 WICED Studio集成開發環境11
2.1 WICED Studio的下載和安裝11
2.1.1 WICED Studio的下載11
2.1.2 WICED Studio的安裝13
2.1.3 WICED SDK架構14
2.2 WICED Studio軟件主設計界面16
2.2.1 “Project Explorer”窗口18
2.2.2 文檔系統20
2.3 WICED Studio支持的Wi-Fi芯片22
2.4 運行第一個WICED設計23
2.4.1 查找演示設計案例23
2.4.2 項目的命名規則24
2.4.3 生成新的Make Target24
2.4.4 運行新生成的Make Target26
第3章 驅動和控制外設的設計與實現29
3.1 設計所使用硬件平臺的特性與功能29
3.2 設計并實現第一個WICED應用30
3.2.1 復制設計模板31
3.2.2 修改control_gpio.c文件33
3.2.3 修改control_gpio.mk文件36
3.2.4 生成新的Make Target37
3.2.5 運行新生成的Make Target37
3.3 中斷程序的設計與實現37
3.3.1 復制設計文件37
3.3.2 生成新的Make Target40
3.3.3 運行新生成的Make Target40
3.4 脈沖寬度程序的設計與實現41
3.4.1 復制設計文件41
3.4.2 生成新的Make Target42
3.4.3 運行新生成的Make Target42
3.5 串口發送程序的設計與實現43
3.5.1 復制設計文件43
3.5.2 生成新的Make Target46
3.5.3 運行新生成的Make Target46
3.6 串口接收程序的設計與實現47
3.6.1 復制設計文件48
3.6.2 生成新的Make Target50
3.6.3 運行新生成的Make Target50
3.7 模擬-數字轉換程序的設計與實現51
3.7.1 復制設計文件51
3.7.2 生成新的Make Target52
3.7.3 運行新生成的Make Target53
第4章 實時操作系統原理及應用54
4.1 實時操作系統的功能54
4.2 WICED RTOS抽象層55
4.3 線程的原理及實現55
4.3.1 線程的原理56
4.3.2 線程的實現57
4.4 信號量的原理及應用60
4.4.1 信號量的原理60
4.4.2 信號量的應用61
4.5 互斥的原理及應用65
4.5.1 互斥的原理65
4.5.2 互斥的應用65
4.6 隊列的原理及應用69
4.6.1 隊列的原理69
4.6.2 隊列的應用70
4.7 定時器的原理及應用73
4.7.1 定時器的基本原理73
4.7.2 定時器的應用74
第5章 使用WICED-SDK庫文件77
5.1 WICED-SDK庫文件架構77
5.2 WICED-SDK庫文件應用實例-網絡測試78
5.2.1 生成新的Make Target78
5.2.2 運行新生成的Make Target78
5.2.3 運行Iperf工具80
5.3 WICED-SDK庫文件應用實例-TFT顯示81
5.3.1 TFT顯示模塊硬件設計原理81
5.3.2 復制設計文件82
5.3.3 生成新的Make Target83
5.3.4 運行新生成的Make Target83
第 2 篇
Wi-Fi接入技術和物聯網應用
第6章 Wi-Fi接入原理及實現87
6.1 TCP/IP網絡協議棧87
6.2 Wi-Fi接入技術中的基本術語89
6.3 Wi-Fi/BT模組結構和功能92
6.3.1 硬件連接原理92
6.3.2 CYW4343W支持的標準和協議93
6.3.3 CYW4343W WLAN MAC特性93
6.3.4 CYW4343W WLAN PHY特性95
6.3.5 CYW4343W WLAN射頻子系統96
6.4 WICED中提供的接入資源96
6.4.1 設備配置表97
6.4.2 WICED Wi-Fi SDK100
6.4.3 返回值狀態101
6.4.4 文檔102
6.4.5 導引器103
6.5 WICED設備連接到網絡的實現104
6.5.1 復制設計文件104
6.5.2 生成新的Make Target106
6.5.3 運行新生成的Make Target107
6.6 打印WICED設備網絡信息的實現108
6.6.1 復制設計文件108
6.6.2 生成新的Make Target110
6.6.3 運行新生成的Make Target111
6.7 在兩個SSID之間切換的應用實現112
6.7.1 復制設計文件112
6.7.2 生成新的Make Target115
6.7.3 運行新生成的Make Target115
第7章 TCP/IP套接字原理及實現方法117
7.1 使用TCP/IP套接字建立通信117
7.1.1 TCP通信基本原理——套接字117
7.1.2 使用套接字的WICED TCP服務器和客戶端118
7.1.3 使用流發送和接收數據120
7.1.4 使用WICED以TCP客戶端形式用數據包傳輸數據121
7.1.5 使用WICED以TCP服務器形式接收數據包123
7.2 WICED套接字文檔-非安全連接124
7.3 安全性124
7.4 X.509證書128
7.4.1 基礎知識128
7.4.2 下載證書129
7.4.3 創建自己的證書133
7.4.4 在WICED中使用證書133
7.5 帶有TLS的TCP/IP套接字135
第8章 HTTP1.1協議的分析及應用139
8.1 云的基本概念139
8.2 應用層協議139
8.2.1 超文本傳輸協議140
8.2.2 消息隊列遙測傳輸協議141
8.2.3 約束應用協議142
8.2.4 高級消息隊列協議142
8.2.5 JS對象標記143
8.3 HTTP1.1協議詳解143
8.3.1 客戶端請求144
8.3.2 服務器響應147
8.3.3 CURL工具148
8.3.4 REST和RESTful API153
8.3.5 WCIED HTTP1.1客服端庫154
8.3.6 Httpbin.org156
8.4 非安全的HTTP連接157
8.4.1 復制設計文件157
8.4.2 生成新的Make Target163
8.4.3 運行新生成的Make Target163
8.5 安全的HTTP連接164
8.5.1 復制設計文件165
8.5.2 生成新的Make Target170
8.5.3 運行新生成的Make Target170
8.6 向網站提交數據-非安全連接171
8.6.1 復制設計文件171
8.6.2 生成新的Make Target175
8.6.3 運行新生成的Make Target175
8.7 向網站提交數據-安全連接176
8.7.1 復制設計文件176
8.7.2 生成新的Make Target181
8.7.3 運行新生成的Make Target182
8.8 使用Web API驗證電話信息183
8.8.1 通過瀏覽器訪問該網站183
8.8.2 復制設計文件185
8.8.3 生成新的Make Target191
8.8.4 運行新生成的Make Target191
8.9 使用文本串發送請求的實現193
8.9.1 復制設計文件193
8.9.2 生成新的Make Target195
8.9.3 運行新生成的Make Target195
第9章 亞馬遜云端連接和應用實現197
9.1 亞馬遜AWS物聯網云服務概述197
9.2 亞馬遜AWS IoT云服務的資源198
9.3 亞馬遜AWS MQTT基本操作199
9.3.1 注冊賬戶199
9.3.2 登錄賬戶203
9.3.3 AWS IoT教程204
9.3.4 配置AWS IoT Thing的流程205
9.3.5 主題211
9.3.6 設備影子主題212
9.3.7 將MQTT與AWS配合使用212
9.3.8 將HTTPS與AWS配合使用213
9.3.9 使用AWS MQTT測試客戶端213
9.4 在AWS云端發布消息的實現215
9.4.1 復制和重命名證書文件215
9.4.2 復制和修改設計文件216
9.4.3 生成新的Make Target224
9.4.4 運行新生成的Make Target225
9.5 AWS云端訂閱信息控制外設的實現227
9.5.1 復制和修改設計文件227
9.5.2 生成新的Make Target234
9.5.3 運行新生成的Make Target234
9.6 AWS云端訂閱和發布消息的綜合實現236
9.6.1 設計目標236
9.6.2 復制設計文件236
9.7 AWS云端事物影子的操作實現237
9.7.1 設計目標237
9.7.2 復制設計文件237
第 3 篇
藍牙接入技術和物聯網應用
第10章 藍牙接入技術原理241
10.1 藍牙技術的起源241
10.2 藍牙技術的發展歷程241
10.3 藍牙版本的演進242
10.4 低功耗藍牙模式246
10.5 低功耗藍牙協議246
10.5.1 物理層247
10.5.2 鏈路層248
10.5.3 主機控制接口層250
10.5.4 邏輯鏈路控制和自適應協議層251
10.5.5 屬性協議層251
10.5.6 安全管理協議層251
10.5.7 通用接入規范層251
10.5.8 通用屬性配置文件層252
10.5.9 用戶應用程序層253
10.6 CYW4343W藍牙子系統特性及功能253
10.6.1 主要特性253
10.6.2 藍牙射頻254
10.6.3 藍牙基帶核256
10.6.4 用于藍牙的微處理器和存儲器單元257
10.6.5 藍牙外圍傳輸單元-PCM接口258
10.6.6 藍牙外圍傳輸單元-UART接口259
10.6.7 藍牙外圍傳輸單元-I2S接口259
第11章 藍牙連接的實現和基本應用260
11.1 WICED BLE系統實現的任務260
11.1.1 打開WICED藍牙協議棧260
11.1.2 開始廣播261
11.1.3 進行連接262
11.1.4 交換數據262
11.2 廣播包263
11.3 屬性、GAP和GATT數據庫265
11.3.1 屬性265
11.3.2 配置文件-服務-特征265
11.3.3 在GATT數據庫中的服務聲明266
11.3.4 GATT數據庫中特征的聲明266
11.4 WICED藍牙協議棧事件268
11.4.1 重要的藍牙管理事件268
11.4.2 重要的GATT事件268
11.4.3 重要的GATT子事件268
11.5 WICED藍牙固件架構269
11.5.1 打開協議棧269
11.5.2 開始廣播270
11.5.3 進行連接271
11.5.4 交換數據——讀(從中心)271
11.5.5 交換數據——寫(從中心)272
11.6 WICED GATT數據庫實現272
11.6.1 gatt_database[]273
11.6.2 gatt_db_ext_attr_tbl274
11.6.3 用于值的uint8_t數組275
11.6.4 應用程序接口275
11.7 使用CySmart控制LED燈的設計與實現276
11.7.1 安裝CySmart軟件工具276
11.7.2 復制設計文件276
11.7.3 生成新的Make Target277
11.7.4 運行新生成的Make Target277
第12章 藍牙連接的實現和高級應用284
12.