https://download.csdn.net/download/kxjrzyk/10914923 下載PDF
Python全棧是降低物聯網開發復雜度的必由之路 物聯網應用系統的快速開發和系統擴展可以兼顧 物聯網系統設計比互聯網系統設計更受限更復雜 全覆蓋應用、產品、生態的全局視角與選型思路。本書對於嵌入式開發領域的開發者尤具學習價值,利用Python可加快開發迭代速度、降低開發成本,並可以基於嵌入式Python建立完整的物聯網軟硬件生態。
作者:劉凱
出版社:電子工業出版社
出版時間:2017-10-01
書籍價格:93.90元
java電子書目錄:
第1章 物聯網簡介 1
1.1 物聯網定義 1
1.2 物聯網發展趨勢 1
1.3 物聯網應用與技術 2
1.3.1 物聯網核心價值 2
1.3.2 物聯網發展階段 3
1.3.3 物聯網分層 5
1.3.4 物聯網數據傳輸與網絡拓撲 5
1.3.5 物聯網實施所需技術棧 8
1.3.6 標准、現狀與未來 10
1.4 本章小結 16
第2章 Python語言基礎 17
2.1 Python的由來與特征 19
2.1.1 概述 19
2.1.2 設計定位與哲學 19
2.1.3 優點與缺點 20
2.2 Python與物聯網開發 22
2.3 獲取Python資源 24
2.3.1 Python主程序 24
2.3.2 Python文檔 24
2.3.3 Python PyPI 24
2.4 Python解釋器運行環境 26
2.4.1 REPL交互模式 26
2.4.2 直接運行與模塊運行 26
2.4.3 腳本文件直接運行 27
2.4.4 源程序文字編碼與結束符 28
2.5 Python類型與語法 29
2.5.1 動態類型 29
2.5.2 傳值與傳引用 30
2.5.3 數據類型 31
2.5.4 內置類型 32
2.5.5 內置類型的普適操作 34
2.5.6 數值類型 35
2.5.7 布爾類型 37
2.5.8 迭代器類型 37
2.5.9 生成器類型 38
2.5.10 yield表達式 39
2.5.11 序列類型 39
2.5.12 set集合類型 54
2.5.13 映射類型 55
2.5.14 其他類型 56
2.5.15 控制流 59
2.5.16 內置函數 61
2.5.17 用戶自定義函數 62
2.5.18 模塊 65
2.5.19 輸入/輸出 68
2.5.20 面向對象編程 74
2.5.21 進程和線程 82
2.5.22 錯誤和異常 90
2.6 Python標准庫概覽 93
2.7 本章小結 94
第3章 Python語言進階 95
3.1 HOWTO:常見任務和解決方案 95
3.1.1 數據類型轉換 96
3.1.2 數據的調試打印 100
3.1.3 數據類型資源優化 102
3.1.4 數據結構與算法 102
3.1.5 數據緩存 103
3.1.6 數據多路復用和解復用 104
3.1.7 數據序列化和反序列化 107
3.1.8 數據壓縮和解壓縮 119
3.1.9 數據加密 120
3.1.10 數據傳輸 121
3.1.11 數據后處理 121
3.1.12 數據持久化 121
3.1.13 數據交換 122
3.2 HOWTO:函數式編程 123
3.2.1 高階函數 123
3.2.2 map函數 124
3.2.3 reduce函數 124
3.2.4 filter函數 124
3.2.5 sorted函數 125
3.2.6 返回函數 125
3.2.7 閉包 126
3.2.8 匿名函數 126
3.2.9 裝飾器 127
3.3 HOWTO:並發運行模型 131
3.3.1 協程 131
3.3.2 I/O模型 134
3.4 HOWTO:日期與時間 136
3.4.1 類型轉換 136
3.4.2 時區的處理 138
3.5 Python版本遷移 139
3.5.1 Python 2與Python 3的區別 140
3.5.2 Python 2到Python 3的流程 140
3.5.3 多個Python版本共存 140
3.5.4 virtualenv 141
3.5.5 Windows多個版本共存 141
3.5.6 Linux多個版本共存 142
3.6 其他常見技巧 143
3.6.1 常數類型的模擬 143
3.6.2 枚舉類型的模擬 143
3.6.3 開發自定義模塊 144
3.7 Python與其他語言 145
3.8 Python語言擴展 151
3.8.1 C語言擴展Python 151
3.8.2 ctypes訪問Windows DLL 153
3.8.3 Jython訪問Java類 154
3.8.4 IronPython訪問.NET 155
3.9 Python加速 157
3.9.1 PyPy 158
3.9.2 Cython 159
3.9.3 PyCUDA 159
3.9.4 PyOpenCL 159
3.9.5 Theano 159
3.9.6 Nuitka 159
3.10 本章小結 160
第4章 嵌入式系統開發 161
4.1 嵌入式系統硬件分類 162
4.1.1 MCU 162
4.1.2 MPU 163
4.1.3 DSP 163
4.1.4 SMP 164
4.1.5 異構大小核 164
4.1.6 FPGA原型 165
4.1.7 SoPC 165
4.1.8 GPU 167
4.1.9 哈佛結構和馮?諾依曼結構 168
4.2 電路原型設計 168
4.2.1 集成電路設計流程 170
4.2.2 模擬電路原型設計 170
4.2.3 數字電路原型設計 175
4.3 常見嵌入式微控制器(MCU) 179
4.3.1 MCU市場狀況 179
4.3.2 Arduino/Wiring 180
4.3.3 ARM mbed 181
4.3.4 設計專屬架構和專屬MCU 182
4.3.5 ARM MCU差異化競爭 182
4.4 常見嵌入式處理器和主板 184
4.4.1 ARM架構 185
4.4.2 其余的ARM Linux主板 188
4.4.3 MIPS開發板 190
4.4.4 x86 mini-ITX 191
4.5 常見傳感器和執行器 192
4.5.1 虛擬傳感器 193
4.5.2 智能傳感器 193
4.5.3 專用傳感器 194
4.5.4 執行器 195
4.6 物聯網通信集成電路 196
4.7 嵌入式系統開發語言演進 197
4.7.1 從匯編到嵌入式C 197
4.7.2 從C到C 199
4.7.3 壓縮C 的系統消耗 199
4.7.4 C 適合物聯網開發 200
4.8 C/C 的編程模式和技巧 204
4.8.1 C/C 設計模式 205
4.8.2 回調函數 206
4.8.3 有限狀態機模型 209
4.8.4 善用結構體 211
4.8.5 C/C 協程 214
4.9 開發生態選擇 215
4.9.1 工業標准與廠家私有指令集架構 215
4.9.2 硬件與軟件平台選擇 215
4.9.3 編譯器選擇 216
4.10 常見操作系統 217
4.10.1 無操作系統 217
4.10.2 RTOS的優勢 218
4.10.3 uC/OS 219
4.10.4 Keil RTX 219
4.10.5 mbed RTOS與mbed OS 220
4.10.6 FreeRTOS 221
4.10.7 Linux是開發復雜聯網設備的現實選擇 222
4.11 物聯網中間件 227
4.11.1 WSN堆棧 227
4.11.2 TCP/IP 227
4.11.3 USB 227
4.11.4 FAT/FS 228
4.11.5 GUI 228
4.11.6 Terminal 228
4.11.7 MQTT 228
4.11.8 CoAP 229
4.12 物聯網安全性 230
4.12.1 安全相關芯片 230
4.12.2 安全中間件 231
4.12.3 Python安全算法 232
4.13 設備固件更新 232
4.13.1 固件更新技術發展史 232
4.13.2 本地固件更新 234
4.13.3 遠程固件更新 234
4.13.4 固件升級定制 234
4.14 各類串口實現聯網 235
4.14.1 串口協議的選擇 235
4.14.2 模擬串口設備 236
4.14.3 其他類型虛擬設備 238
4.14.4 ISP編程器 238
4.14.5 串口設備監控器 239
4.15 本章小結 239
第5章 設備連接和編程接口 240
5.1 設備連接概述 240
5.1.1 嵌入式系統連接層次 240
5.1.2 選擇正確的連接方案 241
5.1.3 具體落實連接設計 241
5.1.4 本章內容安排 242
5.2 連接能力匯總 242
5.2.1 連接由芯片開始 243
5.2.2 芯片內部系統總線 245
5.2.3 芯片間連接技術 246
5.2.4 設備間連接 249
5.2.5 設備組網 250
5.2.6 設備組網與聯網的無線技術 253
5.2.7 連接性回顧 266
5.3 Linux文件系統 266
5.3.1 設備即文件 266
5.3.2 設備文件系統 267
5.3.3 Linux設備文件的演變 268
5.3.4 文件I/O操作 271
5.3.5 Linux硬件編程 272
5.4 並行接口 273
5.4.1 老舊的PC並行接口 274
5.4.2 高速總線 274
5.4.3 GPIO 274
5.4.4 Linux訪問GPIO 275
5.4.5 GPIO的Python包 276
5.5 串行接口 277
5.5.1 異步通信串行口 277
5.5.2 I2C總線 284
5.5.3 SPI總線 290
5.5.4 與其他硬件平台相關的Python包 294
5.6 USB總線 296
5.6.1 USB Endpoints 297
5.6.2 USB Device/Host/OTG 297
5.6.3 USB 3.0 297
5.6.4 libUSB 297
5.6.5 PyUSB 298
5.6.6 標准化USB橋接 299
5.6.7 與USB相關的其他設計 301
5.7 Linux網絡設備驅動 301
5.7.1 TCP/IP套接字編程 301
5.7.2 IEEE 802.3到IEEE 802.11 302
5.7.3 網絡通信實現方案 302
5.7.4 私有通信協議棧 305
5.7.5 短距離無線連接 307
5.8 工業總線 310
5.8.1 CAN總線 310
5.8.2 LIN總線 312
5.8.3 其他ASIC 313
5.8.4 定制Python擴展 313
5.8.5 Windows DLL 314
5.9 本章小結 314
第6章 嵌入式Python虛擬機 315
6.1 嵌入式高級語言平台大薈萃 315
6.1.1 高級語言與二次開發 315
6.1.2 BASIC 319
6.1.3 Java 319
6.1.4 Lua 322
6.1.5 JavaScript 322
6.1.6 .NET 323
6.2 前一代Python虛擬機 323
6.2.1 Telit GPRS模塊 323
6.2.2 Symbian 325
6.2.3 Windows CE 325
6.2.4 OpenMoko 325
6.3 深嵌入式Python平台 326
6.3.1 LEGO EV3 326
6.3.2 TinyPy 326
6.3.3 嵌入式Python的局限 327
6.4 PyMite 328
6.4.1 硬件平台 328
6.4.2 維護者 329
6.4.3 pymbed分支 329
6.4.4 開發現狀 331
6.4.5 文檔 332
6.4.6 源碼樹 333
6.4.7 使用流程 335
6.4.8 實踐 336
6.4.9 工程小結 337
6.4.10 網絡資源 338
6.5 VIPER/Zerynth 338
6.5.1 硬件平台 339
6.5.2 Zerynth Studio 340
6.5.3 與標准Python的區別 341
6.5.4 快速啟動 342
6.5.5 坎坷的使用過程 342
6.5.6 Zerynth目錄結構 343
6.5.7 硬件相關庫 344
6.5.8 其他特性 355
6.6 MicroPython 356
6.6.1 工程背景知識 356
6.6.2 在線評估網頁 358
6.6.3 官方硬件平台分支 358
6.6.4 衍生項目 359
6.6.5 UNIX版本 360
6.6.6 MicroPython庫 363
6.6.7 STM32HAL分支 365
6.6.8 NUCLEO-F401RE適配 367
6.6.9 pyboard評估 372
6.6.10 異步處理和中斷處理 389
6.6.11 中斷處理的普遍問題 392
6.6.12 使用心得 395
6.6.13 商品化與知識產權 396
6.6.14 BBC microbit 396
6.7 Linux與Python 398
6.7.1 Linux中Python的運行環境 398
6.7.2 交叉編譯CPython 401
6.7.3 交叉編譯MicroPython 402
6.7.4 Jython運行環境 404
6.7.5 Android SL4A 406
6.8 本章小結 407
第7章 Python應用APP 408