ARM嵌入式微控制器原理與應用:基於Cortex-M0+內核LPC84X與μC/OS-III操作系統(第2版) | 被動收入的投資秘訣 - 2024年8月
![](https://www.books.com.tw/img/CN1/165/25/CN11652532.jpg)
ARM嵌入式微控制器原理與應用:基於Cortex-M0+內核LPC84X與μC/OS-III操作系統(第2版)
ARM Cortex-M0+內核微控制器以其高性能、極低功耗和易用性等特點成為替代傳統8051架構單片機的選微控制器,其中以NXP公司LPC84X系列微控制器因其處理速度快、存儲空間大和片內外設資源豐富而有代表性。Micrium公司μC/OS-III系統軟體是在全球範圍內被廣泛載入到微控制器上的嵌入式即時操作系統。
本書結合微控制器LPC84X與嵌入式即時操作系統μC/OS-III詳細講述ARM微控制器原理與應用技術,主要內容包括Cortex-M0+微控制器、LPC84X硬體電路系統、IAR EWARM整合式開發環境、Cortex-M0+異常與中斷、片內外設驅動技術、μC/OS-III移植、μC/OS-III任務、信號量與互斥信號量以及消息郵箱與訊息佇列等。
本書的特色在於理論與應用結合緊密且實例豐富,對學習基於Cortex-M0+微控制器和即時操作系統μC/OS-III等領域的嵌入式設計與應用開發技術,都具有頗強的指導和參考價值。
第一篇LPC84X典型硬體系統與晶片級軟體設計
第1章ARM CortexM0+內核
1.1ARM CortexM0+內核特點
1.2ARM CortexM0+內核架構
1.3ARM CortexM0+記憶體配置
1.4ARM CortexM0+內核寄存器
1.4.1內核寄存器
1.4.2系統控制寄存器
1.5SysTick計時器
1.6CortexM0+異常
1.7嵌套向量中斷控制器
1.8本章小結
第2章LPC84X微控制器
2.1LPC845微控制器特點與引腳配置
2.2LPC845微控制器內部結構
2.3LPC845記憶體配置
2.4LPC845 NVIC中斷
2.5I/O口配置IOCON
2.6通用目的輸入/輸出口GPIO
2.7系統組態模組SYSCON
2.8本章小結
第3章LPC845典型硬體平臺
3.1LPC845核心電路
3.2電源電路
3.3LED驅動電路與蜂鳴器驅動電路
3.4串口通信電路
3.5使用者按鍵電路、使用者介面擴展電路和ADC電路
3.6DS18B20電路
3.7ZLG7289B電路
3.8SWD、ISP和重定電路
3.9LCD屏與電阻式觸控式螢幕介面電路
3.10記憶體電路
3.11聲碼器電路
3.12本章小結
第4章LED燈與蜂鳴器控制
4.1LED燈控制
4.1.1LPC845 GPIO口讀寫訪問
4.1.2Keil MDK工程框架
4.2LPC845異常管理
4.2.1LPC845異常
4.2.2LED燈閃爍工程
4.3NVIC中斷管理
4.3.1多速率計時器MRT
4.3.2MRT計時器中斷實例
4.4蜂鳴器工作原理
4.5LPC845外部中斷
4.5.1外部中斷與模式匹配工作原理
4.5.2LPC845外部中斷實例
4.5.3LPC845模式匹配實例
4.6本章小結
第5章按鍵與數碼管顯示
5.1ZLG7289B工作原理
5.2DS18B20工作原理
5.3按鍵與數碼管實例
5.4本章小結
第6章串口通信與聲碼器
6.1串口通信
6.1.1LPC845串口工作原理
6.1.2串口通信實例
6.2聲碼器
6.2.1聲碼器工作原理
6.2.2聲碼器實例
6.3本章小結
第7章ADC與記憶體訪問
7.1LPC845微控制器ADC
7.1.1ADC工作原理
7.1.2ADC工程實例
7.2AT24C128記憶體
7.2.1AT24C128存取方法
7.2.2AT24C128訪問實例
7.3W25Q64記憶體
7.3.1W25Q64記憶體存取方法
7.3.2LPC845微控制器SPI模組
7.3.3W25Q64訪問實例
7.4本章小結
第8章觸控式螢幕與LCD屏
8.1電阻式觸控式螢幕驅動原理
8.2電阻式觸控式螢幕實例
8.3LD屏驅動原理
8.4LCD屏實例
8.5本章小結
第二篇嵌入式即時操作系統μC/OSⅡ
第9章μC/OSⅡ系統與移植
9.1μC/OSⅡ系統移植
9.2μC/OSⅡ系統結構與配置
9.3μC/OSⅡ系統任務
9.3.1空閒任務
9.3.2統計任務
9.3.3計時器任務
9.4本章小結
第10章μC/OSⅡ任務管理
10.1μC/OSⅡ用戶任務
10.2μC/OSⅡ多工工程實例
10.3統計任務實例
10.4系統計時器
10.5本章小結
第11章信號量與互斥信號量
11.1μC/OSⅡ信號量
11.2μC/OSⅡ互斥信號量
11.3信號量與互斥信號量實例
11.4本章小結
第12章消息郵箱與訊息佇列
12.1μC/OSⅡ消息郵箱
12.2μC/OSⅡ訊息佇列
12.3消息郵箱與訊息佇列實例
12.4本章小結
第三篇嵌入式即時操作系統μC/OSⅢ
第13章μC/OSⅢ系統與移植
13.1μC/OSⅢ發展歷程
13.2μC/OSⅢ特點
13.3μC/OSⅢ應用領域
13.4μC/OSⅢ系統組成
13.4.1μC/OSⅢ設定檔
13.4.2μC/OSⅢ內核文件
13.5μC/OSⅢ自訂資料類型
13.6μC/OSⅢ移植
13.7本章小結
第14章μC/OSⅢ任務管理
14.1用戶任務
14.1.1任務堆疊與優先順序
14.1.2任務控制塊
14.1.3任務工作狀態
14.1.4用戶任務創建過程
14.2多工工程實例
14.3統計任務
14.4計時器任務
14.5本章小結
第15章信號量、任務信號量和互斥信號量
15.1信號量
15.1.1信號量工作方式
15.1.2信號量實例
15.2任務信號量
15.2.1任務信號量工作方式
15.2.2任務信號量實例
15.3互斥信號量
15.3.1互斥信號量工作方式
15.3.2互斥信號量實例
15.4本章小結
第16章訊息佇列與任務訊息佇列
16.1訊息佇列
16.1.1訊息佇列工作方式
16.1.2訊息佇列實例
16.2任務訊息佇列
16.2.1任務訊息佇列工作方式
16.2.2任務訊息佇列實例
16.3本章小結
附錄A文件my25q64.c
附錄B工程項目索引
參考文獻
第2版前言
物聯網技術與互聯網+技術的迅猛發展,促使電子設計與智慧控制領域發生了一次新的技術革命,這場技術革命的典型特徵在於ARM微處理器和微控制器的普及應用及嵌入式即時操作系統(ERTOS)的普及應用。國內各高等院校與時俱進,在電子通信與智慧控制等相關專業開設了ARM與ERTOS方面的多門課程,以培養高品質的嵌入式技術工程人員。為了適應高等院校新技術的教學需要,同時作為清華大學出版社“開發者書庫”系列教材的出版計畫之一,編寫了《ARM嵌入式微控制器原理與應用——基於CortexM0+內核LPC84X與μC/OSⅢ作業系統》。本書涵蓋了ARM CortexM0+極低功耗微控制器LPC84X的設計與應用技術以及ERTOS系統μC/OSⅡ/Ⅲ的實戰應用技術。
本書出版一年以來,受到了國內廣大師生和嵌入式愛好者的喜愛,在此作者表示由衷的感謝。在過去的一年裡,收到了大量讀者的寶貴回饋意見,同時結合在物聯網專業本科和研究生教學中遇到的問題,修訂了本書第1版中出現的一些小問題。特別是由於Keil MDK最新版開發軟體中晶片支撐庫結構的大幅調整,使得本書原版中全部常式均需作重大修改才能運行在新版Keil MDK下。在這種情況下,對原書中的工程常式進行了全面的修訂,形成了本書的第2版。同時,基於IAR EWARM開發環境,也編寫了以LPC84X與ERTOS應用為核心的嵌入式教材《ARM CortexM0+嵌入式微控制器原理與應用——基於LPC84X、IAR EWARM與μC/OSⅢ作業系統》,即將由清華大學出版社出版,該書更適合那些習慣於借助EWARM進行嵌入式開發的教研人員。
本書第2版與第1版在內容安排上相同,同樣具有概念表述準確、硬體方案開源、工程代碼完備、應用實例豐富等特點,適用於課內教學與課外實驗相結合的教學方法,也適用於結合MOOC技術和微課技術進行新型教學範式改革,同樣適用於結合電子設計大賽進行賽課結合教學。本書配套的ARM學習電路板可以在教學過程中設計製作,可極大地提高本書的學習成就感和學習樂趣。對於本科二年級學生,適用內容為根據第3章內容製作ARM學習板和第1~4章; 對於本科三年級學生,根據學習基礎可選用第1~8章或第1~12章; 對於研究生,適用第9~16章。結合作者的教學經驗,針對本科三年級學生,本書的課內教學宜為32學時,實驗教學不少於32學時,相關的開放實驗學時為64~96學時。
本書由江西省學位與研究生教育教學改革研究專案(編號: JXYJG2018074)資助出版,特此感謝。同時,感謝恩智浦(NXP)中國公司辛華峰經理對本書編寫的關心與支持; 感謝北京博創智聯科技有限公司陸海軍總經理對本書編寫的關心與支持; 感謝廣州天嵌電腦科技有限公司梁傳智總經理對本書編寫的關心與支持; 感謝清華大學出版社趙凱編輯的辛勤工作; 感謝我的愛人賈曉天老師在資料檢索和LPC845學習板焊裝調試方面所做的大量工作; 感謝閱讀了作者已出版的教材並回饋了寶貴意見的讀者們。本書的編寫通俗易懂,其自學門檻較以往的教材大大降低。
由於作者水準有限,書中難免會有紕漏之處,敬請同行專家和讀者朋友批評指正。
張勇2019年5月
前言
當前,ARM微控制器正在逐步替代傳統8051架構單片機而成為嵌入式系統的核心控制器。2010年以後,ARM公司主推Cortex系列內核,Cortex系列分為R系列、A系列和M系列,其中,A系列是高性能內核,用於基於Android作業系統的智慧手機和平板電腦,支援ARM、Thumb和Thumb2指令集; R系列為微處理器內核,支援ARM、Thumb和Thumb2指令集; M系列為低功耗微控制器內核,僅支援Thumb2指令集,誕生於2004年,最早推出的內核為CortexM3,目前有CortexM0、M0+、M1、M3、M4和M7等,用於支援快速中斷的嵌入式即時應用系統中。在Cortex系列中,M系列晶片的應用量最大,每年的應用量為幾十億塊。
在CortexM系列中,M0和M0+內核都是極低功耗內核,M0+內核的功耗比M0內核更低(ARM公司公佈的功耗資料為11.2μW/MHz),被譽為全球功耗最低的微控制器內核,主要應用在控制和檢測領域,涵蓋了傳統8051單片機的應用領域,比傳統8051單片機在處理速度、功耗、片上外設靈活多樣性、中斷數量與中斷反應能力、程式設計與調試等諸多方面都有更大優勢,M0+內核的代表晶片如NXP公司的LPC845微控制器。
基於ARM CortexM0+微控制器的軟體發展有兩種方式,即傳統的晶片級別的應用軟體發展和載入嵌入式即時操作系統的應用軟體發展。晶片級別的應用軟體發展方式直接使用C語言函數管理硬體外設驅動和實現使用者功能,稱之為面向函數的程式設計方式; 載入嵌入式即時操作系統的應用軟體發展使用嵌入式作業系統管理硬體外設和存儲資源,借助於使用者任務實現用戶功能,稱之為面向任務的程式設計方式。由於CortexM0+微控制器片內RAM空間豐富,一般在8KB以上,適宜載入嵌入式即時操作系統(RTOS)μC/OSⅡ或μC/OSⅢ。在CortexM0+微控制器上載入了RTOS後,將顯著加速專案的開發進度。
本書主要以CortexM0+內核LPC845微控制器為例,在介紹了CortexM0+內核組成原理和LPC84X微控制器晶片結構後,詳細介紹了LPC845典型硬體系統及其片上外設的驅動方法,基於面向函數的程式設計方法介紹了LED燈、蜂鳴器、按鍵、數碼管、溫度顯示(DS18B20)、串口通信、模數轉換器(ADC)、記憶體訪問、LCD屏顯示和觸控式螢幕輸入等外設驅動程式設計技術; 然後,詳細介紹了嵌入式即時操作系統μC/OSⅡ和μC/OSⅢ在LPC845微控制器上的移植與應用技術,包括使用者任務、信號量與互斥信號量、消息郵箱與訊息佇列等元件應用程式設計方法,重點在於闡述面向任務的程式設計方法及其優越性。
本書講義經過多名教師的使用,理論學時宜為32學時,實驗學時為32學時。建議講述內容為第1~12章(第一篇與第二篇),選學內容為第13~16章(第三篇),按書中章節順序講述。作者巧妙地組織了書中的全部實例,使得全部實例代碼均是完整的。因此,要求讀者必須在掌握了前面章節實例的基礎上,才能學習後面章節的實例。對於自學本書的嵌入式愛好者而言,要求至少具有數位電路、類比電路、C語言程式設計等課程的基礎知識,並建議使用LPC845學習板輔助學習,以增加學習樂趣。
本書具有以下三個方面的特色:
1. 公佈了基於LPC845微控制器為核心的開源硬體平臺,對嵌入式硬體開發具有很強的指導作用。
2. 全書工程實例豐富,通過完整的工程實例詳細講述了函數級別與任務級別的程式設計方法,對於嵌入式系統應用軟體發展具有頗強的指導意義。
3. 結合LPC845硬體平臺,詳細講述了嵌入式即時操作系統μC/OSⅡ/Ⅲ的任務管理和系統元件應用方法,對學習和應用μC/OSⅡ/Ⅲ具有良好的可借鑒性。
本書由江西省學位與研究生教育教學改革研究專案(編號: JXYJG2018074)資助出版,特此感謝。同時,感謝恩智浦(NXP)中國公司辛華峰經理對本書編寫的關心與支持; 感謝北京博創智聯科技有限公司陸海軍總經理對本書編寫的關心與支持; 感謝廣州天嵌電腦科技有限公司梁傳智總經理對本書編寫的關心與支持; 感謝清華大學出版社的辛勤工作; 感謝我的愛人賈曉天在資料檢索和LPC845學習板焊裝調試方面所做的大量工作; 感謝閱讀了作者已出版的教材並回饋了寶貴意見的讀者們。本書的編寫通俗易懂,其自學門檻較以往的教材大大降低。
由於作者水準有限,書中難免會有紕漏之處,敬請同行專家和讀者朋友批評指正。
免責聲明: 知識的發展和科技的進步是多元的。本書內容上廣泛引用的知識點均羅列於參考文獻中,主要為LPC845使用者手冊、LPC845晶片手冊、CortexM0+技術手冊、嵌入式即時操作系統μC/OSⅡ/Ⅲ、Keil MDK整合式開發環境、ULINK2或JLINK模擬資料和Altium Designer軟體等內容,所有這些引用內容的智慧財產權歸相關公司所有。本書內容僅用於教學目的,旨在推廣ARM CortexM0+內核LPC845微控制器、嵌入式即時操作系統μC/OSⅡ/Ⅲ和Keil MDK整合式開發環境等,禁止任何單位和個人摘抄或擴充本書內容用於出版發行,嚴禁將本書內容用於商業場合。
張勇
2018年4月于江西財經大學楓林園