基于ARM的嵌入式系統和物聯網開發( 簡體 字) | |
作者:[英] 佩里·肖(Perry Xiao) 著 | 類別:1. -> 電腦組織與體系結構 -> 嵌入式系統 -> Cortex 2. -> 程式設計 -> 物聯網 |
出版社:機械工業出版社 | 3dWoo書號: 52255 詢問書籍請說出此書號! 有庫存 NT售價: 395 元 |
出版日:1/1/2020 | |
頁數:265 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787111643234 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
譯者序
前言 第一部分 Arm? Mbed?和物聯網 第1章 Arm? Mbed? 2 1.1 什么是嵌入式系統 2 1.2 微控制器和微處理器 3 1.3 ARM?處理器架構 6 1.4 Arm? Mbed?系統 8 1.4.1 NXP LPC1768 10 1.4.2 NXP LPC11U24 13 1.4.3 BBC Micro:bit 14 1.4.4 Arm? Mbed?以太物聯網入門工具包 16 1.5 小結 20 1.6 問題 20 第2章 物聯網 21 2.1 什么是物聯網 21 2.2 物聯網如何運行 22 2.3 物聯網如何改變我們的生活 22 2.4 物聯網應用前景 24 2.4.1 家居 24 2.4.2 醫療 25 2.4.3 交通 25 2.4.4 能源 25 2.4.5 制造 25 2.4.6 環境 26 2.5 小結 26 2.6 問題 26 第3章 物聯網驅動技術 27 3.1 傳感器和致動器 27 3.2 通信 27 3.2.1 無線射頻識別(RFID)和近場通信(NFC) 27 3.2.2 藍牙低功耗(BLE) 28 3.2.3 可見光通信(LiFi) 28 3.2.4 6LowPAN 29 3.2.5 ZigBee 29 3.2.6 Z-Wave 29 3.2.7 LoRa 30 3.3 協議 30 3.3.1 超文本傳輸協議 30 3.3.2 WebSocket 31 3.3.3 消息隊列遙測傳輸 32 3.3.4 受限應用層協議 33 3.3.5 可擴展消息處理現場協議 33 3.4 Node-RED 33 3.5 平臺 35 3.5.1 IBM Watson物聯網——Bluemix 35 3.5.2 Eclipse物聯網 36 3.5.3 AWS物聯網 37 3.5.4 微軟Azure物聯網套件 37 3.5.5 谷歌云物聯網 38 3.5.6 ThingWorx 38 3.5.7 GE Predix 39 3.5.8 Xively 39 3.5.9 macchina.io 39 3.5.10 Carriots 39 3.6 小結 40 3.7 問題 40 第二部分 Arm? Mbed?開發 第4章 Arm? Mbed?入門 42 4.1 簡介 42 4.2 所需硬件和軟件 43 4.2.1 硬件 43 4.2.2 軟件 43 4.3 你的第一個程序:Blinky LED 46 4.3.1 將Mbed連接到一臺計算機 46 4.3.2 單擊“mbed.htm”登錄 46 4.3.3 添加FRDM-K64F平臺到編譯器 46 4.3.4 導入一個已有程序 48 4.3.5 編譯、下載并運行程序 49 4.3.6 下載并運行其他已有程序 49 4.4 創建你自己的程序 50 4.5 C/C++編程語言 50 4.6 函數與模塊化編程 50 4.7 管理平臺 53 4.8 復制你的程序 55 4.9 搜索和替換 56 4.10 編譯可在多平臺運行的程序 57 4.11 刪除你的程序 58 4.12 災備流程 58 4.13 更新固件 58 4.14 幫助 60 4.15 小結 61 第5章 輸入和輸出 62 5.1 數字輸入和輸出 62 5.1.1 數字輸入 62 5.1.2 數字輸出 64 5.1.3 總線輸入(BusIn)、總線輸出(BusOut)、總線輸入和輸出(BusInOut) 69 5.2 模擬輸入和輸出 70 5.2.1 模擬輸入 70 5.2.2 模擬輸出 71 5.3 脈寬調制 74 5.4 加速計和磁力計 76 5.5 SD卡 82 5.6 本地文件系統(LPC1768) 84 5.7 中斷 85 5.8 小結 86 第6章 數字接口 87 6.1 串行接口 87 6.2 串行外圍接口 90 6.3 內部集成電路 91 6.4 控制器局域網 93 6.5 小結 95 第7章 網絡與通信 96 7.1 以太網 96 7.2 以太網網頁客戶端和網頁 服務器 100 7.3 TCP接口和UDP接口 103 7.4 WebSocket 106 7.5 WiFi 109 7.6 小結 112 第8章 數字信號處理和控制 113 8.1 低通濾波器 113 8.2 高通濾波器 116 8.3 帶通濾波器 118 8.4 帶阻濾波器和陷波濾波器 120 8.5 快速傅里葉變換 123 8.6 比例積分微分控制器 133 8.7 小結 136 第9章 調試、計時器、多線程和實時編程 137 9.1 調試 137 9.2 計時器、超時、斷續器、時間 138 9.3 網絡時間協議 142 9.4 多線程和實時編程 143 9.5 小結 148 第10章 庫與程序 149 10.1 導入庫和程序 149 10.2 導出你的程序 150 10.3 編寫你自己的庫 152 10.4 發布你的庫 156 10.5 發布你的程序 157 10.6 版本控制 160 10.7 協作 166 10.8 更新你的庫和程序 171 10.9 小結 172 第三部分 物聯網入門工具包和物聯網應用 第11章 Arm? Mbed?以太物聯網入門工具包 174 11.1 128×32 LCD 174 11.2 控制桿 175 11.3 兩個電位計 176 11.4 揚聲器 177 11.5 三軸加速計 178 11.6 LM75B溫度傳感器 179 11.7 RGB LED 179 11.8 小結 180 第12章 Arm? Mbed? 物聯網應用 181 12.1 基于互聯網的溫度監測 181 12.2 智能照明 189 12.3 聲控門禁 194 12.4 RFID讀寫器 200 12.5 基于IBM Watson Bluemix的云示例 204 12.5.1 IBM快速入門服務 205 12.5.2 IBM注冊服務(Bluemix) 206 12.5.3 將IBM Watson物聯網服務添加到應用中 213 12.5.4 將Mbed設備添加到Watson物聯網架構 216 12.5.5 將證書添加到Mbed設備 218 12.5.6 將IBM物聯網Watson應用連接到Mbed設備 220 12.5.7 從IBM物聯網Watson應用發送命令到Mbed板 222 12.5.8 更多關于Node-RED 225 12.6 實時信號處理 230 12.7 小結 235 第四部分 附錄 附錄A 示例代碼 238 附錄B HiveMQ MQTT代理 241 附錄C 樹莓派Node-RED 250 附錄D 字符串和數組運算 258 附錄E 常用在線資源 264 本書是一本全面的、通俗易懂的、基于Arm? Mbed?的嵌入式系統開發與物聯網入門指南。通過網頁瀏覽器在線編寫和編譯代碼,不需要在電腦上下載和安裝任何軟件就可運用Arm? Mbed?開發板設計和開發嵌入式系統及物聯網應用。
本書分為三個部分。第一部分介紹嵌入式系統、微控制器和微處理器、Arm?架構和Arm? Mbed?系統,同時對物聯網進行了概述,包括物聯網應用和物聯網驅動技術。第二部分介紹Arm? Mbed?開發,以及如何進行模擬輸入/輸出、數字輸入/輸出、通信接口、調試、在線庫和項目管理。第三部分介紹Arm? Mbed?物聯網入門工具包和物聯網應用實例。 本書特色: 本書重點介紹Arm? Mbed? NXP LPC1768和FRDM-K64F評估板。NXP LPC1768有強大的特性,如快速微控制器、多種數字和模擬輸入/輸出,多個串行通信接口和一個方便易用的網頁編譯器,它是學習和創建項目最常用的工具包之一。FRDM-K64F相對來說比較新,基本與NXP LPC1768兼容,但擁有更強大的特性。 清晰的主題介紹。 豐富的原始案例研究。 實踐性強的Arm? Mbed?平臺項目開發指南。 最前沿的物聯網應用開發指南。 很多年前第一次從同事那里拿到Arm? Mbed? LiB工具的時候,我的激動之情難以掩飾。它是一個由ARM大學計劃捐贈的NXP LPC1768開發板。Arm? Mbed?的主要特征是可通過一個網頁瀏覽器在線編寫和編譯代碼,這讓我耳目一新。我畢生都在用各種微控制器。在20世紀80年代,我做本科畢業設計時,我研究的課題是使用Intel 8051單芯片微控制器進行激光能量控制。這其中的概念非常簡單:從激光能量監測器上讀取電壓值,并與期望值進行對比,計算所需調整值后反饋給激光器,從而增加或減少激光輸出。但是我們必須設計和制作自己的印制電路板,編寫代碼,并在8051微控制器上運行。那時,單片機編程不是一項簡單的任務,需要用匯編語言編寫程序。那時我們經常在實驗室通宵調試代碼。因此我曾使用過許多基于微控制器的嵌入式系統,可以說經歷很豐富。有些嵌入式系統使用非常不方便,必須下載軟件、下載工具鏈等。用我學生的話來說,得要一名博士生才能使編譯器軟件得以運行。代碼也很復雜,需要配置寄存器和配置端口。即使生成無數行代碼都不夠!
令我印象最深刻的兩個嵌入式系統是樹莓派和Arduino。樹莓派價格優惠,規格緊湊,只有信用卡那么大。這是一個很好的用于學習計算和編碼的工具包,它采用的是基于Debian的、完整的Linux操作系統和圖形用戶界面。但是對于很多學生項目來說,并不需要一個完整的操作系統,而且缺少模數轉換器和數模轉換器也是很大的缺點。Arduino的價格和規格也很有優勢,但令我印象最深刻的是它在硬件和軟件上的簡易性。我曾經讀過很多所謂的“24小時”書,而Arduino是真正的你能夠在24小時內就學會的東西。它就是那么簡單。但是,它只有有限的存儲容量,也就意味著你不能寫太長的程序,10位模數轉換器在諸多應用中常被證明是不夠用的。 因此,當我向學生們介紹Arm? Mbed? NXP LPC1768開發板時,他們很快就喜歡上了它。他們喜歡基于網頁的編譯器。正是因為不需要在電腦上下載和安裝任何軟件就可以運行,它讓生活變得簡單了許多,代碼也更簡單和易于理解,真是太棒了。正如Arm? Mbed? 網站上所述,只需30秒即可從盒子里獲取開發板,并運行一個應用,無須安裝任何軟件! Arm? Mbed? NXP LPC1768是最常用的單片機開發板之一,被學生和電子愛好者廣泛應用。它基于32位ARM? Cortex? -M3微控制器,擁有96 MHz主頻速度,512 KB閃存,32 KB內存,而且最重要的是,它有12位數模轉換器。相比于Arduino,它的功能更強大,運行速度更快。它還有很多類型的接口,包括以太網、USB、CAN、SPI、I2C、DAC、PWM,以及其他I/O接口。 但是,32位ARM? Cortex? -M3微控制器已經逐漸走向了被淘汰的邊緣,它將被32位ARM? Cortex? -M4微控制器取代。因此本書將重點關注新型的、令人期待的Arm? Mbed?以太物聯網入門工具包,包括Arm? Mbed? NXP FRDM-K64F開發板和一個應用板。Arm? Mbed? NXP FRDM-K64F是新一代旗艦開發板,基于ARM? Cortex? -M4微控制器,CPU頻率高達120 MHz,1024 KB閃存,256 KB內存,并驚人地擁有2個16位模數轉換器。它比NXP LPC1768速度更快,功能更強大。它還有數模轉換器和計時器,以及其他接口如以太網、非透明USB設備和串行接口。Arm? Mbed?以太物聯網入門工具包是一個基于云的開發工具包,由ARM公司和IBM公司聯合開發。它可為用戶提供靈活的體驗,用戶可以順暢地從開發板的傳感器上發送數據到IBM云。它可以讓用戶通過IBM BlueMix平臺進入IBM云應用。它尤其適合沒有特定嵌入式或網頁開發經驗的用戶,因為它提供了一種學習新理念和創建工作原型的平臺。用戶還可以對入門工具包硬件進行修改,以便滿足個性需求。 由于擁有后向兼容性,許多示例代碼也適用于NXP LPC1768開發板及其Mbed應用板。 在編寫本書的時候,Arm? Mbed?剛發行了最新版本Arm? Mbed?操作系統5.7,這個版本與之前的Mbed 操作系統3.0和2.0相比,有很多變化。本書主要基于Arm? Mbed?操作系統5.7,關于該新操作系統的更多詳情可參考Arm? Mbed?文檔網站(https://os.mbed.com/docs)。 我非常喜歡運用Arm? Mbed?開發板,希望你們也能喜歡。 本書結構 本書旨在教授學生如何運用Arm? Mbed?開發板設計和開發嵌入式系統以及物聯網應用。本書分為四個部分。 第一部分:Arm? Mbed?和物聯網(第1~3章),介紹嵌入式系統、微控制器和微處理器、Arm?架構和Arm? Mbed?系統。同時對物聯網進行了介紹,包括物聯網應用和物聯網驅動技術。 第二部分:Arm? Mbed?開發(第4~10章),介紹如何入門Arm? Mbed?開發,以及如何進行模擬輸入/輸出、數字輸入/輸出、通信接口、調試、在線庫和項目管理。 第三部分:物聯網入門工具包和物聯網應用(第11~12章),介紹Arm? Mbed?以太物聯網入門工具包和物聯網應用實例。 第四部分:附錄,包括附錄A(示例代碼)、附錄B(HiveMQ MQTT代理)、附錄C(樹莓派Node-RED)、附錄D(字符串和數組運算)和附錄E(常用在線資源)。 讀者對象 本書適合嵌入式系統開發工程師、電子工程專業本科生或研究生,以及電子愛好者閱讀。讀者需知曉一些基本的計算機運行原理,并能夠很好地使用計算機,如打開電腦、登錄、運行一些程序和從USB存儲器與計算機上雙向拷貝文件。 讀者需曾接觸過一些電子器械,如電路試驗板、電線、電阻器、電源和LED。讀者還需有一些編程經驗(最好是C/C++,不過其他語言也可以),了解基本的語法、不同類型的變量、條件選擇、循環和子程序。若還擁有一些關于微控制器的知識和經驗更好,不過這不是必需的。 最后,讀者需了解一些關于計算機網絡和互聯網的基本概念,如理解IP地址和端口號碼的概念,知道如何找到一臺計算機的IP地址,能夠使用一些常用的互聯網服務,如萬維網、郵箱、下載/上傳文件、在線音頻、在線視頻,甚至一些云服務。 本書既可用作核心教材,也可用作背景閱讀材料。 建議先讀材料 電子學 Electronics All-in-One for Dummies, 2nd edition, Doug Lowe, ISBN: 978-1-119-32079-1, March 2017. C/C++編程: Beginning Programming with C for Dummies, Dan Gookin, ISBN: 978-1-118-73763-7, November 2013. C++ Primer, 5th edition, Stanley B. Lippman, Josée Lajoie, Barbara E. Moo, Addison Wesley, ISBN: 978-0-321-71411-4, August 2012. 計算機網絡和互聯網: Computing Fundamentals: Digital Literacy Edition, Faithe Wempen with Rosemary Hattersley, Richard Millett, Kate Shoup, ISBN: 978-1-118-97474-2, August 2014. Understanding Data Communications: From Fundamentals to Networking, 3rd edition, Gilbert Held, ISBN: 978-0-471-62745-6, October 2000. 關于所需設備 學習本書,你需要準備: Arm? Mbed?以太物聯網入門工具包 NXP FRDM-K64F開發板 Mbed應用板 帶跨接線的電路試驗板 各種傳感器 數字或模擬示波器(可選) NXP LPC1768開發板及其應用板(可選) 致謝 誠摯地感謝Wiley出版社給我這次機會,也感謝Ella Mitchell的堅持和耐心,使得本書得以面世。 配套示例 本書示例代碼見華章圖書官網。 |