官术网_书友最值得收藏!

前言

很多年前第一次從同事那里拿到Arm?MbedTM LiB工具的時(shí)候,我的激動(dòng)之情難以掩飾。它是一個(gè)由ARM大學(xué)計(jì)劃捐贈(zèng)的NXP LPC1768開發(fā)板。Arm?MbedTM的主要特征是可通過一個(gè)網(wǎng)頁瀏覽器在線編寫和編譯代碼,這讓我耳目一新。我畢生都在用各種微控制器。在20世紀(jì)80年代,我做本科畢業(yè)設(shè)計(jì)時(shí),我研究的課題是使用Intel 8051單芯片微控制器進(jìn)行激光能量控制。這其中的概念非常簡(jiǎn)單:從激光能量監(jiān)測(cè)器上讀取電壓值,并與期望值進(jìn)行對(duì)比,計(jì)算所需調(diào)整值后反饋給激光器,從而增加或減少激光輸出。但是我們必須設(shè)計(jì)和制作自己的印制電路板,編寫代碼,并在8051微控制器上運(yùn)行。那時(shí),單片機(jī)編程不是一項(xiàng)簡(jiǎn)單的任務(wù),需要用匯編語言編寫程序。那時(shí)我們經(jīng)常在實(shí)驗(yàn)室通宵調(diào)試代碼。因此我曾使用過許多基于微控制器的嵌入式系統(tǒng),可以說經(jīng)歷很豐富。有些嵌入式系統(tǒng)使用非常不方便,必須下載軟件、下載工具鏈等。用我學(xué)生的話來說,得要一名博士生才能使編譯器軟件得以運(yùn)行。代碼也很復(fù)雜,需要配置寄存器和配置端口。即使生成無數(shù)行代碼都不夠!

令我印象最深刻的兩個(gè)嵌入式系統(tǒng)是樹莓派和Arduino。樹莓派價(jià)格優(yōu)惠,規(guī)格緊湊,只有信用卡那么大。這是一個(gè)很好的用于學(xué)習(xí)計(jì)算和編碼的工具包,它采用的是基于Debian的、完整的Linux操作系統(tǒng)和圖形用戶界面。但是對(duì)于很多學(xué)生項(xiàng)目來說,并不需要一個(gè)完整的操作系統(tǒng),而且缺少模數(shù)轉(zhuǎn)換器和數(shù)模轉(zhuǎn)換器也是很大的缺點(diǎn)。Arduino的價(jià)格和規(guī)格也很有優(yōu)勢(shì),但令我印象最深刻的是它在硬件和軟件上的簡(jiǎn)易性。我曾經(jīng)讀過很多所謂的“24小時(shí)”書,而Arduino是真正的你能夠在24小時(shí)內(nèi)就學(xué)會(huì)的東西。它就是那么簡(jiǎn)單。但是,它只有有限的存儲(chǔ)容量,也就意味著你不能寫太長(zhǎng)的程序,10位模數(shù)轉(zhuǎn)換器在諸多應(yīng)用中常被證明是不夠用的。

因此,當(dāng)我向?qū)W生們介紹Arm?MbedTM NXP LPC1768開發(fā)板時(shí),他們很快就喜歡上了它。他們喜歡基于網(wǎng)頁的編譯器。正是因?yàn)椴恍枰陔娔X上下載和安裝任何軟件就可以運(yùn)行,它讓生活變得簡(jiǎn)單了許多,代碼也更簡(jiǎn)單和易于理解,真是太棒了。正如Arm?MbedTM網(wǎng)站上所述,只需30秒即可從盒子里獲取開發(fā)板,并運(yùn)行一個(gè)應(yīng)用,無須安裝任何軟件!

Arm?MbedTM NXP LPC1768是最常用的單片機(jī)開發(fā)板之一,被學(xué)生和電子愛好者廣泛應(yīng)用。它基于32位ARM?CortexTM-M3微控制器,擁有96MHz主頻速度,512KB閃存,32KB內(nèi)存,而且最重要的是,它有12位數(shù)模轉(zhuǎn)換器。相比于Arduino,它的功能更強(qiáng)大,運(yùn)行速度更快。它還有很多類型的接口,包括以太網(wǎng)、USB、CAN、SPI、I2C、DAC、PWM,以及其他I/O接口。

但是,32位ARM?CortexTM-M3微控制器已經(jīng)逐漸走向了被淘汰的邊緣,它將被32位ARM?CortexTM-M4微控制器取代。因此本書將重點(diǎn)關(guān)注新型的、令人期待的Arm?MbedTM以太物聯(lián)網(wǎng)入門工具包,包括Arm?MbedTM NXP FRDM-K64F開發(fā)板和一個(gè)應(yīng)用板。Arm?MbedTM NXP FRDM-K64F是新一代旗艦開發(fā)板,基于ARM?CortexTM-M4微控制器,CPU頻率高達(dá)120MHz,1024KB閃存,256KB內(nèi)存,并驚人地?fù)碛?個(gè)16位模數(shù)轉(zhuǎn)換器。它比NXP LPC1768速度更快,功能更強(qiáng)大。它還有數(shù)模轉(zhuǎn)換器和計(jì)時(shí)器,以及其他接口如以太網(wǎng)、非透明USB設(shè)備和串行接口。Arm?MbedTM以太物聯(lián)網(wǎng)入門工具包是一個(gè)基于云的開發(fā)工具包,由ARM公司和IBM公司聯(lián)合開發(fā)。它可為用戶提供靈活的體驗(yàn),用戶可以順暢地從開發(fā)板的傳感器上發(fā)送數(shù)據(jù)到IBM云。它可以讓用戶通過IBM BlueMix平臺(tái)進(jìn)入IBM云應(yīng)用。它尤其適合沒有特定嵌入式或網(wǎng)頁開發(fā)經(jīng)驗(yàn)的用戶,因?yàn)樗峁┝艘环N學(xué)習(xí)新理念和創(chuàng)建工作原型的平臺(tái)。用戶還可以對(duì)入門工具包硬件進(jìn)行修改,以便滿足個(gè)性需求。

由于擁有后向兼容性,許多示例代碼也適用于NXP LPC1768開發(fā)板及其Mbed應(yīng)用板。

在編寫本書的時(shí)候,Arm?MbedTM剛發(fā)行了最新版本Arm?MbedTM操作系統(tǒng)5.7,這個(gè)版本與之前的Mbed操作系統(tǒng)3.0和2.0相比,有很多變化。本書主要基于Arm?MbedTM操作系統(tǒng)5.7,關(guān)于該新操作系統(tǒng)的更多詳情可參考Arm?MbedTM文檔網(wǎng)站(https://os.mbed.com/docs)。

我非常喜歡運(yùn)用Arm?MbedTM開發(fā)板,希望你們也能喜歡。

本書結(jié)構(gòu)

本書旨在教授學(xué)生如何運(yùn)用Arm?MbedTM開發(fā)板設(shè)計(jì)和開發(fā)嵌入式系統(tǒng)以及物聯(lián)網(wǎng)應(yīng)用。本書分為四個(gè)部分。

第一部分:Arm?MbedTM和物聯(lián)網(wǎng)(第1~3章),介紹嵌入式系統(tǒng)、微控制器和微處理器、Arm?架構(gòu)和Arm?MbedTM系統(tǒng)。同時(shí)對(duì)物聯(lián)網(wǎng)進(jìn)行了介紹,包括物聯(lián)網(wǎng)應(yīng)用和物聯(lián)網(wǎng)驅(qū)動(dòng)技術(shù)。

第二部分:Arm?MbedTM開發(fā)(第4~10章),介紹如何入門Arm?MbedTM開發(fā),以及如何進(jìn)行模擬輸入/輸出、數(shù)字輸入/輸出、通信接口、調(diào)試、在線庫和項(xiàng)目管理。

第三部分:物聯(lián)網(wǎng)入門工具包和物聯(lián)網(wǎng)應(yīng)用(第11~12章),介紹Arm?MbedTM以太物聯(lián)網(wǎng)入門工具包和物聯(lián)網(wǎng)應(yīng)用實(shí)例。

第四部分:附錄,包括附錄A(示例代碼)、附錄B(HiveMQ MQTT代理)、附錄C(樹莓派Node-RED)、附錄D(字符串和數(shù)組運(yùn)算)和附錄E(常用在線資源)。

讀者對(duì)象

本書適合嵌入式系統(tǒng)開發(fā)工程師、電子工程專業(yè)本科生或研究生,以及電子愛好者閱讀。讀者需知曉一些基本的計(jì)算機(jī)運(yùn)行原理,并能夠很好地使用計(jì)算機(jī),如打開電腦、登錄、運(yùn)行一些程序和從USB存儲(chǔ)器與計(jì)算機(jī)上雙向拷貝文件。

讀者需曾接觸過一些電子器械,如電路試驗(yàn)板、電線、電阻器、電源和LED。讀者還需有一些編程經(jīng)驗(yàn)(最好是C/C++,不過其他語言也可以),了解基本的語法、不同類型的變量、條件選擇、循環(huán)和子程序。若還擁有一些關(guān)于微控制器的知識(shí)和經(jīng)驗(yàn)更好,不過這不是必需的。

最后,讀者需了解一些關(guān)于計(jì)算機(jī)網(wǎng)絡(luò)和互聯(lián)網(wǎng)的基本概念,如理解IP地址和端口號(hào)碼的概念,知道如何找到一臺(tái)計(jì)算機(jī)的IP地址,能夠使用一些常用的互聯(lián)網(wǎng)服務(wù),如萬維網(wǎng)、郵箱、下載/上傳文件、在線音頻、在線視頻,甚至一些云服務(wù)。

本書既可用作核心教材,也可用作背景閱讀材料。

建議先讀材料

電子學(xué)

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.

計(jì)算機(jī)網(wǎng)絡(luò)和互聯(lián)網(wǎng):

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.

關(guān)于所需設(shè)備

學(xué)習(xí)本書,你需要準(zhǔn)備:

?Arm?MbedTM以太物聯(lián)網(wǎng)入門工具包

·NXP FRDM-K64F開發(fā)板

·Mbed應(yīng)用板

?帶跨接線的電路試驗(yàn)板

?各種傳感器

?數(shù)字或模擬示波器(可選)

?NXP LPC1768開發(fā)板及其應(yīng)用板(可選)

?樹莓派(http://www.raspberrypi.org/)(可選)

?Java JDK軟件(http://www.oracle.com/technetwork/java/javase/downloads/index.html

?Python軟件(http://www.python.org/downloads/)(可選)

致謝

誠摯地感謝Wiley出版社給我這次機(jī)會(huì),也感謝Ella Mitchell的堅(jiān)持和耐心,使得本書得以面世。

配套示例

本書示例代碼見華章圖書官網(wǎng)http://www.hzbook.com

主站蜘蛛池模板: 寿宁县| 蚌埠市| 济南市| 师宗县| 将乐县| 乐陵市| 嘉禾县| 广宁县| 临邑县| 赣榆县| 宁德市| 肇东市| 柳河县| 莲花县| 宝丰县| 焦作市| 五大连池市| 湘潭县| 邵阳市| 宿州市| 嘉义市| 安塞县| 柳州市| 遂昌县| 阿鲁科尔沁旗| 台南县| 德兴市| 丰原市| 弋阳县| 奉节县| 肃宁县| 潮州市| 龙井市| 贵南县| 台中县| 武宁县| 会理县| 新巴尔虎左旗| 阿尔山市| 宁晋县| 济阳县|