關(guān)于我們
書單推薦
新書推薦
|
嵌入式系統(tǒng)原理與實踐
嵌入式系統(tǒng)原理與實踐系統(tǒng)介紹了嵌入式系統(tǒng)的基本原理和基礎(chǔ)知識,詳細講述了MCU應(yīng)用相關(guān)的各種外設(shè)模塊的工作原理和編程結(jié)構(gòu),包括ARM Cortex-M4內(nèi)核、ARM v7指令系統(tǒng)、MCU系統(tǒng)控制、存儲器、通用輸入/輸出(GPIO)、定時器、PWM、異步和同步通信接口(UART、SPI、I2C等)、模擬外設(shè)(ADC、DAC、比較器)等。同時,對嵌入式軟件設(shè)計方法、嵌入式C語言基礎(chǔ)、RTOS等作了簡明闡述。*后還介紹了物聯(lián)網(wǎng)應(yīng)用、低功耗系統(tǒng)設(shè)計和電磁兼容性基礎(chǔ)等。
本書以MSP432微控制器為例,每個章節(jié)都提供實驗操作例程代碼,并配有完整的教學(xué)資源,包括PPT課件、物聯(lián)網(wǎng)口袋實驗平臺和實驗指導(dǎo)書等。
本書可作為高等院校計算機、電子、自動化、儀器儀表等專業(yè)嵌入式系統(tǒng)、物聯(lián)網(wǎng)、微機接口、單片機等課程的教材,也可作為廣大從事MCU和物聯(lián)網(wǎng)應(yīng)用系統(tǒng)開發(fā)的工程技術(shù)人員的學(xué)習(xí)、參考用書。
嵌入式系統(tǒng)原理與實踐結(jié)合物聯(lián)網(wǎng)應(yīng)用趨勢、把嵌入式系統(tǒng)和移動互聯(lián)網(wǎng)結(jié)合起來,我們和阿里巴巴、半導(dǎo)體芯片公司TI合作,開發(fā)了基于阿里云IoT平臺和AliOS Things的嵌入式物聯(lián)網(wǎng)實驗系統(tǒng),把手機App作為嵌入式系統(tǒng)的人機交互接口,并可在Internet上實現(xiàn)互動。嵌入式系統(tǒng)原理與實踐結(jié)合物聯(lián)網(wǎng)應(yīng)用趨勢、把嵌入式系統(tǒng)和移動互聯(lián)網(wǎng)結(jié)合起來,我們和阿里巴巴、半導(dǎo)體芯片公司TI合作,開發(fā)了基于阿里云IoT平臺和AliOS Things的嵌入式物聯(lián)網(wǎng)實驗系統(tǒng),把手機App作為嵌入式系統(tǒng)的人機交互接口,并可在Internet上實現(xiàn)互動。
目前很多高校都開設(shè)了嵌入式系統(tǒng)課程,有的學(xué)校還有嵌入式系統(tǒng)專業(yè),關(guān)于嵌入式系統(tǒng)教學(xué)內(nèi)容的討論也隨之而來。其實,嵌入式系統(tǒng)這個概念很大,計算機技術(shù)和計算機應(yīng)用技術(shù)的每個方面,幾乎都可以找到與嵌入式系統(tǒng)有關(guān)聯(lián)的內(nèi)容,如微處理器架構(gòu)、硬件系統(tǒng)設(shè)計、軟件設(shè)計與優(yōu)化、算法與控制、接口與通信、操作系統(tǒng)、數(shù)字信號處理、單片機應(yīng)用等。所以,完整的嵌入式系統(tǒng)教學(xué)內(nèi)容,應(yīng)該是一個課程體系、包括一系列的課程。對于一般學(xué)校的一門嵌入式系統(tǒng)類課程,則不必拘泥(或統(tǒng)一)于某一特定的內(nèi)容,完全可以根據(jù)各自學(xué)校、專業(yè)的特點和培養(yǎng)方案,選定教學(xué)內(nèi)容。為此,我們也查閱了美國一些高校(如哥倫比亞大學(xué)、德克薩斯大學(xué)、密西根大學(xué)、伯克利大學(xué)、華盛頓大學(xué)等)的嵌入式系統(tǒng)課程教學(xué)內(nèi)容,發(fā)現(xiàn)各高校相似名稱的課程,教學(xué)內(nèi)容也相差很大,有的偏重于系統(tǒng)建模、有的偏重于系統(tǒng)控制、有的偏重于應(yīng)用系統(tǒng)設(shè)計?傮w而言,偏重于應(yīng)用、控制方面的,選用微控制器(MCU)教學(xué)的較為普遍。
在國內(nèi)成立嵌入式系統(tǒng)專業(yè)的學(xué)校,有條件可以開設(shè)一系列的嵌入式系統(tǒng)課程。對一般學(xué)校來說,涉及嵌入式系統(tǒng)相關(guān)教學(xué)內(nèi)容的,可能也就是1~2門課。對于計算機專業(yè)而言,大多是原來的微機原理與接口單片機原理與應(yīng)用這類課程教學(xué)內(nèi)容的延續(xù)和更新。我們?nèi)A東師范大學(xué)計算機系也是如此,目前嵌入式系統(tǒng)原理與實踐這門課,就是原來微機原理與接口嵌入式系統(tǒng)引論的升級版?紤]到計算機專業(yè)軟件課程(包括操作系統(tǒng)、編程語言等)已經(jīng)很多,所以我們這門課的教學(xué)內(nèi)容重點是嵌入式系統(tǒng)硬件接口方面的知識,以及具有嵌入式系統(tǒng)特點的軟件設(shè)計方法,包括嵌入式處理器、存儲器、I/O、RTOS、嵌入式應(yīng)用編程等。 嵌入式系統(tǒng)是一種計算機應(yīng)用系統(tǒng)。作為本科生專業(yè)基礎(chǔ)課程,要抽象出一般嵌入式應(yīng)用共性的知識和原理,這部分內(nèi)容必須具有基礎(chǔ)性、普適性,不依賴于某個具體的芯片。然后再選擇某些有代表性的具體芯片作為實驗載體,加強對原理的理解,掌握應(yīng)用設(shè)計方法。平衡好這兩個方面是嵌入式教學(xué)的一個難點,為此我們結(jié)合自己20多年嵌入式系統(tǒng)教學(xué)、科研項目開發(fā)經(jīng)驗,逐步抽象出符合本學(xué)科專業(yè)教學(xué)要求的嵌入式系統(tǒng)處理器、存儲器、I/O等相關(guān)的基礎(chǔ)知識和原理,并選擇了基于ARM Cortex-M4的超低功耗微控制器MSP432作為硬件實驗平臺,F(xiàn)在各種MCU型號很多,選擇MSP432主要考慮了以下因素。 (1)MSP432基于ARM Cortex-M4內(nèi)核,采用ARM v7指令集,具有高性能、先進性,32位處理器已成主流,教學(xué)內(nèi)容必須與時俱進。 (2)低功耗是嵌入式系統(tǒng)的重要特性,MSP432既有一般ARM MCU的功能性,也有超低功耗特性,可滿足更多教學(xué)、應(yīng)用需求。 (3)MSP432開發(fā)工具完善,可支持多種主流嵌入式開發(fā)工具,如Keil MDK、IAR、Eclipse等。 (4)對于高校教學(xué)實驗需求,可向TI大學(xué)計劃申請免費的MSP432 LaunchPad。 嵌入式系統(tǒng)教學(xué)的另一個難點是動手實踐。一方面,受學(xué)校總課時限制,每周2課時的實驗只能讓學(xué)生做一些膚淺的驗證性實驗,無法做一些復(fù)雜、系統(tǒng)性的實驗;另一方面,由于互聯(lián)網(wǎng)應(yīng)用的興起,現(xiàn)在IT學(xué)科的學(xué)生普遍喜歡軟件類課程和互聯(lián)網(wǎng)應(yīng)用開發(fā),因為各種移動互聯(lián)網(wǎng)應(yīng)用,如Web、手機App應(yīng)用開發(fā)更方便、有趣。為突破這個難題,提高學(xué)生對嵌入式系統(tǒng)的學(xué)習(xí)興趣,同時結(jié)合物聯(lián)網(wǎng)應(yīng)用趨勢、把嵌入式系統(tǒng)和移動互聯(lián)網(wǎng)結(jié)合起來,我們和阿里巴巴、半導(dǎo)體芯片公司TI合作,開發(fā)了基于阿里云IoT平臺和AliOS Things的嵌入式物聯(lián)網(wǎng)實驗系統(tǒng),把手機App作為嵌入式系統(tǒng)的人機交互接口,并可在Internet上實現(xiàn)互動。該實驗系統(tǒng)的特色如下。 (1)簡單。硬件采用口袋板形式(名片大。,課程一開始就發(fā)給學(xué)生,學(xué)生可在任何時間自行進行編程實驗;而在實驗室規(guī)定的時間可以進行更復(fù)雜的實驗,大大增加了學(xué)生的實驗時間、動手和創(chuàng)新能力。 (2)豐富。實驗內(nèi)容豐富,可做一般嵌入式系統(tǒng)課程要求的所有實驗內(nèi)容;并帶有Arduino擴展接口,可進行創(chuàng)新實驗、應(yīng)用開發(fā)。 (3)有趣。配接聯(lián)網(wǎng)模塊,既可實現(xiàn)物聯(lián)網(wǎng)應(yīng)用方案,也可用手機App進行遠程操控。 (4)真實。物聯(lián)網(wǎng)實驗方案采用阿里云IoT平臺,安全、穩(wěn)定、有彈性,可用于實際IoT產(chǎn)品和項目,所學(xué)即所用。 (5)完善。教材、課件PPT、作業(yè)、答案等配套資源完善,可零起點學(xué)習(xí)使用嵌入式和物聯(lián)網(wǎng)開發(fā)。教師還可以在網(wǎng)上查看、統(tǒng)計學(xué)生的學(xué)習(xí)、實驗情況。 (6)免費。對于高校教學(xué),可申請實驗板卡、IoT云系統(tǒng)使用全免費。 嵌入式應(yīng)用幾乎無所不在,物聯(lián)網(wǎng)給嵌入式系統(tǒng)發(fā)展帶來巨大機遇。從某種角度上說,物聯(lián)網(wǎng)應(yīng)用系統(tǒng)也可看作是嵌入式系統(tǒng)的網(wǎng)絡(luò)應(yīng)用,因為物聯(lián)網(wǎng)系統(tǒng)中的物,基本上都是各種嵌入式設(shè)備。隨著物聯(lián)網(wǎng)應(yīng)用的發(fā)展,嵌入式軟件日趨復(fù)雜,需要針對應(yīng)用趨勢,學(xué)習(xí)高效的嵌入式、物聯(lián)網(wǎng)開發(fā)技術(shù),包括RTOS、物聯(lián)網(wǎng)OS、IoT云平臺等。對于一般嵌入式開發(fā),本書介紹了FreeRTOS。對于物聯(lián)網(wǎng)應(yīng)用開發(fā),本書簡單介紹了AliOS Things和阿里云IoT平臺,并介紹了一個物聯(lián)網(wǎng)應(yīng)用實例。 考慮到教學(xué)內(nèi)容的完整性、學(xué)生基礎(chǔ)的差異性以及學(xué)習(xí)參考的便利,本書的后面幾章還補充了嵌入式軟件設(shè)計方法、嵌入式C語言基礎(chǔ)、軟硬件開發(fā)環(huán)境以及低功耗設(shè)計和電磁兼容性方面的基礎(chǔ)知識。 華東師范大學(xué)計算機系嵌入式系統(tǒng)實驗室長期重視產(chǎn)學(xué)研結(jié)合,與多家全球著名的半導(dǎo)體廠商(如TI、Microchip、ST等)和互聯(lián)網(wǎng)企業(yè)(如阿里云、微軟Azure等)合作,在MCU和物聯(lián)網(wǎng)系統(tǒng)開發(fā)、推廣方面積累了豐富的經(jīng)驗。本書內(nèi)容是結(jié)合了我們多年課程教學(xué)及MCU和物聯(lián)網(wǎng)應(yīng)用開發(fā)的經(jīng)驗編寫整理而成的,并經(jīng)過了多屆學(xué)生的試用,反響良好。 參與本書編寫和資料整理、硬件設(shè)計和代碼驗證等工作的,還有華東師范大學(xué)計算機系林雯、陶立清、常艷杰、王同樂、張炤、張紅艷、陳子炎、周劍晟、郝立平,上海大學(xué)李晉等。在本書成稿過程中,得到了TI大學(xué)計劃經(jīng)理王承寧、潘亞濤、鐘舒陽,阿里巴巴IoT事業(yè)部總經(jīng)理庫偉、巍騖、孟子,清華大學(xué)出版社鄧艷的大力支持。在此向他們表示衷心的感謝。 由于時間倉促和水平所限,書中難免存在不足之處,懇請讀者批評指正,以便我們及時修正。 目前很多高校都開設(shè)了嵌入式系統(tǒng)課程,有的學(xué)校還有嵌入式系統(tǒng)專業(yè),關(guān)于嵌入式系統(tǒng)教學(xué)內(nèi)容的討論也隨之而來。其實,嵌入式系統(tǒng)這個概念很大,計算機技術(shù)和計算機應(yīng)用技術(shù)的每個方面,幾乎都可以找到與嵌入式系統(tǒng)有關(guān)聯(lián)的內(nèi)容,如微處理器架構(gòu)、硬件系統(tǒng)設(shè)計、軟件設(shè)計與優(yōu)化、算法與控制、接口與通信、操作系統(tǒng)、數(shù)字信號處理、單片機應(yīng)用等。所以,完整的嵌入式系統(tǒng)教學(xué)內(nèi)容,應(yīng)該是一個課程體系、包括一系列的課程。對于一般學(xué)校的一門嵌入式系統(tǒng)類課程,則不必拘泥(或統(tǒng)一)于某一特定的內(nèi)容,完全可以根據(jù)各自學(xué)校、專業(yè)的特點和培養(yǎng)方案,選定教學(xué)內(nèi)容。為此,我們也查閱了美國一些高校(如哥倫比亞大學(xué)、德克薩斯大學(xué)、密西根大學(xué)、伯克利大學(xué)、華盛頓大學(xué)等)的嵌入式系統(tǒng)課程教學(xué)內(nèi)容,發(fā)現(xiàn)各高校相似名稱的課程,教學(xué)內(nèi)容也相差很大,有的偏重于系統(tǒng)建模、有的偏重于系統(tǒng)控制、有的偏重于應(yīng)用系統(tǒng)設(shè)計?傮w而言,偏重于應(yīng)用、控制方面的,選用微控制器(MCU)教學(xué)的較為普遍。 在國內(nèi)成立嵌入式系統(tǒng)專業(yè)的學(xué)校,有條件可以開設(shè)一系列的嵌入式系統(tǒng)課程。對一般學(xué)校來說,涉及嵌入式系統(tǒng)相關(guān)教學(xué)內(nèi)容的,可能也就是1~2門課。對于計算機專業(yè)而言,大多是原來的微機原理與接口單片機原理與應(yīng)用這類課程教學(xué)內(nèi)容的延續(xù)和更新。我們?nèi)A東師范大學(xué)計算機系也是如此,目前嵌入式系統(tǒng)原理與實踐這門課,就是原來微機原理與接口嵌入式系統(tǒng)引論的升級版。考慮到計算機專業(yè)軟件課程(包括操作系統(tǒng)、編程語言等)已經(jīng)很多,所以我們這門課的教學(xué)內(nèi)容重點是嵌入式系統(tǒng)硬件接口方面的知識,以及具有嵌入式系統(tǒng)特點的軟件設(shè)計方法,包括嵌入式處理器、存儲器、I/O、RTOS、嵌入式應(yīng)用編程等。 嵌入式系統(tǒng)是一種計算機應(yīng)用系統(tǒng)。作為本科生專業(yè)基礎(chǔ)課程,要抽象出一般嵌入式應(yīng)用共性的知識和原理,這部分內(nèi)容必須具有基礎(chǔ)性、普適性,不依賴于某個具體的芯片。然后再選擇某些有代表性的具體芯片作為實驗載體,加強對原理的理解,掌握應(yīng)用設(shè)計方法。平衡好這兩個方面是嵌入式教學(xué)的一個難點,為此我們結(jié)合自己20多年嵌入式系統(tǒng)教學(xué)、科研項目開發(fā)經(jīng)驗,逐步抽象出符合本學(xué)科專業(yè)教學(xué)要求的嵌入式系統(tǒng)處理器、存儲器、I/O等相關(guān)的基礎(chǔ)知識和原理,并選擇了基于ARM Cortex-M4的超低功耗微控制器MSP432作為硬件實驗平臺,F(xiàn)在各種MCU型號很多,選擇MSP432主要考慮了以下因素。 (1)MSP432基于ARM Cortex-M4內(nèi)核,采用ARM v7指令集,具有高性能、先進性,32位處理器已成主流,教學(xué)內(nèi)容必須與時俱進。 (2)低功耗是嵌入式系統(tǒng)的重要特性,MSP432既有一般ARM MCU的功能性,也有超低功耗特性,可滿足更多教學(xué)、應(yīng)用需求。 (3)MSP432開發(fā)工具完善,可支持多種主流嵌入式開發(fā)工具,如Keil MDK、IAR、Eclipse等。 (4)對于高校教學(xué)實驗需求,可向TI大學(xué)計劃申請免費的MSP432 LaunchPad。 嵌入式系統(tǒng)教學(xué)的另一個難點是動手實踐。一方面,受學(xué)校總課時限制,每周2課時的實驗只能讓學(xué)生做一些膚淺的驗證性實驗,無法做一些復(fù)雜、系統(tǒng)性的實驗;另一方面,由于互聯(lián)網(wǎng)應(yīng)用的興起,現(xiàn)在IT學(xué)科的學(xué)生普遍喜歡軟件類課程和互聯(lián)網(wǎng)應(yīng)用開發(fā),因為各種移動互聯(lián)網(wǎng)應(yīng)用,如Web、手機App應(yīng)用開發(fā)更方便、有趣。為突破這個難題,提高學(xué)生對嵌入式系統(tǒng)的學(xué)習(xí)興趣,同時結(jié)合物聯(lián)網(wǎng)應(yīng)用趨勢、把嵌入式系統(tǒng)和移動互聯(lián)網(wǎng)結(jié)合起來,我們和阿里巴巴、半導(dǎo)體芯片公司TI合作,開發(fā)了基于阿里云IoT平臺和AliOS Things的嵌入式物聯(lián)網(wǎng)實驗系統(tǒng),把手機App作為嵌入式系統(tǒng)的人機交互接口,并可在Internet上實現(xiàn)互動。該實驗系統(tǒng)的特色如下。 (1)簡單。硬件采用口袋板形式(名片大。n程一開始就發(fā)給學(xué)生,學(xué)生可在任何時間自行進行編程實驗;而在實驗室規(guī)定的時間可以進行更復(fù)雜的實驗,大大增加了學(xué)生的實驗時間、動手和創(chuàng)新能力。 (2)豐富。實驗內(nèi)容豐富,可做一般嵌入式系統(tǒng)課程要求的所有實驗內(nèi)容;并帶有Arduino擴展接口,可進行創(chuàng)新實驗、應(yīng)用開發(fā)。 (3)有趣。配接聯(lián)網(wǎng)模塊,既可實現(xiàn)物聯(lián)網(wǎng)應(yīng)用方案,也可用手機App進行遠程操控。 (4)真實。物聯(lián)網(wǎng)實驗方案采用阿里云IoT平臺,安全、穩(wěn)定、有彈性,可用于實際IoT產(chǎn)品和項目,所學(xué)即所用。 (5)完善。教材、課件PPT、作業(yè)、答案等配套資源完善,可零起點學(xué)習(xí)使用嵌入式和物聯(lián)網(wǎng)開發(fā)。教師還可以在網(wǎng)上查看、統(tǒng)計學(xué)生的學(xué)習(xí)、實驗情況。 (6)免費。對于高校教學(xué),可申請實驗板卡、IoT云系統(tǒng)使用全免費。 嵌入式應(yīng)用幾乎無所不在,物聯(lián)網(wǎng)給嵌入式系統(tǒng)發(fā)展帶來巨大機遇。從某種角度上說,物聯(lián)網(wǎng)應(yīng)用系統(tǒng)也可看作是嵌入式系統(tǒng)的網(wǎng)絡(luò)應(yīng)用,因為物聯(lián)網(wǎng)系統(tǒng)中的物,基本上都是各種嵌入式設(shè)備。隨著物聯(lián)網(wǎng)應(yīng)用的發(fā)展,嵌入式軟件日趨復(fù)雜,需要針對應(yīng)用趨勢,學(xué)習(xí)高效的嵌入式、物聯(lián)網(wǎng)開發(fā)技術(shù),包括RTOS、物聯(lián)網(wǎng)OS、IoT云平臺等。對于一般嵌入式開發(fā),本書介紹了FreeRTOS。對于物聯(lián)網(wǎng)應(yīng)用開發(fā),本書簡單介紹了AliOS Things和阿里云IoT平臺,并介紹了一個物聯(lián)網(wǎng)應(yīng)用實例。 考慮到教學(xué)內(nèi)容的完整性、學(xué)生基礎(chǔ)的差異性以及學(xué)習(xí)參考的便利,本書的后面幾章還補充了嵌入式軟件設(shè)計方法、嵌入式C語言基礎(chǔ)、軟硬件開發(fā)環(huán)境以及低功耗設(shè)計和電磁兼容性方面的基礎(chǔ)知識。 華東師范大學(xué)計算機系嵌入式系統(tǒng)實驗室長期重視產(chǎn)學(xué)研結(jié)合,與多家全球著名的半導(dǎo)體廠商(如TI、Microchip、ST等)和互聯(lián)網(wǎng)企業(yè)(如阿里云、微軟Azure等)合作,在MCU和物聯(lián)網(wǎng)系統(tǒng)開發(fā)、推廣方面積累了豐富的經(jīng)驗。本書內(nèi)容是結(jié)合了我們多年課程教學(xué)及MCU和物聯(lián)網(wǎng)應(yīng)用開發(fā)的經(jīng)驗編寫整理而成的,并經(jīng)過了多屆學(xué)生的試用,反響良好。 參與本書編寫和資料整理、硬件設(shè)計和代碼驗證等工作的,還有華東師范大學(xué)計算機系林雯、陶立清、常艷杰、王同樂、張炤、張紅艷、陳子炎、周劍晟、郝立平,上海大學(xué)李晉等。在本書成稿過程中,得到了TI大學(xué)計劃經(jīng)理王承寧、潘亞濤、鐘舒陽,阿里巴巴IoT事業(yè)部總經(jīng)理庫偉、巍騖、孟子,清華大學(xué)出版社鄧艷的大力支持。在此向他們表示衷心的感謝。 由于時間倉促和水平所限,書中難免存在不足之處,懇請讀者批評指正,以便我們及時修正。 目前很多高校都開設(shè)了嵌入式系統(tǒng)課程,有的學(xué)校還有嵌入式系統(tǒng)專業(yè),關(guān)于嵌入式系統(tǒng)教學(xué)內(nèi)容的討論也隨之而來。其實,嵌入式系統(tǒng)這個概念很大,計算機技術(shù)和計算機應(yīng)用技術(shù)的每個方面,幾乎都可以找到與嵌入式系統(tǒng)有關(guān)聯(lián)的內(nèi)容,如微處理器架構(gòu)、硬件系統(tǒng)設(shè)計、軟件設(shè)計與優(yōu)化、算法與控制、接口與通信、操作系統(tǒng)、數(shù)字信號處理、單片機應(yīng)用等。所以,完整的嵌入式系統(tǒng)教學(xué)內(nèi)容,應(yīng)該是一個課程體系、包括一系列的課程。對于一般學(xué)校的一門嵌入式系統(tǒng)類課程,則不必拘泥(或統(tǒng)一)于某一特定的內(nèi)容,完全可以根據(jù)各自學(xué)校、專業(yè)的特點和培養(yǎng)方案,選定教學(xué)內(nèi)容。為此,我們也查閱了美國一些高校(如哥倫比亞大學(xué)、德克薩斯大學(xué)、密西根大學(xué)、伯克利大學(xué)、華盛頓大學(xué)等)的嵌入式系統(tǒng)課程教學(xué)內(nèi)容,發(fā)現(xiàn)各高校相似名稱的課程,教學(xué)內(nèi)容也相差很大,有的偏重于系統(tǒng)建模、有的偏重于系統(tǒng)控制、有的偏重于應(yīng)用系統(tǒng)設(shè)計。總體而言,偏重于應(yīng)用、控制方面的,選用微控制器(MCU)教學(xué)的較為普遍。 在國內(nèi)成立嵌入式系統(tǒng)專業(yè)的學(xué)校,有條件可以開設(shè)一系列的嵌入式系統(tǒng)課程。對一般學(xué)校來說,涉及嵌入式系統(tǒng)相關(guān)教學(xué)內(nèi)容的,可能也就是1~2門課。對于計算機專業(yè)而言,大多是原來的微機原理與接口單片機原理與應(yīng)用這類課程教學(xué)內(nèi)容的延續(xù)和更新。我們?nèi)A東師范大學(xué)計算機系也是如此,目前嵌入式系統(tǒng)原理與實踐這門課,就是原來微機原理與接口嵌入式系統(tǒng)引論的升級版。考慮到計算機專業(yè)軟件課程(包括操作系統(tǒng)、編程語言等)已經(jīng)很多,所以我們這門課的教學(xué)內(nèi)容重點是嵌入式系統(tǒng)硬件接口方面的知識,以及具有嵌入式系統(tǒng)特點的軟件設(shè)計方法,包括嵌入式處理器、存儲器、I/O、RTOS、嵌入式應(yīng)用編程等。 嵌入式系統(tǒng)是一種計算機應(yīng)用系統(tǒng)。作為本科生專業(yè)基礎(chǔ)課程,要抽象出一般嵌入式應(yīng)用共性的知識和原理,這部分內(nèi)容必須具有基礎(chǔ)性、普適性,不依賴于某個具體的芯片。然后再選擇某些有代表性的具體芯片作為實驗載體,加強對原理的理解,掌握應(yīng)用設(shè)計方法。平衡好這兩個方面是嵌入式教學(xué)的一個難點,為此我們結(jié)合自己20多年嵌入式系統(tǒng)教學(xué)、科研項目開發(fā)經(jīng)驗,逐步抽象出符合本學(xué)科專業(yè)教學(xué)要求的嵌入式系統(tǒng)處理器、存儲器、I/O等相關(guān)的基礎(chǔ)知識和原理,并選擇了基于ARM Cortex-M4的超低功耗微控制器MSP432作為硬件實驗平臺,F(xiàn)在各種MCU型號很多,選擇MSP432主要考慮了以下因素。 (1)MSP432基于ARM Cortex-M4內(nèi)核,采用ARM v7指令集,具有高性能、先進性,32位處理器已成主流,教學(xué)內(nèi)容必須與時俱進。 (2)低功耗是嵌入式系統(tǒng)的重要特性,MSP432既有一般ARM MCU的功能性,也有超低功耗特性,可滿足更多教學(xué)、應(yīng)用需求。 (3)MSP432開發(fā)工具完善,可支持多種主流嵌入式開發(fā)工具,如Keil MDK、IAR、Eclipse等。 (4)對于高校教學(xué)實驗需求,可向TI大學(xué)計劃申請免費的MSP432 LaunchPad。 嵌入式系統(tǒng)教學(xué)的另一個難點是動手實踐。一方面,受學(xué)?傉n時限制,每周2課時的實驗只能讓學(xué)生做一些膚淺的驗證性實驗,無法做一些復(fù)雜、系統(tǒng)性的實驗;另一方面,由于互聯(lián)網(wǎng)應(yīng)用的興起,現(xiàn)在IT學(xué)科的學(xué)生普遍喜歡軟件類課程和互聯(lián)網(wǎng)應(yīng)用開發(fā),因為各種移動互聯(lián)網(wǎng)應(yīng)用,如Web、手機App應(yīng)用開發(fā)更方便、有趣。為突破這個難題,提高學(xué)生對嵌入式系統(tǒng)的學(xué)習(xí)興趣,同時結(jié)合物聯(lián)網(wǎng)應(yīng)用趨勢、把嵌入式系統(tǒng)和移動互聯(lián)網(wǎng)結(jié)合起來,我們和阿里巴巴、半導(dǎo)體芯片公司TI合作,開發(fā)了基于阿里云IoT平臺和AliOS Things的嵌入式物聯(lián)網(wǎng)實驗系統(tǒng),把手機App作為嵌入式系統(tǒng)的人機交互接口,并可在Internet上實現(xiàn)互動。該實驗系統(tǒng)的特色如下。 (1)簡單。硬件采用口袋板形式(名片大。,課程一開始就發(fā)給學(xué)生,學(xué)生可在任何時間自行進行編程實驗;而在實驗室規(guī)定的時間可以進行更復(fù)雜的實驗,大大增加了學(xué)生的實驗時間、動手和創(chuàng)新能力。 (2)豐富。實驗內(nèi)容豐富,可做一般嵌入式系統(tǒng)課程要求的所有實驗內(nèi)容;并帶有Arduino擴展接口,可進行創(chuàng)新實驗、應(yīng)用開發(fā)。 (3)有趣。配接聯(lián)網(wǎng)模塊,既可實現(xiàn)物聯(lián)網(wǎng)應(yīng)用方案,也可用手機App進行遠程操控。 (4)真實。物聯(lián)網(wǎng)實驗方案采用阿里云IoT平臺,安全、穩(wěn)定、有彈性,可用于實際IoT產(chǎn)品和項目,所學(xué)即所用。 (5)完善。教材、課件PPT、作業(yè)、答案等配套資源完善,可零起點學(xué)習(xí)使用嵌入式和物聯(lián)網(wǎng)開發(fā)。教師還可以在網(wǎng)上查看、統(tǒng)計學(xué)生的學(xué)習(xí)、實驗情況。 (6)免費。對于高校教學(xué),可申請實驗板卡、IoT云系統(tǒng)使用全免費。 嵌入式應(yīng)用幾乎無所不在,物聯(lián)網(wǎng)給嵌入式系統(tǒng)發(fā)展帶來巨大機遇。從某種角度上說,物聯(lián)網(wǎng)應(yīng)用系統(tǒng)也可看作是嵌入式系統(tǒng)的網(wǎng)絡(luò)應(yīng)用,因為物聯(lián)網(wǎng)系統(tǒng)中的物,基本上都是各種嵌入式設(shè)備。隨著物聯(lián)網(wǎng)應(yīng)用的發(fā)展,嵌入式軟件日趨復(fù)雜,需要針對應(yīng)用趨勢,學(xué)習(xí)高效的嵌入式、物聯(lián)網(wǎng)開發(fā)技術(shù),包括RTOS、物聯(lián)網(wǎng)OS、IoT云平臺等。對于一般嵌入式開發(fā),本書介紹了FreeRTOS。對于物聯(lián)網(wǎng)應(yīng)用開發(fā),本書簡單介紹了AliOS Things和阿里云IoT平臺,并介紹了一個物聯(lián)網(wǎng)應(yīng)用實例。 考慮到教學(xué)內(nèi)容的完整性、學(xué)生基礎(chǔ)的差異性以及學(xué)習(xí)參考的便利,本書的后面幾章還補充了嵌入式軟件設(shè)計方法、嵌入式C語言基礎(chǔ)、軟硬件開發(fā)環(huán)境以及低功耗設(shè)計和電磁兼容性方面的基礎(chǔ)知識。 華東師范大學(xué)計算機系嵌入式系統(tǒng)實驗室長期重視產(chǎn)學(xué)研結(jié)合,與多家全球著名的半導(dǎo)體廠商(如TI、Microchip、ST等)和互聯(lián)網(wǎng)企業(yè)(如阿里云、微軟Azure等)合作,在MCU和物聯(lián)網(wǎng)系統(tǒng)開發(fā)、推廣方面積累了豐富的經(jīng)驗。本書內(nèi)容是結(jié)合了我們多年課程教學(xué)及MCU和物聯(lián)網(wǎng)應(yīng)用開發(fā)的經(jīng)驗編寫整理而成的,并經(jīng)過了多屆學(xué)生的試用,反響良好。 參與本書編寫和資料整理、硬件設(shè)計和代碼驗證等工作的,還有華東師范大學(xué)計算機系林雯、陶立清、常艷杰、王同樂、張炤、張紅艷、陳子炎、周劍晟、郝立平,上海大學(xué)李晉等。在本書成稿過程中,得到了TI大學(xué)計劃經(jīng)理王承寧、潘亞濤、鐘舒陽,阿里巴巴IoT事業(yè)部總經(jīng)理庫偉、巍騖、孟子,清華大學(xué)出版社鄧艷的大力支持。在此向他們表示衷心的感謝。 由于時間倉促和水平所限,書中難免存在不足之處,懇請讀者批評指正,以便我們及時修正。 編 者
第1章 嵌入式系統(tǒng)與微控制器概述 1
1.1 嵌入式系統(tǒng)概述 1 1.1.1 嵌入式系統(tǒng)的發(fā)展 1 1.1.2 嵌入式系統(tǒng)的特點 3 1.1.3 嵌入式系統(tǒng)的組成 3 1.1.4 嵌入式系統(tǒng)的種類 5 1.1.5 嵌入式系統(tǒng)的調(diào)試方法 6 1.1.6 嵌入式系統(tǒng)的應(yīng)用 12 1.2 嵌入式處理器 13 1.2.1 嵌入式處理器概述 13 1.2.2 嵌入式處理器的分類 13 1.2.3 MCU的發(fā)展和特點 18 1.3 習(xí)題 23 第2章 ARM Cortex-M處理器 24 2.1 ARM處理器概述 24 2.2 ARM處理器架構(gòu) 24 2.2.1 ARM體系結(jié)構(gòu)版本 25 2.2.2 ARM處理器 27 2.3 Cortex-M處理器內(nèi)核及功能介紹 29 2.4 ARM Cortex-M4編程模型 34 2.4.1 處理器的工作模式和特權(quán)級別 34 2.4.2 ARM Cortex-M4寄存器 35 2.4.3 ARM Cortex-M4異常處理 38 2.5 習(xí)題 43 第3章 ARM指令系統(tǒng) 44 3.1 指令格式 44 3.2 條件碼 46 3.3 ARM指令的尋址方式 47 3.4 ARM v7架構(gòu)指令集Thumb-2指令集 52 3.4.1 存儲器訪問指令 53 3.4.2 通用數(shù)據(jù)處理指令 57 3.4.3 乘法和除法指令 62 3.4.4 分支和分支控制指令 64 3.4.5 飽和運算指令SSAT和USAT 66 3.4.6 位段操作指令 67 3.4.7 雜項指令 69 3.5 ARM匯編程序設(shè)計 72 3.5.1 ARM匯編語言格式規(guī)范 72 3.5.2 ARM匯編語言編寫格式示例 73 3.6 習(xí)題 73 第4章 系統(tǒng)控制 75 4.1 功能組件 75 4.1.1 復(fù)位控制 75 4.1.2 時鐘控制 78 4.1.3 電源/功耗控制 82 4.1.4 嵌套向量中斷控制器 83 4.1.5 DMA控制器 89 4.2 初始化配置 95 4.3 操作實例 98 4.3.1 時鐘例程 98 4.3.2 中斷例程 104 4.4 本章小結(jié) 107 4.5 習(xí)題 107 第5章 存儲器 109 5.1 存儲器分類 109 5.1.1 RAM存儲器 109 5.1.2 ROM存儲器 118 5.1.3 Flash存儲器 121 5.1.4 鐵電存儲器FRAM 126 5.1.5 存儲器控制器 128 5.1.6 存儲器性能指標(biāo) 132 5.2 微控制器存儲器系統(tǒng) 133 5.2.1 存儲器地址映射 134 5.2.2 位帶操作 136 5.2.3 存儲格式 137 5.3 操作示例 140 5.3.1 變量地址觀察例程 140 5.3.2 Flash擦寫例程 142 5.4 本章小結(jié) 146 5.5 習(xí)題 147 第6章 基本外設(shè) 148 6.1 通用輸入/輸出端口(GPIO) 148 6.1.1 GPIO簡介 148 6.1.2 MSP432中的GPIO 151 6.1.3 初始化配置 152 6.1.4 操作實例 152 6.2 通用定時器/計數(shù)器 155 6.2.1 通用定時器簡介 155 6.2.2 MSP432中的定時器 157 6.2.3 初始化配置 159 6.2.4 操作實例 160 6.3 脈沖寬度調(diào)制(PWM) 163 6.3.1 PWM簡介 163 6.3.2 MSP432中的PWM 165 6.3.3 操作實例 166 6.4 看門狗定時器(WDT) 169 6.4.1 WDT簡介 170 6.4.2 MSP432中的看門狗 170 6.4.3 操作實例 171 6.5 實時時鐘(RTC) 175 6.5.1 RTC簡介 175 6.5.2 MSP432中的RTC 175 6.5.3 操作實例 177 6.6 習(xí)題 181 第7章 模擬外設(shè) 182 7.1 模數(shù)轉(zhuǎn)換器(ADC) 182 7.1.1 ADC簡介 182 7.1.2 ADC性能指標(biāo) 185 7.1.3 ADC類型 185 7.1.4 初始化配置 190 7.1.5 MSP432中的ADC 190 7.1.6 操作實例 192 7.2 比較器 196 7.2.1 比較器簡介 196 7.2.2 初始化配置 199 7.2.3 操作實例 199 7.3 數(shù)模轉(zhuǎn)換器(DAC) 201 7.3.1 DAC簡介 201 7.3.2 DAC類型 202 7.3.3 DAC的技術(shù)指標(biāo) 203 7.3.4 操作實例 203 7.4 習(xí)題 207 第8章 通信外設(shè) 209 8.1 數(shù)字通信系統(tǒng)概述 209 8.2 UART接口 210 8.2.1 UART簡介 210 8.2.2 波特率 213 8.2.3 MSP432中的UART 213 8.2.4 初始化配置 215 8.2.5 操作實例 215 8.3 SPI接口 219 8.3.1 SPI簡介 219 8.3.2 MSP432中的SPI 221 8.3.3 初始化配置 223 8.3.4 操作實例 224 8.4 I2C接口 227 8.4.1 I2C簡介 227 8.4.2 MSP432中的I2C 232 8.4.3 初始化配置 233 8.4.4 操作實例 234 8.5 CAN總線 238 8.6 USB接口 240 8.7 習(xí)題 244 第9章 嵌入式軟件設(shè)計 245 9.1 嵌入式系統(tǒng)軟件組成 245 9.1.1 嵌入式系統(tǒng)軟件架構(gòu) 245 9.1.2 初始化引導(dǎo)程序Bootloader 247 9.1.3 板級支持包BSP 247 9.1.4 設(shè)備驅(qū)動程序 249 9.1.5 庫函數(shù) 250 9.2 嵌入式系統(tǒng)軟件設(shè)計方法 250 9.2.1 前后臺系統(tǒng) 250 9.2.2 中斷(事件)驅(qū)動系統(tǒng) 251 9.2.3 巡回服務(wù)系統(tǒng) 252 9.2.4 基于定時器的巡回服務(wù)系統(tǒng) 253 9.2.5 帶操作系統(tǒng)的嵌入式軟件開發(fā)(以Linux為例) 254 9.3 嵌入式C語言基礎(chǔ) 257 9.3.1 嵌入式C語言程序設(shè)計 257 9.3.2 編程風(fēng)格 259 9.3.3 數(shù)據(jù)類型及聲明 267 9.3.4 操作符與表達式 273 9.3.5 代碼調(diào)試 276 9.4 本章小結(jié) 281 9.5 習(xí)題 281 第10章 嵌入式操作系統(tǒng) 282 10.1 常用的嵌入式操作系統(tǒng) 282 10.2 RTOS基礎(chǔ) 284 10.2.1 RTOS的基本概念 284 10.2.2 使用RTOS的優(yōu)勢 286 10.2.3 RTOS的功能組成 287 10.3 FreeRTOS 292 10.3.1 FreeRTOS的體系結(jié)構(gòu) 292 10.3.2 FreeRTOS的任務(wù)調(diào)度機制 293 10.3.3 FreeRTOS的任務(wù)管理 296 10.3.4 FreeRTOS任務(wù)通信機制 298 10.3.5 FreeRTOS任務(wù)同步機制 298 10.3.6 FreeRTOS移植到微控制器方法 299 10.3.7 Amazon FreeRTOS 299 10.4 FreeRTOS操作示例 299 10.4.1 FreeRTOS的任務(wù)創(chuàng)建及刪除示例 299 10.4.2 FreeRTOS的任務(wù)通信示例 303 10.4.3 FreeRTOS的任務(wù)同步(二進制信號量)示例 309 10.4.4 基于FreeRTOS MSP32的閃燈示例 314 10.5 習(xí)題 318 第11章 嵌入式系統(tǒng)與物聯(lián)網(wǎng) 319 11.1 物聯(lián)網(wǎng)概述 319 11.1.1 技術(shù)及應(yīng)用框架 320 11.1.2 相關(guān)技術(shù) 321 11.2 無線通信技術(shù) 322 11.2.1 NFC 323 11.2.2 ZigBee 323 11.2.3 BLE 324 11.2.4 Wi-Fi 325 11.2.5 LoRa 326 11.2.6 NB-IoT 327 11.2.7 無線通信技術(shù)比較 328 11.3 終端技術(shù) 329 11.3.1 Android 系統(tǒng) 329 11.3.2 iOS系統(tǒng) 330 11.3.3 Web技術(shù) 331 11.4 服務(wù)器和云計算 332 11.4.1 獨立服務(wù)器和云主機 332 11.4.2 云計算 333 11.5 開發(fā)平臺和操作系統(tǒng) 335 11.5.1 IoT開發(fā)平臺 335 11.5.2 IoT操作系統(tǒng) 336 11.6 MQTT概述 337 11.6.1 MQTT特點 337 11.6.2 MQTT協(xié)議原理 338 11.7 物聯(lián)網(wǎng)應(yīng)用示例 339 11.8 習(xí)題 343 第12章 低功耗與電磁兼容 344 12.1 低功耗設(shè)計方法 344 12.1.1 利用I/O引腳為外部器件供電 344 12.1.2 電源管理單元的設(shè)計 345 12.1.3 動態(tài)改變CPU的時鐘頻率 345 12.1.4 軟件系統(tǒng)的低功耗設(shè)計 346 12.2 電源設(shè)計 348 12.2.1 電池的選擇 349 12.2.2 超低靜態(tài)電流LDO 352 12.2.3 直流/直流轉(zhuǎn)換器 353 12.3 電磁兼容性 354 12.3.1 電磁干擾的形成 354 12.3.2 電磁兼容常用元器件 356 12.3.3 電磁兼容常用技巧 357 12.4 習(xí)題 360 參考文獻 361
你還可能感興趣
我要評論
|